Development tools for the integrated Barcode Scanner
4 May 2014
Wedge input and other events that occur through the built-in Barcode Connector utility can be captured by other running programs. Alternatively, the integrated barcode scanner was designed for compatibility with the Motorola (Symbol) barcode SSI (Simple Serial Interface) commands. The following development tools and sample code can help facilitate the development of programs for capturing and/or controlling barcode activity.
Barcode Connector Events and other settings
Note: Updating the built-in Barcode Connector utility to version 2.5.5 or higher may be required. Or if directly controlling the barcode, then removal of Barcode Connector but leaving COM3 enabled may be required. See below or contact firstname.lastname@example.org for more info.
JS-Barcode-Connector-NET.zip (C# sample app showing how to capture events of the Barcode Connector Utility)
New developer features in version 2.5.5 and higher of the Barcode Connector utility include the following.
- Events added when scan starts and ends with event data (GetEventData() ) to determine success or timeout.
- Event Names:
- BARCODE_END_SUCCESS 1
- BARCODE_END_TIMEOUT 2
- Event Names:
- Runs on other languages (even though Barcode Connector is in English, the host OS may not be).
- Added the version in the registry:
- Start minimized option in the registry. This will show the progress bar, and then minimize the application instead of showing the main dialog. This is not the default. The registry key is:
The hardware target (trigger) key on the Archer 2 is a Windows Mobile Hot Key (soft key) that can be set to launch an event/app under Start > Settings > Personal > Buttons, or to perform any function while an app is running (has focus) such as is described at these web pages.
By default, when this key is pressed it launches an app event called “BarcodeButtonEvent” which your app could monitor for and react to as does our own Barcode Connector utility.
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
hEvent = CreateEvent(NULL, FALSE, FALSE, L"BarcodeButtonEvent");
Directly controlling barcode scanner through SSI commands
Before being able to directly control the built-in barcode scanner, you must disable the built-in Barcode Connector utility software. Some brief instructions are as follows.
- Delete a file: "\Windows\StartUp\Barcode Connector.lnk"
- Delete a file: "\Windows\Start Menu\Programs\Barcode Connector.lnk"
- Remove barcode connector icon on JSHome by change a registry from: [HKEY_LOCAL_MACHINE\Software\JuniperSys\JSHome\Apps] "App4"="\Windows\Start Menu\Programs\Barcode Connector.lnk" to make the icon space empty "App4"="" or you can change the value of App4 to point to a .lnk file of your new app
- Copy over your new app along with SSIDLL.dll
After disabling Barcode Connector, you must enable COM3 using the following registry keys then Reset.
[HKEY_LOCAL_MACHINE\Juniper\Expansion\GPIO_07] "Function"=dword:1 ; 0 = GPIO, 1 = COM3_RTS
[HKEY_LOCAL_MACHINE\Juniper\Expansion\GPIO_08] "Function"=dword:1 ; 0 = GPIO, 1 = COM3_CTS
[HKEY_LOCAL_MACHINE\Juniper\Expansion\GPIO_09] "Function"=dword:1 ; 0 = GPIO, 1 = COM3_RXD
[HKEY_LOCAL_MACHINE\Juniper\Expansion\GPIO_10] "Function"=dword:1 ; 0 = GPIO, 1 = COM3_TXD
Once all of this has been done, you can use the following resources to develop your software.
- JS-Barcode-SSI-Connector.zip (library files (.dll, .h, and .lib) needed when using SSI commands)
- SSI-Sample.zip (C++ sample app for using SSI commands)
- JS-Barcode-SSI-NET.zip (C# sample app showing how to P/INVOKE the SSI DLL)
Though the information provided in the following web document link may not directly apply, it may be useful for reference during development.
Motorola Simple Serial Interface Developer's Guide (pdf)
The full Motorola Solutions SSI SDK and SMDK / EMDK are not compatible with the integrated barcode scanner.
The newer RhoElements tools have so far been untested, but some web browsers for our rugged handheld computers which may provide HTML5 support are listed at the following web page.