I have a POS machine and say several serial devices are connected like scanner to COM1 , card reader to COM2, printer to COM3 or any order, i am unable to detect so using circuits.uart
As far as I remember COM ports do not communicate some āconnectedā status or similar, you need to probe them yourself. Best is probably to require fixed ports for auxiliary devices and provide default configs for that or require the user to set each device up correclty via configuration of some kind.
So even if we fix ports for the devices, like suppose com1 for cardreader and com2 for scanner, canāt i get the info if the device is physically connected to the com ports via checking any logs or something else??
How do i know the device connected to com1 is cardreader itself and not scanner?
Precisely, itās very specific per each device. This was one of the major reasons the Universal Serial Bus standard (USB) was so much better than the old Serial (excepting that it lost streaming, which it regained in 3.0).
Back in the days I had a printer with 9 pins that also had emulation for 7 an d 24 pins.
Itās protocol had no way to ask if itās there or what it is. Everything you sent to the printer caused at least a moving head.
And the only command that did not cause printing but gave a response back was asking for the current mode.
So it was idiomatic to āaskā for the current mode and assume itās the correct device if it answered with one of the 6 valid modes (7, 9, 24 pins in either text or graphical mode).
This was actually a command which started scanning on a hand scanner I had that time. And if you didnāt move the scanner within a timeout period, it actually responded with a valid printer mode. This timeout was about 15 seconds.