background image

 

 - 5 

 

1. Introduction 

 

1.1  How to download data from scanner 

The major difference between the PA500 and a standard HPC/PalmPC is barcode input 
capability. The WinCE Reference Manual contains no information regarding barcode input.

 

 

This section will introduce the programming structure of the barcode sub-system and the 
programming utility library for the PA500.    Inside the PA500 there is an advanced decoding 
chip to control SE900 laser engine and to handle barcode decoding.  Below is system 
diagram for the PA500 barcode: 
 

According to the above diagram, the PA500 communicates with Decoder Chip by mean of 
serial port COM2. Its communication parameter is fixed on 38400,N,8.1.  Normally, the 
Decoder Chip is in sleep mode when COM2 is not activated.    When COM2 is activated, the 
Decoder Chip will start working, and it will decode the barcode “signal” from the laser engine 
when the trigger key is pressed.    After decoding, barcode data and its symbology type will 
be sent directly to PA500.   
 
Many programmers find it difficult to control the Decoder Chip via programming language 
alone, especially if they are not familiar with barcode and serial port controls.    Because of 
this, Unitech provides the following utility library and program for the user or application 
programmer to control the Decoder Chip:   

1. Application program “Scan2Key.exe” is a useful application program that can read 

input data from the laser scanner and then directly input the data into PA500’s 
keyboard buffer. “Scan2Key.exe” makes barcode data input simple, and can be 
especially valuable to those programmers not familiar with COM port programming. 
User program simply reads the barcode data from the keyboard. For barcode 
symbologies setting, you can run 

Scanner Setting

 from 

Control Panel

 to define all of 

supporting symbologies and delimiter.   

 
2. Utility  library:   

For programming control, PA500 provides USI.DLL to let user control scanner input, 
symbologies setting and profile controlling. Please refer to 2 for detail API lists. 
 
USI.DLL is Unitech’s new scanner function library on PA500. For backward compatible 
issue, Unitech still provide Scanner3.DLL and ScanKey3.DLL for existing 
PT930/PT930SA user to port their software into PA500, but several APIs on 
Scanner3.DLL and ScanKey3.DLL have already been removed on PA500. User can 
refer to 0and 5 for detail supporting API. 

CPU 

COM2

Advanced 

Decoder 

Chip 

SE950 

Laser 

Engine 

   

Summary of Contents for PA500

Page 1: ...PA500 Programming Manual V 1 2 1 15 2008...

Page 2: ...2 10 Clear scan data system buffer 11 2 11 Good read indicator 11 2 12 Wait for acknowledgement of the last sent command 11 2 13 Save setting to profiles 11 2 14 Save scanner setting into specified fi...

Page 3: ...23 5 1 Enable Decoder 23 5 2 Disable Decoder 23 5 3 Get DLL version no 23 5 4 Disable laser trigger key 23 5 5 Enable laser trigger key 23 5 6 Reset all symbologies to default 23 6 SYSIOAPI DLL 24 6...

Page 4: ...acklight Status 27 6 4 3 Screen Backlight Brightness Control 27 7 DYNAMIC LOAD DLL 28 8 USEFUL FUNCTION CALL WITHOUT INCLUDE SYSIOAPI DLL 29 8 1 Warm boot Cold boot and power off 29 8 2 GET DEVICE ID...

Page 5: ...are not familiar with barcode and serial port controls Because of this Unitech provides the following utility library and program for the user or application programmer to control the Decoder Chip 1...

Page 6: ...6 1 2 COM definition for PA500 COM 1 Reserve COM2 Scanner Hamster COM 3 IrDAComm COM 4 Bluetooth Modem COM 5 RawIR COM 6 BTModem UART...

Page 7: ...l receive custom message about msgID and wParam parameter can be one of the followings SM_ERROR_SYS Indicates a system error which is caused by a call to the system function Param contains the error c...

Page 8: ...ion Set the scanner to the working mode and reset the communication control Function call BOOL USI_Reset Return Always TRUE 2 5 Get error code Function Description Returns the error code SERR_ Functio...

Page 9: ...ch is defined on USI H Please refer to below list BCT_CODE_39 Code 39 BCT_CODABAR CodaBar BCT_CODE_128 Code 128 BCT_INTERLEAVED_2OF5 Interleaves 2 of 5 BCT_CODE_93 Code 93 BCT_UPC_A UPC A BCT_UPC_A_2S...

Page 10: ...T_UPC_A UPC A BCT_UPC_A_2SUPPS UPC A with 2 Supps BCT_UPC_A_5SUPPS UPC A with 5 Supps BCT_UPC_E0 UPC E BCT_UPC_E0_2SUPPS UPC E with 2 Supps BCT_UPC_E0_5SUPPS UPC E with 5 Supps BCT_EAN_8 EAN 8 BCT_EAN...

Page 11: ...ngs DLLLEDCONTROL UPI300 DLL The function prototype of GoodReadLEDOn is VOID WINAPI GoodReadLEDOn BOOL fon Turn on when fon is TRUE and turn off when fon is FALSE 2 12 Wait for acknowledgement of the...

Page 12: ...ttings remain unchanged Return TRUE success FALSE error 2 16 Automatically enable scanner beam with pressing trigger key Function Description Start auto scanning Scan engine will be automatically trig...

Page 13: ...aded Return NULL Scan2Key is not running Non NULL indicates scan2key is running It actually returns window handle for scan2key but it is for internal use send messages 2 20 Test if Scan2Key is enabled...

Page 14: ...as following Esc and BCC will be calculated and added automatically Esc high length low length command ID operation set BCC Please refer to complete command reference on section 4 BOOL HAM_SendCommand...

Page 15: ...as in following format and send it to decoder chip Esc parameter1 parameter2 BCC The total number of parameters is specified by first parameter num Function call BOOL HAM_SendCommand2 BYTE num BYTE p...

Page 16: ...ain ACK Esc 80H ACK 06H It is from Hamster to Host If Hamster receive a command and this command do not need send message back Hamster reply the ACK NAK Esc 80H NAK 15H It is from Hamster to Host Hams...

Page 17: ...E PRESS ONE SCAN 4 7 reserved Label_type Esc 0 4 19 m S1 BCC S1 is 0_POSITIVE 1 POSITIVE AND NEGATIVE Aim_fuction Esc 0 4 1a m S1 BCC S1 is 0_DISABLE 1 ENABLE Scan_pre_data Esc 0 L 1b m S1 Si BCC Si c...

Page 18: ...d len I2of5_cd Esc 0 4 43 m S1 BCC S1 is 0 calculate send 1 calculate not send 2_no calculation I2of5_ss Esc 0 4 44 m S1 BCC S1 is 0 first digit suppressed 1 last digit suppressed 2_not supressed I25_...

Page 19: ...data len Codabar_max Esc 0 4 70 m S1 BCC S1 is 3 48 48 Label_code Esc 0 4 71 m S1 BCC S1 is S1 b0 is for Label_c_enable S1 b1 is for Label_code_cd Label_c_enable Esc 0 4 72 m S1 BCC S1 is 0_disable 1...

Page 20: ...ime Esc 0 4 93 m S1 BCC S1 is 0 0 5s 1_1s 2 1 5s 3 2s Exchange data Esc Lh Ll a3 S1 S2 Sn BCC Expect Acknowledge Esc 80H ACK 06H Exchange the data between the host and the ICC Expected return after is...

Page 21: ...input data from the system buffer Function call INT PT_EnableBarcode VOID Return code 1 Create new thread fail 2 Cannot re enable 3 Cannot open COM2 4 Upload parameter from Hamster fail 0 OK 4 2 Disab...

Page 22: ...8H Code 128 09H Code 93 0Ah STD 25 0BH MSI 0CH EAN 128 0DH Code 32 0EH DELTA 0FH LABEL 10H PLESSEY 11H Code 11 12H TOSHIBA Return code TRUE There is barcode input FALSE No Barcode Input 4 5 Get DLL ve...

Page 23: ...ch is created by PT_EnableBarToKey Function call for VC VOID PT_DisableBarToKey VOID 5 3 Get DLL version no Function description This function is used to get DLL version number Function call for VC IN...

Page 24: ...ing guide 6 1 Keypad Related Functions 6 1 1 Disable enable power button Function Description To enable disable power button Function call VOID DisablePowerButton BOOL Parameter Input TRUE Disable pow...

Page 25: ...es trigger keys to turn scan engine on or off It functions even if trigger keys are disabled Function call void SetScannerOn BOOL fON Parameter Input fON BOOL TRUE turn scan engine on False turn scan...

Page 26: ...KeyEventName TEXT KBDAlphaKeyChangeEvent define LEFT_TRIGGER_KEY 1 define RIGHT_TRIGGER_KEY 2 gKeyEvents 0 CreateEvent NULL TRUE FALSE kKeybdTriggerEventName gKeyEvents 1 CreateEvent NULL TRUE FALSE k...

Page 27: ...er Input fON BOOL TRUE turn on screen backlight FALSE turn off backlight Return code 6 4 2 Get Screen Backlight Status Function Description This function returns the status of screen backlight Functio...

Page 28: ...R sdk int blen lpfnUSI_GetScannerVersion USI_GetScannerVersion g_hUSIDLL LoadLibrary L Windows USI dll if g_hUSIDLL NULL USI_GetScannerVersion lpfnUSI_GetScannerVersion GetProcAddress g_hUSIDLL TEXT U...

Page 29: ...AR outBuf 512 szProductID 100 stringBuffer 100 BYTE szBuff 255 DWORD bytesReturned char platformID 64 pDeviceID PDEVICE_ID outBuf pDeviceID dwSize sizeof outBuf if KernelIoControl IOCTL_HAL_GET_DEVICE...

Page 30: ...9 Update notes V1 0 The first version V1 1 COM port error correction on section 1 2 V1 2 Change logo...

Reviews: