Understanding the Simple Serial Interface Programming Protocol - Barcode Scanner

Problem:

I am trying to create a simple app to read QR / Bar code information and show the display to the user (preferably C / or Python).

  • The user will press a key on the system.
  • When clicked, you need to enable the launch barcode and prepare it to scan the requested barcode (QR / Code 39).
  • If the user is scanned successfully, his / her details should be displayed on the screen.

Reading / writing serial data is not a problem. I can handle this.

For the scanner model I'm working with, the docs are: https://drive.google.com/folderview?id=0B60pejPe6yiSQXAwWVFxZjRlR2s&usp=sharing

My only confusion is the generation of SSI framing commands.

I see many examples of this. But I am still unable to follow the logic clearly.

unsigned char ledOn[] = {0x05, 0xE7, 0x04, 0x00, 0x0D, 0x00};
unsigned char SSIBuffer[] = {0x00, 0xC6, 0x04, 0x08, 0x11, 0xEE, 0x01};

      

The above examples I got from Stackoverflow ( Send data to barcode scanner via RS232 serial port ):

From this, I decoded the message for further understanding by comparing it to the scanner reference documents above.

Question-1

The docs say the 4 BIT data in the STATUS field:

    Bit 0: Retransmit
    0 = First transmission
    1 = Subsequent transmission
    Bit 1: Continuation
    0 = Last packet of a multipacket message
    1 = Intermediate packet

      

I don't understand when the above bits and consequences will be set.

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, referring to the table, I see (model SE3300) many modes of operation. I think I should use normal decoding mode with level trigger mode. I am confused about what is the benefit of using "snapshot".

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 teams?

For example, if I need to use the level trigger mode procedure, according to the datasheet, these are the following steps:

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 anyone help me form a simple flow for this using SSI commands?

+3


source to share





All Articles