Overview
The following steps depict the behavioral model of the JPOS driver and scanner.
- The scanner reads encoded data from a label.
- When the Control receives input, it queues a DataEvent.
- If the AutoDisable property is TRUE, the Control is disabled when a DataEvent is queued.
- The Control can deliver a queued DataEvent to the application when the DataEventEnabled property is TRUE. Just before delivering this event, the Control copies the data into properties and disables further data events by setting the DataEventEnabled property to FALSE. This causes the Control to queue subsequent input data while the application processes the current input and associated properties. When the application finishes the current input and is ready for more data, it re-enables events by setting DataEventEnabled to TRUE.
- The Control queues an ErrorEvent (or events) if it encounters an error while gathering or processing input and delivers this to the application when the DataEventEnabled property is TRUE.
- The DataCount property contains the number of DataEvents queued by the Control.
- Call the ClearInput method to delete all input that the Control queued.
Scanned data is placed into the property ScanData. If the application sets the property DecodeData to TRUE, the data is decoded into ScanDataLabel and ScanDataType.
Deviations from JPOS Specifications
- When there is no scanner connected to a cordless base, the Zebra Scanner JPOS Driver considers the cordless base a scanner. Therefore, a claim succeeds with a cordless base.
- In serial mode, a claim succeeds even when no scanner is connected to the port. In this case, it indicates the success of the port opening.
The following steps depict the behavioral model of the JPOS driver and scale:
- The POS application calls the ReadWeight method in JPOS control.
- When JPOS control receives the method call, it passes the request to the JPOS scale service and JPOS scale service passes that request to CoreScanner service.
- The CoreScanner Service requests the weight data from the scale and reports it back up through the JPOS scale service to the JPOS control.
- JPOS control returns the ReadWeight method with the weight data retrieved to the POS application.
JPOS Configurable Properties
Configurable JPOS properties are defined in the JPOS XML and a separate configuration set can be maintained per each host name as given in the sample xml below.
<JposEntries>
<JposEntry logicalName="LogicalName1">
<prop name="Property1" value="Value1"/>
<prop name="Property2" value="Value2"/>
<prop name="Property3" value="Value3"/>
...
</JposEntry>
<JposEntry logicalName="LogicalName2">
<prop name="Property1" value="Value1"/>
<prop name="Property2" value="Value2"/>
<prop name="Property3" value="Value3"/>
...
</JposEntry>
<JposEntries>
JPOS Configurable Properties
Scanner Profile Properties
<prop name="ExclusiveClaimLevel" type="String" value="0"/>
The ExclusiveClaimLevel property controls the ability to claim the same device from multiple applications. When this value = 0, multiple apps can claim the same device. When this value = 1, once a device is claimed, other apps cannot claim the same device.
<prop name="ScannerType" type="String" value="ALL"/>
The ScannerType property identifies the Host communication mode of the Open device. The value ALL means all host modes are associated with the device. Individual mode values are USBIBMTT, USBIBMHID, SNAPI, SSI_SERIAL, USBOPOS, NIXMODB and SSI_BT.
<prop name="NcrBeepOnceScanTonePattern" type="String" value="10"/>
The NcrBeepOnceScanTonePattern property defines the NCR single beep tone pattern. The value represents the id of the tone pattern defined in the Beep Tone Value section.
<prop name="NcrEnableBeepScanTonePattern" type="String" value="10"/>
The NcrEnableBeepScanTonePattern property defines the NCR Enable Scan beep tone pattern. The value represents the id of the tone pattern defined in the Beep Tone Value section.
<prop name="NcrDisableBeepScanTonePattern" type="String" value="10"/>
The NcrDisableBeepScanTonePattern property defines the NCR Disable Scan beep tone pattern. The value represents the id of the tone pattern defined in the Beep Tone Value section.
<prop name="DioScannerNotOnFile" type="String" value="12"/>
The DioScannerNotOnFile property defines the Direct IO Not on File beep tone pattern. The value represents the id of the tone pattern defined in the Beep Tone Value section.
<prop name="DioScannerDioNof" type="String" value="12"/>
The DioScannerDioNof property defines the Direct IO NoF beep tone pattern. The value represents the id of the tone pattern defined in the Beep Tone Value section.
<prop name="ScanDataLabelId" type="String" value="9999"/>
The ScanDataLabelId property will append/prepend data based on the label ID. Supported values:
- IBM_LABEL = 0 (Leave IBM Label ID)
- NCR_LABEL = 1 (Convert to NCR Label ID)
- NO_LABEL = 2 (Remove Label ID)
- NCR_1D_ONLY = 3 (Convert to NCR Label ID for 1D barcode only)
- NCR_2D_ONLY = 4 (Convert to NCR Label ID for 2D barcode only)
- ZEBRA_LABEL = 9999 (Zebra default behavior)
Scale Profile Settings
<prop name="LiveWeightFrequency" type="String" value="500"/>
The LiveWeightFrequency property defines the live weight reporting rate in milliseconds.
<prop name="SyncReadWeightOnZeroTimeout" type="String" value="False"/>
The SyncReadWeightOnZeroTimeout property enable/disable the ReadWeight timeout value.
<prop name="NcrScaleReadWeightTimeout" type="String" value="300"/>
The NcrScaleReadWeightTimeout property defines the read weight timeout for the NCR ReadWeight Direct IO command in milliseconds.
<prop name="ErrorCode" type="String" value="114"/>
The ErrorCode property defines the error code value for the ReadWeight command.
The following entries define the string return values for NCR ResultCodeExtended (JPOS_E_EXTENDED) responses:
<prop name="ExtErrorOverWeight" type="String" value="201"/>
JPOS_ESCAL_OVERWEIGHT—the weight was over MaximumWeight.
<prop name="ExtErrorUnderZero" type="String" value="202"/>
NCR_ESCAL_UNDERZERO—the scale is reading less than zero weight.
<prop name="ExtErrorNonStableWeight" type="String" value="203"/>
NCR_ESCAL_UNSTABLE—the scale reading is not stable.
<prop name="ExtErrorStableZeroWeight" type="String" value="204"/>
NCR_ESCAL_ZEROWEIGHT—the scale is not registering a weight.
Supported Feature Set
Properties
Table 1: Common Properties
Property | Version | Type | Access | May Use After | Comments on Zebra Scanner Support |
---|---|---|---|---|---|
AutoDisable | 1.2 | Boolean | R/W | Open | Supported |
BinaryConversion | 1.2 | Long | R/W | Open | Not Supported |
CapCompareFirmwareVersion | 1.9 | Boolean | R | Open | Not Supported |
CapPowerReporting | 1.3 | Int | R | Open | Supported |
CapStatisticsReporting | 1.8 | Boolean | R | Open | Supported |
CapUpdateFirmware | 1.9 | Boolean | R | Open | Not Supported |
CapUpdateStatistics | 1.8 | Boolean | R | Open | Supported |
CheckHealthText | 1.0 | String | R | Open | Supported |
Claimed | 1.0 | Boolean | R/W | Open | Supported (see Deviations from JPOS Specifications) |
DataCount | 1.2 | Int32 | R | Open | Supported |
DataEventEnabled | 1.0 | Boolean | R/W | Open | Supported |
DeviceEnabled | 1.0 | Boolean | R/W | Open and Claim | Supported |
FreezeEvents | 1.0 | Boolean | R/W | Open | Supported |
OpenResult | 1.5 | Long | R | N/A | Not Supported |
PowerNotify | 1.3 | Long | R/W | Open | Supported |
PowerState | 1.3 | Int32 | R | Open | Supported |
ResultCode | 1.0 | Long | R | N/A | Not Supported |
ResultCodeExtended | 1.0 | Long | R | Open | Not Supported |
State | 1.0 | Int32 | R | N/A | Supported |
ControlObjectDescription | 1.0 | String | R | N/A | Supported |
ControlObjectVersion | 1.0 | Int32 | R | N/A | Supported |
ServiceObjectDescription | 1.0 | String | R | Open | Supported |
ServiceObjectVersion | 1.0 | Int32 | R | Open | Supported |
DeviceDescription | 1.0 | String | R | Open | Supported |
DeviceName | 1.0 | String | R | Open | Supported |
Table 2: Scanner Specific Properties
Property | Version | Type | Access | May Use After | Comments on Zebra Scanner Support |
---|---|---|---|---|---|
DecodeData | 1.2 | Boolean | R/W | Open | Supported |
ScanData | 1.0 | String | R | Open | Supported |
ScanDataLabel | 1.2 | String | R | Open | Supported |
ScanDataType | 1.2 | Int32 | R | Open | Supported |
Table 3: Scale Specific Properties
Property | Version | Type | Access | May Use After | Comments on Zebra Scanner Support |
---|---|---|---|---|---|
CapDisplay | 1.2 | Boolean | R | Open | Supported (Always False) |
CapDisplayText | 1.3 | Boolean | R | Open | Supported (Always False) |
CapPriceCalculating | 1.3 | Boolean | R | Open | Supported (Always False) |
CapStatusUpdate | 1.9 | Boolean | R | Open | Supported |
CapTareWeight | 1.3 | Boolean | R | Open | Supported (Always False) |
CapZeroScale | 1.3 | Boolean | R | Open | Supported |
AsyncMode | 1.3 | Boolean | R/W | Open | Supported |
MaxDisplayTextChars | 1.3 | Integer | R | Open | Not Supported |
MaximumWeight | 1.0 | Integer | R | Open | Supported |
SalesPrice | 1.3 | Currency | R | Open, Claim, and Enable | Not Supported |
ScaleLiveWeight | 1.9 | Integer | R | Open | Supported |
StatusNotify | 1.9 | Integer | R/W | Open | Supported |
TareWeight | 1.3 | Integer | R/W | Open, Claim, and Enable | Not Supported |
UnitPrice | 1.3 | Currency | R/W | Open, Claim, and Enable | Not Supported |
WeightUnit | 1.0 | Integer | R | Open | Supported |
ZeroValid | 1.13 | Boolean | R/W | Open | Supported |
Methods
Table 4: Common Methods
Method | Version | May Use After | Comments on Zebra Scanner Support |
---|---|---|---|
Open | 1.0 | N/A | Supported |
Close | 1.0 | Open | Supported |
ClaimDevice | 1.0 | Open | Supported (see Deviations from JPOS Specifications) |
ReleaseDevice | 1.0 | Open and Claim | Supported |
CheckHealth | 1.0 | Open, Claim, and Enable |
Supported
|
ClearInput | 1.0 | Open and Claim | Supported |
ClearInputProperties | 1.10 | Open and Claim | Supported |
DirectIO | 1.0 | Open | Supported |
compareFirmwareVersion | 1.9 | Open, Claim, and Enable | Not Supported |
resetStatistic | 1.8 | Open, Claim, and Enable | Supported |
retrieveStatistics | 1.8 | Open, Claim, and Enable | Supported |
updateFirmware | 1.9 | Open, Claim, and Enable | Not Supported |
updateStatistics | 1.8 | Open, Claim, and Enable | Supported |
Table 5: Scale Specific Methods
Method | Version | May Use After | Comments on Zebra Scanner Support |
---|---|---|---|
DisplayText | 1.3 | Open, Claim, and Enable | Not Supported |
ReadWeight | 1.3 | Open, Claim, and Enable | Supported |
ZeroScale | 1.0 | Open, Claim, and Enable | Supported |
Zero Scale Operation
The weight reading of the scale can be set to zero by performing the Zero Scale operation. Once performed, the reading is set to Zero.
- The range of values is 0-60 (default is 60)
- In Lbs mode: 0 = 0.00 lb - 60 = 0.60 lb (increments of 0.01 lbs)
- In Kgs mode: 0 = 0.00 kg - 60 = 0.300 kg (increments of 0.005 kg)
Events
Table 6: Events
Method | Version | May Use After | Comments on Zebra Scanner Support |
---|---|---|---|
DataEvent | 1.0 | Open, Claim and Enable | Supported |
DirectIOEvent | 1.0 | Open and Claim | Supported |
ErrorEvent | 1.0 | Open, Claim and Enable | Supported |
StatusUpdateEvent | 1.3 | Open, Claim and Enable | Supported |