|Re: The IP Loop|
Message #27 Posted by Eric Smith on 20 Mar 2009, 12:32 a.m.,
in response to message #25 by Marcus von Cube, Germany
I was working on HP-IL support for Nonpareil back in October-November, though I haven't had time to finish it up, and since then Khanh-Dang Nguyen Thu Lam has published patches for Nonpareil to support HP-IL, along with emulation of some HP-IL peripherals. I have not had time to try his code.
My own plan was roughly what you describe, with datagrams over UDP (or Unix-domain sockets) to pass the frames between devices and a "loop manager" process. However, I didn't plan to assign port numbers to positions in the loop. I just planned that each device would send a "connect to loop" message to the single UDP port of the loop manager, and the loop manager would assign and track the device position within the loop and route the HP-IL messages appropriately.
The loop manager could provide some means for a user to order the devices within the loop, possibly by a GUI interface. The devices would have no knowledge of where they are within the loop (just as in a real loop).
My plan for supporting physical HP-IL was to allow for a "device" on the virtual loop to be a physical loop. In other words, there would be some process acting as a proxy, participating in the virtual loop by UDP, and in the physical loop. In principle there could be more than one physical loop particpating in a virtual loop, or even more than one virtual loop participating in a physical loop. There could be proxies for the 82973A card, JFG's PIL-Box, or other hardware.
I got as far as defining a basic datagram format for HP-IL messages and loop management messages, and writing code for two different HP-IL interfaces, one directly from the state machines defined in the HP-IL spec, and the other based on the 1LB3 chip spec. When I left off, these were feature-complete but only slightly tested.
Edited: 20 Mar 2009, 12:36 a.m.