SerialInput uses the almost universal capability of alternative input devices to send ASCII characters to the machine they are connected to. This basically means that when SerialInput is running it waits for characters to hit the connected Serial Port, and then translates those into an appropriate input message.
NB: There is currently a problem with Microsoft Office 97 (Word), which intercepts characters sent by SerialInput, and may cause corruption. This is not a SerialInput problem.
Keyboard / Mouse
Many ASCII characters are exactly what the user would wish to represent on the computer, for instance ‘abc’ would be interpreted by SerialInput and abc would be sent to the keyboard buffer for processing by whichever application the user happens to be running – e.g. a word processor. In order to cater for mouse input a default set of ‘high-end’ ASCII characters were initially chosen to represent 8 compass points (N, NE, E, SE, S, SW, W, NW) and ‘Stop’.
Mouse movement works with the premise that one character is sent to move the mouse in a particular direction and subsequent characters are sent to redirect or stop the mouse. Left and Right mouse buttons, with single and double click values are also supported.
‘Out of the Box’ ASCII character Mapping
ASCII Code | Function Performed |
240 | Mouse move North (N) |
241 | Mouse move South (S) |
242 | Mouse move East (E) |
243 | Mouse move West (W) |
244 | Mouse move NorthEast (NE) |
245 | Mouse move NorthWest (NW) |
246 | Mouse move SouthEast (SE) |
247 | Mouse move SouthWest (SW) |
250 | Mouse movement STOP |
251 | Mouse button Right Single Click |
252 | Mouse button Right Double Click |
253 | Mouse button Left Single Click |
254 | Mouse button Left Double Click |
Any other Code | As represented by ASCII Character |
Click here for help on programming a Prentke Romich device.
Limitations / Opportunities
The very nature of using ASCII characters means that the application is currently limited to 255 characters and so can only perform a defined set of functions. This is not a problem at present as the input devices used with the application are typically not able to use a larger code ‘vocabulary’. Users also do not typically require more sophisticated functionality from the input channel. They usully require more functionality in how their input is interpreted in certain circumstances. This means that the application can be extended in future mainly around supporting popular applications and functions within them.