GSWBrowse for Windows RF Devices
Industrial Browser for RF Devices
User Manual
THIS PAGE INTENTIONALLY LEFT BLANK
GSWBrowse Web Client
Copyright ã 1997-2007, Georgia SoftWorks, All Rights Reserved
Public Square
17 Hwy 9 South • PO Box 729
Dawsonville Georgia 30534
Telephone 706.265.1018 • Fax 706.265.1020
Copyright © Georgia SoftWorks, 1997-2008 All Rights Reserved.
User's Manual, Version 1.07.0003, Mar 03, 2008,
Microsoft, Windows, Windows CE, Windows XP, Windows 2000, Windows 2003. VISTA, Windows NT, Windows 98, Windows 95 are trademarks of Microsoft Corporation. SAP, SAPConsole are trademarks of SAP AG. LXE, is a trademark of LXE
.
THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
LICENSOR MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESSED OR IMPLIED, ORAL OR WRITTEN, REGARDING THE PROGRAM OR DOCUMENTATION AND HEREBY EXPRESSLY DISCLAIMS ALL OTHER EXPRESSED OR IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. LICENSOR DOES NOT WARRANT THE PROGRAM WILL MEET YOUR REQUIREMENTS OR THAT IT’S OPERATION WILL BE UNITERRUPTED OR ERROR FREE.
IN NO EVENT WILL GEORGIA SOFTWORKS BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE SUCH PROGRAMS.
COPYING:
WHILE YOU ARE PERMITTED TO MAKE BACKUP COPIES OF THE SOFTWARE FOR YOUR OWN USE AND PROTECTION, YOU ARE NOT PERMITTED TO MAKE COPIES FOR THE USE OF ANYONE ELSE.
LICENSE:
YOU ARE LICENSED TO RUN THIS SOFTWARE ON A SINGLE WINDOWS CE SYSTEM. THE GEORGIA SOFTWORKS GSWBROWSE SOFTWARE MAY BE INSTALLED ON A SINGLE WINDOWS CE SYSTEM.
This Page Left Intentionally Blank
Table of Contents
Individual (Local License) GSWBrowse Registration
Network (Multiple) Registration
GSWBROWSE – Menu Bar – File - Security Level
Printer Configuration Overview
UI Control – User Interface Control
Dld Control – Download Control
No Execution of ActiveX controls
Resume Device Operation after Suspension
Browser Navigation Error Handling
Controlling Input Panel (soft keyboard)
Printing (BlueTooth, IRDA, Network, Serial)
Vibrating the Device (LXE Only)
GSWBrowse Interface Helper Object
gswbrowse_BATTERYTIMERINTERVAL
window.external.device.batterystatus
window.external.device.battery.status
window.external.device.battery.statustext
window.external.device.battery.level
window.external.device.rf.strength
window.external.device.rf.status
window.external.app.sendmenucommand
Send Menu Symbolic Names and Literals
window.external.app.session(idx).printer.PrintString
window.external.ThisSessionIndex
window.external.app.ActiveSessionIndex
window.external.app.session(idx).host
window.external.app.session(idx).port
window.external.app.session(idx).type
window.external.app.session(idx).path
window.external.app.session(idx).homepage
window.external.app.activesession
window.external.device.deviceid
window.external.device.ipaddress
window.external.device.macaddress
window.external.device.platformid
window.external.device.presetid
window.external.device.serialnumber
window.external.device.networkadaptername
window.external.device.vibrate
window.external.device.settaskbarenabled
window.external.device.settaskbarvisible
window.external.device.setstartbuttonvisible
window.external.device.setsipbuttonvisible
window.external.device.apiversion
window.external.device.scanner.lxescanner.LXEHASINTSCANNER
window.external.device.scanner.lxescanner.LXEHASINTRFID
window.external.device.scanner.lxescanner.LXESCANNERDISABLE
window.external.device.scanner.lxescanner.LXESCANNERENABLE
window.external.device.scanner.lxescanner.LXESCANNERINPUTDISABLE
window.external.device.scanner.lxescanner.LXESCANNERINPUTENABLE
window.external.device.scanner.lxescanner.LXESCANNERRESET
window.external.device.scanner.lxescanner.LXESCANNERFORCEPOWER
window.external.device.scanner.lxescanner.LXESCANNERFORCESCAN
window.external.device.scanner.lxescanner.LXESCANNERSTART
window.external.device.scanner.lxescanner.LXESCANNERSTOP
window.external.device.scanner.lxescanner.LXESCANNERGETSTATUS
window.external.device.scanner.lxescanner.LXESCANNERGETDATA
window.external.device.scanner.lxescanner.LXESCANNERPUTDATA
window.external.device.scanner.lxescanner.LXESCANNERPOWERON
window.external.device.scanner.lxescanner.LXESCANNERPOWEROFF
window.external.device.scanner.lxescanner.LXESCANNERKEYSOFF
window.external.device.scanner.lxescanner.LXESCANNERKEYSON
window.external.device.scanner.lxescanner.LXESCANNERKEYSTATUS
window.external.device.scanner.lxescanner.LXESCANNERATTACHPORT
window.external.device.scanner.lxescanner.LXESCANNERSETKEY
window.external.device.scanner.lxescanner.LXESCANNERSETSERIAL
window.external.device.scanner.lxescanner.LXESCANNERSETPOWER
window.external.device.scanner.lxescanner.LXESCANNERSTRIPLEAD
window.external.device.scanner.lxescanner.LXESCANNERSTRIPTRAIL
window.external.device.scanner.lxescanner.LXESCANNERCTRLCODEOFF
window.external.device.scanner.lxescanner.LXESCANNERCTRLCODEON
window.external.device.scanner.lxescanner.LXESCANNERPREFIX
window.external.device.scanner.lxescanner.LXESCANNERSUFFIX
window.external.device.scanner.lxescanner.LXESCANNEROPTION
window.external.device.scanner.lxescanner.LXESCANNERISOPTIONENABLED
window.external.device.scanner.lxescanner.LXESCANNERGETPARAM
window.external.device.scanner.lxescanner.LXESCANNERSETPARAM
window.external.device.scanner.lxescanner.LXESCANNERSYMSTRIPLEAD
window.external.device.scanner.lxescanner.LXESCANNERSYMSTRIPTRAIL
window.external.device.scanner.lxescanner.LXESCANNERSYMPREFIX
window.external.device.scanner.lxescanner.LXESCANNERSYMSUFFIX
window.external.device.scanner.lxescanner.LXESCANNERSYMENABLE
window.external.device.scanner.lxescanner.LXESCANNERSYMISENABLED
window.external.device.scanner.lxescanner.LXESCANNERSYMGETCONFIG
window.external.device.scanner.lxescanner.LXESCANNERSYMSETCONFIG
window.external.device.scanner.lxescanner.LXESCANNERSYMREMOVE
window.external.interface.CREATEPARAMETERBLOCK
Developer Objects and Constants Reference
GSW Programming Objects – Interface Description Language
IExternaldeviceLXEScanner:Idispatch
IExternalJSParameters:Idispatch
GSW Programming Structures/Values/Constants
Bitmap Values for Scan Code Types
Flag Parms for LXEScanner Get/Set Param
HOW TO RENEW THE GSWBrowse Software
System Signature - IMPORTANT PLEASE READ
Table of Figures
Figure 1: Licensed and Evaluation Diagram
Figure 2: GSWBrowse Registration Techniques
Figure 3: Menu Bar View -> Licensing
Figure 5: Registration Dialog - Customer Name and Save
Figure 6: Network Registration – High Level Overview - Multiple GSWBrowse's
Figure 7: Network Registration Setup File Diagram
Figure 8: Licensed and Evaluation Flow Diagram
Figure 9: Evaluation Mode Pop-up
Figure 11: GSWBrowse - File->Menu->Security Mode
Figure 12: Security Mode Dialog
Figure 13: Administrator Security Mode
Figure 14: Switch to User Mode
Figure 15: Menu bar - Edit (Printer Configuration)
Figure 16: Printer Configuration - Enable Client Side Printing
Figure 17: Network and Serial/Bluetooth/IrDA options enabled
Figure 18: Enable Client Side Printing
Figure 19: Local Printer port selection and configuration properties
Figure 20: Printing - Network Printer Configuration
Figure 22: Multiple Browsers Configuration
Figure 23: Multiple Web Browsers Enabled/Disabled.
Figure 24: Select Browser Menu Item
Figure 26: Diagram of Browser Bars
Figure 27: Maximize Content Area - Hide Bars
Figure 28: Maximize Content Area
Figure 30: UI Control - Text Context Menu
Figure 31: Dld (Download Control)
Figure 32: GSW Commands Action Code Definition Diagram
Figure 33: Meta Tag Processing Overview
Figure 34: Meta Tag Syntax Example
Figure 35: Navigational Syntax Properties, Methods and HTML
Figure 36: Georgia SoftWorks Navigation Syntax Parts
Figure 37: Meta Tag Syntax Compared with Navigational Syntax
Figure 38: Navigation Syntax - HREF Property
Figure 39: Navigation Syntax - NAVIGATE Method
Figure 40: GSWBrowse Programmable External Objects
Figure 41: Syntax / Scope Diagram
Figure 42: Passing Battery Status to Your JavaScript Function
Figure 43: Battery Navigate - Passing Form Data as NAME/VALUE pairs
Figure 44: Passing Signal Status Information to Your JavaScript Function
Figure 45: Signal Navigate - Passing Form Data as Name/Value Pairs.
Figure 46: Timer Navigate - Passing the time to your JavaScript function
Figure 47: Timer Navigate - Passing the time to you Form (URL).
Figure 49: Error Navigate - Passing the Error Number and Message to a URL
Figure 50: SIPUp Coordinate Flexible Syntax Specifications
Figure 51: CURSORPOS Coordinate Flexible Syntax Specification
Figure 56: GSWBrowse Helper Object
Figure 57: LXE Scanner Object / Methods
Figure 58: GSWBrowse Helper Object - Overview
Figure 59: GSW Helper Object - Overview - Create Parameter Block
Figure 60: GSW Helper Object - Overview - Load Values
Figure 61: GSWBrowse Helper Object - Overview - Retrieve Data
Table 1: Device Setup Programs
Table 2: Send Menu Command – File
Table 3: Send Menu Command – Edit
Table 4: Send Menu Command - View
Table 5: Send Menu Command - View Bars
Table 6: Send Menu Command - View Browsers
Table 7: Send Menu Command - View UI Control
Table 8: Send Menu Command - View Dld Control
Table 9: Send Menu Command - GO
Table 10: Send Menu Command - Help
Example: GSWBROWSE_BATTERYTIMERINTERVAL
Example: GSWBROWSE_SIGNALNAVIGATE
Example: WINDOW.external.device.rf.strength
Example: WINDOW.external.device.rf.stATUS
Example: GSWBROWSE_SCANNERNAVIGATE
Example: GSWBROWSE_TIMERNAVIGATE
Example: GSWBROWSE_TIMERINTERVAL
Example: GSWBROWSE_ERRORNAVIGATE
Example: GSWBROWSE_APPLICATION
Example: GSWBROWSE_ZEBRALABEL_PRINT
Example: WINDOW.EXTERNAL.APP.SESSION
Example: WINDOW.EXTERNAL.APP.ACTIVESESSIONINDEX..
Example: WINDOW.EXTERNAL.APP.SESSION(IDX).HOST
Example: WINDOW.EXTERNAL.APP.SESSION(INDEX).PORT
Example: WINDOW.EXTERNAL.APP.SESSION(IDX).TYPE
Italics: are used to emphasize certain words, especially new terms or phrases when they are introduced.
Initial Caps Bold: Words that appear in initial caps boldface represent menu options, buttons, icons or any object that you may click.
Courier: This font represents anything you must type. Courier is used for examples.
"<enter>" This represents the enter key.
Terms/Abbreviations
UTS GSW Universal Terminal Server
Windows Refers to Microsoft Windows Operating Systems 98/ME/NT 4.0/XP/VISTA/2000/2003 and CE unless otherwise noted.
GSWBrowse is a Windows CE compatible nonsense free industrial grade browser customized for RF Terminals, Barcode Scanners and other Data Collection Devices
Thank you for purchasing the Georgia SoftWorks GSWBrowse for RF Devices and Barcode Scanners. You will find GSWBrowse provides a reliable, secure and consistent solution for browser based business/industrial applications. GSWBrowse is content compatible with Windows CE Versions 4.2, 5.0 and higher versions of Internet Explorer. The user interface is intuitive with a familiar and easy to understand look and feel.
Even though GSWBrowse operates “out of the box”, it is also configurable and programmable providing the flexibility to optimize the browser to your specific environment. Wide compatibility of GSWBrowse enables operation on heterogeneous devices able to connect to most web servers. Developers have abundant capabilities enabling rapid development of powerful applications with advanced yet easy to use features. Up to five browsers are available via quick swap tabs providing streamlined access to multiple pages.
GSWBrowse has three primary groups of users, each with their own important yet different roles.
· System Administrators
· Developers
· End Users (The Ultimate User)
Even though they have different tasks, the developer can programmatically perform many of the same configuration operations as the system administrator performs manually. In this respect they have overlapping capabilities. The efforts performed by the developer and system administrator come to fruition though the work of the end user.
System Administrators will find GSWBrowse is straightforward to install, register, configure lockdown and deploy. Administrators are provided with power over many situational specific factors. Each GSWBrowse browser can be independently configured.
Administrators can configure the browser such that the user is completely locked out of the operating system and any other user interface, ensuring access only to the content intended by the web application. Limiting access to only necessary items makes the job more efficient and less complicated for everyone including the user.
Additionally GSWBrowse can maximize the viewable content area by configuring the layout of the browser by enabling/disabling user interface components such as captions and tool bars, status, address etc.
See more about the layout of GSWBrowse and configuration of GSWBrowse on page 14.
System administrators can depend on the reliable and consistent operation of GSWBrowse throughout daily activities as well as across reboots.
Developers writing the content for the application can exploit browser enhanced features to programmatically control the device as well as obtain and present status information. Providing users with battery status, RF Signal strength etc. becomes simple using standard web page development and scripting tools. With this data users can complete their job with awareness and effectiveness.
GSWBrowse provides these capabilities through clear and quick to learn JavaScript and Meta Tag interfaces.
GSWBrowse provides programmable objects allowing access to Windows CE functionality and GSWBrowse itself. Programmable objects are also used to access Generic and Vendor specific features of the device. Programmable objects and Meta Tags are utilized in order to provide a rich set of features for the developer. This goes far beyond the capabilities of the standard browser which is typically unaware of the device and its capabilities. See more in the Developer Guide section on page 34 .
With a typical browser, navigation controls are built in and available to the end user. By controlling access to these navigation objects with GSWBrowse, the developer can guide end user navigation and work flow. It is easier to create applications when the developer controls all navigation elements and is able to specify exactly the navigation options available to the user. This simplifies the need of precisely monitoring work flow as well as eliminating a multitude of error cases.
End Users are able to focus on their work with a browser that minimizes or eliminates distracting controls and objects. The system administrator and the developer can set up the User Interface so the end users can perform their particular job in the most efficient way possible. The steep learning curve avoided by browser customization proves profitable. There is no need to worry about accidentally misconfiguring the device or accidentally navigating to an incorrect web site.
GSWBrowse is straightforward to install on your device.
1. Determine the location and name of the GSWBrowse setup program for your device. Please see Table 1 for the setup programs available.
|
Device Manufacturer |
Architecture |
Operating System |
GSW Scanner Extensions |
Setup Program |
|
LXE |
ARMv4i |
WIN CE 4.2 |
Yes |
BrLXE.exe |
|
LXE |
ARMv4i |
WIN CE 5.0 |
Yes |
BrLXE.exe |
|
Psion-Teklogix |
ARMv4i |
WIN CE 4.2 |
Yes |
BrPT420.exe |
|
Psion-Teklogix |
ARMv4i |
WIN CE 5.0 |
Yes |
BrPT500.exe |
|
Intermec CK30 |
ARMv4i |
WIN CE 4.2 |
Yes |
BrCK30.exe |
|
Standard |
ARMv4i |
WIN CE 4.2 |
No |
BrARMv4i.exe |
|
Standard |
ARMv4i |
WIN CE 5.0 |
No |
BrARMv4i.exe |
|
Standard |
ARMv4 |
WIN CE 4.2 |
No |
BrARMv4.exe |
|
Standard |
ARMv4 |
WIN CE 5.0 |
No |
BrARMv4.exe |
|
Intermec CV60 |
X86 |
WIN CE 4.2 |
No |
BrX86.exe |
|
Standard |
X86 |
WIN CE 4.2 |
No |
BrX86.exe |
|
Standard |
X86 |
WIN CE 5.0 |
No |
BrX86.exe |
Table 1: Device Setup Programs
To run GSWBrowse on a Windows device you must register the software to have a valid license. Each copy of GSWBrowse is licensed for a single instance to run on a single device. The software will operate with full functionality without registration for evaluation purposes; however you will be reminded that the instance of GSWBrowse is not running a valid license when starting GSWBrowse and periodically thereafter.

Figure 1: Licensed and Evaluation Diagram
Registration entails just a few steps that involve GSWBrowse generating a unique Product ID (alphanumeric sequence of characters) for the device and providing this Identification to Georgia SoftWorks so a Serial Number (alphanumeric sequence of characters) can be generated. Georgia SoftWorks provides the Serial Number required to complete the registration.
GSWBrowse offers multiple registration techniques in order to provide flexibility and convenience for a variety of environments. Regardless of the technique, a Product ID is used to generate a Serial Number that is used for the registration.

Figure 2: GSWBrowse Registration Techniques
1. Run the Registration utility (RegUser) by selecting Licensing menu item as shown below by using the Menu Bar. View -> Licensing

Figure 3: Menu Bar View -> Licensing
This opens the Registration form dialog as show in Figure 4 below.

Figure 4: Registration Dialog
Certain GSW Product information is automatically filled by GSWBrowse. This includes the Name, version and Product Identification number.
Step 1: Complete the Customer Name Field. Simply enter the customer name in this field. This helps in verifying the registration request.

Figure 5: Registration Dialog - Customer Name and Save
Step 2: Click Save and save the registration information to the text file named register.txt
The registration information must be provided to Georgia SoftWorks to obtain the Serial Number. Several methods are available for your convenience. The preferred method is via email; however fax or telephone can be also used.
Save the information to a file and email it to Georgia SoftWorks - Preferred method.
The registration information was saved when you clicked the Save button on the GSW RegUsr screen. Please email this file to Georgia SoftWorks registration@georgiasoftworks.com requesting registration.
FAX
Please print the register.txt file that was saved and fax the request to Georgia SoftWorks - 706.265.1020
TELEPHONE
Once Georgia SoftWorks receives the information, we can generate a Serial Number on demand. We will reply back via Fax or email. You may close the registration program at this time. Georgia SoftWorks - 706.265.1018
Apply the Serial Number
When the Serial Number is provided, it will need to be entered in the Serial Number field in the Registration Utility (RegUser) on the device. There are several options to accomplish the entry of the serial number.
· This can be done simply by entering the Serial Number from the keyboard of the device.
OR
· The Register.txt file received from GSW can be transferred to the device and the Serial Number copied/pasted from the file to the Serial Number field in the Registration utility.
OR
· If you are setup to use the Network (Multiple) Registration technique then take the LICENSE.XML file received from GSW and place it in the appropriate location on the license server. When GSWBrowse is launched it will automatically recognize the Serial Number.
In many environments, an administrator may be responsible for multiple devices ranging from a few to hundreds or even thousands. Recognizing the burden of having to register each device individually, Georgia SoftWorks has provided a network registration technique that substantially reduces the effort and time required. A high level overview describing the process follows.

Figure 6: Network Registration – High Level Overview - Multiple GSWBrowse's
Each of the following items corresponds to a number in the above figure. (1) When a GSWBrowse is launched it checks the LICENSE.XML file to determine if a Serial Number is associated with its Product Identification. If there is a Serial Number associated with the Product ID, the license is validated. Otherwise GSWBrowse checks to see if it is locally licensed[1]. (2) If there is not a Serial Number in the LICENSE.XML file and it is not locally licensed then the Product ID is sent to the server and written to the LICENSE.LOG file.
To register multiple browsers, simply launch GSWBrowse on each device and each Product Id will be written to the LICENSE.LOG file. (3) Next send the file to Georgia SoftWorks (email is preferred). (4) GSW will take each Product ID and generate an associated Serial Number. (5) The Product IDs and Serial Numbers will be placed in a file named LICENSE.XML and (6) sent back to the customer.
The customer takes the LICENSE.XML file and places it in the appropriate location on the server. The next time GSWBrowse is launched it will recognize the Serial Number associated with its Product ID and validate the license. Alternatively, the Serial Numbers can be manually entered in each Browser.
Figure 7 is a visual overview of the files needed for setup. One file is needed on the client and three files are needed on the License Server. Each of the files is identified in the yellow star in the figure below. Working examples of each file can be found in the IMPORTANT FILES section on page 236.

Figure 7: Network Registration Setup File Diagram
Implementing the Network Registration entails a few configuration steps.
1. Modify the client side in the file GSWBROWSE.TXT so it has the correct paths to the Server with the Licensing information. GSWBROWSE.TXT is installed on the Device in its persistent folder. The persistent folder location is device specific. Please review the device documentation to determine the location of its persistent folder.
<device persistent folder>/Georgia SoftWorks GSWBrowse/
2. Launch GSWBrowse on each device. This causes each GSWBrowse to generate and send its Product ID to the LICENSE.LOG file on the server.
3. Email the LICENSE.LOG file to registration@georgiasoftworks.com
4. Georgia SoftWorks will validate and generate Serial Numbers for each Product ID and email a LICENSE.XML back.
5. Place the file LICENSE.XML in the appropriate folder (on the server) identified in the GSWBrowse.txt file (on the device). The next time GSWBrowse is launched it will identify that a Serial Number is associated with its Product ID. GSWBrowse will validate the Serial Number and upon success will be licensed.
This is a client side file that provides GSWBrowse with configuration information. Some of the information contained in GSWBROWSE.TXT is used to identify the location of specific files on your web server. An example of GSWBROWSE.TXT can be viewed on page 236. [2]
The location of the server where the License (Registration) files reside. The XML Tag <LicenseServer> is used to specify the IP address of the computer with the Licensing files. An entry such as the one below should be entered in the file.
Syntax
<LicenseServer>IP Address of License Server</LicenseServer>
Example
<LicenseServer>192.168.1.102</LicenseServer>
(Of course put your server’s IP address between the License Server Tags, not the one in our example)
The path to the Post Acceptor file. XML tag <LicenseServerPage> is used to specify the path to the Post Acceptor file. An entry such as the one below should be entered in the file.
Syntax
<LicenseServerPage>Path to POST Acceptor File</LicenseServerPage>
Example
<LicenseServerPage>/gswbrowse/licensing/license.asp</LicenseServerPage>
The included example (page 237) is a working example of a Post Acceptor ASP file. Those familiar with POST Acceptor files can write your own custom acceptor file using your favorite development tools.
Optional XML tag specifies the HTTP port where the data is posted.
Syntax
<LicenseServerPort>PORT NUMBER</LicenseServerPort>
where PORT NUMBER is a decimal value for the HTTP Port.
Default: 80, Port 80 is the default value. Unless a different port should be used, this XML tag can be omitted.
Example
<LicenseServerPort>81</LicenseServerPort>
The XML tag that specifies the path to the XML file which contains the Product ID and Serial Number associations for registrations sent back by Georgia SoftWorks.
Syntax
<LicenseFileURL>PATH to License File</LicenseFileURL>
Example
<LicenseFileURL>
http://192.168.1.102/gswbrowse/licensing/license.xml
</LicenseFileURL>
Prior to registration that obtains a license, GSWBrowse runs in an evaluation mode. This mode is fully functional and is available in order to provide you with a “Try before you Buy” opportunity. GSWBrowse performs a number of checks to determine if a license is present.

Figure 8: Licensed and Evaluation Flow Diagram
When GSWBrowse is launched, it examines LICENSE.XML to see if there is a Serial Number present. If so, then GSWBrowse runs as Licensed. Otherwise GSWBrowse checks to see if a valid Serial Number has been entered locally. If so, then GSWBrowse runs as Licensed. Otherwise GSWBrowse sends its Product ID to the server and it is inserted into the LICENSE.LOG file. This is done in preparation for the file being sent to Georgia SoftWorks where Serial Numbers can be generated.
The operational difference in evaluation mode is a periodical pop-up that serves as a reminder to obtain a license. Figure 9 is an example of the evaluation mode pop-up

Figure 9: Evaluation Mode Pop-up
Thirty
minutes is the amount of time allowed in evaluation mode before the session is
terminated. After about five minutes a pop-up will occur with a reminder that
this is an evaluation license along with the remaining time before this session
is terminated. The frequency of reminders increase as the evaluation timer
counts down. When zero, the session terminates and you must restart GSWBrowse.
A typical GSWBrowse window is depicted below.

Figure 10: GSWBrowse Layout
The components that comprise the GSWBrowse browser are shown above.
The Caption, Tool, Address, Status and Task Bar operate as expected with a typical Windows Internet Explorer type browser.
The Menu Bar provides access to typical and extended commands. See page 26 for details.
The Browser Tabs are displayed when more than one browser is enabled[3]. Five (5) Browsers are available. The Active Browser has the “pressed” appearance, browser one (1) in Figure 10.
The System Administrator can display or hide any or all “Bars”. This can help reduce unnecessary distractions while maximizing the Browser Content area.
Many common browser objects (Menu Bars, Tools) are available, but only the items providing GSW Browse enhanced RF Device and Data collection features are described in detail.
Two security modes are available - Administrator and User mode. Administrator mode permits the authority to define the browser layout and items accessible in User mode. Control over the appearance of the browser as well as the scope of browser activities accessible to the user allows optimization of the display and operation for your specific environment.

Figure 11: GSWBrowse - File->Menu->Security Mode
Typically, the administrator will enter the Administrator Security mode, configure the browser as it should appear to the user and then switch browser to User Security mode and exit. The next time the browser is started; it will be in User Security mode and will retain the configuration set by the Administrator. When the Security mode menu item is selected the following dialog is displayed.

Figure 12: Security Mode Dialog
Two methods are available to open the Security Mode Dialog. The first is to use the menu bar as shown in Figure 11
The second method to access the Security Mode Dialog is a keyboard sequence. Many times the menu bar may be hidden. This provides an alternate method of access. In User Mode this is the only method available to access the Security Mode Dialog. The key sequence is:
<CTRL> + <SHIFT> + S

Figure 13: Administrator Security Mode
· Select Administrator
· Enter the password: This is GSW telephone number. 7062651018 Please note that the password only needs to be entered when switching from User mode to Administrator mode.
· To quickly “Unhide” and access all the User Interface elements, click Unhide UI. This is a time saver. Rather than enabling each User Interface element individually for each browser it unhides all UI elements for all browsers. If the UI elements are hidden, the administrator can still access menu items using ALT sequences. The ALT sequences to access hidden menus are only available in administrator mode.
· Make sure Exit Now is unchecked when entering Administrator mode.
In Administrator Mode, each browser can be configured to the desired layout for the user. This includes all the Bars (Status, Caption, Toolbar, Address, Menu and Taskbar), multiple or single browsers, and the Home page. When the Security Mode is switched back to User the layout will be exactly as configured.

Figure 14: Switch to User Mode
· Select User
· To quickly “hide” access to all User Interface elements at once, click Hide UI. This is a time saver, rather than having to hide each one individually. To display User Interface elements specifically defined in Administrator mode, leave Hide UI unchecked.
· When “Exit now” is checked, GSWBrowse will exit upon selecting of the OK button. This is important because it is the only way to exit the browser when the UI is hidden. If you forget to click the Exit Now button then re-enter the Security Mode using the key sequence technique to correct and exit.
The administrator can “Lock” the user from leaving the browser by disabling the Address Bar, the Menu Bar Taskbar and the Toolbar and then switching to User Mode. This typical and maximal lock down is accomplished by checking hide UI in the Security Dialog.
The administrator can determine the layout of the items available such as home page, menus, tool bars; status bars; caption bars; etc. removing distractions and increasing the display area. Once the layout is defined then the Administrator can “lock it” for User Mode.
The ability to perform the “Lock Down” is a major design goal of GSWBrowse.
The Edit | Printer Config.. item in the Menu bar is where the printers are configured. This includes local printers such as serial, Bluetooth and IrDA as well as network printers accessable to the client device. GSWBrowse allows each browser to have a separate printer configuration. This offers the flexability to configure a different printer for each browser if desired.
Select the browser that you want to specify a printer configuration. The left side of the figure below shows browser 1 as selected. Next select Edit|Printer Config… menu item and the dialog in Figure 16 is displayed.

Figure 15: Menu bar - Edit (Printer Configuration)
The “Enable client side printing” checkbox specifies if this browser has printing enabled.

Figure 16: Printer Configuration - Enable Client Side Printing
A browser may have a either a network printer enabled or a local (Serial/Bluetooth/IrDA) printer port enabled but not both. When the Printing Configuration is initially opened, the configuration options for Local (Serial/Bluetooth/IrDA) printer ports are avaible. To switch to network printing simply check the Use network printing checkbox and the network path entry box is enabled and while the Serial, Bluetooth, IrDA options are disabled.

Figure 17: Network and Serial/Bluetooth/IrDA options enabled
Local printer configurdjsation steps.
1. Select “Enable client side printing”
2. Make sure that “Use network printing” checkbox is NOT selected.
3. Choose the Communications Port
4. Configure the port to make sure the device and printer match.

Figure 18: Enable Client Side Printing
Figure 19 shows details about the communications port and port properties options.

Figure 19: Local Printer port selection and configuration properties
Network printer configuration steps.
1. Select “Enable client side printing”
2. Select the “Use network printing” checkbox.
3. Enter the network printer path.
4. Click OK.

Figure 20: Printing - Network Printer Configuration
The View Menu bar is where the bulk of the GSW Browse layout is configured. Additionally, the GSWBrowse Licensing /Registration information is available through the View Menu item.

Figure 21: Menu Bar - View
The GSWBrowse enhanced RF device and data collection features in the View menu are:
View/Modify Registration information. GSWBrowse must be registered to operate without the frequent reminder pop-up. Please see GSWBrowse Registration on page 4 . Default: Admin Mode only.
Navigate to the desired page and select “Set as Home Page” to make this the home page for the browser. Default: Admin Mode only
Removes (resets) link to the Home Page. This returns the Browser to the initial page as when initially installed. This can be used as a memory saving feature for memory critical devices. Default: Admin Mode only
Enables or Disables the currently active (visible) browser. The User will not be able to access this browser when disabled. Default: Admin Mode only.
Multiple Browsers – Enabled (Checked) allows access to any of the five browsers that are enabled. Disabled (Unchecked) only allows access to a single browser. Default: Admin Mode only.

Figure 22: Multiple Browsers Configuration
When only a single browser is needed then disable (uncheck) Multiple Browsers. The Browser Tabs will no longer be displayed saving display area and unnecessary distraction.

Figure 23: Multiple Web Browsers Enabled/Disabled
Displays the current browser instance (noted by the check) and allows switching to another browser. Only enabled browsers can be selected in User Mode. Default: Admin and User Mode.

Figure 24: Select Browser Menu Item
The Browser Tabs offer the same information in a
less intrusive format while offering a quick way to switch between Browser
Instances. 
Figure 25: Browsers Tab
Enable/Disable and display the Bars available. Each browser’s Bars can be individually configured. The menu selections in this section refer to the currently selected browser instance.
· Shows what Bars are enabled - User Mode.
· Enables/Disables the various Bars – Admin Mode
If specific bars are not required for your application, the administrator may opt to disable the bars that are not needed. Often the display on barcode scanners and data collection devices is limited and it is important to maximize the content display area. Browser bars and browser tabs may be moved in the common manner.

Figure 26: Diagram of Browser Bars
Refer back to Figure 10 to view another diagram which shows the Bars. Please note that the Scroll Bars and the Browser tabs are not configured here. Please see appropriate section for configuration of Scroll Bars and Browser tabs.

Figure 27: Maximize Content Area - Hide Bars
Still need more content area? Eliminate the Browser Tabs if they are not needed; leave just the content area and scroll bars. Still need more room, remove the scroll bars as shown in the figure below. GSW Browse is capable of being configured in order to meet a wide range of specific display requirements.

Figure 28: Maximize Content Area
See page 31 for configuration to remove the scroll bars.
GSWBrowse supports configuration of the enabling and disabling of various UI behaviors.
Admin Mode.
The Administrator may determine that Users should have certain browser user interface capabilities while restricting other ones. The UI Control allows the Administrator to enable/disable a wide range of interface operations on a per browser instance[4] basis. This includes the selection of text, context menu control as well as control over browser display properties such as scroll bars and 3D borders.
The Administrator specifies what UI Control features are available to the user by configuring the UI Control settings.
The first group of UI Control settings provides the administrator ability to select the context menus that are displayed in the browser as a result of a right-click. The second group of UI Control settings provides text selection, 3D Border and Scrollbar control.

Figure 29: UI Control Menu
Typically when a user right clicks (or taps and holds when using a stylus) in a browser a context menu is displayed providing actions commonly associated with the “context” of the object right-clicked. This may not be appropriate or useful on RF Device or Data Collection terminals.
The left side of Figure 30 shows an example of a text context menu that is displayed when the user selects the word “different” in the text and right-clicks. The menu with Copy, Select All, and Print appears.
When the “text context menu” is disabled, the right side of the Figure 30 shows the new behavior. Even if the user selects text, they will not get a context menu when they right-click.

Figure 30: UI Control - Text Context Menu
|
|
Enable/Disable ALL context menus. A quick way to disable the display of all context menus for GSWBrowse. |
Default: Enabled - Allow context menu operation.
Enable/Disable the default context menu.
The Default context menu is displayed when a right mouse click or equivalent is performed on an empty area of the browser content.
Default: Enabled - Allow context menu operation.
Enable/Disable the context menu for Images.
The image context menu is displayed when a right mouse click or equivalent is performed on an image area of the browser content.
Default: Enabled - Allow Image context menu operation.
Enable/Disable the context menu for custom controls.
The control context menu is displayed when a right mouse click or equivalent is performed on a control area of the browser content.
Default: Enabled - Allow Control context menu operation.
Enable/Disable the context menu for Tables.
The table context menu is displayed when a right mouse click or equivalent is performed on the table area of the browser content.
Default: Enabled - Allow Table context menu operation.
Enable/Disable the context menu for Text.
The text context menu is displayed when text is selected followed by a right mouse click or equivalent.
Default: Enabled - Allow text context menu operation.
Enable/Disable the context menu for Anchors (links only). This does not include images or image maps.
Default: Enabled - Allow anchor context menu operation.
Enable/Disable the context menu when a right click is performed on something other than any of the above.
Default: Enabled - Allow Unknown context menu operation.
Enable/Disable the ability for the user to select text.
Default: Enabled - Allow text selection.
When checked: Do not allow text selection in the browser content window.
Enable/Disable the display of 3D borders for the browser (when supported).
Default: Enabled - Allow 3D borders.
When checked: Do not allow the display of 3D borders for the browser.
GSWBrowse displays vertical and horizontal scroll bars to access content outside of viewing area of display. Scroll bars may be disabled to obtain additional content area. If scroll bars are disabled then the application developer should be careful to ensure that all content will fit on the available area. In most cases using scroll bars is not a good design practice for data collection devices.
Default: Enabled – Vertical and Horizontal Scroll Bars.
When checked: Do not display scroll bars.
The Administrator may determine certain browser downloads from the server should be allowed while restricting others. The Dld Control allows the Administrator to enable/disable different download capabilities ranging from sound, video to Java Applets and ActiveX controls. – Admin Mode

Figure 31: Dld (Download Control)
Each of the GSWBrowse Dld Control options is listed below. Please be careful to note whether a checked item specifies enabled or disabled. GSWBrowse patterned the terminology after Microsoft common programming terminology to maintain a familiar feel for administrators acquainted with its programming.
Default: Enabled - Allow the download and display of images.
When not checked: Do not allow images to be downloaded from the server.
Default: Enabled - Allow the download and playing of videos.
When not checked: Do not allow videos to be downloaded and played from the server.
Default: Enabled - Allow the download and playing of sound.
When not checked: Do not allow sounds to be downloaded from the server.
Default: Disabled – Allow execution of client side scripts.
When checked: Do not allow execution of client side scripts.
Default: Disabled – Allow execution of Java Applets.
When checked: Do not allow execution of Java Applets.
No Execution of ActiveX controls
Default: Disabled – Allow the download and execution of ActiveX controls from the server.
When checked: Do not allow ActiveX controls to be downloaded and executed from the server.
Default: Disabled – Client Pull Operations will be performed.
When checked: Do not allow Client Pull Operations to be performed.
Default: Disabled – Allow the download of frames.
When checked: Do not allow download of frames but download and parse the frameset page. GSWBrowse will ignore the frameset and render a no frames tag.
Default: Disabled – GSWBrowse operates in On-Line mode.
When checked: Force GSWBrowse to operate in Off-Line mode.
GSWBrowse offers the web page developer[5] a variety of options to accomplish development tasks on the device. GSWBrowse provides straightforward and easy to understand techniques and syntax to interface with the device and browser. When supported by the device the GSWBrowse development interface can perform numerous client side actions/functions. This includes but is not limited to obtaining the device battery status, controlling leds, beeps, hooking the keyboard, performing scanner operations, determining RF signal strength, invoking GSWBrowse menu items and much more.
GSWBrowse developer features are available from JavaScript and HTML and seamlessly integrate with your web page development. GSW provides two ways to access these features. One is through GSW Action Commands and the other is through the window.external programming extensions.
GSW Action codes are composed of the actual command name followed by optional parameters. Frequently throughout this document the parameters are referred to as “content”. The format and value of the content (parameters) are dependent on the command.
The content can range from simple numbers, time and dates to JavaScript functions and URLs. Additionally content can be used to pass values embedded in a URL as if a form was SUBMITTED, to be handled by server side code such as CGI, ASP, etc.
For example, if you wanted to set the time on the device to 19:20 (7:20pm) you would use the command – gswbrowse_SetTime and set the content to 19:20.
GSWBrowse terms the combination of the command and parameter (if any) as a Georgia SoftWorks Action Code (gswac). Multiple programming techniques can be used to invoke commands and pass the parameters.

Figure 32: GSW Commands Action Code Definition Diagram
GSW Action Codes can be invoked when the page loading is complete, as well as based on other common events (E.g. form, button, mouse, etc.) or when a programming logic condition is satisfied.
GSW uses a standard JavaScript mechanism for providing vendor extensions and provides a number of objects with their own properties and methods.
HTML Meta Tags, HTML Anchor tags, specialized functions, object properties and methods through proprietary GSW extensions to the “window.external” model are some of the techniques available to the developer to take advantage of extensions provided by GSW in GSWBrowse. Each technique requires a specific syntax to specify the command and parameters or objects and its properties or methods.
We will review these in the following sections.
GSWBrowse offers programmatic access to its own functionality in addition to the device’s via META tags.
Device Specific Meta Tags – Certain manufacturers of devices along with different operating system versions have specific Meta tags to accomplish tasks. GSWBrowse supports as many as possible.

Figure 33: Meta Tag Processing Overview
SYNTAX
<META HTTP-EQUIV="name" CONTENT="content">
Where
Name is the command part of GSWAC[6]. and
Content The parameter part of GSWAC. Typically a value or a JavaScript function or a URL.
Meta Tag syntax is static and is inside the header of the document. The associated action is initiated when the document loading is complete. Meta Tags with the HTTP-EQUIV attribute can be used to invoke GSWBrowse codes[7].
For example, to set the time to 19:20 you could use the Meta Tag gswbrowse_SetTime as shown below.

Figure 34: Meta Tag Syntax Example
Once the page is loaded, (with the above Meta Tag specified) the time on the device will be set to 19:20.
Multiple GSWBrowse Meta Tags can be used in the web page header section and they are processed in the order which they appear.

Figure 35: Navigational Syntax Properties, Methods and HTML
Navigational syntax is dynamic and is inside the body of the document. It is initiated based on events such as buttons, functions, etc. as documented in JavaScript and HTML manuals. Navigation Syntax is programming that invokes hyperlinks. GSWBrowse uses Pseudo-URLs to invoke GSWBrowse Action Codes by intercepting navigation requests.
With navigational syntax Georgia SoftWork’s Action Codes are identified by GSWBrowse by using a common and familiar technique called Pseudo-URL Prefix. The Pseudo URL Prefix identifies the scheme used to determine the target of the navigation.
To specify the GSWBrowse URL Prefix scheme, the Georgia SoftWorks Action Command must be prefixed with the characters gswac followed by a colon -“gswac:”. The component parts of the Pseudo URL are shown below.

Figure 36: Georgia SoftWorks Navigation Syntax Parts
The Pseudo-URL syntax conforms to the syntax of the property or method of the navigation technique used.
The diagram below shows an example of the Anchor Tag with the HREF attribute used to invoke commands.
<a href=”gswac:gswbrowse_SetTime,19:20”>Set Time to 19:20</a>

Figure 37: Meta Tag Syntax Compared with Navigational Syntax
The Anchor Tag uses the same GSWAC as the Meta Tag but is formatted for Navigation using the Pseudo-URL syntax. The action will be performed when the link is clicked.
The href property of the location and document objects can be used to invoke commands from JavaScript.
location.href = ”gswac:gswbrowse_SetTime,19:20”>
document.href = ”gswac:gswbrowse_SetTime,19:20”>

Figure 38: Navigation Syntax - HREF Property
The Navigate method of the Window object can be used to invoke commands.
window.navigate(“gswac:gswbrowse_SetTime,19:20”)

Figure 39: Navigation Syntax - NAVIGATE Method

Figure 40: GSWBrowse Programmable External Objects
GSWBrowse is the top level object and is accessed as window.external.
Additional vendor dependant functionality is available via the scripting model of GSWBrowse through the window.external extensions. Windows External Syntax is used to access device, application and operating system features.
Some features are available only thru window.external functionality.
GSWBrowse offers programmatic access to the GSWBrowse menus. Any task that can be performed from the GSWBrowse menus can also be performed programmatically.
|
|
Hooking the Keyboard |
|
|
|
Intercept a specific key and define action |
|
|
|
Intercept all keys and define action to take |
|
|
|
Enables/Disable F5 as the Home Key. When pressed navigate to the configured HOME URL |
|
|
|
|
|
|
|
Battery |
|
|
|
Periodically obtain battery status information |
|
|
|
Specifies the interval to check battery useful |
|
|
|
Obtain the charged state of the battery |
|
|
|
Text description of the battery charge state |
|
|
|
Numeric value for the charged state of the battery |
|
|
|
Charged state of the battery as a percentage |
|
|
|
|
|
|
|
Resume Device Operation after Suspension |
|
|
|
Specifies action to initiate when the device resumes power after suspension |
|
|
|
|
|
|
|
Timer-Based Actions |
|
|
|
Launches a JavaScript Function or URL at specified intervals |
|
|
|
Specifies the interval to launch gswbrowse_timernavigate |
|
|
|
|
|
|
|
Browser Navigation Error Handling |
|
|
|
Launches a JavaScript function or URL when a navigation error is detected by the browser |
|
|
|
|
|
|
|
Exit from Browser |
|
|
|
Causes GSWBrowse to Exit |
|
|
|
Causes GSWBrowse to Exit |
|
|
|
|
|
|
|
Controlling Input Panel (soft keyboard) |
|
|
|
Hide/Display Soft Input Panel (SIP) |
|
|
|
Displays the Soft Input Panel(SIP) |
|
|
|
Moves the Soft Input Panel (SIP) to a specified location using x and y coordinates |
|
|
Date and Time |
|
|
|
Set the System Time on the device |
|
|
|
Set the System Date on the device |
|
|
|
|
|
|
|
Font Size |
|
|
|
Change the Font Size relative to the size specified in the HTML content |
|
|
|
|
|
|
|
Cursor Position |
|
|
|
Move the cursor to a specified location using x and y coordinates |
|
|
|
|
|
|
|
Warm Boot and Soft Boot |
|
|
|
Forces the device to reboot (warm or cold) |
|
|
|
|
|
|
|
RF Signal Strength |
|
|
|
Obtain WLAN Signal Information |
|
|
|
Obtain the strength of the RF Signal |
|
|
|
Numeric value that represents the status of the RF Signal |
|
|
|
|
|
|
|
|
|
|
|
Scanner Operation |
|
|
|
Intercept result of a scan |
|
|
|
|
|
|
|
GSWBrowse Application Control |
|
|
|
Obtain the session number of your execution context |
|
|
|
Obtain session object corresponding to the provided index of the browser instance |
|
|
|
Get/Set the Visible Browser Index |
|
|
|
Obtain host part of URL for specified session |
|
|
|
Obtain port number for specified session |
|
|
|
Obtain session type for specified session |
|
|
|
Obtain path for specified session |
|
|
|
Get/Set home page URL for specified session |
|
|
|
|
|
|
|
Printing (BlueTooth, IRDA, Network, Serial) |
|
|
|
|
|
|
|
gswbrowse_PLSeriesLabel_Print (same as gswbrowse_ZebraLabel_Print) |
Supported for backward compatibility |
|
|
Send Output to the Printer |
|
|
|
Send Output to Printer |
|
|
|
|
|
|
|
|
|
|
|
GSWBrowse about Information |
|
|
|
Obtain GSWBrowse release version number |
|
|
|
Obtain GSWBrowse Build Id which is a unique identifier for each software build |
|
|
|
Name of the current application running |
|
|
|
Obtain copyright text for GSWBrowse |
|
|
|
|
|
|
|
Persistent Storage |
|
|
|
Indexed property that stores user data strings in persistent storage |
|
|
|
|
|
|
|
Device Information |
|
|
|
Read the Device Identification string |
|
|
|
Read the Device IP Address |
|
|
|
Read the Device Media Access Control (MAC) Address |
|
|
|
Read the Windows CE Platform Id |
|
|
|
Read the Windows CE Preset Id |
|
|
|
Read the GSW Product Id which is used for software registration |
|
|
|
Read the Universally Unique Identifier (UUID) of the device |
|
|
|
|
|
|
|
Network Adapter Name |
|
|
|
Read text name for the network adapter |
|
|
|
|
|
|
|
Vibrating the Device (LXE Only) |
|
|
|
Cause the device to Vibrate for a specified duration of time |
|
|
|
|
|
|
|
Controlling the Taskbar |
|
|
|
Enable/Disable the taskbar |
|
|
|
Hide/Show the taskbar |
|
|
|
Hide/Show the Start Button |
|
|
|
Hide/Show the Soft Input Panel (SIP) Button |
|
|
|
|
|
|
|
Vendor API Version (LXE Only) |
|
|
|
Read the Version Number of the Vendor’s Application Programming Interface (API) |
|
|
|
|
|
|
|
LXE SCANNER APIswindow.external.device.scanner.lxescanner |
|
|
|
For all LXE SCANNER API’s please consult the appropriate LXE manual for detailed and current information. These API’s work as pass-throughs to LXE APIs provided in lxeapi.dll[8] |
|
|
|
Determine if device has an internal scanner |
|
|
|
Determine if device has internal RFID Reader |
|
|
|
Cause scanner driver to disable operation |
|
|
|
Return scanner driver to normal operation |
|
|
|
Disable input (scan keys & trigger button) |
|
|
|
Enable input after disabled |
|
|
|
Cause scanner driver to reload registry settings |
|
|
|
Forces serial port to supply power to scanner |
|
|
|
Force Scan |
|
|
|
Start scan operation on internal scanner |
|
|
|
Terminate scan operation on internal scanner |
|
|
|
Returns the status of the scanner |
|
|
|
Obtain the scanned string |
|
|
|
See LXE documentation |
|
|
|
Apply power to all active scanner devices |
|
|
|
Power down all active scanner devices |
|
|
|
Stop processing scanned data as keystroke msgs |
|
|
|
Start processing scanned data as keystroke msgs |
|
|
|
Determine if scanner wedge is buffering data or processing as keystroke messages |
|
|
|
Changes wedge port attached to the scanner driver as specified |
|
|
|
Changes the action of the scan key specified |
|
|
|
Changes the configuration of scanner the serial port |
|
|
|
Changes the value of the scanner serial port power pin and saves to registry |
|
|
|
Enable/Disable stripping of characters from beginning of barcode data |
|
|
|
Enable/Disable stripping of characters from end of barcode data |
|
|
|
Disables processing of ASCII values less than 0x20 when data is processed as keystroke messages |
|
|
|
Enables processing of ASCII values less than 0x20 when data is processed as keystroke messages |
|
|
|
Enable/Disable adding prefix to beginning of barcode data |
|
|
|
Enable/Disable adding Suffix to end of barcode data |
|
|
|
Enable/Disable symbology option |
|
|
|
Determine if given symbology is enabled/disabled |
|
|
|
Get the value of a hardware specific parameter directly from the scanner hardware |
|
|
|
LXE SCANNER APIs - Continued window.external.device.scanner.lxescanner |
|
|
|
|
Set value of a hardware specific parameter |
||
|
|
Enable/Disable stripping of characters from the beginning of barcode data for specified symbology |
||
|
|
Enable/Disable stripping of characters from the end of barcode data for specified symbology |
||
|
|
Enable/Disable adding prefix to beginning of barcode data for specified symbology |
||
|
|
Enable/Disable adding suffix the end of barcode data for specified symbology |
||
|
|
Enable/Disable specified symbology |
||
|
|
Determine the current enable state of the parsing engine for the specified symbology |
||
|
|
Gets all parameters for specified symbology |
||
|
|
Sets all parameters for a symbology |
||
|
|
Removes all parameters for specified symbology by deleting the registry key |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GSWBrowse Interface Helper Object |
|
|
|
|
Create a Helper Object for parameter passing |
||
|
|
|
|
|
|
|
|
|
|
The following section provides the detailed reference on the Georgia SoftWorks Action Codes and external properties and methods.
For each Georgia SoftWorks Action Code an information box is located at the top right of the page that provides quick information with respect to the syntax and scope.
The syntax indicates the forms that this functionality can be invoked. Multiple syntaxes may be valid for a particular function. The options are:
· Meta Tag
· Navigational
· Windows External
The example below indicates that the functionality is available using Meta Tag and Navigational Syntax.

Figure 41: Syntax / Scope Diagram
Additionally the scope of the functionally is also important. The scope identifies the range of impact of the command. GSWBrowse can have five (5) browsers. Some commands only impact the specific browser instance and others may impact all browsers.
Likewise some functionally may only impact the device. The options for scope are:
· Device
· Browser - Instance
· Browser – Global
The example above indicates that the functionally impacts all browsers.
Other import information is conveyed using developer attention boxes.
Developer attention boxes are located on the page when a special or particularly useful aspect of this functionally should be noticed. Most of the developer attention boxes are self explanatory however a however a few examples follow:
Examples:
![]()
GSW Only – At the time of this writing, GSW is the only vendor that provides this feature.
![]()
LXE Only –This feature only applies to LXE devices.
![]()
This is a READ ONLY property.
Each GSWAC description defines the important aspects of the command. The command, parameters, syntaxes and examples are shown.
For parameters the pipe “|” symbol means OR. For example if a command has the parameter listed as:
JavaScript Function | URL
This means that either a JavaScript Function OR a URL can be a valid parameter.
Often the entire content is shown for a web page in order to provide the context for examples. When these examples are shown, the text significant to the GSWAC being described is usually in the color red to help it stand out (for those viewing online or a color printed copy).
|
Category: Hooking the Keyboard |
|
|
|
|
|
The GSWBROWSE_ONKEY tag changes the action of a specific key by assigning a JavaScript function or a URL to the specific (hardware or soft keyboard) key on the device.
Command: gswbrowse_OnKey[xyz]
Parameter(Content): JavaScript Function | URL
META TAG SYNTAX
<META HTTP-EQUIV="gswbrowse_OnKey[xyz]" CONTENT="content">
NAVIGATION SYNTAX
Properties
Location.href = “gswac:gswbrowse_OnKey[xyz],content";
document.location = “gswac:gswbrowse_OnKey[xyz],content";
Methods
windows.navigate(“gswac:gswbrowse_OnKey[xyz],content");
Anchor Tag
<a href=”gswac:gswbrowse_OnKey[xyz],content">
Where
xyz is the key mapped and can be either be
a hexadecimal value preceded with 0x
Example: gswbrowse_OnKey0x56
or up to a three digit decimal value
Example: gswbrowse_OnKey086
or a Virtual Key Name
Example: gswbrowse_OnKey_NUMPAD8
or gswbrowse_OnKeyVK_NUMPAD8
The list of virtual key names can be viewed on page 233
Content is a JavaScript function
Example: Javascript:OnNUMPAD8();
OR a URL
Example: http://acme_server/page_a.htm
<html>
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="gswbrowse_OnKey0x56" CONTENT="Javascript:OnV();">
<META HTTP-EQUIV="gswbrowse_OnKeyVK_A" CONTENT="http://acme_server/page_a.htm">
<META HTTP-EQUIV="gswbrowse_OnKey_NUMPAD8" CONTENT="Javascript:OnNUMPAD8();">
<META HTTP-EQUIV="gswbrowse_OnKey48" CONTENT="Javascript:On48();">
<script>
function OnV()
{
Alert(“ V was pressed”);
}
function OnNUMPAD8()
{
Alert(“ 8 on the number pad was pressed”);
}
function On48()
{
Alert(“ Digit 0 was pressed”);
}
</script>
</head>
<body>
<p>Pressing 'a' will cause navigation to 'page_a.htm'</p>
<p>The V, the number 0 and the number pad 8 will each display an alert when pressed.</p>
</body>
</html>
|
Category: Hooking the Keyboard |
||
|
|
|
The GSWBROWSE_ONALLKEYS command launches a JavaScript function or a URL when any key is pressed on the device. The specified function must have one argument which is the virtual keycode pressed. This is a true key interception; it takes place regardless of where the focus is in GSWBrowse, which is superior to native DHTML functionality
Command: gswbrowse_onallkeys
Parameter(Content): JavaScript Function | URL
META TAG SYNTAX
<META HTTP-EQUIV="gswbrowse_onallkeys" CONTENT="content">
NAVIGATION SYNTAX
Properties
Location.href = “gswac:gswbrowse_onallkeys,content";
document.location = “gswac:gswbrowse_onallkeys,content";
Methods
windows.navigate(“gswac:gswbrowse_onallkeys,content");
Anchor Tag
<a href=”gswac:gswbrowse_onallkeys,content">
Where
Content is a JavaScript function
Example: Javascript:onallkeys(%s);
OR a URL
Example: http://acme_server/valicate_order.htm?vk=%s
In both cases the %s is replaced with the decimal value of virtual keycode of the key pressed.

<html>
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="gswbrowse_OnAllKeys" CONTENT="Javascript:OnAllVK(%s);">
<script>
function OnAllVK(vk)
{
Alert( vk + “ was pressed”);
}
</script>
</head>
<body>
<p>Pressing any key will cause an alert when pressed.</p>
</body>
</html>
|
Category: Hooking the Keyboard |
||
|
|
|
The GSWBROWSE_HOMEKEY command enables Function Key F5 as the HomeKey. When pressed, the HOMEKEY navigates to the configured HOME URL. Default – Disabled
Command: gswbrowse_HomeKey
Parameter(Content): Enabled|Disabled
META TAG SYNTAX
<META HTTP-EQUIV="gswbrowse_HomeKey" CONTENT="content">
NAVIGATION SYNTAX
Properties
Location.href = “gswac:gswbrowse_onallkeys,content";
document.location = “gswac:gswbrowse_onallkeys,content";
Methods
windows.navigate(“gswac:gswbrowse_onallkeys,content");
Anchor Tag
<a href=”gswac:gswbrowse_onallkeys,content">
Where
Example: Meta Tag Syntax
<META HTTP-EQUIV="gswbrowse_HomeKey" CONTENT="Enabled">
Example: Navigation Syntax
document.location = “gswac:gswbrowse_homekey,”Disabled”";
|
Category: Battery Information |
||
|
|
|
The GSWBROWSE_BATTERYNAVIGATE command launches a JavaScript Function or URL at specified intervals passing strings that contain the battery status information. The time interval must be specified with the GSWBROWSE_BATTERTIMERINTERVAL command for this command to work.
Command: gswbrowse_BatteryNavigate
Parameter(content): JavaScript Function | URL
META TAG SYNTAX
<META HTTP-EQUIV="gswbrowse_BatteryNavigate" CONTENT="content">
NAVIGATION SYNTAX
Properties
Location.href = “gswac:gswbrowse_batterynavigate,content";
document.location = “gswac:gswbrowse_batterynavigate,content";
Methods
windows.navigate(“gswac:gswbrowse_batterynavigate,content");
Anchor Tag
<a href=”gswac:gswbrowse_batterynavigate,content">

Where
Content is a JavaScript function
Example: Javascript:BatteryTest(‘%s’,’%s’,‘%s’,’%s’);
OR a URL
Example: http://acme_server/battstat?AC=%s&strength=%s&backup=%s&chemistry=%s
Return
The Battery status information passed to the JavaScript Function or URL is:
AC Line Status Possible Values
“Offline”
“Online”
“Unknown”
Battery Life Percent
A number in the range of 0 – 100, or 255 if unknown
Battery Backup Life Percent
A number in the range of 0 – 100, or 255 if unknown
Battery Chemistry Possible Values
“BATTERY_CHEMISTRY_ALKALINE”
“BATTERY_CHEMISTRY_NICD”
“BATTERY_CHEMISTRY_NMH”
“BATTERY_CHEMISTRY_LION”
“BATTERY_CHEMISTRY_LIPOLY”
“BATTERY_CHEMISTRY_ZINCAIR”
“BATTERY_CHEMISTRY_UNKNOWN”
When the Meta Tag is processed the JavaScript function will be called with the battery status values passed to the JavaScript function in the order as described in Figure 42 .

Figure 42: Passing Battery Status to Your JavaScript Function
URL Target
If a URL is specified then it is parsed and the pattern replacement described below will occur before the actual navigation takes place. Each pattern specifies the name of the of the battery information of interest. The exact syntax must be used. See Figure 43 for more detail.
Using a URL target with this Meta Tag allows passing values from the client to the server as if a form was just submitted. The values are processed on the server using common value retrieval techniques such as CGI, ASP, etc. The format of the URL must adhere to the standard HTTP GET request with Form parameters.
If ‘AC=%s’ is found then %s will be replaced with the AC line values as specified above.
If ‘strength=%s’ is found then %s will be replaced with the Battery Life Percent as specified above.
If ‘backup=%s’ is found then %s will be replaced with the Backup Battery Life Percent as specified above.
If ‘chemistry=%s’ is found then %s will be replaced with the Battery Chemistry as specified above.
The URL target has the capability to just retrieve the status of a select number of the statuses.

Figure 43: Battery Navigate - Passing Form Data as NAME/VALUE pairs
|
|
|
The GSWBROWSE_BATTERYTIMERINTERVAL command specifies the time (in milliseconds) interval that gswbrowse_BattertNavigate command is launched.
Command: gswbrowse_BatteryTimerInterval
Parameter (content): Decimal number between 0 and 4294967275 Units: milliseconds
META TAG SYNTAX
<META HTTP-EQUIV="gswbrowse_BatteryTimerInterval" CONTENT="content">
NAVIGATION SYNTAX
Properties
Location.href = “gswac:gswbrowse_BatteryTimerInterval,content";
document.location = “gswac:gswbrowse_BatteryTimerInterval,content";
Methods
windows.navigate(“gswac:gswbrowse_BatteryTimerInterval,content");
Anchor Tag
<a href=”gswac:gswbrowse_BatteryTimerInterval,content">
Where
Content is the decimal time in milliseconds with a range between 0 and 4294967295. Comma’s are not allowed in the number.
Example: GSWBROWSE_BATTERYTIMERINTERVAL
<html>
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="gswbrowse_BatteryNavigate" CONTENT="Javascript:BatteryTest('%s','%s','%s','%s');">
<META HTTP-EQUIV="gswbrowse_BatteryTimerInterval" CONTENT="2000">
<META HTTP-EQUIV="gswbrowse_TimerNavigate" CONTENT="Javascript:TimerTest('%s');">
<META HTTP-EQUIV="gswbrowse_TimerInterval" CONTENT="1000">
<script language=javascript>
function BatteryTest(a,b,c,d)
{
document.getElementById("batterydiv").innerHTML= a + " " + b + " " + c + " " +d;
}
function TimerTest(a)
{
document.getElementById("battery_statustext").innerHTML= window.external.device.battery.statustext;
document.getElementById("battery_status").innerHTML= window.external.device.battery.status;
document.getElementById("battery_level").innerHTML= window.external.device.battery.level;
}
</script>
</head>
<body>
<p>The BatteryNavigate tag assumes your device has a battery. No
navigation or script call shall occur if a battery is not found.</p>
Current battery state: <div id="batterydiv">junk</div>
<p>External battery properties</p>
battery.statustext: <div id="battery_statustext">junk</div>
battery.status: <div id="battery_status">junk</div>
battery.level: <div id="battery_level">junk</div>
</body>
</html>
|
Category: Battery Information |
||
|
|
|
The batterystatus is a property of the device object. It provides the charged state of the battery.
Property: batterystatus
Data Type: String
![]()
Return Possible Return Values are:
unknown
no_battery
charging
critical
low
medium
high
window.external.device.batterystatus
IDL DEFINITION
[propget, id(1)] HRESULT BatteryStatus([out, retval] BSTR *pVal);
![]()
<html>
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="gswbrowse_BatteryNavigate" CONTENT="Javascript:BatteryTestfun('%s','%s','%s','%s');">
<META HTTP-EQUIV="gswbrowse_BatteryTimerInterval" CONTENT="2000">
<META HTTP-EQUIV="gswbrowse_TimerNavigate" CONTENT="Javascript:TimerTestfun('%s');">
<META HTTP-EQUIV="gswbrowse_TimerInterval" CONTENT="1000">
<script language=javascript>
function BatteryTestfun(a,b,c,d)
{
document.getElementById("batterydiv").innerHTML= a + " " + b + " " + c + " " +d;
}
function TimerTestfun(a)
{
document.getElementById("device_batterystatus").innerHTML= window.external.device.device.batterystatus;
document.getElementById("battery_statustext").innerHTML= window.external.device.battery.statustext;
document.getElementById("battery_status").innerHTML= window.external.device.battery.status;
document.getElementById("battery_level").innerHTML= window.external.device.battery.level;
}
</script>
</head>
<body>
<p>The BatteryNavigate tag assumes your device has a battery. No
navigation or script call shall occur if a battery is not found.</p>
Current battery state: <div id="batterydiv">junk</div>
<p>External battery properties</p>
device.batterystatus: <div id="device_batterystatus">junk</div>
battery.statustext: <div id="battery_statustext">junk</div>
battery.status: <div id="battery_status">junk</div>
battery.level: <div id="battery_level">junk</div>
</body>
</html>
|
Category: Battery Information |
||
|
|
|
Status is a property of the battery object. It provides a numeric value for the charged state of the battery.
Property: status
Data Type: Number
![]()
Return The Return value is a number representing the battery charge status. The status is cumulative. For example charging(8) and low(2) may be a combined status with a resulting value of 10. Use bit testing for examination of the status.
255 means unknown
128 means no_battery
8 means charging
4 means critical
2 means low
1 means high
EXTERNAL SYNTAX
window.external.device.battery.status
IDL DEFINITION
[propget, id(2)] HRESULT Status([out, retval] long *pVal);
![]()
|
Category: Battery Information |
||
|
|
|
StatusText is a property of the battery object. It provides a text description of the battery charge state. Read Only.
Property: statustext
Data Type: String
![]()
Return The Return value is a string describing the battery charge status. Note that the returned string is not cumulative as with the batterystatus. The operating system determines which information is most important.
Unknown
No_battery
Charging
Critical
Low
Medium
High
EXTERNAL SYNTAX
window.external.device.battery.statustext
IDL DEFINITION
[propget, id(1), helpstring("property StatusText")]
HRESULT StatusText([out, retval] BSTR *pVal);
![]()
|
Category: Battery Information |
||
|
|
|
Level is a property of the battery object. It provides the charged state of the battery as a percentage.
Property: level
Data Type: Number
![]()
Return The return value is a number representing the percent of remaining battery charge.
0 – 100 is the Percent of Battery Charge
255 means Unknown
EXTERNAL SYNTAX
window.external.device.battery.level
IDL DEFINITION
[propget, id(3)] HRESULT Level([out, retval] long *pVal);
![]()
|
Category: RF Signal |
||
|
|
|
The GSWBROWSE_SIGNALNAVIGATE command launches a JavaScript Function or URL passing strings that contain the WLAN Signal Information.
Command: gswbrowse_SignalNavigate
Parameter(content): JavaScript Function | URL
META TAG SYNTAX
<META HTTP-EQUIV="gswbrowse_SignalNavigate" CONTENT="content">
NAVIGATION SYNTAX
Properties
Location.href = “gswac:gswbrowse_SignalNavigate,content";
document.location = “gswac:gswbrowse_SignalNavigate,content";
Methods
windows.navigate(“gswac:gswbrowse_SIgnalNaviagte,content");
Anchor Tag
<a href=”gswac:gswbrowse_SignalNavigate,content">
Where
Content is a JavaScript Pseudo-URL function
Example: Javascript:OnSignal(‘%s’,’%s’,‘%s’);
OR a URL
Example: http://acme_server/signal.htm?strength=%s&ssid=%s&mac=%s

Return
The Signal status information passed to the JavaScript Function or URL is:
Signal Strength A number in the range of 0 – 100, or 255 if unknown
Extended Service Set ID (ESSID or SSID)
The name of the Wireless Network,
MAC Address
Media Access Control address of the device
JavaScript Pseudo-URL Target
When the Meta Tag is processed the JavaScript function will be called with the WLAN status information. The status values passed to the JavaScript function are in the order as described below.

Figure 44: Passing Signal Status Information to Your JavaScript Function
URL Target
If a URL is specified then it is parsed and the pattern replacement described below will occur before the actual navigation takes place. Each pattern specifies the name of the of the signal information of interest. The exact syntax must be used. The parsing process is as follows:
If ‘strength=%s’ is found then %s will be replaced with the signal strength value as specified above.
If ‘essid=%s’ is found then %s will be replaced with the Extended Service Set Id (ESSID), commonly referred to as the network name or SSID.
If ‘mac=%s’ is found then %s will be replaced with the Media Access Control(MAC) .
The URL target has the capability to retrieve a select number of the statuses.

Figure 45: Signal Navigate - Passing Form Data as Name/Value Pairs.
Example: GSWBROWSE_SIGNALNAVIGATE
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="SignalNavigate" CONTENT="Javascript:OnSignal('%s', '%s', '%s');">
<META HTTP-EQUIV="TimerNavigate" CONTENT="Javascript:TimerTestfun('%s');">
<META HTTP-EQUIV="TimerInterval" CONTENT="1000">
<script id ="script_OnSignal" type="text/javascript">
function OnSignal(s, ssid, mac)
{
document.getElementById("ssiddiv").innerHTML=ssid;
document.getElementById("macdiv").innerHTML=mac;
}
function TimerTestfun(a)
{
document.getElementById("strengthdiv").innerHTML=