Hi Allistar,
I'd do something similar but rather than create an executable I'd create a .net assembly, which I would consume directly into JADE using the JADE .net class library feature, as this can also receive .net events, I would design my wrapper assembly to invoke an event when the reading takes place, then once consumed into JADE I would implement the event. I've used this approach in the past when working with 3rd party telephony software and found it to be a very straight forward approach.
This design means you can hide the implementation of talking to the hardware (a bonus if the comms is quite low level) away from JADE as well as design a domain api that uses native JADE to connect rather than tcip or flat files.
You would also need operations to start and stop reading, but it should be simple enough.
- Dr Danyo.
From what I'm reading each of the 60 workstations has it's own scales which are plugged into the COM port of that workstation. Using another Jade process per workstation will consume another CP, and cause an increase in licensing costs.
An alternative is to not use JADE to read the COM port. Use an executable (developed in your language of choice. C+, C# or whatever). This reads the COM port and then communicates this back to a single JADE process running on the database server. This in turn sends an event to the client workstation telling it that there is a new reading. The external app could communicate with the single Jade server process using either TCP/IP or something nasty like file I/O which the process running on the database server polls. How effective these solutions are depend on how realtime you want the weight information updated to the client. This shoud save JADE license costs though.