All,
coming from a Node.JS background for those kind of tasks I'm not quite
sure how to do it "correctly" in Pharo. I need to
* listen on up to 32 serial (USB) ports for incoming commands. Each
might use a different "protocol".
* listen to network ports, midi channels or OSC
* if communication is received then a response could be send over
multiple of the channels mentioned above
* reaction time - means incomming message, decode, encode of response
and distribution over other channels should ideally be around 10^-2 s.
I already found all the necessary communication classes in Pharo - and
being back in Smalltalk again parsing the commands is a real pleasure
:-) The one thing that makes me really nervous though is serial support.
Up to now I spawn a separate (Smalltalk) process for each serial port
that polls the serial port for new bytes - as far as I see polling is
the only available option. Although this seems to work it wastes a
considerable amount of CPU cycles IMHO. On my current system (MBP/i7) I
can't have enough channels to even barely bog the system down. However
the deployment platform I'm looking at is more in the range of an
Raspberry Pi...
In Node.JS I'd simply create callbacks for all the different incoming
channels - so I wouldn't waste cycles for polling. So what would be the
best/recommended way to achieve this in Pharo?
Thanks,
Udo