Ian Piumarta wrote:
Todd,
I am interested in getting Squeak to control my Kodak DC20 digital camera (This camera is cheap <$200 and fun to play with).
The problem: Squeak doesn't support serial port access (or does it?).
If you're running on Unix (and probably Win32 too, but I don't know much about it) then you can treat a serial line just like a regular file. On Linux, for example:
serial _ FileStream oldFileNamed: '/dev/ttyS0'. serial nextPutAll: 'Hello, serial device!; cr.
Thanks for the suggestion Ian, I am working under Windoze and was already pursuing something like above mentioned line of attack, but I ran into a couple of problems: 1. I need to set/change the baud rate, parity, bits, etc (the DC20 expects to start at 9600 and I need to tell it to go to a higher rate for more efficient picture transfer). 2. I need to treat the I/O more like a device (e.g. sockets) than a file. This is so I can be signalled (Semaphores?) when presses a button on the camera. 3. I need to treat the port as a "raw" device (binary and byte oriented with no buffering).
I could hack 2 & 3 directly in Squeak... but I eventually want to treat the DC20 (and perhaps any other thing connected to a serial port) as a "device".
Anyway, on Unix (and maybe Win32) using the above technique would let you concentrate on making the Smalltalk stuff work, while some other kindhearted soul volunteers to do the VM hacking to support platform-independent streams for serial lines.
I would love to concentrate on the Smalltalk stuff (parsing the DC20 picture format; displaying the pictures; etc), but I was hoping I could tackle the easy part first (initializing the camera, telling it to take a picture, get status, etc)!
My experience with Windoze hacking is pretty minimal. I have a good idea what I need for a platform independent interface. What I need is a kindhearted soul to give me some primitives...
My current plan of attack is to develop the Smalltalk code for serial "device" support (and the DC20 support) and see how far I can get before I really need the primitives. If I haven't found any code by then... I will have to roll up my sleeves and get my hands dirty.
-- Todd Coram (Maroc Ddot) tcoram@BLaCKSMITH.com | tcoram@pobox.com
Sardonic slaughterer of sacred cows.
squeak-dev@lists.squeakfoundation.org