Problem Statement:
I am trying to build a simple application to read QR/Bar code information and show the display to user (Prefer C / or Python).
- User will press a key in the system.
- On click, Should enable the barcode to trigger and make it ready for scanning the requested barcode (QR/Code 39)
- On successful user scan, his/her data should be displayed over the screen.
Reading/writing of serial data is not an issue. I can manage that.
For the model of scanner I am working with, the documents are at : https://drive.google.com/folderview?id=0B60pejPe6yiSQXAwWVFxZjRlR2s&usp=sharing
My only confusion is forming the framing SSI commands.
I see many examples of that. But, I'm still not able to clearly follow the logic.
unsigned char ledOn[] = {0x05, 0xE7, 0x04, 0x00, 0x0D, 0x00};
unsigned char SSIBuffer[] = {0x00, 0xC6, 0x04, 0x08, 0x11, 0xEE, 0x01};
The above are some examples which I got from Stackoverflow (Send data to a barcode scanner over RS232 serial port):
From this I decoded the message for further understanding by comparing with the scanner reference documents above.
Question-1
In the documents the STATUS field talks about 4 BIT data:
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
I am not clear on when the above bits will be set and the implications.
Question-2
ledOn[] = {0x05, 0xE7, 0x04, 0x00, 0x0D, 0x00};
Length(Byte-1)
Command(Byte-2)( LED_ON)
Decoder(Byte-3)
Status(Byte-4)
LED Selection(Byte-5) //**Don’t know where to get this info**
SSIBuffer[] = {0x00, 0xC6, 0x04, 0x08, 0x11, 0xEE, 0x01};
Length(Byte-1) (Will change the buffer later from 0)
Command(Byte-2) (PARAM_SEND)
Decoder(Byte-3)
Status(Byte-4) – Making barcode to set this config permenanent
BEEP_CODE(Byte-5)
Param_data (Byte-6) (Decode Data Packet Format – ref-pl3307)
Param_value(Byte-7)
Again by referring to the datasheet I see (SE3300 model) many modes of operation. I think I should use Normal decode mode with Level trigger mode. I am confused about what advantage there is to using “Snapshot Mode".
Normal Decode Mode
Level Trigger Mode Procedure
Picklist in Level Trigger Mode Procedure
Presentation Mode Procedure
Auto-AIM Mode Procedure
Finally, how do I join multiple commands?
For example if I needed to use Level Trigger Mode Procedure, according to the datasheet these are the steps involved:
The system is initialized as follows:
• The host sends the Aim Off command.
• The host sends the Illumination Off command.
• The host sends the Acquisition Stop command.
• The host sends the Barcode Decode mode command.
• The SE3300 optimizes the image output for bar code decoding.
• The SE3300 enters standby mode (or low power mode if enabled).
Upon a trigger pull:
• The host sends the Illumination On command.
• The SE3300 exits standby mode (or low power mode if enabled).
• The host sends the Aim On command.
• The host sends the Acquisition Start command.
• The SE3300 begins outputting images.
• The host attempts to decode the images.
Upon a good decode or trigger release:
• The host sends the Acquisition Stop command.
• The SE3300 stops outputting images.
• The host sends the Aim Off command.
• The host sends the Illumination Off command.
• The SE3300 enters standby mode (or low power mode if enabled).
Can someone guide me to form a simple flow for this using SSI commands ?