Denso 400BW-CE Specifications

Barcode Handy Terminal
BHT-700-CE
API Reference Manual
Copyright © DENSO WAVE INCORPORATED, 2007
All rights reserved. No part of this publication may be reproduced in any form or by any means without
permission in writing from the publisher.
Specifications are subject to change without prior notice.
All products and company names mentioned in this manual are trademarks or registered trademarks of their
respective holders.
Contents
Chapter 1. Software Requirements for the BHT-700 ...................................................................................... 1
1.1.
Operating System (OS) on the BHT-700.......................................................................................... 1
1.2.
Application Development Software on the PC.................................................................................. 1
1.2.1. Application Development Tool ...................................................................................................... 1
1.2.2. Software Development Kit ............................................................................................................ 1
Chapter 2. Application Development Environment ......................................................................................... 2
2.1.
Required Hardware (PC to be used for application development) ................................................... 2
2.2.
Required Software ........................................................................................................................... 2
2.3.
Installation ........................................................................................................................................ 2
Chapter 3. Output to the LCD Screen............................................................................................................. 3
3.1.
Screen Fonts.................................................................................................................................... 3
3.2.
Screen Rotation ............................................................................................................................... 3
3.2.1. Setting the Screen Rotation Control Key ...................................................................................... 3
3.3.
Setting the Screen Rotation Angle ................................................................................................... 4
Chapter 4. Backlight Control........................................................................................................................... 5
4.1.
Outline.............................................................................................................................................. 5
4.2.
Setting the Backlight Function On/Off Key ....................................................................................... 5
4.3.
Setting the Backlight Illumination Time............................................................................................. 6
4.4.
Setting the Backlight Brightness and Power Saving Mode............................................................... 6
4.5.
Controlling the Backlight with the Backlight Control Key .................................................................. 7
4.6.
Controlling the Backlight with the Backlight Control Function........................................................... 8
4.7.
Key Backlight ................................................................................................................................... 9
Chapter 5. Beeper and Vibrator Control ....................................................................................................... 10
5.1.
Outline............................................................................................................................................ 10
5.2.
Setting the Beeper/Vibrator ............................................................................................................ 11
5.3.
Starting/Stopping the Beeper/Vibrator............................................................................................ 12
5.4.
Priority Orders between Events that Activate the Beeper/Vibrator ................................................. 12
5.5.
Beeper Volume Patterns ................................................................................................................ 12
Chapter 6. Keys and Trigger Switch Control ................................................................................................ 13
6.1.
Outline............................................................................................................................................ 13
6.2.
Setting the Keys and Trigger Switch .............................................................................................. 14
6.3.
Shift Key Operation Mode .............................................................................................................. 15
6.4.
Magic Key Control .......................................................................................................................... 15
6.5.
Assigning a User-Defined Key Code to the Magic Keys ................................................................ 16
6.5.1. Assignment Method .................................................................................................................... 16
6.5.2. User-Defined Code Settings File (MKeyDef.txt).......................................................................... 16
6.6.
Key Input Modes ............................................................................................................................ 17
6.6.1. Numeric Entry Mode ................................................................................................................... 17
6.6.2. Alphabet Entry Mode 1 (27 key pad) .......................................................................................... 17
6.7.
Function Mode ............................................................................................................................... 20
6.8.
Key Clicks ...................................................................................................................................... 20
6.9.
Acquisition of Keypad Type............................................................................................................ 20
6.10.
Auto Repeat Function .................................................................................................................... 21
Chapter 7. LCD Status Indication ................................................................................................................. 22
7.1.
Outline............................................................................................................................................ 22
7.2.
Setting the LCD Status Indication .................................................................................................. 23
Chapter 8. Power Management.................................................................................................................... 24
8.1.
Outline............................................................................................................................................ 24
8.2.
Standby .......................................................................................................................................... 25
8.2.1. Switching to the Standby State ...................................................................................................... 25
8.2.2. Standby Transition Prohibited Events ............................................................................................ 25
8.2.3. Setting the Standby Transition Timeout ......................................................................................... 25
8.3.
Suspend ......................................................................................................................................... 26
8.3.1. Setting the Standby Transition Timeout ......................................................................................... 26
8.3.2. Suspend Transition Prohibited Events ........................................................................................... 26
8.3.3. Setting the Auto Power-off Timeout ............................................................................................... 26
8.3.4. Setting the Effective Held-down Time of the Power Key for Switching to the Suspend State ........ 26
Chapter 9. Battery State ............................................................................................................................... 27
9.1.
Outline............................................................................................................................................ 27
9.2.
Battery Voltage Acquisition ............................................................................................................ 27
9.3.
Battery Voltage Icon ....................................................................................................................... 27
9.4.
Battery Voltage Warning ................................................................................................................ 27
Chapter 10. LED ......................................................................................................................................... 28
10.1.
Outline............................................................................................................................................ 28
10.2.
LED Control.................................................................................................................................... 28
10.2.1. Display LED ................................................................................................................................. 28
10.2.2. Charge LED ................................................................................................................................. 28
Chapter 11. Data Communication ............................................................................................................... 29
11.1.
Outline............................................................................................................................................ 29
11.2.
Programming for Data Communication .......................................................................................... 29
11.3.
Assigning Port Number .................................................................................................................. 29
11.4.
ActiveSync ..................................................................................................................................... 30
11.4.1. Establishing an ActiveSync Connection ....................................................................................... 30
11.4.2. ActiveSync Auto Connection Setting Method ............................................................................... 30
Chapter 12. Wireless Communication......................................................................................................... 31
12.1.
Outline............................................................................................................................................ 31
12.1.1.
Spread Spectrum Communications Method ............................................................................ 31
12.1.2.
Configuration of Spread Spectrum System ............................................................................. 31
12.2.
Programming for Wireless Communication .................................................................................... 32
12.2.1.
Wireless Communication Parameters ..................................................................................... 33
12.2.2.
Opening and Closing the Wireless Communications Device................................................... 36
12.2.3.
Checking Synchronization with the Access Point .................................................................... 37
Chapter 13. Barcode Reading..................................................................................................................... 38
13.1.
Outline............................................................................................................................................ 38
13.1.1.
Enable Reading....................................................................................................................... 38
13.1.2.
Specify Options in the BHT_EnableBar Function .................................................................... 40
13.1.3.
Barcode Buffer ........................................................................................................................ 41
13.2.
Programming.................................................................................................................................. 42
13.2.1.
Code Mark............................................................................................................................... 42
13.2.2.
Multiple Code Reading ............................................................................................................ 42
13.2.3.
Read Mode of the Trigger Switch ............................................................................................ 42
13.2.4.
Generating a Check Digit of Barcode Data.............................................................................. 42
13.2.5.
Controlling the Indicator LED and Beeper/Vibrator as a Confirmation of Successful Reading 43
13.2.6.
Reading Split QR Codes (Only for BHT-700Q) ....................................................................... 43
13.3.
Barcode Reading Using the Virtual COM Port ............................................................................... 44
13.3.1.
Outline ..................................................................................................................................... 44
13.3.2.
Programming........................................................................................................................... 44
13.3.3.
How to Use.............................................................................................................................. 44
Chapter 14. Updating OS............................................................................................................................ 45
Chapter 15. System Functions.................................................................................................................... 46
15.1.
If a System Parameter Value is DWORD ....................................................................................... 47
15.2.
If a System Parameter Value is a Character String ........................................................................ 49
15.3.
System Parameter Values That Can be Set/Obtained ................................................................... 51
15.4.
Device Information Acquisition ....................................................................................................... 57
Chapter 16. Device Control Functions ........................................................................................................ 58
16.1.
Barcode API ................................................................................................................................... 60
16.2.
Backlight API................................................................................................................................ 101
16.3.
Battery API ................................................................................................................................... 103
16.4.
LED API ....................................................................................................................................... 105
16.5.
Beeper/Vibrator API ..................................................................................................................... 110
16.6.
Wireless Communication API....................................................................................................... 115
16.7.
OS Updating API.......................................................................................................................... 131
16.8.
Bluetooth API ............................................................................................................................... 132
16.9. Other APIs ........................................................................................................................................ 135
Chapter 17. Programming Using OCX (OLE Customer Control) .............................................................. 141
17.1.
System Requirements .................................................................................................................. 141
17.2.
Installation .................................................................................................................................... 141
17.3.
Using OCX ................................................................................................................................... 141
17.4.
Scanner Control ........................................................................................................................... 144
17.4.1.
Properties .............................................................................................................................. 144
17.4.2.
Methods................................................................................................................................. 145
17.4.3.
Event Callback Function........................................................................................................ 148
17.4.4.
Error Codes ........................................................................................................................... 149
17.4.5.
Coding Sample...................................................................................................................... 149
17.5.
File Transfer Control .................................................................................................................... 150
17.5.1.
Properties .............................................................................................................................. 150
17.5.2.
Methods................................................................................................................................. 151
17.5.3.
Event Callback Functions ...................................................................................................... 157
17.5.4.
Coding Sample...................................................................................................................... 159
Appendix A. Keyboard Arrangement, Virtual Key Codes and Character Codes........................................ 160
A.1.
27-key pad ................................................................................................................................... 160
A.1.1. Keyborard Arrangement............................................................................................................ 160
A.1.2. Virtual Key Codes and Character Codes .................................................................................. 161
A.1.3. Character Codes in Alphabet Entry Mode................................................................................. 163
A.2.
42-key pad ................................................................................................................................... 164
A.2.1. Keyborard Arrangement............................................................................................................ 164
A.2.2. Virtual Key Codes and Character Codes .................................................................................. 166
Appendix B. Differences between Older Unit............................................................................................. 169
Chapter 1. Software Requirements for the BHT-700
1.1. Operating System (OS) on the BHT-700
The OS running on the BHT-700 is Microsoft Windows CE 5.0.
1.2. Application Development Software on the PC
1.2.1.
Application Development Tool
The application development tool for the BHT-700 is Microsoft eMbedded Visual C++ 4.0 (Service Pack
4)
1.2.2.
Software Development Kit
The BHT-700 Software Development Kit provides the application development environment for Windows
CE set up on the BHT-700. It includes the following libraries:
(1) Help files
(2) Windows-CE standard header files
(3) Windows-CE standard library files
(4) BHT-dedicated header file : BHTLIB.h
•
Includes statements for declaring BHT-dedicated APIs prototypes and macro definition of
constants.
•
To use the BHT-dedicated APIs, the BHTLIB.h should be included.
(5) BHT-dedicated library : BHTLIB.lib
•
Includes BHT-dedicated barcode reading functions and device driver management functions.
•
To use the BHT-dedicated APIs, the BHTLIB.lib should be linked.
(6) BHT-dedicated OCX files : Scanner700.ocx (for BHT-700B), Scanner700Q.ocx (for BHT-700Q),
FileTransfer700.ocx, and FileTransferPC.ocx (for PC)
•
Include BHT-dedicated barcode scanning functions and file transfer functions.
•
To use the BHT-dedicated OCX, Scanner700.ocx, Scanner700Q.ocx, and FileTransfer700.ocx
should be linked.
1
Chapter 2. Application Development Environment
2.1. Required Hardware (PC to be used for application development)
Item
OS
Specification
Microsoft Windows 2000 Professional with Service Pack 2 or higher,
or Microsoft Windows 2000 Server with Service Pack 2 or higher,
or Microsoft Windows XP Professional or higher.
PC
With a Pentium-II class processor, 450 MHz or faster
Memory For Microsoft Windows 2000 Professional or Microsoft Windows XP Professional:
96 MB or more (128 MB or more recommended)
For Microsoft Windows 2000 Server :
192 MB or more (256 MB or more recommended)
HDD
200 MB or more hard disk space
Display VGA or higher-resolution monitor.
A Super VGA (800 x 600 or larger) monitor is recommended.
2.2. Required Software
Application development tool: Microsoft eMbedded Visual C++ 4.0 (SP4)
You can download Microsoft eMbedded Visual C++ 4.0 and Service Pack 4 from the Microsoft Web site:
(Microsoft eMbedded Visual C++ 4.0)
http://www.microsoft.com/downloads/details.aspx?FamilyID=1dacdb3d-50d1-41b2-a107fa75ae960856&DisplayLang=en
(Service Pack 4)
http://www.microsoft.com/downloads/details.aspx?FamilyID=4a4ed1f4-91d3-4dbe-986ea812984318e5&displaylang=en
APIs available for eMbedded Visual C++ are:
(1) Win32API
(2) Microsoft Foundation Class (MFC)
(3) Dedicated APIs (for device control or data entry from the BHT)
Software development kit: BHT700_XXX_SDK.msi
This should be embedded into Microsoft eMbedded Visual C++ 4.0 for use.
2.3. Installation
The Microsoft eMbedded Visual C++ 4.0 and BHT-700 software development kit should be installed to
an application development PC in this order. To install the development kit, run the BHT700_XXX.msi in
the BHT-700 Software Development Kit CD.
2
Chapter 3. Output to the LCD Screen
3.1. Screen Fonts
The BHT-700 has the following integrated screen fonts:
(1) Arial (ttf)
(2) Courier New (ttf)
(3) Tahoma (ttf)
(4) Time New Roman (ttf)
(5) Wingding (ttf)
If no screen font is specified, Tahoma applies automatically.
3.2. Screen Rotation
The screen can be rotated using either of the following methods.
(1) By pressing the screen rotation control key.
(2) By using the system setting function (BHT_SetSysSettingDW).
3.2.1.
Setting the Screen Rotation Control Key
The screen rotation control key can be set using the
BHT_SetSysSettingDW (BHT_DISP_ROTATION_KEY,…) function.
Furthermore, the setting can be obtained using the
BHT_GetSysSettingDW (BHT_DISP_ROTATION_KEY,…) function.
The relationship between the settable screen rotation control keys and settings is outlined in the following
table.
Screen Rotation Control Key
[M1]
[M2]
[M3]
Set value
0x00000201
0x00000202
0x00000203
Screen Rotation Control Key
[SF]+[M1]
[SF]+[M2]
[SF]+[M3]
3
Set value
0x00010201
0x00010202
0x00010203
3.3. Setting the Screen Rotation Angle
The settable rotation angles are 0°, 90°, 180°, and 270°. The direction is anti-clockwise.
The screen rotation angle can be set and read using the
BHT_SetSysSettingDW (DWORD dwCtrlCode,DWORD dwSysParam) and
BHT_GetSysSettingDW (DWORD dwCtrlCode,DWORD *pdwSysParam) functions, respectively.
Parameter
Screen
rotation
angle
Type
R/W
DW
R/W
Control Code
(dwCtrlCode)
BHT_DISP
_ROTATION
Parameter Value
(dwSysParam)
DISP_ROTATION_0
: 0°
DISP_ROTATION_90
: 90°
DISP_ROTATION_180
: 180°
DISP_ROTATION_270
: 270°
4
Default
DISP_ROTATION_0
Validation
Timing
Immediately
after setting
Chapter 4. Backlight Control
4.1. Outline
The backlight illumination and power saving modes can be controlled using either of the following
methods.
(1) The backlight can be controlled by pressing the backlight control key.
(2) The backlight can be controlled using the backlight control function (BHT_SetBltStatus).
The following backlight related setting items are also available.
(1) Backlight control key
(2) Backlight illumination time
(3) Backlight brightness
(4) Backlight power saving mode
Furthermore, the BHT-700 keypad is also equipped with a backlight (hereafter referred to as key
backlight) for which the following settings can be made.
(1) Illumination device (when BHT_SetBltStatus is called)
(2) Key backlight illumination trigger
4.2. Setting the Backlight Function On/Off Key
You can assign the backlight function on/off key to other keys by the BHT_SetSysSettingDW
(BHT_BACKLIGHT_KEY...) function or by assigning the backlight control function to the magic key.The
table below lists the relationship between the keys that act as a backlight function on/off key and the set
values in the BHT_SetSysSettingDW (BHT_BACKLIGHT_KEY...) function.
If no key is specified as a backlight function on/off key, the combination of the SF key and M3 key works
as a backlight function on/off key by default.
Backlight control key
[M1]
[M2]
[M3]
Set value
0x00000201
0x00000202
0x00000203
Backlight control key
[SF]+[M1]
[SF]+[M2]
[SF]+[M3]
Set value
0x00010201
0x00010202
0x00010203
[Ex]
Execute function BHT_SetSysSettingDW (BHT_BACKLIGHT_KEY, 0x00010201) when assigning a
simultaneous combination of the [SF] and [M1] keys to the backlight control key.
5
4.3. Setting the Backlight Illumination Time
The backlight illumination time is set and read using the
BHT_SetSysSettingDW (DWORD dwCtrlCode,DWORD dwSysParam) and
BHT_GetSysSettingDW (DWORD dwCtrlCode,DWORD *pdwSysParam) functions.
Parameter
Type
R/W
Illumination time
when powered
by battery (sec.)
Illumination time
when placed on
CU (sec.)
DW
R/W
DW
R/W
Control Code
(dwCtrlCode)
BHT_BACKLIGHT
_BATT_TIME
BHT_BACKLIGHT
_AC_TIME
Parameter Value
(dwSysParam)
Default
Validation Timing
3
When backlight
illumination timer is
next reset
60
When backlight
illumination timer is
next reset
0 - 255
0: Backlight OFF
255: Continuously ON
0 - 255
0: Backlight OFF
255: Continuously ON
4.4. Setting the Backlight Brightness and Power Saving Mode
The backlight brightness and power saving mode are set and read using the
BHT_SetSysSettingDW (DWORD dwCtrlCode,DWORD dwSysParam) and
BHT_GetSysSettingDW (DWORD dwCtrlCode,DWORD *pdwSysParam) functions.
Parameter
Type
R/W
Backlight
brightness
DW
R/W
Backlight power
saving mode
DW
R/W
Control Code
(dwCtrlCode)
BHT_BACKLIGHT
_BRIGHTNESS
BHT_BACKLIGHT
_POWERSAVE
6
Parameter Value
(dwSysParam)
0: OFF
1: Dark
2: Bright (low)
3: Bright (high)
0: OFF
1: Dim
Default
Validation Timing
3
When the backlight is
next turned ON
1
When backlight
illumination status is
set to power saving
mode first after
setting
4.5. Controlling the Backlight with the Backlight Control Key
The backlight function can be enabled/disabled by pressing the backlight function control key (Default:
Hold down [SF] key and press [M3].).
The illumination time is specified using the BHT_SetSysSettingDW
(BHT_BACKLIGHT_BATT_TIME/BHT_BACKLIGHT_AC_TIME, …) function. The default value is 3
seconds when powered by the battery, and 60 seconds when placed on the CU. Backlight control is
performed as shown in the flow diagram below.
Press the backlight control key. (*1)
(1) Backlight power saving mode
(backlight function ON)
Press a key other (*3) than the backlight
control key. (*1)
Or alternatively tap the touch panel. (*4)
No key other than the backlight control key (*1) is
pressed and the touch panel is not tapped prior to
the backlight illumination time (*2) elapsing.
(2) Backlight ON
Press the backlight contr
Press the backlight control key. (*1)
(3) Backlight power saving mode
(backlight function OFF)
(*1)
Default: Hold down [SF] key and press [M3].
Setting is possible using the BHT_SetSysSettingDW (BHT_BACKLIGHT_KEY,…) function.
(*2)
The backlight illumination time is set using the BHT_SetSysSettingDW (BHT_BACKLIGHT_BATT_TIME/
BHT_BACKLIGHT_AC_TIME,…) function. Power saving mode is enabled if no key other than the
backlight control key is pressed, or if the touch panel is not tapped within this time.
This time is measured from the point all keys are released or the touch panel is last pressed.
(*3)
If key-press has not been set for the key backlight illumination trigger, the key backlight will not illuminate
even if a key is pressed. If, however, the key backlight is already illuminated beforehand, it will not turn
OFF by pressing a key.
(*4)
If touch panel tap has not been set for the key backlight illumination trigger, the key backlight will not
illuminate even if the touch panel is tapped. If, however, the key backlight is already illuminated
beforehand, it will not turn OFF by tapping the touch panel.
(*5)
Cold booting is performed from the status at (1) above.
However, cold booting is performed from the status at (1) when the registry is saved with the status at (1)
or (2), and is performed from the status at (3) when the registry is saved with the status at (3).
(*6)
When performing warm booting or when resuming from the suspend status, the process is performed from
(1) if the status prior to warm boot/suspend is (1) or (2), and is performed from (3) if the status prior to
warm boot/suspend is (3).
7
4.6. Controlling the Backlight with the Backlight Control Function
The backlight function can be controlled using the BHT_SetBltStatus function.
The BHT_SetBltStatus (BHT_BL_ENABLE_ON) function is used to enable the backlight function and turn
the backlight ON.
The backlight power saving mode is enabled if no keys are pressed, or the touch panel tapped from the
point the backlight is turned ON using the BHT_SetBltStatus (BHT_BL_ENABLE_ON) function until the
time set using the BHT_SetSysSettingDW
(BHT_BACKLIGHT_BATT_TIME/BHT_BACKLIGHT_AC_TIME,…) function (Default: 3 seconds when
powered by battery, 60 seconds when placed on CU) elapses, or if the BHT_SetBltStatus
(BHT_BL_ENABLE_OFF) function is executed. (The backlight function remains ON at this time.)
If the BHT_SetBltStatus (BHT_BL_DISABLE) function is executed, the backlight function is disabled, and
the backlight power saving mode is enabled.
Backlight control is performed as shown in the flow diagram below.
BHT_SetBltStatus
(BHT_BL_ENABLE_OFF)
BHT_SetBltStatus
(1) Backlight power saving mode (BHT_BL_DISABLE)
(backlight function ON)
Perform one of the following:
• BHT_SetBltStatus (BHT_BL_ENABLE_ON)
(*5)
• Press a key other (*3) than the backlight control
key. (*1)
• Tap the touch panel. (*4)
BHT_SetBltStatus (BHT_BL_ENABLE_OFF)
Furthermore, no key other than the backlight
control key (*1) is pressed and the touch panel is
not tapped prior to the backlight illumination time
(*2) elapsing.
(2) Backlight ON
BHT_SetBltStatus
(BHT_BL_ENABLE_ON) (*5)
BHT_SetBltStatus
(BHT_BL_DISABLE)
(3) Backlight power saving mode
(backlight function OFF)
(*1)
Default: Hold down [SF] key and press [M3].
Setting is possible using the BHT_SetSysSettingDW (BHT_BACKLIGHT_KEY,…) function.
(*2)
The backlight illumination time is set using the BHT_SetSysSettingDW (BHT_BACKLIGHT_BATT_TIME/
BHT_BACKLIGHT_AC_TIME,…) function. Power saving mode is enabled if no key other than the
backlight control key is pressed, or if the touch panel is not tapped within this time.
This time is measured from the point all keys are released or the touch panel is last pressed.
(*3)
If key-press has not been set for the key backlight illumination trigger, the key backlight will not illuminate
even if a key is pressed. If, however, the key backlight is already illuminated beforehand, it will not turn
OFF by pressing a key.
(*4)
If screen tap has not been set for the key backlight illumination trigger, the key backlight will not illuminate
even if the screen is tapped. If, however, the key backlight is already illuminated beforehand, it will not turn
OFF by tapping the screen.
8
(*5)
The backlight specified with the BHT_SetSysSettingDW (BHT_BACKLIGHT_DEVICE,…) function
illuminates.
(*6)
Cold booting is performed from the status at (1) above.
However, cold booting is performed from the status at (1) when the registry is saved with the status at (1)
or (2), and is performed from the status at (3) when the registry is saved with the status at (3).
(*7)
When performing warm booting or when resuming from the suspend status, the process is performed from
(1) if the status prior to warm boot/suspend is (1) or (2), and is performed from (3) if the status prior to
warm boot/suspend is (3).
4.7. Key Backlight
The following settings can be made for the key backlight.
Parameter
type
R/W
Control code
(dwCtrlCode)
Device illuminated
when
BHT_SetBltStatus
called
DW
R/W
BHT_BACKLIGHT
_DEVICE
Key backlight
illumination trigger
DW
R/W
BHT_BACKLIGHT_
_KEY_FACTOR
9
Parameter value
(dwSysParam)
One of the following
combinations:
0: None
LIGHTING_LCD(=1)
: LCD
LIGHTING_KEY(=2)
: KEY
LIGHTING_LCD
| LIGHTING_KEY(=3)
: Both
0 : Always OFF
BHT_BLT_KEY
_FACTOR_KEY
: Illuminate only when
keys pressed
BHT_BLT_KEY
_FACTOR_KEYTAP
: Illuminate when keys
pressed or tapped
Default
Validating timing
1
Immediately after
setting, when
BHT_SetBltStatus
next called
1
Immediately after
setting, first tap or
key press when
“BHT_BLT_KEY
_FACTOR_KEY” or
“BHT_BLT_KEY_
FACTOR_KEYTAP”
Chapter 5. Beeper and Vibrator Control
5.1. Outline
The beeper and vibrator are controlled by:
(1) the beeper/vibrator setting functions
(that allow you to choose beeper and/or vibrator and set the beeper volume. Refer to Section 5.2.)
(2) the beeper/vibrator start/stop functions
(that allow you to set the beeping or vibration interval, the number of repetitions, and frequency. Refer
to Section 5.3.)
10
5.2. Setting the Beeper/Vibrator
The BHT_SetSysSettingDW (DWORD dwCtrlCode, DWORD dwSysParam)
and BHT_GetSysSettingDW (DWORD dwCtrlCode, DWORD *pdwSysParam) functions write or read the
beeper/vibrator parameters as specified below.
Parameter
name
Control code
(dwCtrlCode)
Parameter value
(dwSysParam)
R/W
BHT_BEEP_VIB
_SELECT
BEEP_SELECT
First sound
after setting
DW
R/W
BHT_BEEP_VIB
_VOLUME
BEEP_SELECT
: Beeper
VIB_SELECT
: Vibrator
BEEP_SELECT | VIB_SELECT
: Beeper and vibrator
0: OFF
1 (Lowest) to 5 (Highest)
5
First sound
after setting
DW
R/W
BHT_BEEP_VIB
_KEY
2
First sound
after setting
Screen taps
DW
R/W
BHT_BEEP_VIB
_TAP
2
First sound
after setting
Trigger
switch clicks
(*3)
DW
R/W
BHT_BEEP_VIB
_TRGKEY
0: OFF
1 (Soft)
2 (Loud)
0: OFF
1 (Soft)
2 (Loud)
CLICK_SOUND_OFF: Prohibit
CLICK_SOUND_ON: Permit
CLICK_SOUND_OFF
First sound
after setting
Type
R/W
Rumble
device
DW
Beeper
volume
(*1)
Key clicks
(*2)
Default
Validating
timing
(*1) This setting is effective only when the value 0, 1, or 2 is specified to the frequency in the beeper
start/stop functions (BHT_StartBeep or BHT_StartBeeperOnly).
(*2) This excludes the pressing of magic keys assigned to the trigger switch and the [SCAN] key when
the "trigger switch click sound" is OFF.
(*3) This is effective only when pressing magic keys assigned to the trigger switch and the [SCAN] key.
The rumble device specification above takes effect when the beeper/vibrator is driven:
(1) by the BHT_StartBeep function.
(2) due to low battery warning, in conjunction with the "Battery voltage has lowered." or "Charge the
Battery!" message.
(3) upon completion of barcode reading.
The MessageBox, MessageBeep and PlaySound Windows CE standard APIs and Windows CE standard
warning and notification sounds are enabled by the audio function, and therefore there is no influence on
settings made with the above functions.
The sound pattern of the key clicks, screen taps, and trigger switch clicks is as follows:
ON-duration: 10 ms
Frequency: 1396 Hz
Volume : Loud, Soft
11
5.3. Starting/Stopping the Beeper/Vibrator
The beeper/vibrator is activated or deactivated by the following functions:
Function
BHT_StartBeep
BHT_StartBeeperOnly
BHT_StartVibratorOnly
Used to:
Activate the selected device (beeper or vibrator).
Activate the beeper.
Activate the vibrator.
The functions listed above start the beeper/vibrator control and immediately pass control to the
subsequent statement or function. The actual device operation is carried out in background processing.
Specifying the frequency with value 0, 1, or 2 sounds the beeper with the frequency listed below. If any
other value is specified, the beeper sounds at the maximum volume.
Parameter value Frequency (Hz)
0
698
1
1396
2
2793
If the suspend or critical power states are turned OFF while the beeper is sounding or the vibrator is
vibrating, the BHT resumes with both the beeper and vibrator stopped when the unit is next resumed.
5.4. Priority Orders between Events that Activate the Beeper/Vibrator
There are priority orders between events that activate the beeper/vibrator as listed below.
Priority Event that activate the beeper/vibrator
Higher System error
Completion of barcode reading
Setting in applications
Lower Key clicks or screen taps
When the beeper or vibrator is being driven by any event, the lower priority event (if happens) activates
no beeper or vibrator but the same or higher priority event (if happens) overrides the currently operating
beeper or vibrator and newly activates the beeper or vibrator.
5.5. Beeper Volume Patterns
The beeper is activated according to the beeper volume as listed below.
Beeper volume Volume
1 (lowest)
Soft
2
3
Mid
4
5 (highest)
Loud
12
Chapter 6. Keys and Trigger Switch Control
6.1. Outline
In addition to the processing for depressed or released keys and trigger switch, the BHT OS controls the
following functions assigned to them.
(1) Specifying the shift key operation mode
(2) Assigning functions to the magic keys (M1 to M3)
(3) Supporting the alphabet entry mode (in addition to the numeric entry mode)
(4) Function mode
(5) Key click sound
(6) Keyboard type acquisition
Furthermore, both the 27-key pad and 42-key pad keyboard types are supported.
13
6.2. Setting the Keys and Trigger Switch
The BHT_SetSysSettingDW (DWORD dwCtrlCode, DWORD dwSysParam)
and BHT_GetSysSettingDW (DWORD dwCtrlCode, DWORD *pdwSysParam) functions write or read the
keys and trigger switch parameters.
Parameter
name
Type
R/W
Control code
Shift key
operation
mode
DW
R/W
BHT_KEY
_SHIFT_MODE
Assignment to
M1 key
Assignment to
M2 key
Assignment to
M3 key
DW
R/W
DW
R/W
DW
R/W
BHT_KEY
_M1_MODE
BHT_KEY
_M2_MODE
BHT_KEY
_M3_MODE
Entry mode
DW
R/W
BHT_KEY
_INPUT_METHOD
Enable/disable
alphabet entry
switching key
DW
R/W
BHT_DISABLE
_KEYMODE
_CHANGE_KEY
Function
mode
DW
R/W
BHT_KEY
_FUNCTION
Parameter value
KEY_NON_LOCK
: Non-lock mode
KEY_ONE_TIME
: Onetime lock mode
MAGIC_FUNC_NONE
: Ignore the depressed key
MAGIC_FUNC_ENTER
: Treat as ENT key
MAGIC_FUNC_TRG
: Treat as trigger switch
MAGIC_FUNC_SHIFT
: Treat as SF key
MAGIC_FUNC_ALT
: Treat as ALT key
MAGIC_FUNC_CTRL
: Treat as CTRL key
MAGIC_FUNC_BLT
: Treat as backlight function
on/off key
MAGIC_FUNC_TAB
: Treat as TAB key
MAGIC_FUNC_CLEAR
: Treat as CLEAR key
MAGIC_FUNC_USERDEF
: User-defined code (*1)
INPUT_METHOD
_NUMERIC
: Numeric entry mode
INPUT_METHOD
_ALPHABET
: Alphabet entry mode 1
INPUT_METHOD
_ALPHABET 2
: Alphabet entry mode 2 (*2)
ENABLE_KEY
_TOCHANGE
_ALPHABET
: Enable alphabet entry
DISABLE_KEY
_TOCHANGE_ALPHABET
: Disable alphabet entry
KEY_FUNCTION_ON
: Function mode
KEY_FUNCTION_OFF
: Non-function mode
(*1) User-defined codes can only be acquired.
(*2) Alphabet entry mode 2 is only available with the 27-key pad.
14
Default
Validating
timing
KEY_NON_LOCK
Immediately
after setting
MAGIC_FUNC_TAB
Immediately
after setting
Immediately
after setting
Immediately
after setting
MAGIC_FUNC
_NONE
MAGIC_FUNC
_TRG
27-key type:
INPUT_METHOD
_NUMERIC
Immediately
after setting
42-key type:
INPUT_METHOD
_ALPHABET
ENABLE_KEY
_TOCHANGE
_ALPHABET
Immediately
after setting
KEY_FUNCTION
_OFF
Immediately
after setting
6.3. Shift Key Operation Mode
The shift key operation mode works as follows:
Shift key operation
Description
mode
Non-lock mode
- The keypad is shifted when the Shift key is held down.
Onetime lock
- The shift status is cleared immediately after releasing a key when in the
mode
shift status from the time the key is pressed until it is released while the
shift key is held down and after it is released.
6.4. Magic Key Control
The table below lists the virtual key codes and character codes when magic keys (M1 to M3) are pressed.
Virtual key code
Character code
Parameter value
Constant
Value
When not shifted
Shifted
MAGIC_FUNC_NONE
[M1] key
VK_M1
C1
[M2] key
VK_M2
C2
[M3] key
VK_M3
C3
MAGIC_FUNC_ENTER
VK_RETURN
0D
0D(CR)
0D(CR)
MAGIC_FUNC_TRG
(*1)
MAGIC_FUNC_SHIFT
VK_SHIFT
10
MAGIC_FUNC_CTRL
VK_CONTROL
11
MAGIC_FUNC_ALT
VK_MENU
12
MAGIC_FUNC_BLT
(*1)
MAGIC_FUNC_TAB
VK_TAB
09
09 (tab)
09 (tab)
MAGIC_FUNC_LASER
(*1)
MAGIC_FUNC_CLEAR
VK_CLEAR
0C
MAGIC_FUNC_USERDEF
(*2)
(*1) Returns the same virtual key code as when “MAGIC_FUNC_NONE” is assigned.
(*2) Notified virtual key codes are user-defined codes. In such a case, functions assigned to keys such as
the following cannot be executed.
- Changing the entry mode by pressing the [AL] key to which the function has been assigned.
- Backing up the registry by pressing the [SF] key to which the function has been assigned and the
[Power] key.
- Switching between backlight enable and backlight disable by assigning the function to [SF] + [M3].
15
6.5. Assigning a User-Defined Key Code to the Magic Keys
Apart from the previously mentioned functions, optional keys can be applied to the magic keys following
the method below.
With this function it is possible to assign keys to the magic keys that do not exist in the BHT-700, or to
execute the equivalent of a multi-key function by pressing a magic key once.
6.5.1.
Assignment Method
The steps for setting user-defined key codes for the magic keys are as follows:
(1) Save a user-defined code settings file with the filename “MKeyDef.txt” in the FLASH folder of the BHT.
(2) Choose the key you wish to set from the key definition menu in the BhtShell (for further details refer to
the “BHT-700BB/700BWB/700BWBG-CE User’s Manual” or “BHT-700QWBG-CE User’s Manual”).
Backup files can be created with a backup registry.
6.5.2.
User-Defined Code Settings File (MKeyDef.txt)
(1) File name
“MKeyDef.txt” (fixed)
(2) Format
<Character string inside the combo box>,<Defined code number>,<Defined code 1>,…,<Defined
code 4>
Item
Display Method
Setting Content
Character string inside the
Character string
A character string containing up to
combo box
64 characters. Extra characters will
be ignored.
Defined code number
decimal number
A user-defined code specified as a
number between 1 and 4.
Defined code 1 through 4
hexadecimal
The virtual key code you wish to
number
assign.
[Ex] Setting a user-defined key code of “Alt + X” and “Alt + Y” to be added to the combo box list.
ALT+X, 2, 0x12, 0x58
ALT+Y, 2, 0x12, 0x59
(*) If there is a mistake in the format of a line in the MKeyDef.txt file, that line will be ignored and removed
from the BhtShell key definition menu.
(*) Even if the MKeyDef.txt file is deleted, key code settings will be retained (the BhtShell will display
"None"). When a different function is designated in the BhtShell, the previous key code settings will be
replaced.
16
6.6. Key Input Modes
The BHT-700 key pad has the following three key entry modes.
(1) Numeric entry mode
This mode allows you to type in numeric data with the numeric keys.
(2) Alphabet entry mode 1
In the 27-key pad, use the numeric keys to type in alphabet letters in the same way as he/she uses a
cellular phone.
In the 42-key pad, use the alphabet keys to type in alphabet letters directly.
(3) Alphabet entry mode 2 (27-key pad only)
This entry mode is for alphabet entry at programs running on the computer when using terminal
services such as a remote desktop connection.
Similarly to aphabet entry mode 1, alphabet letters are entered using the numeric keys.
6.6.1.
Numeric Entry Mode
The numeric entry mode starts by:
(1) calling the BHT_SetSysSettingDW (BHT_KEY_INPUT_METHOD, INPUT_METHOD_NUMERIC)
function.
(2) pressing the [AL] key when in alphabet entry mode 2 (27-key pad). (*1), or
pressing the [NUM] key when in alphabet entry mode 1 (42-key pad). (*1)
(*1) Effective only when the key entry mode transition key is not disabled.
Pressing keys in this mode returns virtual key codes and character codes specified in Appendix A.
6.6.2.
Alphabet Entry Mode 1 (27 key pad)
The alphabet entry mode 1 starts by:
(1) calling the BHT_SetSysSettingDW (BHT_KEY_INPUT_METHOD, INPUT_METHOD_ALPHABET)
function.
(2) pressing the AL key(*2) in the numeric entry mode.
The alphabet entry mode 1 terminates by:
(1) switching to any other entry mode with the BHT_SetSysSettingDW function.
(2) pressing the AL key(*2) in the numeric entry mode.
(*2) The key takes effect only when it is not disabled by the BHT_DISABLE_KEYMODECHANGE_KEY.
In the 27-key pad alphabet entry mode 1, alphabet characters can be entered using an alphabet
character similar to that used on a cellular phones.
(1) When changing to alphabet entry mode 1, an unestablished character display window similar to that
shown below displays.
Unestablished characters display.
The unestablished character display window has the following features.
- This window can be moved by using the stylus.
- The focus is not transferred to the unestablished character display window.
- The unestablished character display window always displays in the foreground.
Furthermore, the following icon displays in the task bar when in alphabet entry mode 1.
17
(2) If keys [0] to [9] or the [.] key is pressed, the pressed key becomes an unestablished character and
displays in the unestablished character display window. The character then reverts to a character
code when any of these keys becomes established.
Press any of the following keys below to establish unestablished characters.
- Keys [0] to [9] or [.] that differ from the key pressed at the unestablished character
- [ENT] key
- “MAGIC_FUNC_ENTER” assigned to the magic keys
- Keys [F1] to [F12]
(3) Keys used for alphabet entry 1
The table below lists keys whose operations are different from those in the numeric entry mode.
Use this key
0 to 9 and
period (.) keys
ENT key
BS key
F1 to F12 Key
Magic key
AL key
To do this
Enter alphabets. For alphabets assigned to these keys, refer to
“Appendix A. Keyboard Arrangement, Virtual Key Codes and
Character Codes” – “A.1.3. Character Codes in Alphabet Entry Mode.”
Establish an unestablished key if any.
If there is no unestablished key, the same character code as in the
numeric entry mode is returned.
Clear an unestablished key if any.
If there is no unestablished key, the same character code as in the
numeric entry mode is returned.
Establish an unestablished key if any.
If there is no unestablished key, the same character code as in the
numeric entry mode is returned.
Establish an unestablished key if any when the
MAGIC_FUNC_ENTER is assigned to these keys.
If there is no unestablished key, the same character code as in the
numeric entry mode is returned.
Clears unestablished keys if any exist and switches to numeric entry
mode.
6.6.3. Alphabet Entry Mode 1 (42-Key Pad)
Alphabet entry mode 1 starts by:
(1) calling the BHT_SetSysSettingDW (BHT_KEY_INPUT_METHOD, INPUT_METHOD_ALPHABET)
function.
(2) pressing the [NUM] key when in numeric entry mode. (*2)
Alphabet entry mode 1 terminates by:
(1) switching to any other entry mode with
the BHT_SetSysSettingDW(BHT_KEY_INPUT_METHOD, INPUT_METHOD_XXXXXX) function.
(2) pressing the [NUM] key. (*2)
(*2) Effective only when the key entry mode transition key is not disabled.
When keys are pressed in this mode, virtual key codes and character codes are returned in accordance
with “Appendix A. Keyboard Arrangement, Virtual Key Codes and Character Codes”
-“A.2.2. Virtual Key Codes and Character Codes”.
18
6.6.4. Alphabet Entry Mode 2 (27-key pad only)
Alphabet entry mode 2 starts by:
(1) calling the BHT_SetSysSettingDW (BHT_KEY_INPUT_METHOD, INPUT_METHOD_ALPHABET2)
function.
(2) pressing the [AL] key when in alphabet entry mode 1. (*1)
Alphabet entry mode 2 terminates by:
(1) switching to any other entry mode with the BHT_SetSysSettingDW (BHT_KEY_INPUT_METHOD,
INPUT_METHOD_XXXXXX) function.
(2) pressing the [AL] key. (*1)
(*1) Effective only when the key entry mode transition key is not disabled.
Similarly to alphabet entry mode 1, alphabet letters can also be entered in alphabet entry mode 2 using
the same method used when entering alphabet letters with a cellular phone.
(1) The following icon below displays in the task bar when starting alphabet entry mode 2.
The unestablished character display window does not display.
(2) If keys [0] to [9] or the [.] key is pressed, characters assigned to those keys display at the current
cursor position. By pressing the same key(s) again, assigned characters display sequentially.
Press a different key to establish the entered character(s).
(3) Keys used in alphabet entry mode 2
The table below lists keys whose operations are different from those in the numeric entry mode.
Use this key
[0] to [9] and
period (.) keys
[AL] key
To do this
Used to enter alphabet letters. For details of alphabet letters assigned to these
keys, refer to “Appendix A. Keyboard Arrangement, Virtual Key Codes and
Character Codes” – “A.1.3. Character Codes in Alphabet Entry Mode.”
Switches to numeric entry mode.
19
6.7. Function Mode
Use either of the methods below to enable function mode.
(1) Call up the BHT_SetSysSettingDW (BHT_KEY_FUNCTION,KEY_FUNCTION_ON) function.
(2) Press the [FN] key when in function mode.
Use either of the methods below to disable function mode and return to non-function mode.
(1) Call up the BHT_SetSysSettingDW (BHT_KEY_FUNCTION,KEY_FUNCTION_OFF) function.
(2) Press the [FN] key when in function mode.
Non-function mode is enabled as the default when the unit is booted up.
The following icon displays in the task bar when in function mode.
If a key is pressed when in function mode, a virtual key code or character code is returned as outlined
in ”Appendix A. Keyboard Arrangement, Virtual Key Codes, and Character Codes”.
6.8. Key Clicks
When the keys are pressed, the BHT clicks as specified below. Note that pressing the power key does
not click.
Parameter name
Control code
(dwCtrlCode)
Type
R/W
Key click volume
DW
R/W
BHT_BEEP_VIB
_KEY
Trigger switch
clicks
DW
R/W
BHT_BEEP_VIB
_TRGKEY
Parameter
value
(dwSysParam)
0: OFF
1: Soft
2: Loud
CLICK_SOUND
_OFF: Prohibit
CLICK_SOUND
_ON: Allow
Default
Validating timing
2
first key press after
setting
CLICK_SOUND_OFF
first trigger key press
after setting
6.9. Acquisition of Keypad Type
The BHT_GetSysSettingDW (DWORD dwCtrlCode,DWORD *pdwSysParam) function reads the keypad
type.
Parameter name
Type
R/W
Control code
Parameter value
Keypad type
DW
R
BHT_KEYBOARD_TYPE
20
KEYBOARD_TYPE1
: 27-key pad
KEYBOARD_TYPE2
: 42-key
Default
Validating timing
-
-
6.10. Auto Repeat Function
The keys used to perform auto repeat are listed in the following table. Whether auto repeat function for
each key is enabled or disabled is listed in the following table.
Key
[0] to [9] key and
Period ([.]) key
[A] to [Z] key
[BS] key
[C] key
[W][X][S][T] key
[F1] to [F12] key
[SF] key
[FN] key
[ENT] key
[TAB] key
[AL] key
[NUM] key
[ESC] key
[SCAN] key
Magic keys
Power key
27-key pad
42-key pad
- In Numeric entry mode : ●
- In Alphabet entry mode : ●
●
●
●
●
N/A
- No key assignment
:- [ENT]key
:- Trigger key
:- Shift key
:- Backlight control key : - [TAB] key
:●
- [CTRL] key
:- [ALT] key
:- [CLEAR] key
:- User-defined code
:-
* ● : Auto repeat performed , - : Auto repeat not performed
21
●
●
●
●
●
●
●
N/A
- No key assignment
- [ENT] key
- Trigger key
- Shift key
- Backlight contorol key
- [TAB] key
- [CTRL] key
- [ALT] key
- [CLEAR] key
- User-defined code
-
::::::●
::::-
Chapter 7. LCD Status Indication
7.1. Outline
The status of the BHT is displayed on the LCD as specified below.
Status
Battery voltage level
Description
Displays the battery voltage in five levels.
Software keyboard
display state
Shows whether the software keyboard is
displayed or hidden. Tapping this icon toggles the
software keyboard on and off.
Keypad shift state
Displays the icon when the keypad is shifted.
Function state
Displays the icon when in function mode.
Alphabet input state
(27-key pad only)
Displays the ALP window when the alphabet
input function is activated. An unestablished
character appears in this ALP window.
Icon
: The software keyboard is
displayed.
: The software keyboard is
hidden.
Displays the icon when the alphabet input
function is activated.
Numeric entry status
(42-key pad only)
Standby state
Synchronization state
Displays when in numeric entry mode.
Displays this icon when the CPU comes to be on
standby.
Displays the open state of the wireless device
and the radio field intensity.
The wireless device is open.
The wireless device is open and
the wireless link is established
with an access point.
: Radio field intensity
(Low)
: Radio field intensity
(Medium)
: Radio field intensity
(High)
ActiveSync
Displays this icon when the BHT is
communicating with the PC via Microsoft
ActiveSync (not using LAN).
Desktop display
Switches the screen between the application
execution display and desktop display. Tapping
this icon when an application program is running
switches the screen to the desktop display.
Tapping it again returns to the application
execution display.
Bluetooth power status
Displays the Bluetooth power status.
No icons display if the unit is not equipped with a
Bluetooth device.
22
: Power ON
: Power OFF
(Display sample of icons)
Status indicator icons in the task bar
7.2. Setting the LCD Status Indication
The BHT_SetSysSettingDW (DWORD dwCtrlCode, DWORD dwSysParam) and BHT_GetSysSettingDW
(DWORD dwCtrlCode, DWORD *pdwSysParam) functions write or read the LCD status indication as
specified below.
Parameter
name
Battery voltage
level icon
Software
keyboard icon
Keypad shift
icon
Alphabet input
icon(27-key pad
only)
Synchronization
state icon
Standby state
icon
Function state
icon
Numeric entry
status (42-key
pad only)
Bluetooth
power status
BHT_ICON
_BATTERY
BHT_ICON
_SIP
BHT_ICON
_SHIFTKEY
Parameter
value
0: Hide
1: Display
0: Hide
1: Display
0: Hide
1: Display
BHT_ICON
_IN_ALPHA
0: Hide
1: Display
BHT_ICON
_RADIO_INTENSE
BHT_ICON
_STANDBY
0: Hide
1: Display
0: Hide
1: Display
0: Hide
1: Display
Type
R/W
Control code
DW
R/W
DW
R/W
DW
R/W
DW
R/W
DW
R/W
DW
R/W
DW
R/W
BHT_ICON_FUNC
DW
R/W
BHT_ICON_NUMERIC
DW
R/W
BHT_ICON
_BLUETOOTH
Default
1
Validating timing
Immediately after setting
1
Immediately after setting
1
Immediately after setting
1
Immediately after setting
1
Immediately after setting
0
Immediately after setting
1
Immediately after setting
0: Hide
1: Display
1
Immediately after setting
0: Hide
1: Display
0
Immediately after setting
23
Chapter 8. Power Management
8.1. Outline
The power management functions switch the system powering state.
The following four system power states exist.
(1) Power ON
(2) Standby
(3) Suspned (*1)
(4) Critical OFF (*2)
(*1) Suspend
The BHT will be suspended when the power is turned off with the power key or auto power off feature.
(*2) Critical OFF
The BHT will become critical off when the power is turned off due to battery voltage drop or battery cover
unlocked.
Notes
- No processing is performed when the BHT is on standby.
- When the SD memory card is used, disable the standby function before accessing the card.
24
8.2. Standby
8.2.1. Switching to the Standby State
The BHT switches from the power ON state to the standby state when any of the following conditions
arises:
(1) When the standby transition timeout occurs after a standby transition prohibited event (listed below)
is completed.
(2) When waiting for the event specified by the BHT_WaitStandbyEvent function with the standby
transition prohibited event completed.
(3) When the standby transition prohibited event is completed while waiting for the event specified by
the BHT_WaitStandbyEvent function to occur.
8.2.2. Standby Transition Prohibited Events
The following items are standby transition prohibited events.
- Key being pressed
- Touch panel being tapped
- Screen being refreshed
- Beeper/vibrator in operation
- Key click sound/touch panel tap sound in operation
- Backlight being ON (excludes those times when continuously ON)
- Reading barcodes
- IrDA interface port opened
- Connector interface port opened
- USB interface opened
- Wireless device opened
- During USB-LAN communication
- Flash memory being erased or written
- RTC being accessed
- Indicator LED being ON
- System message being displayed
- Bluetooth device power being ON
- Explorer displayed
- Standby transition time set to "0"
8.2.3. Setting the Standby Transition Timeout
The BHT_SetSysSettingDW (DWORD dwCtrlCode, DWORD dwSysParam) and BHT_GetSysSettingDW
(DWORD dwCtrlCode, DWORD *pdwSysParam) functions write or read the standby transition timeout as
specified below.
Parameter name
Type
R/W
Control code
Parameter value
Standby transition timeout
(in units of 100 msec)
DW
R/W
BHT_PM_STBYTIME
0: Disable
1 - 255
25
Defaults
10
(1 sec)
Validating timing
Immediately after setting
8.3. Suspend
8.3.1. Setting the Standby Transition Timeout
The BHT switches to the suspend state when any of the following conditions arises:
(1) When the power is on, the power key is held down for the effective held-down time (for switching to
the suspend state) or more.
(2) An auto power-off timeout occurs after one of the suspend transition prohibited events (listed below)
is completed.
(3) When the power OFF function is called.
8.3.2. Suspend Transition Prohibited Events
The following items are suspend transition prohibited events.
- Key press (other than power key) authentication
- Touch panel tap authentication
- When ActiveSync connection established (IrDA and USB)
- When auto power OFF time is set to "0"
- When the following registry value is set to "0" with a wireless connection established
[HKEY_LOCAL_MACHINE\Comm\CXPort]
"NoIdleTimerReset"=dword : 0
Furthermore, the auto power OFF time is reset upon the occurrence of the following events.
- When a serial communication event occurs (IrDA and USB)
- When the SystemIdleTimerReset() function is executed
- When an event with event object name "PowerManager, ActivityTimer, or UserActivity" is set
8.3.3. Setting the Auto Power-off Timeout
The BHT_SetSysSettingDW (DWORD dwCtrlCode, DWORD dwSysParam) and BHT_GetSysSettingDW
(DWORD dwCtrlCode, DWORD *pdwSysParam) functions write or read the auto power-off timeout as
specified below.
Parameter name
Auto power-off timeout
(sec.)
(When battery-driven)
Auto power-off timeout
(sec.)
(When placed on the CU)
Type
R/W
Control code
DW
R/W
BHT_PM
_BATTPOWEROFF
DW
R/W
BHT_PM
_EXTPOWEROFF
Parameter value
0: Disable
10xFFFFFFFF
0: Disable
10xFFFFFFFF
Defaults
Validating timing
180
(3 min.)
Immediately after
setting
0
Immediately after
setting
8.3.4. Setting the Effective Held-down Time of the Power Key for Switching to the Suspend State
The BHT_SetSysSettingDW (DWORD dwCtrlCode, DWORD dwSysParam) and BHT_GetSysSettingDW
(DWORD dwCtrlCode, DWORD *pdwSysParam) functions write or read the effective held-down time of
the power key for switching to the suspend state as specified below.
Parameter name
Type
R/W
Control code
Parameter
value
Effective held-down time of the
power key for switching to the
suspend state (in units of 100 msec)
DW
R/W
BHT_PWRDOWN_KEY
_WAIT_TIME
1 - 255
Defaults
5
Validating
timing
Immediately
after setting
Saving the Registry
If the BHT is switched to the suspend state by pressing the power key with the SF (*1) key held down,
the Registry will be saved into the flash memory.
(*1) Here, this means only the key marked “SF.” The Registry will not be saved even if you press the
power key while holding down the magic key to which the SF key function is assigned.
26
Chapter 9. Battery State
9.1. Outline
The battery status can be ascertained using the following methods.
(1) Battery status acquisition
(2) Battery voltage icon
(3) Low battery voltage warning message display
9.2. Battery Voltage Acquisition
The BHT_GetPowerStatus function can be used to ascertain whether the BHT is on the CU, and acquires
the battery level, battery voltage, and battery type.
9.3. Battery Voltage Icon
The battery voltage status is indicated with the icons below if the battery voltage status display is
authorized.
Battery voltage level
Level
Voltage
High
Battey Voltage
Icon
3.9 V or higher
Medium
3.7 V or higher and
less than 3.9 V
Low
3.6 V or higher and
less than 3.7 V
Warning
3.5V or higher and
less than 3.6 V
9.4. Battery Voltage Warning
If the output voltage of the battery cartridge drops below the specified lower limit, the BHT displays the
Level-1 message "Battery voltage has lowered." on the LCD and beeps three times. After that, it will
resume the previous regular operation.
If the battery output voltage drops further, the BHT displays the Level-2 message "Charge the battery!,"
beeps five times, and then turns itself off automatically.
27
Chapter 10. LED
10.1. Outline
The BHT-700 has two LEDs. The display LED can be controlled from the application.
LED
Indicator LED
Charger LED
Color
Red and blue
Red and green
ON/OFF control from applications
Possible
Impossible
10.2. LED Control
10.2.1. Display LED
(1) Control method
The red and blue display LEDs can be turned ON and OFF using the BHT_SetNLedStatus,
BHT_SetNLedOn, and BHT_SetNLedOff functions.
Furthermore, the LED ON/OFF status can be acquired using the BHT_GetNLedStatus and
BHT_GetNLedStatusEx functions
(2) Limited items
▪ LEDs cannot be controlled when a barcode device file is open. LEDs can be controlled, however, if
LEDs are set not to illuminate when a barcode device file is open.
▪ If the function mentioned at (1) above is used to turn ON an LED from the application, the LED
remains ON even after exiting the application used to turn ON the LED. Use the function mentioned at
(1) to turn OFF the LED.
10.2.2. Charge LED
The charge LED cannot be turned ON or OFF from the application.
28
Chapter 11. Data Communication
11.1. Outline
In wired communication between the BHT and host computer, the following interfaces are available:
(1) IrDA interface
(2) Connector interface
(3) USB client interface
(4) USB host interface
11.2. Programming for Data Communication
(1) IrDA interface
The IrDA interface is assigned to port 4.
Communications
Effective setting
parameter
Transmission speed (bps)
115200, 57600, 38400, 19200, 9600
Default
115200
Parameters other than the transmission speed are fixed (Parity = None, Character length = 8 bits, Stop
bit length = 1 bit), since the physical layer of the IrDA interface complies with the IrDA-SIR 1.2.
(2) Connector interface
The Connector interface is assigned to port 1.
RTS and CTS signal lines are not supported.
Communications
Effective setting
parameter
Default
Transmission speed (bps)
115200,57600,38400,19200,9600,
4800,2400,1200,600,300
115200
Parity
None, even, or odd
None
Character length
7 or 8 bits
8
Stop bit length
1 or 2 bits
1
(3) USB client interface
The USB clinet interface is used for ActiveSync connection.
(4) USB host interface
The USB host interface is used for connection with network via CU-714 and Ethernet cable. When
BHT-700 is set on CU-714, new connection named “AX-887721” is created in Control Panel.
11.3. Assigning Port Number
From COM1 to COM8 are used by system program. Assign 9 or 0 to COM port number of
communication made newly.
29
11.4. ActiveSync
11.4.1. Establishing an ActiveSync Connection
An ActiveSync connection can be established with either of the following procedures.
(1) Manual connection via the [BhtShell] - [2:Communication] menu
(2) Auotmatic connection by placing the BHT on CU-733 connected to the computer by USB
Communication I/F
Manual Connection
Automatic Connection
USB
●
●
IrDA
●
Wireless
●
USB-LAN (*1)
●
(*1) CU-714 is necessary for USB-LAN communication.
11.4.2. ActiveSync Auto Connection Setting Method
The ActiveSync auto connection function is set and read using the BHT_SetSysSettingDW (DWORD
dwCtrlCode,DWORD dwSysParam) and BHT_GetSysSettingDW (DWORD dwCtrlCode,DWORD
*pdwSysParam) functions.
Parameter
Type
R/W
Control Code
ActiveSync auto
connection
DW
R/W
BHT_ACTSYNC
_AUTOCNCT
Parameter Value
ACTSYNC
_AUTOCNCT_DISABLE
: Prohibited
ACTSYNC
_AUTOCNCT_USB
: USB only permitted
30
Default
ACTSYNC
_AUTOCNCT
_USB
Validation
Timing
Immediately
after setting
Chapter 12. Wireless Communication
12.1. Outline
12.1.1. Spread Spectrum Communications Method
Data communication is performed using TCP/IP protocol via a wireless module. Refer to item 13.2 for
details on communication program creation.
12.1.2. Configuration of Spread Spectrum System
The BHT communicates with the host computer via an access point in wireless communication.
For details, refer to the "BHT-700BB/700BWB/700BWBG-CE User's Manual" or "BHT-700QWBG-CE
User's Manual."
The table below shows the communications status transition as the state of the spread spectrum
communications device built in the BHT-700.
Spread spectrum communications device
Communication
Open (power on)
Impossible
Checking synchronization with access point Impossible
Synchronization complete
Possible
Roaming
Impossible
if the BHT is not synchronized with an access point
Possible
if synchronization with an access point is kept
End of roaming
Possible
Close (power off)
Impossible
If always being opened, the spread spectrum communications device will consume much power. When
the device is not in use, therefore, close it as soon as possible.
However, it will take several seconds to open the spread spectrum communications device and
synchronize it with the access point for making communications ready. Frequent opening and closing of
the device will require much time, resulting in slow response. Take into account the application purposes
of user programs when programming.
When the spread spectrum communications device is synchronized with the access point, the BHT will
display a synchronization icon on the LCD as shown below.
31
12.2. Programming for Wireless Communication
To connect to the wireless communications pathway, specify the following system settings in System
Menu or in a user program:
- POWER
- RADIO MODE
- ESSID (Extended Service Set ID)
- ENCRYPTION
- AUTHENTICATION
- EAP TYPE
- KEY(WEP KEY, PRE SHARED KEY)
For the procedure in System Menu, refer to the "BHT-700BB/700BWB/700BWBG-CE User's Manual" or
"BHT-700QWBG-CE User's Manual."
If no system settings are made in a user program, those made in System Menu will apply.
The following procedure is used to perform system settings in the user program.
Step 1: Select the profile to be edited.
Call the following function to edit an existing profile.
BHT_RF_IoControl (RF_UPDATE_PROFILE, NULL, 0, NULL, 0, NULL);
Call the following function to edit or create a new profile.
BHT_RF_IoControl (RF_SET_PROFILE, …);
Please refer to section “13.2.1 Wireless Communication Parameters” for details of the setting method.
Use ESSID and Infrastructure mode to specify the profile.
If no profile corresponding to the specified ESSID and Infrastructure mode combination exists, a new
profile will be created.
Step 2: Change parameter 1, parameter 2, ….., parameter N for the profile selected at Step 1.
Please refer to section “13.2.1 Wireless Communication Parameters”.
Step 3: Update the set parameters to the driver.
BHT_RF_IoControl (RF_COMMIT_PROFILE, NULL, 0, NULL, 0, NULL);
Use the highest priority profile from among those created to attempt a connection.
If connection fails, attempt to connect automatically using the highest priority profiles sequentially.
The profile with the highest priority will be the one created last.
Up to a maximum of 16 profiles can be created.
32
12.2.1. Wireless Communication Parameters
Settable Parameters
The BHT can be used with the following security configurations by setting ZeroConfig.
- PEAP (802.1x)
- EAP-TLS (802.1x)
- PEAP (WPA)
- EAP-TLS (WPA)
- PSK (WPA)
- PEAP (WPA2)
- EAP-TLS (WPA2)
- PSK (WPA2)
Details of the parameters used with the above security configurations are outlined in the table below.
Parameter
Authentication
Encryption
802.1x
ESSID
Profile Priority
Pre Shared Key
WEP Key
Parameter
Authentication
Encryption
802.1x
ESSID
Profile Priority
Pre Shared Key
WEP Key
OPEN
Disable
WEP
(static)
Disable
●
●
●
PEAP
(802.1x)
OPEN
WEP
(auto
distribution)
PEAP
●
●
-
PEAP
(WPA2)
WPA2
AES
PEAP
●
●
-
Security
EAP-TLS
(WPA2)
WPA2
AES
EAP-TLS
●
●
-
None
Security
EAP-TLS
PEAP
(802.1x)
(WPA)
OPEN
WPA
WEP
TKIP
(auto
distribution)
EAP-TLS
PEAP
●
●
●
●
-
PSK
(WPA2)
WPA2-PSK
AES
Disable
●
●
●
-
(●: Setting valid, -: Setting invalid)
33
EAP-TLS
(WPA)
WPA
PSK
(WPA)
WPA-PSK
TKIP
TKIP
EAP-TLS
●
●
-
Disable
●
●
●
-
▪ POWER
Set the power mode for the wireless module built in the BHT. The following two power modes are
available. The default is P_PWRSAVE_PSP.
The set value is validated when the wireless LAN device is opened first after setting.
Power mode
P_PWRSAVE_CAM
P_PWRSAVE_PSP
Power consuming state
Consumes much power (no power saving effect)
Consumes less power (much power saving effect).
The BHT may take more time to establish the wireless link or send
response messages.
[Ex.] Set the power mode to "Cosumes much power"
DWORD dwVal = P_PWRSAVE_CAM;
BHT_RF_SetParamInt (P_INT_POWERSAVE, &dwVal, sizeof(dwVal));
▪ RADIO MODE
The standard for the wireles LAN being used can be set. The following 3 patterns are available, with
the default set to 802.11b.
The set value is validated when the wireless LAN device is opened first after setting.
Radio mode
P_RADIOMODE_11A
P_RADIOMODE_11B
P_RADIOMODE_11B |
P_RADIOMODE_11G
State
Operates on wireless LAN standard 802.11a.
Operates on wireless LAN standard 802.11b.
Operates on wireless LAN standard 802.11b and 802.11g.
[Ex.] To set the radio mode to “802.11b/g”:
DWORD dwVal = P_RADIOMODE_11B | P_RADIOMODE_11G;
BHT_RF_SetParamInt (P_INT_RADIOMODE, &dwVal, sizeof(dwVal));
▪ ESSID
Specify an ID that identifies the wireless network as a character string. The ESSID of the BHT should
be the same as the SSID of the access point. If the ESSID is not set correctly, no communication is
possible.
[Ex.] Set the "BHT700" to the ESSID (The infrastructure mode is assumed to be an “Infrastructure.”)
ST_RF_PROFILE_KEY stKey;
wcscpy(&stKey.szESSID[0], TEXT(“BHT700”));
// ESSID
stKey.dwInfraMode = INFRA_INFRASTRUCTURE;
// Infrastructure
BHT_RF_IoControl (RF_SET_PROFILE, (LPVOID)&stKey, sizeof(stKey), NULL, 0, NULL);
▪ ENCRYPTION
This is the encryption method setting. A selection can be made from Prohibited, WEP, TKIP and AES.
▪ AUTHENTICATION
This is the authentication method setting. A selection can be made from Open, Shared, WPA, WPAPSK, WPA2, and WPA2-PSK.
34
▪ EAP TYPE
This is the EAP type setting. A selection can be made from Prohibited, PEAP, and TLS.
▪ KEY (WEP KEY, PRE SHARED KEY)
The encryption key (WEP KEY or PRESHARE KEY) can be set.
[Ex.] Setting to enable WEP. Set the WEP KEY to "01234567890123456789ABCDEF" (128 bit).
DWORD dwVal = P_AUTH_OPEN;
BHT_RF_SetParamInt (P_INT_AUTHENTICATE, &dwVal, sizeof(dwVal));
DWORD dwVal = P_ENCRYPT_WEP;
BHT_RF_SetParamInt (P_INT_ENCRYPTION, &dwVal, sizeof(dwVal));
DWORD dwVal = P_8021X_DISABLE;
BHT_RF_SetParamInt (P_INT_8021X, &dwVal, sizeof(dwVal));
BHT_RF_SetParamStr (P_STR_WEPKEY1,
TEXT(“01234567890123456789ABCDEF”),26);
Parameter List
Parameter
Type
R/W
Parameter value
P_PWRSAVE_CAM
Power mode
DW
R/W
Radio mode
DW
R/W
Authentication
method
DW
R/W
Encryption
DW
R/W
DW
R/W
DW
DW
R/W
R/W
WEP Key 1
WCS
W
Pre Shared Key
WCS
W
Version
MAC address
WCS
WCS
R
R
802.1x
Encryption
(EAP type)
Profile priority
Index Key
P_PWRSAVE_PSP
: High power
consumption
: Low power
consumption
: 802.11a
: 802.11b
P_RADIOMODE_11A
P_RADIOMODE_11B
P_RADIOMODE_11B |
P_RADIOMODE_11G
: 802.11b/g
P_AUTH_OPEN
: Open
P_AUTH_SHARED
: Shared
P_AUTH_WPA
: WPA
P_AUTH_WPAPSK
: WPA PSK
P_AUTH_WPA2
: WPA2
P_AUTH_WPA2PSK
: WPA2 PSK
P_ENCRYPT_DISABLE : Prohibited
P_ENCRYPT_WEP
: WEP
P_ENCRYPT_TKIP
: TKIP
P_ENCRYPT_AES
: AES
P_8021X_DISABLE
: Prohibited
P_8021X_PEAP
: PEAP
P_8021X_TLS
: TLS
1 (high) to 16 (low)
1 to 4
26-character hexadecimal notation
character string (128 bit)
10-character hexadecimal notation
character string (40 bit)
8 to 63-character ASCII character string
64-character hexadecimal notation
character string
-
Default
P_PWRSAVE_PSP
P_RADIOMODE_11B
P_AUTH_OPEN
P_ENCRYPT_DISABLE
P_8021X_DISABLE
1
1
TEXT(“”)
TEXT(“”)
TEXT("00.00.00.00.00.00")
Note that if you use BHT_RF_GetParamInt function for getting a value, the value preset by the
BHT_RF_SetParamInt function will be obtained.
35
12.2.2. Opening and Closing the Wireless Communications Device
Use the BHT_RF_Open and BHT_RF_OpenEx functions to start up the wireless communication device
and permit wireless communication.
Use the BHT_RF_Close and BHT_RF_CloseEx functions to stop the wireless communication device and
prohibit wireless communication.
Use the BHT_RF_OpenEx (DWORD dwOpt) and BHT_RF_CloseEx (DWORD dwOpt) functions to
perform wireless communication in the following communication formats.
Settable Value
COMM_NORMAL
COMM_CONTINUOUS
Details
Wireless communication
open
Wireless communication
continuously open
The following diagram illustrates the wireless communication device status transmission.
2
4
Wireless
communication
device stopped
2
4
2
1
1
3
Wireless
communication
continuously
open
Wireless
communication
open
3
1
4
3
4
Wireless
communication open
& wireless
communication
continuously open
3
2
1
1
BHT_RF_Open() (*1)
2
BHT_RF_Close() (*2)
3
BHT_RF_OpenEx(COMM_CONTINUOUS)
4
BHT_RF_CloseEx(COMM_CONTINUOUS)
(*1) Includes BHT_RF_OpenEx(COMM_NORMAL)
(*1) Includes BHT_RF_OpenEx(COMM_NORMAL)
36
12.2.3. Checking Synchronization with the Access Point
When performing data communication with a wireless communication device, use the
BHT_RF_Synchronize function to check whether synchronization with the access point has been
obtained.
The following is a list of possible reasons why it may not be possible to obtain synchronization with the
access point.
(1) The wireless communication device is currently open.
Several seconds are required to obtain synchronization with the access point after opening the
wireless communication device.
Furthermore, when using DHCP, there are times when several tens of seconds are required to
obtain the IP after connecting to the network.
(2) When the wireless device is moved from the current access point to the next access point during
roaming
(3) When the wireless device is moved outside the radio-wave area covered by the access point.
(4) When the wireless device is moved to a location where an obstruction prevents wireless
communication with the access point.
37
Chapter 13. Barcode Reading
13.1. Outline
13.1.1. Enable Reading
BHT-700B
The BHT_EnableBar function enables the barcode device to read barcodes. In this function, you may
specify the following barcode types available in the BHT. The BHT can handle one of them or their
combination.
Available Barcode Type
Default Setting
Universal product codes
EAN-13 (*1) (JAN-13 (*1))
No national flag specified.
EAN-8 (JAN-8)
UPC-A (*1), UPC-E
No length of read data specified.
Interleaved 2of5 (ITF)
No check digit.
Standard 2of5 (STF)
No length of read data specified.
No check digit.
Short format of the start/stop characters supported.
Codabar (NW-7)
No length of read data specified.
No check digit.
No start/stop character.
Code 39
No length of read data specified.
No check digit.
Code 93
No length of read data specified.
Code 128 (EAN-128) (*2)
No length of read data specified.
Interleaved 2of5 (ITF)
No length of read data specified.
No check digit.
RSS
Nothing specified.
(*1) Reading wide bars
EAN-13 and UPC-A barcodes may be wider than the readable area of the barcode reading window.
Such wider bars can be read by long-distance scanning. Pull the barcode reading window away from
the barcode so that the entire barcode comes into the illumination range.
(*2) Specifying Code 128 makes it possible to read not only Code 128 but also EAN-128.
38
BHT-700Q
The BHT_EnableBar function enables the barcode device to read barcodes. In this function, you may
specify the following barcode types available in the BHT. The BHT can handle one of them or their
combination.
Available Barcode Type
Default Setting
2D codes
Not specified: Model 1, Model 2, Micro QR code, code version
QR code
No split code scanning
PDF417
PDF417, MicroPDF417
MaxiCode
Nothing specified
Data Matrix
Square Data Matrix, Rectangular Data Matrix
Not specified: code no.
EAN·UCC Composite
Nothing specified
1D codes
EAN-13 (*1) (JAN-13( *1))
EAN-8 (JAN-8)
UPC-A *1, UPC-E
Interleaved 2of5 (ITF)
CODABAR (NW-7)
CODE-39
CODE-93
CODE-128 (EAN-128)(*2)
RSS
No country flag specified
No length of read data specified
No check digit
No length of read data specified
No check digit
No start/stop character
No length of read data specified
No check digit
No start/stop character
No length of read data specified
No check digit
No length of read data specified
No length of read data specified
Nothing specified
(*1) Reading wide bars
EAN-13 and UPC-A barcodes may be wider than the readable area of the barcode
reading window.Such wider bars can be read by long-distance scanning. Pull the
barcode reading window away from the barcode so that the entire barcode comes into
the illumination range.
(*2) Specifying Code 128 makes it possible to read not only Code 128 but also EAN-128.
39
13.1.2. Specify Options in the BHT_EnableBar Function
You may also specify several options as listed below for each of the barcode types in the
BHT_EnableBar function.
BHT-700B
Barcode type
Options
Universal product code Initial (country flag)
add-on code
Interleaved 2of5 (ITF) Length of read data
Check digit
CODABAR (NW-7)
Length of read data
Start/stop character
Check digit
Code 39
Length of read data
Check digit
Code 93
Length of read data
Code 128
Length of read data
Standard 2of5(STF)
Length of read data
Start/stop character
Check digit
MSI
1-digit check digit
2-digit check digit
RSS
Nothing specified.
BHT-700Q
Barcode type
2D codes
Options
QR
Model
Code version
Split code scanning
Code
PDF417
MaxiCode
Data Matrix
EAN·UCC Composite
Nothing specified
Code
Code no.
Nothing specified
1D codes
Universal product code Initial (country flag)
add-on code
Interleaved 2of5 (ITF) Length of read data
Check digit
CODABAR (NW-7)
Length of read data
Start/stop character
Check digit
Code 39
Length of read data
Check digit
Code 93
Length of read data
Code 128
Length of read data
RSS
Nothing specified
40
13.1.3. Barcode Buffer
The barcode buffer stores the inputted barcode data.
BHT-700B
The barcode buffer will be occupied by one operator entry job and can contain up to 99 characters.
BHT-700Q
The barcode buffer will be occupied by one operator entry job and can contain up to 99 bytes in barcode
or 8,192 bytes in 2D code (1 kanji character equals 2 bytes).
You can check whether the barcode buffer stores code data, by using the BHT_GetBarNum function. To
read barcode data stored in the barcode buffer, use the BHT_ReadBar/BHT_ReadBarEx function.
41
13.2. Programming
13.2.1. Code Mark
The BHT_GetBarType function allows you to check the code mark (denoting the code type) and the
length of the inputted barcode data.
13.2.2. Multiple Code Reading
You may activate the multiple code reading feature which reads more than one code type while
automatically identifying them. To do it, you should designate desired code types in the read code
parameter of the BHT_EnableBar function.
13.2.3. Read Mode of the Trigger Switch
The trigger switch function is assigned to the [SCAN] key and the magic key M3 by default. You may
assign the trigger switch function to other keys by using the BHT_SysSettingDW function.
You may select the read mode of the trigger switch by using the BHT_EnableBar function as listed below.
Read Mode
BHT_EnableBar Function
Auto-off Mode
Momentary Switching Mode
Alternate Switching Mode
Continuous Reading Mode
BHT_EnableBar (TEXT ("F…
BHT_EnableBar (TEXT ("M…
BHT_EnableBar (TEXT ("A…
BHT_EnableBar (TEXT ("C…
To check whether the trigger switch is pressed or not, use the BHT_WaitEvent function as shown below.
BHT_WaitEvent (1, BHT_EVT_MASK_TRGDOWN, 0, &dwSignaledEvent);
if ( (dwSignaledEvent & BHT_EVT_MASK_TRGDOWN) != 0 ) {
printf("Trigger switch pressed ");
}
13.2.4. Generating a Check Digit of Barcode Data
Specifying a check digit in the BHT_EnableBar function makes the Interpreter automatically check
barcodes. If necessary, you may use the BHT_GetBarChkdgt function for generating a check digit of
barcode data.
42
13.2.5. Controlling the Indicator LED and Beeper/Vibrator as a Confirmation of Successful Reading
By using the BHT_EnableBar function, you can control:
- whether the indicator LED should light in blue or not (Default: Light in blue)
- whether the beeper should beep or not (Default: No beep)
when a barcode is read successfully. For detailed specifications, refer to the description for the
BHT_EnableBar function.
It is also possible to operate the vibrator as a confirmation of successful reading instead, by using the
BHT_SetSysSettingDW (BHT_BEEP_VIB_SELECT, VIB_SELECT) function.
(1) Controlling the indicator LED
If you have activated the indicator LED (blue) in the BHT_EnableBar function, an application cannot
control the LED.
If you have deactivated the indicator LED (blue) in the BHT_EnableBar function, an application can
control the LED even when the barcode device file is opened.
This way, you can control the indicator LED, enabling that:
•
a user program can check the value of a scanned barcode and turn on the indicator LED in blue
when the barcode has been read successfully.
•
a user program can turn on the indicator LED in red the moment the barcode has been read.
(2) Controlling the beeper and vibrator
If you have activated the beeper in the BHT_EnableBar function, the BHT will beep when it reads a
barcode successfully.
You may select beeping only, vibrating only, or beeping & vibrating by setting on the system menu
(BhtShell.exe) or by setting the output port in the BHT_SetSysSettingDW(BHT_BEEP_VIB_SELECT,...).
This feature is used to sound the beeper or operate the vibrator the moment the BHT reads a barcode
successfully.
13.2.6. Reading Split QR Codes (Only for BHT-700Q)
The QR Code symbology can split data into a maximum of 16 blocks and encodes each of them into a
split code image. When those split code images are scanned, the splitter system restores them into the
oritinal data string in any of the following three modes--edit mode, batch edit mode, and non-edit mode.
These modes can be specified by BHT_EnableBar as follows:
Split code scanning mode
BHT_EnableBar function
Edit mode
BHT_EnableBar(…, TEXT("Q : E"))
Batch edit mode
BHT_EnableBar(…, TEXT("Q : B"))
Non-edit mode
BHT_EnableBar(…, TEXT("Q : C"))
In edit mode, after completion of reading all split code images, the splitter system stores the read data
into the code buffer. In batch edit mode, when all split code images that fall within the scanning range are
read, the splitter system stores the read data into the code buffer. In non-edit mode, each time a single
split code image is read, the splitter system stores the read data into the code buffer.
The code type which is acquired by the BHT_GetBarType function and the BHT_GetBarInfo function is
“Q” in edit mode and batch edit mode or “S” in non-edit mode.
43
NOTE: In the Point Scan mode, scanning split codes in batch edit mode is disabled. (For details about
the Point Scan mode, refer to the “BHT-700BB/700BWB/700BWBG-CE User's Manual” or "BHT700QWBG-CE User's Manual").
13.3. Barcode Reading Using the Virtual COM Port
13.3.1. Outline
Barcode reading using the virtual COM port is supported on the BHT-700 series.
For greater convenience, this function is available for use in conjunction with kbifCE. For more
information on kbifCE, see the kbifCE user's guide (available for download on the DENSOWAVE QBNet
website).
Using this function it is possible to obtain reading data as if it were being received through a COM port.
For applications, it is equivalent to a reader being connected to the communication port (COMx). Using
COM, barcode reading data can be used by multiple applications.
13.3.2. Programming
Port number 5 is allocated to the virtual COM port used for barcode reading.
Barcode reading mode and the types of barcodes that are allowed to be read are designated by the
kbifCE.
A comparison of the functions of Win32 API when using a general COM port and a virtual COM port for
barcode use is as follows:
Win32 API
General COM
Virtual COM used for reading
CreateFile
Open COM port
←
CloseHandle
Close COM port
←
ReadFile
Read received data
Read data
GetCommMask
Obtain type of wait event
←
SetCommMask
Set type of wait event
←
Treat completed reading event as
receiving event.Non-reading events
invalid.(*1)
GetCommTimeouts Obtain timeout value
←
SetCommTimeouts Set timeout value
←
Non-receiver side timeouts invalid.(*1)
WaitCommEvent
Wait for event
←
Non-receiving events invalid.
(*1) An error will not occur.
The following functions are not supported. If operation is attempted, no function will be executed.
List of functions not yet supported
WriteFile
GetCommModemStatus SetCommBreak
ClearCommBreak
GetCommProperties
SetCommState
ClearCommError
GetCommState
SetupComm
EscapeCommFunction
PurgeComm
TransmitComm
13.3.3. How to Use
Start up kbifCE and set the destination for the virtual COM port (for further details see the kbifCE user's
guide).
44
Chapter 14. Updating OS
The OS can be updated (version update) using the following method when running Windows CE.
(1) Copy the OS image file to an arbitrary folder.
(2) Execute the BHT_SystemModify function.
For the 1st argument, specify the absolute path to the folder in which the OS image file was stored,
and for the 2nd argument, specify whether to turn OFF the power or perform a cold boot after
updating the OS.
(For example) Update OS image file named “_B7BWDW0.SY3” stored in “\temp\” folder and
perform a cold boot after updating OS
DWORD dwRtn;
dwRtn = BHT_SystemModify(TEXT(\\Temp\\_B7BWDW0.SY3), SYSMDFY_REBOOT);
(3) Following display is shown during updating OS.
(checking OS image)
(writing OS image)
(4) After the OS has been successfully updated, the BHT-700 power will either be turned OFF or will
cold boot depending on the setting made for the 2nd argument.
45
Chapter 15. System Functions
System functions are used when setting or acquiring system values or when acquiring device information.
Function
Used to:
BHT_SetSysSettingDW
Write system parameter values (DWORD).
BHT_GetSysSettingDW Read system parameter values (DWORD).
BHT_SetSysSettingWCS Write system parameter values (character string).
BHT_GetSysSettingWCS Read system parameter values (character string).
BHT_GetDeviceInfo
Device information acquisition
46
15.1. If a System Parameter Value is DWORD
BHT_SetSysSettingDW
Description
Write system parameter values.
Syntax
DWORD BHT_SetSysSettingDW (
DWORD dwCtrlCode ,
DWORD dwSysParam )
Parameters
dwCtrlCode
[in] Control code
dwSysParam
[in] Parameter value
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Invalid parameter
ERROR_GEN_FAILURE
Not supported
47
BHT_GetSysSettingDW
Description
Read system parameter values.
Syntax
DWORD BHT_GetSysSettingDW (
DWORD dwCtrlCode ,
DWORD* pdwSysParam )
Parameters
dwCtrlCode
[in] Control code
pdwSysParam
[out] Address for storing the parameter value
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_GEN_FAILURE
Not supported
ERROR_INVALID_PARAMETER No storage address specified
48
15.2. If a System Parameter Value is a Character String
BHT_SetSysSettingWCS
Description
Write system parameter values.
Syntax
DWORD BHT_SetSysSettingWCS (
DWORD dwCtrlCode ,
TCHAR* pwchSysParam ,
DWORD dwLen )
Parameters
dwCtrlCode
[in] Control code
pwchSysParam
[in] Heading address of the storage buffer for a string written
dwLen
[in] String length
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Invalid parameter
ERROR_GEN_FAILURE
Not supported
49
BHT_GetSysSettingWCS
Description
Read system parameter values.
Syntax
DWORD BHT_GetSysSettingWCS (
DWORD dwCtrlCode ,
TCHAR* pwchSysParam ,
DWORD dwLen ,
DWORD* pdwLenReturned )
Parameters
dwCtrlCode
[in] Control code
pwchSysParam
[out] Heading address of the storage buffer for a string read
dwLen
[in] String length
pdwLenReturned
[out] Length of the string read out
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_GEN_FAILURE
Not supported
ERROR_INVALID_PARAMETER No storage address specified
50
15.3. System Parameter Values That Can be Set/Obtained
Parameter name
Type
R/W
WCS
R
DW
R
DW
R
WCS
R
WCS
R
WCS
R/W
Waiting time to switch to
standby mode (in units
of 100 ms)
Waiting time to auto
power OFF when
powered by battery
(sec.)
Waiting time to auto
power OFF when placed
on CU (sec.)
CPU clock (*2)
DW
R/W
DW
R/W
BHT_PM
_BATTPOWEROFF
DW
R/W
BHT_PM
_EXTPOWEROFF
DW
R/W
BHT_PM
_CPU_CLOCK
Auto Power OFF
permitted when wireless
connection open
DW
R/W
Rumble device
DW
R/W
Beeper volume
DW
R/W
Key click volume
DW
R/W
Screen tap volume
DW
R/W
Trigger switch clicks(*3)
DW
R/W
System version
(4 characters)
Total RAM size
(bytes)(*1)
Total ROM size
(bytes) (*1)
Model name
(8 characters)
Product number
(16 characters)
Serial number
(6 characters)
Control code
Parameter value
System information related
BHT_SYS_OS
_VERSION
BHT_SYS
_RAMSIZE
BHT_SYS
_ROMSIZE
BHT_SYS
_MACHINE_NAME
BHT_SYS
_MACHINE_NUMBER
BHT_SYS
6-digit number
_SERIAL_NUMBER
Validating
timing
-
-
-
-
-
-
-
-
-
-
Lower 6 characters in
the code printed on the
back of the BHT
Immediately
after setting
10 (1 sec)
Immediately
after setting
0: Disable
1 to 0xFFFFFFFF
180 (3 min)
Immediately
after setting
0: Disable
1 to 0xFFFFFFFF
0
Immediately
after setting
CPU_CLK_NORMAL
When warmbooting after
setting
SUSPEND_ENABLE
Immediately
after setting
BEEP_SELECT
first sound
after setting
5
first sound
after setting
2
first sound
after setting
2
first sound
after setting
CLICK_SOUND_OFF
first sound
after setting
Power management related
BHT_PM_STBYTIME
0: Disable
1 to 255
CPU_CLK_NORMAL
: Regular speed
CPU_CLK_FAST
: High speed
BHT_PM_SUSPEND
SUSPEND_DISABLE
_RF
: Suspend prohibeted
SUSPEND_ENABLE
: Suspend permitted
Beeper and vibrator related
BHT_BEEP_VIB
BEEP_SELECT
_SELECT
: Beeper
VIB_SELECT
: Vibrator
(BEEP_SELECT
| VIB_SELECT)
: Beeper and vibrator
BHT_BEEP_VIB
0:OFF
_VOLUME
1 (lowest)
to 5 (highest)
BHT_BEEP_VIB_KEY
0: OFF
1: Soft
2: Loud
BHT_BEEP_VIB_TAP
0: OFF
1: Soft
2: Loud
BHT_BEEP_VIB
CLICK_SOUND_OFF
_TRGKEY
: Prohibit
CLICK_SOUND_ON
: Allow
51
Default
Parameter name
Type
R/W
Backlight ON-duration
(sec.)
(When battery- driven)
DW
R/W
Backlight ON-duration
(sec.)
(When placed on the
CU)
Control key
DW
R/W
DW
R/W
Backlight brightness
level
DW
R/W
Backlight power saving
mode
DW
Illumination device
selection when backlight
illumination specified
from API
Control code
Parameter value
Backlight related
BHT_BACKLIGHT
0 - 255
_BATT_TIME
0: Backlight OFF
255: Backlight continuously
ON
BHT_BACKLIGHT
0 - 255
_AC_TIME
0: Backlight OFF
255: Backlight continuously
ON
Default
3
When backlight
illumination timer
is next reset
60
When backlight
illumination timer
is next reset
0x10203
([SF]+[M3])
3
Immediately
after setting
When the
backlight is next
turned ON
When backlight
illumination
status is set to
power saving
mode first after
setting
Immediately
after setting,
when
BHT_SetBltStatu
s next called
BHT_BACKLIGHT
_KEY
BHT_BACKLIGHT
_BRIGHTNESS
Key number
R/W
BHT_BACKLIGHT
_POWERSAVE
0: OFF
1: Dim
1
DW
R/W
BHT_BACKLIGHT
_DEVICE
LIGHTING_LCD
Key backlight
illumination trigger
DW
R/W
BHT_BACKLIGHT
_FACTOR
0: None
LIGHTING_LCD
:LCD
LIGHTING_KEY
:KEY
LIGHTING_LCD |
LIGHTING_KEY
: Both LCD and key
0: Always OFF
BHT_BLT_KEY_FACTOR_
KEY
: Key-press
BHT_BLT_KEY_FACTOR_
KEYTAP
: Both key-press and tap
Re-read prevention
enabled time (in units of
100 ms)
Black-and-white inverted
label
reading function
DW
R/W
DW
Decode level
0: OFF
1: Dark – 3: Bright
Validating
timing
BHT_BLT_KEY_
FACTOR_KEY
Immediately
after setting, first
tap or key press
when
"BHT_BLT_KEY
_FACTOR_KEY"
or
"BHT_BLT_KEY
_FACTOR_KEY
TAP"
Barcode reading related
BHT_BAR_CRTIME
0 to 255 (*4)
10
Immediately
after setting
R/W
BHT_BAR_INVERT
0
Immediately
after setting
DW
R/W
BHT_BAR_DCD
_LEVEL
BHT-700B
0: Prohibit
1: Allow (automatic)
BHT-700Q
0: Disable
1. Enable (black-and-white
inversion only)
2: Allow (automatic)
1 to 9
4
Min. number of digits to
be read for ITF
DW
R/W
BHT_BAR_MINDGT
_ITF
2 to 20
4
Min. number of digits to
be read for STF (*5)
DW
R/W
BHT_BAR_MINDGT
_STF
1 to 20
3
Min. number of digits to
be read for Codabar
(CODABAR)
DW
R/W
BHT_BAR_MINDGT
_NW7
3 to 20
4
When the
barcode device
is opened first
after setting
When the
barcode device
is opened first
after setting
When the
barcode device
is opened first
after setting
When the
barcode device
is opened first
after setting
52
Scanning range marker
(*6)
DW
R/W
BHT_BAR_MARKER
MARKER_NORMAL
: Normal mode
MARKER_AHEAD
: Maker ahead
MARKER_DISABLE
: Fixed to OFF
53
MARKER
_NORMAL
Immediately
after setting
Parameter name
Type
R/W
Control code
Parameter value
Front-back inverted
reading (*6)
Scan mode (*6)
DW
R/W
BHT_BAR_REVERSE
DW
R/W
Option data (*6)
DW
R/W
Ilumination mode (*6)
DW
R/W
Shift key mode
DW
R/W
Assignment to M1 key
DW
R/W
Assignment to M2 key
DW
R/W
Assignment to M3 key
DW
R/W
Key entry mode
DW
R/W
Enable/disable alphabet
entry switching key
DW
R/W
Function mode
DW
R/W
Effective held-down time
of power key for
suspending
(in units of 100 ms)
Keypad type
DW
R/W
DW
R
0: Disable
1: Enable
BHT_BAR_SCAN
SCAN_MODE_NORMAL
_MODE
: Normal mode
SCAN_MODE_POINT
: Point scan mode
SCAN_MODE_1D
:Barcode reader mode
BHT_BAR_OPTION
0: There is option data.
_DATA
1: No option data
BHT_BAR_LIGHT_MO 0:AUTO
1: Always ON
DE
2: Always OFF
Keyboard related
BHT_KEY_SHIFT
KEY_NON_LOCK
_MODE
: Non-lock
KEY_ONE_TIME
: Onetime lock
BHT_KEY
MAGIC_FUNC_NONE
_M1_MODE
: Ignore the depressed key
MAGIC_FUNC_ENTER
: Treat as ENT key
MAGIC_FUNC_TRG
: Treat as trigger switch
MAGIC_FUNC_SHIFT
: Treat as SF key
BHT_KEY
MAGIC_FUNC_ALT
_M2_MODE
: Treat as ALT key
MAGIC_FUNC_CTRL
: Treat as CTRL key
MAGIC_FUNC_BLT
: Treat as bacjlight function
on/off key
MAGIC_FUNC_TAB
BHT_KEY
: Treat as TAB key
_M3_MODE
MAGIC_FUNC_CLEAR
: Treat as CLEAR key
MAGIC_FUNC_USERDEF
: User-defined code
BHT_KEY
INPUT_METHOD
_INPUT_METHOD
_NUMERIC
: Numeric entry mode
INPUT_METHOD
_ALPHABET2
: Alphabet entry mode 2
BHT_DISABLE
ENABLE_KEY
_KEYMODE
_TOCHANGE
_CHANGE_KEY
_ALPHABET
: Enable
DISABLE_KEY
_TOCHANGE
_ALPHABET
: Disable
BHT_KEY
KEY_FUNCTION_ON
_FUNCTION
: Function mode
KEY_FUNCTION_OFF
: Non-function mode
BHT_PWRDOWN
1 - 255
_KEY_WAIT_TIME
BHT_KEYBOARD
_TYPE
KEYBOARD_TYPE1
: 27-key pad
KEYBOARD_TYPE2
/ KEYBOARD_TYPE2P
: 42-key pad
54
Default
0
SCAN_MODE_
NORMAL
Validating
timing
Immediately
after setting
When the
barcode device
is opened first
after setting
0
Immediately
after setting
1
Immediately
after setting
KEY_NON
_LOCK
Immediately
after setting
MAGIC_FUNC
_TAB
Immediately after
setting
MAGIC_FUNC
_NONE
Immediately after
setting
MAGIC_FUNC
_TRG
Immediately after
setting
27-key type:
INPUT_METHO
D_NUMERIC
42-key type:
INPUT_METHO
D_ALPHABET
ENABLE_KEY
_TOCHANGE
_ALPHABET
Immediately after
setting
KEY
_FUNCTION
_OFF
Immediately after
setting
Immediately after
setting
5
Immediately after
setting
-
-
Parameter name
Battery voltage level
icon
Software keyboard
icon
Keypad shift icon
Type
R/W
Control code
Parameter value
Status indicator related
BHT_ICON
0: Hide
_BATTERY
1: Display
BHT_ICON_SIP
0: Hide
1: Display
BHT_ICON
0: Hide
_SHIFTKEY
1: Display
Default
DW
R/W
DW
R/W
DW
R/W
Alphabet input icon
(27-key type only)
DW
R/W
BHT_ICON
_IN_ALPHA
0: Hide
1: Display
1
Wireless
communication state
icon
DW
R/W
BHT_ICON
_RADIO_INTEN
SE
0: Hide
1: Display
1
Standby state icon
DW
R/W
BHT_ICON
_STANDBY
0: Hide
1: Display
0
Function mode state
icon
DW
R/W
BHT_ICON_FU
NC
0: Hide
1: Display
1
Numeric entry mode
icon (42-key type only)
DW
R/W
BHT_ICON_NU
MERIC
0: Hide
1: Display
1
Bluetooth power status
DW
R/W
ActiveSync automatic
connection
DW
R/W
BHT_ICON
0: Hide
_BLUETOOTH
1: Display
Communication related
BHT_ACTSYNC
ACTSYNC_AUTOCNCT
_AUTOCNCT
_DISABLE
: Prohibited
ACTSYNC_AUTOCNCT
_USB
: Only USB allowed
55
Validating timing
1
Immediately after setting
1
Immediately after setting
1
The icon appears when the
keypad is shifted first after
this parameter is set to "1."
(If the keypad has been
shifted, the icon appears
immediately.)
It disappears when the shift
is released first after this
parameter is set to "0."
The icon appears when the
alphabet input function is
activated first after this
parameter is set to "1."
It disappears when the
alphabet input function is
deactivated first after this
parameter is set to "0."
The icon appears when the
wireless device is opened
first after this parameter is
set to "1." (If the wireless
device has been opened, the
icon appears immediately.)
It disappears immediately
after this parameter is set to
"0."
The icon appears when the
CPU comes to be on
standby first after this
parameter is set to "1." It
disappears immediately after
this parameter is set to "0."
The icon appears when the
function mode is activated
first after this parameter is
set to "1."
It disappears when the
function mode is deactivated
first after this parameter is
set to "0."
The icon appears when the
numeric entry mode is
activated first after this
parameter is set to "1." It
disappears when the
numeric entry mode is
deactivated first after this
parameter is set to "0."
Immediately after setting
0
ACTSYNC
_AUTOCNCT
_USB
After setting, when the USB
cable or RS232C cable is
first inserted, or when the
CU421 is installed.
Parameter name
Type
R/W
Screen rotation
DW
R/W
Screen rotation control
key
DW
R/W
Touch screen disabling
DW
R/W
Bluetooth device initial
power status
DW
R/W
Voice output from
receiver
DW
R/W
Control code
Parameter value
Display related
BHT_DISP
DISP_ROTATION_0
_ROTATION
: 0°
DISP_ROTATION_90
: 90°
DISP_ROTATION_180
: 180°
DISP_ROTATION_270
: 270°
BHT_DISP
Key no.
_ROTATION_KEY
Touch screen related
BHT_TOUCH
TOUCH_ENABLE
_DEVICE
: Enable
TOUCH_DISABLE
: Disable
Bluetooth related
BHT_BT_INITIAL_
BHT_BT_POWER_OFF
POWER_STATUS
: Power OFF
BHT_BT_POWER_ON
: Power ON
Audio related
BHT_AUDIO_OUT_RCV
BHT_AUDIO_OUT
_DISABLE
_RCV
: Disable
BHT_AUDIO_OUT_RCV
_ENABLE
: Enable
Default
Validating timing
DISP
_ROTATION_0
Immediately
after setting
None
Immediately
after setting
TOUCH_ENABLE
Immediately
after setting
BHT_BT
_POWER_OFF
Immediately
after setting
BHT_AUDIO_OUT_
RCV_DISABLE
Immediately
after setting
(*1) The RAM or ROM size obtained indicates the capacity of the memory mounted on the BHT. To obtain t
he size of the memory area allowed for the user to use, use GetDiskFreeSpaceEx.
(*2) If the CPU clock is set to high speed, the processing speed becomes higher but the power
consumption Increases.
(*3) This parameter controls the on/off of the click sound of the magic key which the trigger switch is
assigned to. If it is set to ON, pressing the magic key clicks at the volume specified by the "Key clock
volume."
(*4) If this parameter is set to "0," the BHT no longer reads the same barcode in succession.
(*5) Only for BHT-700B
(*6) Only for BHT-700Q
56
15.4. Device Information Acquisition
BHT_GetDeviceInfo
Description
Acquires the mounted device information.
Syntax
DWORD BHT_GetDeviceInfo(
DWORD dwDevice,
DWORD* pdwDevInfo,
LPVOID pvExtInfo )
Parameters
dwDevice
[in] Type of the device for which information is being acquired
pdwDevInfo
[out] Device information storage location
pdwDevInfo
[out] Extension information storage location
Return Value
Error Code
ERROR_SUCCESS
ERROR_INVALID_PARAMETER
Meaning
Successful completion
Parameter error
Device Type
Read device
dwDevice
BHT_DEV_SCANNER
Communication device
BHT_DEV_COM
ActiveSync device
BHT_DEV_ACTSYNC
57
*pdwDevInfo
Either of the following :
SCANNER_1DIM
:1D
SCANNER_2DIM
:2D
The following combinations:
COMDEV_SERIAL
:RS-232C
COMDEV_INFRARED :Infrared Port
COMDEV_USB
:USB
COMDEV_RF
:Wireless
COMDEV_BLUETOOTH
:Bluetooth
COMDEV_GPRS
:GPRS
The following combinations:
ACTSYNC_SERIAL :RS-232C
ACTSYNC_INFRARED
:Infrared Port
ACTSYNC_USB
:USB
ACTSYNC_RF
:Wireless
Chapter 16. Device Control Functions
The device control functions listed below control the devices (barcode reading device, backlight, battery,
indicator LED, etc.) dedicated to the BHT.
Function
BHT_EnableBar
BHT_DisableBar
BHT_ReadBar
BHT_ReadBarEx
BHT_GetBarType
BHT_GetBarNum
BHT_GetBarInfo
BHT_GetBarChkDgt
BHT_BAR_SetDecodeOptions
BHT_BAR_GetDecodeOptions
BHT_SetBltStatus
BHT_GetBltStatus
BHT_GetPowerStatus
BHT_GetPowerStatus2nd
BHT_GetNLedStatus
BHT_SetNLedStatus
BHT_GetNLedStatusEx
BHT_SetNLedOn
BHT_SetNLedOff
BHT_StartBeep
BHT_StartBeeperOnly
BHT_StartVibrationOnly
Used to:
Open the barcode device file to enable barcode reading. This function
specifies the read mode and readable barcode types.
Close the barcode device file to disable barcode reading.
Read out data read from the barcode buffer.
Read out data from the barcode buffer and encodes it into the specified
data format.
Read the barcode type and the number of digits of a barcode read most
recently.
Read the number of digits of the barcode remaining in the barcode buffer.
Read the information on the code read most recently.
Calculate a check digit (CD) of the barcode data according to the
calculation method specified by dwCDType.
Sets the editing function setting value for the decoded result.
Acquires the editing function setting value for the decoded result.
Control the backlight.
Read the backlight status.
Read information about the battery loaded in the BHT body.
Read information about the battery loaded in the grip.
Read the status of the indicator LED.
Control the indicator LED.
Read the status of the indicator LED and synchronization LED.
Turn on the indicator LED and/or synchronization LED.
Turn off the indicator LED and/or synchronization LED.
Drive the beeper/vibrator.
Drive the beeper.
Drive the vibrator.
58
Function
BHT_RF_Open
BHT_RF_OpenEx
BHT_RF_Close
BHT_RF_CloseEx
BHT_RF_Synchronize
BHT_RF_GetParamInt
BHT_RF_SetParamInt
BHT_RF_GetParamStr
BHT_RF_SetParamStr
BHT_RF_GetInfoInt
BHT_RF_GetInfoStr
BHT_RF_IoControl
BHT_RF_GetSiteSurvey
BHT_SystemModify
BHT_WaitEvent
BHT_WaitStandbyEvent
BHT_ShutdownSystem
BHT_RegStore
Used to:
Open the wireless LAN device and enable wireless communication.
Set the communication format, open the wireless LAN device and enable
wireless communication.
Close the wireless LAN device and disable wireless communication.
Close the wireless LAN device for the set format and disable wireless
communication.
Get the association status.
Read integer from the wireless communications parameter.
Write integer to the wireless communications parameter.
Read string from the wireless communications parameter.
Write string to the wireless communications parameter.
Read integer from the communications parameter.
Read string to the communications parameter.
Perform operation for the profile and certificate etc.
Get quality of the communications link.
Update the BHT OS.
Make the system wait until the specified event or timeout occurs.
Make the system wait until the specified event occurs.
Turn off the BHT and boot it according to the specified mode.
Turn off the BHT and boot it according to the specified mode.
59
16.1. Barcode API
BHT_EnableBar
Description
Open the barcode device file to enable barcode reading.
This function specifies the read mode and readable barcode types. Up to eight barcode types can be
specified.
Syntax
DWORD BHT_EnableBar (
TCHAR* pwchRdMode ,
TCHAR* pwchCdParam )
Parameters
pwchRdMode
[in] Heading address of the storage buffer for a character string specifying the read mode,
beeper/vibrator on/off, and LED on/off
pwchCdParam
[in] Heading address of the storage buffer for a character string specifying barcode types to be read
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_TOO_MANY_OPEN_FILES Barcode device file already opened.
ERROR_INVALID_PARAMETER
Parameter error. More than 24 barcode types are specified.
Comment:
Up to 24 barcode types can be specified.
BHT-700Q:
The maximum code version for QR Code, the maximum code number for Data Matrix, and the
maximum number of digits for barcodes are limited by the readable range.
60
■ Readmode
The BHT supports four read modes--the momentary switching mode, the auto-off mode, the alternate
switching mode, and the continuous reading mode, which can be selected by specifying M, F, A, and C to
readmode, respectively.
□ Momentary switching mode (M)
Only when you hold down the trigger switch, the illumination LED lights and the BHT can read a
barcode.
Until the entered barcode data is read out from the barcode buffer, pressing the trigger switch cannot
turn on the illumination LED so that the BHT cannot read the next barcode.
[Ex]
BHT_EnableBar (TEXT ("M"), TEXT ("A, I:4-99, M:1-99, N:3-99, L:1-99, K:1-99, H:1-99" ) )
□ Auto-off mode (F)
If you press the trigger switch, the illumination LED comes on. When you release the switch or when
the BHT completes barcode reading, then the illumination LED will go off. Holding down the trigger
switch lights the illumination LED for a maximum of 5 seconds.
While the illumination LED is on, the BHT can read a barcode until a barcode is read successfully or
the barcode devices file becomes closed.
If the illumination LED goes off after 5 seconds from when you press the trigger switch, it is necessary
to press the trigger switch again for reading a barcode.
Once a barcode is read successfully, pressing the trigger switch cannot turn on the illumination LED
and the BHT cannot read the next barcode as long as the entered barcode data is not read out from
the barcode buffer.
[Ex]
BHT_EnableBar (TEXT ("F"), TEXT ("A, I:4-99, M:1-99, N:3-99, L:1-99, K:1-99, H:1-99" ) )
□ Alternate switching mode (A)
If you press the trigger switch, the illumination LED comes on. Even if you release the switch, the
illumination LED remains on until the barcode device file becomes closed or you press that switch
again. While the illumination LED is on, the BHT can read a barcode.
Pressing the trigger switch toggles the illumination LED on and off.
Once a barcode is read successfully, pressing the trigger switch turns on the illumination LED but the
BHT cannot read the next barcode as long as the entered barcode data is not read out from the
barcode buffer.
[Ex]
BHT_EnableBar (TEXT("A"), TEXT("A,I:4-99,M:1-99,N:3-99,L:1-99,K:1-99,H:1-99"))
□ Continuous reading mode (C)
If this mode is specified, the BHT turns on the illumination LED and keeps it on until the barcode device
file becomes closed, irrespective of the trigger switch.
While the illumination LED is on, the BHT can read a barcode.
Once a barcode is read successfully, the BHT cannot read the next barcode as long as the entered
barcode data is not read out from the barcode buffer.
[Ex]
BHT_EnableBar (TEXT("C"), TEXT("A,I:4-99,M:1-99,N:3-99,L:1-99,K:1-99,H:1-99"))
In the momentary switching mode, alternate switching mode, or continuous reading mode, after you
read a low-quality barcode which needs more than one second to be read, keeping applying the
barcode reading window to that barcode may re-read the same barcode in succession at intervals of
one second or more.
61
■ Beepercontrol and LEDcontrol
This function can control the beeper and the indicator LED to activate or deactivate each of them when a
barcode is read successfully. This function may also control the vibrator with beepercontrol.
- You should describe parameters of readmode, beepercontrol, and LEDcontrol without any space
inbetween.
- You should describe readmode, beepercontrol, and LEDcontrol in this sequence.
- Specifying B to beepercontrol allows you to select beeping only, vibrating only, or beeping & vibrating
according to the setting made on the BEEP/VIBRATOR menu in System Menu or the setting made
with the system function.
- Specifying L to LEDcontrol will not turn on the indicator LED.
[Ex] To sound the beeper (or operate the vibrator) when a barcode is read successfully:
BHT_EnableBar (TEXT("FB"), TEXT("A,I:4-99,M:1-99,N:3-99, L:1-99,K:1-99,H:1-99"))
[Ex] To deactivate the indicator LED when a barcode is read successfully:
BHT_EnableBar (TEXT ("FL"), TEXT ("A, I:4-99, M:1-99, N:3-99, L:1-99, K:1-99, H:1-99" ) )
■ Readcode
BHT-700B
The BHT supports the universal product codes, Interleaved 2of5 (ITF), Standard 2of5 (STF), Codabar
(NW-7), Code 39, Code 93, and Code 128, MSI, and RSS. The BHT can read also EAN-128 if Code 128
is specified.
□ Universal product codes (A)
Syntax
A [;[code][1st character [2nd character]][supplemental]]
where code is A, B, or C specifying the following:
code Barcode type
A
EAN-13 (JAN-13), UPC-A
B
EAN-8 (JAN-8)
C
UPC-E
If code is omitted, the default is all of the universal product codes.
1stchara and 2ndchara are flag characters representing a country code and should be numerals from 0
to 9. If a question mark (?) is specified to 1stchara or 2ndchara, it acts as a wild card.
“supplemental” refers to the reading of an add-on code. Specifying an S for add-on enables the BHT to
read also barcodes with an add-on code.
[Ex] To enable the BHT to scan EAN-13 with 1stchara "4," 2ndchara "9" and add-on code
BHT_EnableBar(TEXT("FL"), TEXT("A:49S"))
[Ex] To enable the BHT to scan EAN-13 and EAN-8 only
BHT_EnableBar(TEXT("FL"), TEXT("A:A,A:B"))
62
□ Interleaved 2 of 5 (ITF) (I)
Syntax
I[:[mini.no.digits[-max.no.digits]][CD]]
where
mini.no.digits and max.no.digits are the minimum and maximum numbers of digits for barcodes to be
read by the BHT, respectively.They should be a numeral from 2 to 99 and satisfy the following
conditions:
mini.no.digits ≤ max.no.digits
If both of mini.no.digits and max.no.digits are omitted, then the default reading range is from the
minimum number of digits specified in the system menu (BhtShell.exe) up to 99 digits.
If only max.no.digits is omitted, the BHT can only read the number of digits specified by mini.no.digits.
CD is a check digit. Specifying a C to CD makes the Interpreter check barcodes with MOD-10. The
check digit is included in the number of digits.
[Ex] To enable the BHT to scan ITF with min.no.digits 6, max.no.digits 10, and MOD-10
BHT_EnableBar(TEXT("FL"), TEXT("I:6-10C"))
[Ex] To enable the BHT to scan ITF with min.no.digits 6 and max.no.digits 10 or with min.no.digits 20
and max.no.digits 40
BHT_EnableBar(TEXT("FL"),TEXT("I:6-10,I:20-40"))
63
□ CODABAR (NW-7) (N)
Syntax
N[:[mini.no.digits[-max.no.digits]][startstop][CD]]
Where
mini.no.digits and max.no.digits are the minimum and maximum numbers of digits for barcodes to be
read by the BHT, respectively.They should be a numeral from 3 to 99 and satisfy the following
condition:
mini.no.digits ≤ max.no.digits
If both of mini.no.digits and max.no.digits are omitted, then the default reading range is from the
minimum number of digits specified in the system menu (BhtShell.exe) up to 99 digits.
If only max.no.digits is omitted, the BHT can only read the number of digits specified by mini.no.digits.
start and stop are the start and stop characters, respectively. Each of them should be an A, B, C, or D.
If a question mark (?) is specified, it acts as a wild card. The start and stop characters are included in
the number of digits. The A through D will be stored in the barcode buffer as a through d.
CD is a check digit. Specifying a C to CD makes the Interpreter check barcodes with MOD-16. The
check digit is included in the number of digits.
[Ex] To enable the BHT to scan NW-7 with min.no.digits 8, start character A and stop character A, and
MOD-16
BHT_EnableBar(TEXT("FL"), TEXT("N:8AAC"))
[Ex] To enable the BHT to scan NW-7 with min.no.digits 6 and max.no.digits 10 or with min.no.digits 20
and max.no.digits 40
BHT_EnableBar(TEXT("FL"),TEXT("N:6-10,N:20-40"))
64
□ CODE-39 (M)
Syntax
M[:[mini.no.digits[-max.no.digits]][CD]]
Where
mini.no.digits and max.no.digits are the minimum and maximum numbers of digits for barcodes to be
read by the BHT, respectively.They should be a numeral from 1 to 99, excluding start/stop characters.
They should satisfy the following condition:
mini.no.digits ≤ max.no.digits
If both of mini.no.digits and max.no.digits are omitted, then the default reading range is 1 to 99 digits. If
only max.no.digits is omitted, the BHT can only read the number of digits specified by mini.no.digits.
CD is a check digit. Specifying a C to CD makes the Interpreter check barcodes with MOD-43. The
check digit is included in the number of digits.
[Ex] To enable the BHT to scan Code 39 with min.no.digits 8, max.no.digits 12, and MOD-43
BHT_EnableBar(TEXT("FL"), TEXT("M:8-12C"))
[Ex] To enable the BHT to scan Code 39 with min.no.digits 6 and max.no.digits 10 or with min.no.digits
20 and max.no.digits 40
BHT_EnableBar(TEXT("FL"),TEXT("M:6-10,M:20-40"))
65
□ CODE-93 (L)
Syntax
L[:[mini.no.digits[-max.no.digits]]]
Where
mini.no.digits and max.no.digits are the minimum and maximum numbers of digits for barcodes to be
read by the BHT, respectively.They should be a numeral from 1 to 99, excluding start/stop characters
and check digits. They should satisfy the following condition:
mini.no.digits ≤ max.no.digits
If both of mini.no.digits and max.no.digits are omitted, then the default reading range is 1 to 99 digits. If
only max.no.digits is omitted, the BHT can only read the number of digits specified by mini.no.digits.
[Ex] To enable the BHT to scan Code 93 with min.no.digits 6 and max.no.digits 12
BHT_EnableBar(TEXT("FL"), TEXT("L:6-12"))
[Ex] To enable the BHT to scan Code 93 with min.no.digits 6 and max.no.digits 10 or with min.no.digits
20 and max.no.digits 40
BHT_EnableBar(TEXT("FL"),TEXT("L:6-10,L:20-40"))
NOTE: Neither start/stop characters nor check digits will be transferred to the barcode buffer.
66
□ CODE-128 (K)
Syntax
K[:[mini.no.digits[-max.no.digits]]]
Where
mini.no.digits and max.no.digits are the minimum and maximum numbers of digits for barcodes to be
read by the BHT, respectively.They should be a numeral from 1 to 99, excluding start/stop characters
and check digit. They should satisfy the following condition:
mini.no.digits ≤ max.no.digits
If both of mini.no.digits and max.no.digits are omitted, then the default reading range is 1 to 99 digits. If
only max.no.digits is omitted, the BHT can only read the number of digits specified by mini.no.digits.
[Ex] To enable the BHT to scan Code 128 with min.no.digits 6 and max.no.digits 12
BHT_EnableBar(TEXT("FL"), TEXT("K:6-12"))
[Ex] To enable the BHT to scan Code 128 with min.no.digits 6 and max.no.digits 10 or with
min.no.digits 20 and max.no.digits 40
BHT_EnableBar(TEXT("FL"),TEXT("K:6-10,K:20-40"))
NOTE: Neither start/stop characters nor check digits will be transferred to the barcode buffer.
67
Handling special characters
If the BHT reads any barcode consisting of special characters only (such as FNC, CODEA, CODEB,
CODEC and SHIFT characters), it will not transfer the data to the barcode buffer. The beeper sounds
only if it is enabled.
Details about FNC characters
(1) FNC1
The BHT will not transfer an FNC1 character placed at the first or second character position
immediately following the start character, to the barcode buffer. FNC1 characters in any other positions
will be converted to GS characters (1Dh) and then transferred to the barcode buffer like normal data.
If an FNC1 immediately follows the start character, the barcode will be recognized as EAN-128 and
marked with W instead of K.
(2) FNC2
If the BHT reads a barcode containing an FNC2 character(s), it will not buffer such data but transfer it
excluding the FNC2 character(s).
(3) FNC3
If the BHT reads a barcode containing an FNC3 character(s), it will regard the data as invalid and
transfer no data to the barcode buffer, while it may drive the indicator LED and beeper (vibrator) if
activated this BHT_EnableBar function.
(4) FNC4
An FNC4 converts data encoded by the code set A or B into a set of extended ASCII-encoded data
(128 added to each official ASCII code value).
1 A single FN4 character converts only the subsequent data character into the extended ASCIIencoded data.
A pair of FNC4 characters placed in successive positions converts all of the subsequent data
characters preceding the next pair of FNC4 characters or the stop character, into the extended ASCIIencoded data. If a single FNC4 character is inserted in those data characters, however, it does not
convert the subsequent data character only.
An FNC4 character does not convert any of GS characters converted by an FNC1 character, into the
extended ASCII-encoded data.
68
□ Standard 2 of 5 (STF) (H)
Syntax
H[:[mini.no.digits[-max.no.digits]][CD][startstop]]
Where
mini.no.digits and max.no.digits are the minimum and maximum numbers of digits for barcodes to be
read by the BHT, respectively.They should be a numeral from 1 to 99, excluding start/stop characters.
They should satisfy the following condition:
mini.no.digits ≤ max.no.digits
If both of mini.no.digits and max.no.digits are omitted, then the default reading range is from the
minimum number of digits specified in the system menu (BhtShell.exe) up to 99 digits.
If only max.no.digits is omitted, only the number of digits specified by mini.no.digits can be read.
CD is a check digit. Specifying a C to CD makes the Interpreter check barcodes with MOD-10. The
check digit is included in the number of digits.
startstop specifies the normal or short format of the start/stop characters.
Specify N for the normal format; specify S for the short format. If startstop is omitted, start/stop
characters can be read in either format.
[Ex] To enable the BHT to scan STF with min.no.digits 6 and max.no.digits 12
BHT_EnableBar(TEXT("FL"), TEXT("H:6-12"))
[Ex] To enable the BHT to scan STF with min.no.digits 6 and max.no.digits 10 or with min.no.digits 20
and max.no.digits 40
BHT_EnableBar(TEXT("FL"),TEXT("H:6-10,H:20-40"))
69
□ MSI (P)
Syntax
P[:[mini.no.digits[-max.no.digits]][CD]]
Where
mini.no.digits and max.no.digits are the minimum and maximum numbers of digits for barcodes to be
read by the BHT, respectively.They should be a numeral from 1 to 99, excluding start/stop characters.
They should satisfy the following condition:
mini.no.digits ≤ max.no.digits
If both of mini.no.digits and max.no.digits are omitted, then the default reading range is 1 to 99 digits. If
only max.no.digits is omitted, the BHT can only read the number of digits specified by mini.no.digits.
CD is a check digit. Specifying a C1 or C2 to CD makes the Interpreter check barcodes with a singledigit or two-digit CD, respectively. If no CD is specified, the Interpreter checks barcodes with a singledigit CD. The check digit is included in the number of digits.
[Ex] To enable the BHT to scan MSI with min.no.digits 6, max.no.digits 12, and a single CD check
BHT_EnableBar(TEXT("FL"), TEXT("P:6-12C1"))
[Ex] To enable the BHT to scan MSI with min.no.digits 6, max.no.digits 10 and a single CD check or
with min.no.digits 20, max.no.digits 40 and a two-digit CD check
BHT_EnableBar(TEXT("FL"),TEXT("P:6-10,P:20-40C2"))
□ RSS (R)
Syntax
R
RSS-14, RSS-14 Stacked, RSS Limited, RSS Expanded, and RSS Expanded Stacked codes can be
read.
70
BHT-700Q
The readable barcodes include, among 2D codes, QR code, PDF417, MaxiCode, Data Matrix, and
EAN·UCC composite, and, among barcodes, universal product code, interleaved 2of5 (ITF), Codabar
(NW-7), Code 39, Code 93, Code 128, and RSS. Further, the BHT-700Q can read EAN-128 with Code
128 (read specified). (For details of readable codes, refer to the Instruction Manual.)
□ QR Codes (Q)
Syntax
Q [: [symbol type[min. code version [−max. code version]]][split code scanning mode]
[;symbol type[min code version[-max code version]]]
[;symbol type[min code version[-max code version]]]]
For symbol type, the following values are available:
Symbol type
Readable code
S
Micro QR
M
QR model 1
L
QR model 2
If you omit the symbol type, you can read Micro QR, QR model 1, and QR model 2.
The minimum and maximum code versions refer to those of QR code that can be read. The table
below shows the possible ranges by symbol type.
Allowable range of code version
1−4
1 − 22
1 − 40
Symbol type
S
M
L
The minimum and maximum code versions must satisfy the following relationship:
Minimum code version ≤ Maximum code version
If you omit both the minimum and maximum code versions, you can read QR codes of a full range (up
to the maximum allowable) of code versions for each symbol type. If you omit only the maximum code
version, you can read only the QR code of the minimum code version you specify.
In split code scanning mode, you can read QR code symbols that are split into a maximum of 16
segments (sub-codes). You can specify any of the edit mode, batch edit mode, and non-edit mode as
shown below.
Split code scanning mode
E
B
C
Enable in edit mode
Enable in batch edit mode
Enable in non-edit mode
If you specify "E," "B," and "C," the latest specification takes effect.
If you do not specify the split code scanning mode, the BHT cannot read split QR code symbols.
[Ex] To enable the BHT to read split codes:
BHT_EnableBar (TEXT ("FB"), TEXT ("Q:M5-14E;L1-40;S1-4") )
71
In scannning a split code in edit mode, the maximum data length is 8,192 bytes. Data exceeding 8,192
bytes causes a read error to be recognized and the beeper to sound for 500 ms. The read data will be
destroyed.
When a split code is read in non-edit mode, the read data is stored into the barcode buffer in the
following format:
Sub-code no
No. of sub-codes
Parity
Read data
Sub-code no., No. of sub-codes: 1 byte (hex.) (0 − F)
Parity: 2 bytes (hex.) (00 − FF)
The sub-code number, number of sub-codes, and parity are converted into hexadecimal characters.
The sub-code number is expressed in hexadecimal notation; for example, 0 (30h) for the first, and F
(46h) for the 16th. Likewise, the number of sub-codes is expressed in hexadecimal notation; for
example, 1 (31h) for the splitting into 2 segments, and F (46h) for the splitting into 16 segments.
The parity is provided for sum checking of the read data. It also serves as the delimiter between a
group of split codes from another group.
In split code scanning, the beeper sounds as follows: Upon reading the first split code of a QR code, it
beeps twice, signaling the start of the split code scanning mode. Thereafter, the beeper sounds once
each time a split code is read, except the last one, which causes the beeper to sound three times,
signaling the end of the split code scanning mode.
All split codes belonging to a QR code must be read, no matter what sequence it may be. Once read, a
split code cannot be read again until all the other split codes belonging to the other QR code have
been read.
In any of the following events, the split code scanning will be terminated, even if the scanning of all split
codes of the QR code is not complete. If scanning is terminated in this manner in edit mode, all the
data that has been read up to that point will be destroyed.
・ A non-splti code has been read:
In this case, the data that has been read will be stored into the barcode buffer.
・ A split code belonging to another QR code has been read:
The BHT initiates the reading of the new sequence of split code scanning.
・ The barcode reading window has been put away from the barcode for more than 3 seconds in the
momemntary switch mode, alternate switch mode, or continuous read mode; or more than 5
seconds has elapsed since a split code was read.
・ The illuminating LED has been turned OFF by a trigger switch, i.e., in the momentary switch mode
or auto-off mode, the trigger switch has been released, or in the alternate switch mode, the trigger
switch has been pressed again.
□ PDF417(Y)
Syntax
Y [;[symbol type]]
For symbol type, you can specify one of the values shown below.
Symbol type
Applicable code
S
MicroPDF417
M
PDF417
If you do not specify the symbol type, both MicroPDF417 and PDF417 can be read.
72
□ MaxiCode(X)
Syntax
X
□ MaxiCode(Z)
Syntax
Z [:[symbol type [min code no.[−max code no.]]]
[;symbol type [min code no.[−max code no.]]]]
For symbol type, you can specify one of the values shown below.
Symbol type
Applicable code
S
Square Data Matrix
R
Rectangular Data Matrix
“min code no.” and “max code no.” are the minimum and maximum DataMatrix code numbers that
can be read, respectively. The table below shows the allowable range of code numbers by symbol
type.
Allowable range of code number
Symbol type
1 to 24
S
1 to 6
R
If you do not specify the symbol type, both Square Data Matrix and Rectangular Data Matrix can be
read.
“min code no.” and “max code no.” must satisfy the following relationship:
min code no. ≤ max code no.
If you omit both the minimum and maximum code numbers, you can read DataMatrix codes of a full
range (up to the maximum allowable) of code numbers for each symbol type. If you omit only the
maximum code number, you can read only the DataMatrix code of the minimum code number you
specify. The table below shows the correspondence between the code number and the number of cells.
S (Square Data Matrix)
Code No
ROWxCOL
Code No
ROWxCOL
Code No
ROWxCOL
Code No
ROWxCOL
1
2
3
4
5
6
10x10
12x12
14x14
16x16
18x18
20x20
7
8
9
10
11
12
22x22
24x24
26x26
32x32
36x36
40x40
13
14
15
16
17
18
44x44
48x48
52x52
64x64
72x72
80x80
19
20
21
22
23
24
88x88
96x96
104x104
120x120
132x132
144x144
R (Rectangular Data Matrix)
Code No
ROWxCOL
Code No
ROWxCOL
1
2
3
8x18
8x32
12x26
4
5
6
12x36
16x36
16x48
□ EAN·UCC Composite(V)
Syntax
V
73
□ Universal product code (A)
Syntax
A [:[code][1st character [2nd character]] [supplemental]]
Specify one of the codes listed below.
Code
A
B
C
Barcode type
EAN-13 (JAN-13), UPC-A
EAN-8 (JAN-8)
UPC-E
If you do not specify any of the codes, all of the above-listed codes can be read.
The first and second characters are the first characters representing the country flag and must be a
numeral (0 through 9) each. A question mark (?) serves as a wild card.
“supplemental” refers to the reading of an add-on code. Specifying “S” as “supplemental” enables the
BHT to read add-on codes.
To specify multi-line code reading, first specify “&” and then specify this syntax as many times as the
number of rows to be read. The code cannot be omitted.
For multi-line code reading, refer to the section on multi-line code reading.
[Ex] Reading 3 rows of a universal product code:
BHT_EnableBar (TEXT ("FB"), TEXT ("&,A:A,A:B,A:C"))
74
□ Interleaved 2of5 (ITF) (I)
Syntax
I [:[min no. digits [−max no. digits]][CD][;[1st character [2nd character]]]]
“min no. digits” and “max no. digits” are the minimum and maximum numbers of digits of the barcode.
You can specify any pair of numbers between 2 and 99 (inclusive) that satisfy the following
relationship:
min no. digits ≤ max no. digits
If you omit both the minimum and maximum numbers of digits, the BHT can read barcodes whose
lengths are between the minimum number of digits specified in system mode and 99 (inclusive). If you
omit only the maximum number of digits, the BHT can read only barcodes of the length specified by
“min no. digits.”
“CD” represents the check digit. If you specify “C,” the barcode will be checked according to MOD-10.
The check digit(s) is (are) included in the number of digits.
To specify multi-line code reading, first specify “&” and then specify this syntax as many times as the
number of rows to be read. In this syntax, “;” and the portion after it are valid only in the case of multiline code reading. Specify a numeral (0 − 9) in the first and second characters. For multi-line code
reading, refer to the section on multi-line code reading.
[Ex] Reading two rows of an ITF code:
BHT_EnableBar (TEXT ("FB"), TEXT ("&,I:;12,I:;23"))
75
□ Codabar (NW-7) (N)
Syntax
N [:[min no. digits [− max no. digits]][startstop] [CD]]
“min no. digits” and “max no. digits” are the minimum and maximum numbers of digits of the barcode.
You can specify any pair of numbers between 3 and 99 (inclusive) that satisfy the following
relationship:
min no. digits ≤ max no. digits
If you omit both the minimum and maximum numbers of digits, the BHT can read barcodes whose
lengths are between the minimum number of digits specified in system mode and 99 (inclusive). If you
omit only the maximum number of digits, the BHT can read only barcodes of the length specified by
“min no. digits.”
“startstop” means the start character and the stop character. Specify A, B, C, or D. A question mark
(?) serves as a wild card. The start and stop characters are included in the number of digits. “A”
through “D” are stored in the barcode buffer as “a” through “d.”
“CD” represents the check digit. If you specify “C,” the barcode will be checked according to MOD-16.
The check digit(s) is (are) included in the number of digits.
To specify multi-line code reading, first specify “&” and then specify this syntax as many times as the
number of rows to be read. For multi-line code reading, refer to the section on multi-line code reading.
[Ex] Reading 3 rows of a Codabar:
BHT_EnableBar (TEXT ("FB"), TEXT ("&,N:8,N:6,N:4"))
76
□ Code 39 (M)
Syntax
M [:[min no. digits [−max no. digits]][CD][;[1st character [2nd character]]]]
“min no. digits” and “max no. digits” are the minimum and maximum numbers of digits of the barcode.
The start character and the stop character are not included in the number of digits here. You can
specify any pair of numbers between 1 and 99 (inclusive) that satisfy the following relationship:
min no. digits ≤ max no. digits
If you omit both the minimum and maximum numbers of digits, the BHT can read barcodes whose
lengths are between 1 and 99 (inclusive). If you omit only the maximum number of digits, the BHT can
read only barcodes of the length specified by “min no. digits.”
“CD” represents the check digit. If you specify “C,” the barcode will be checked according to MOD-43.
The check digit(s) is (are) included in the number of digits.
To specify multi-line code reading, first specify “&” and then specify this syntax as many times as the
number of rows to be read. In this syntax, “;” and the portion after it are valid only in the case of multiline code reading. Specify a numeral (0 − 9) in the first and second characters. For multi-line code
reading, refer to the section on multi-line code reading.
[Ex] Reading 2 rows of a Code 39:
BHT_EnableBar (TEXT ("FB"), TEXT ("&,M:;12,M:;23"))
77
□ CODE-93 (L)
Syntax
L [: [min.no.digits [-max.no.digits]][;1st digit [-2nd digit]]]]
Where
min.no.digits and max.no.digits are the minimum and maximum numbers of digits for barcodes to
be read by the BHT, respectively. These should be numerals from 1 to 99, excluding start/stop
characters and check digits, and should satisfy the following condition:
min no. digits ≤ max no. digits
If both the min.no.digits and max.no.digits are omitted, then the default reading range is 1 to 99
digits. If only the max.no.digits is omitted, the BHT can only read the number of digits specified by
min.no.digits.
[Ex.]To enable the BHT to scan Code 93 with min.no.digits 6 and max.no.digits 12:
BHT_EnableBar (TEXT ("FL"), TEXT ("L:6-12" ))
[Ex.]To enable the BHT to scan Code 93 with min.no.digits 6 and max.no.digits 10, or min.no.digits
20 and max.no.digits 40:
BHT_EnableBar (TEXT ("FL"), TEXT ("L:6-10, L:20-40" ))
NOTE: Neither start/stop characters nor check digits will be transferred to the barcode buffer.
To specify multi-line code reading, specify “&” followed by the above syntax as many times as the
number of rows to be read. In the above syntax, information following “;” is valid only for multi-line
code reading. Specify 0 to 9 for the 1st and 2nd digits. (Refer to the section on multi-line code
reading for further details of specifying multi-line code reading.)
[Ex.] To read 2 rows of Code 93:
BHT_EnableBar (TEXT ("FB"), TEXT ("&, L:;12, L:;23"))
78
□ Code 128 (K)
Syntax
K [:[min no. digits [−max no. digits]][;[1st character [2nd character]]]]
“min no. digits” and “max no. digits” are the minimum and maximum numbers of digits of the barcode.
The start character and the stop character are not included in the number of digits here. You can
specify any pair of numbers between 1 and 99 (inclusive) that satisfy the following relationship:
min no. digits ≤ max no. digits
If you omit both the minimum and maximum numbers of digits, the BHT can read barcodes whose
lengths are between 1 and 99 (inclusive). If you omit only the maximum number of digits, the BHT can
read only barcodes of the length specified by “min no. digits.”
The start character, the stop character, and the check digit are not stored into the barcode buffer.
To specify multi-line code reading, first specify “&” and then specify this syntax as many times as the
number of rows to be read. In this syntax, “;” and the portion after it are valid only in the case of multiline code reading. Specify a numeral (0 − 9) in the first and second characters. For multi-line code
reading, refer to the section on multi-line code reading.
[Ex] Reading 2 rows of a Code 128:
BHT_EnableBar (TEXT ("FB"), TEXT ("&,K:;12,K:;23"))
79
Positions of special characters
When a code consisting only of special characters (FNC, CODEA, CODEB, CODEC, and SHIFT
characters) or a code containing FNC3 has been read, the read data is not stored into the barcode
buffer. When beeper sounding is enabled, the beeper sounds.
Handling of FNC characters
(1) FNC1
The FNC1 character located 1 or 2 places after the start character will not be stored into the barcode
buffer. An FNC1 character located elsewhere will be converted into a GS character (1Dh) and stored
into the barcode buffer.
A code in which an FNC character immediately follows the start character is EAN-128, in which case
the code mark is “W” instead of “K.”
(2) FNC2
For a barcode containing an FNC2 character, the data will not be temporarily stored. Instead, the data
code excluding the FNC2 character will be stored into the barcode buffer.
(3) FNC3
If a barcode contains an FNC3 character, the read data will be regarded as invalid and will not be
stored into the barcode buffer. When the indicator LED and the vibrator are enabled by the
BHT_EnableBar function, the indicator LED and the vibrator will be turned ON.
(4) FNC4
The FNC4 character converts data encoded by code set A or B into the extended ASCII format (normal
ASCII + 128). One FNC4 character converts one data character immediately following it into the
extended ASCII format.
A pair of contiguous FNC4 characters converts into the extended ASCII format all the data characters
following it before another pair of contiguous FNC4 characters or a stop character. An exception is
when a stand-alone FNC4 character exists in this string of characters, in which case one data
character immediately following it will not be converted.
Also, the GS character created from an FNC1 character will not be converted into the extended ASCII
format.
80
■ Multi-line code reading
To specify Multi-line code reading, specify “&” followed by the codes to be read. Up to three rows can
be specified.
Syntax
“&, (code in 1st row), (code in 2nd row)[, (code in 3rd row)]”
The codes supported in multi-line code reading are the universal product code, interleaved 2of5 (ITF),
Codabar (NW-7), Code 39, and Code 128 (all among barcodes).
(1) Multi-line code reading is independent of single-row code reading.
[Ex] Reading universal product code EAN-8 and EAN-13 (2 rows):
BHT_EnableBar (TEXT ("FB"), TEXT ("&,A:B,A:A"))
[Ex] Reading 1 row of universal product code EAN-8 and 2 rows of Code 39:
BHT_EnableBar (TEXT ("FB"), TEXT ("A:B,&,M,M"))
(2) You can specifiy a 2D code and a multi-line code simultaneously.
[Ex] Reading a QR code and 3 rows of code 39:
BHT_EnableBar (TEXT ("FB"), TEXT ("Q,&,M,M,M"))
(3) In Multi-line code reading, you can specify the reading sequence using the first two characters
(start/stop in the case of Codabar).
[Ex] Reading 3 rows of ITF (with character specification) in the following sequence: code beginning
with “12,” code with CD beginning with “21” of 6 – 10 digits in length, and code beginning with “23” of
12 digits in length
BHT_EnableBar (TEXT ("FB"), TEXT ("&,I:;12,I:6-10C;21,I:12;23"))
You can also specify a single character.
[Ex] Reading a universal product code EAN and ITF (with character specification) in the following
sequence: EAN beginning with”49” and ITF beginning with”2” of 6 – 10 digits in length.
BHT_EnableBar (TEXT ("FB"), TEXT ("&,A:A49,I:6-10;2"))
(4) Data will be output in the specified sequence.
[Ex] Data is to be output in the sequence of EAN-8 beginning with “12” - EAN-8 beginning with “21.”
BHT_EnableBar (TEXT ("FB"), TEXT ("&,A:B12,A:B21"))
Note, however, that if you specify the same character and the same number of digits, then the output
sequence is unpredictable.
[Ex] Reading 2 rows of ITF, both beginning with “49” and having a length of 6 digits:
BHT_EnableBar (TEXT ("FB"), TEXT ("&,I:6;49,I:6;49"))
In this example, it is unpredictable, for example, which will be output first, ITF”495678” or ITF “498765.”
81
(5) If the same code (with the same code type and the same data code) appears more than once in a
multi-line code, the BHT cannot read it.
[Ex] A code consisting of EAN-13: “4912345678904” in the first row, EAN-13; “1200000000003” in the
second row, and EAN-13 “4912345678904” in the third row cannot be read with the following
instruction:
BHT_EnableBar (TEXT ("FB"), TEXT ("&,A:A49,A:A12,A:A49"))
(6) If you specify the same code type, the same number of digits, and the same conditions for single-row
reading and multi-line code reading, the BHT cannot read the single-row code.
[Ex] If you have a single-row EAN-13 code “'4901234567894'” and a two-row EAN-13 code consisting
of “'4909876543214'” in the first row and “1200000000003” in the second row, you cannot read them
using the following instruction:
BHT_EnableBar (TEXT ("FB"), TEXT ("A:A49,&,A:A49,A:A12"))
(7) In multi-line code reading, an ITF code less than 4 digits in length cannot be read unless you specify
the number of digits.
(8) You cannot specify multiple-row code reading for add-on codes in the universal product code.
(9) You cannot specify multiple-row code reading for the RSS code.
(10) When you have selected the point scan mode, you cannot specify multiple-row code reading.[
□ RSS (R)
Syntax
R
82
BHT_DisableBar
Description:
Close the barcode device file to disable barcode reading.
Syntax:
DWORD BHT_DisableBar (void)
Parameters
None
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_HANDLE Barcode device file not opened
83
BHT_ReadBar
Description
Read out data read from the barcode buffer.
If the string length longer than that of the read barcode is specified to dwBarLen, the remaining area
following the read barcode will be filled with NULL codes.
If barcode reading is not enabled, an error (ERROR_INVALID_HANDLE) will result.
Syntax:
DWORD BHT_ReadBar (
TCHAR* pwchBuffer ,
DWORD dwBarLen ,
DWORD* pdwActualBarLen )
Parameters
pwchBuffer
[out] Heading address of the storage buffer storing the read data
dwBarLen
[in] Maximum length of data to be read
pdwActualBarLen
[out] Length of data read
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_HANDLE
Barcode device file not opened.
ERROR_INVALID_PARAMETER No storage address specified.
84
BHT_ReadBarEx
Description
Read out data from the barcode buffer and encodes it into the specified data format.
If the length of the read data is shorter than the specified maximum data length (dwBarLen), the excess
part will be filled with 0s.
If barcode reading is disabled, an error (ERROR_INVALID_HANDLE) will be caused.
Syntax:
DWORD BHT_ReadBarEx (
DWORD dwDataType,
LPVOID lpBuffer,
DWORD dwBarLen,
DWORD* pdwActualBarLen )
Parameters
dwDataType
[in] Encoding format
READ_CODE_BINARY : binary data (no encoding)
READ_CODE_UNICODE : unicode data
lpBuffer
[in] Starting address of the read data in the storage buffer
dwBarLen
[in] Maximum read data length (maximum length of data to be read out)
pdwActualBarLen
[out] Length of data read
Return value
Error code
ERROR_SUCCESS
ERROR_INVALID_HANDLE
Meaning
Successful completion
Barcode device file not opened.
The specified encoding is wrong.
ERROR_INVALID_PARAMETER
No storage address specified.
85
BHT_GetBarType
Description
BHT-700B
Read the barcode type and the number of digits of a barcode read most recently.
If no barcode has been read after the BHT was turned on, the function gets "0."
BHT-700Q
Read the barcode type and the number of digits of a barcode read most recently.
If no barcode has been read after the BHT was turned on, the function gets "0."
When a multiple-row code has been read, this fact is communicated to the caller and the total number of
digits in the multiple-row code is returned.
To get the information for a specific row, call BHT_GetBarInfo.
When an EAN·UCC composite code has been read, this fact is communicated to the caller and the total
number of digits in the EAN·UCC composite code is returned. To get the information for a specific row,
call BHT_GetBarInfo.
Syntax
DWORD BHT_GetBarType (
DWORD* pdwBarMark ,
DWORD* pdwBarlen )
Parameters
pdwBarMark
[out] Address for storing the barcode type
pdwBarlen
[out] Address for storing the barcode length
The pdwBarMark contains one of the following letters representing code types:
Barcode type
pdwBarMark
(No code read)
0
EAN-13 (JAN-13), UPC-A
'A'
EAN-8 (JAN-8)
'B'
UPC-E
'C'
ITF
'I'
STF (Only for BHT-700B)
'H'
CODABAR (NW-7)
'N'
CODE-39
'M'
CODE-93
'L'
CODE-128
'K'
EAN-128
'W'
MSI (Only for BHT-700B)
'P'
RSS
'R'
QR code (Only for BHT-700Q)
'Q'
Split QR code (in non-edit mode)
'S'
(Only for BHT-700Q)
PDF417 (Only for BHT-700Q)
'Y'
Maxi Code (Only for BHT-700Q)
'X'
Data Matrix (Only for BHT-700Q)
'Z'
Multi-line code (Only for BHT-700Q)
'&'
Composite (Only for BHT-700Q)
'V'
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Storage address not specified.
86
BHT_ GetBarInfo
Description
BHT-700B
Read the information on the code read most recently, including the code type and the number of digits in
the code.
If no barcode has been read after the BHT was turned on, the function gets "0" for both the code type
and the number of digits.
BHT-700Q
Read the information on the code read most recently, including the code type and the number of digits in
the code.
If no barcode has been read after the BHT was turned on, the function gets "0" for both the code type
and the number of digits.
When a multi-line code has been read, the information on all the rows is obtained in an array format. Also,
the number of rows in the code is obtained.
When an RSS·EAN Composite code has been read, the information on all the codes constituting the
composite code is obtained in an array format. Also, the number of codes in the composite code is
obtained.
Syntax
DWORD BHT_GetBarInfo (
ST_CODE_INFO* pstInfo ,
DWORD* pdwCodeNum )
Parameters
pstInfo
[out] Destination address into which the code information is to be stored
pdwCodeNum
[in] No. of codes to be obtained
[out] Destination address into which the number of codes is to be stored. This is set to “1” when a code
other than a multiple-row code or an EAN·UCC composite code has been read.
Shown below is the format of the structure containing code information. For the relationship between
dwType and code type, refer to BHT_GetBarType.
struct ST_CODE_INFO {
DWORD dwType; // code type
DWORD dwLen; // no. of digits
);
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Storage address not specified.
If you specify NULL in pstCodeInfo, the number of elements of ST_CODE_INFO necessary to store the
read code will be stored into pdwCodeNum.
An error occurs if a value greater than MAX_NUM_CODE_1D_SCANNER (when using the BHT-700B) or
MAX_NUM_CODE_2D_SCANNER (when using the BHT-700Q) is specified for pdwCodeNum.
87
BHT_GetBarNum
Description
Read the number of digits of the barcode remaining in the barcode buffer.
If barcode reading is not enabled, an error (ERROR_INVALID_HANDLE) will result.
Syntax
DWORD BHT_GetBarNum (
DWORD* pdwCodeNum )
Parameters
pdwCodeNum
[out] Address for storing the barcode length
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_HANDLE
Barcode device file not opened
ERROR_INVALID_PARAMETER Storage address not specified
88
BHT_GetBarChkDgt
Description
Calculate a check digit (CD) of the barcode data according to the calculation method specified by
dwCDType.
Syntax
DWORD BHT_GetBarChkDgt (
TCHAR* pwchBarbuf ,
DWORD dwCDType ,
DWORD* pdwChkdgt )
Parameters
pwchBarbuf
[in] Heading address of barcode data storage buffer
dwCDType
[in] Check digit type
Barcode type and the corresponding calculation method
Barcode Type
dwCDType Calculation Method
EAN(JAN), UPC
'A'
MOD10 (Modulo arithmetic-10)
ITF
'I'
MOD10 (Modulo arithmetic-10)
STF (only for BHT-700B)
'H'
MOD10 (Modulo arithmetic-10)
CODABAR (NW-7)
'N'
MOD16 (Modulo arithmetic-16)
CODE-39
'M'
MOD43 (Modulo arithmetic-43)
MSI (only for BHT-700B)
'P'
MOD10 (Modulo arithmetic-10)
pdwChkdgt
(out) Address for storing the check digit calculated
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
Invalid check digit type.
ERROR_INVALID_PARAMETER Invalid barcode data.
Storage address not specified.
89
Comment:
If barcode data contains a character(s) out of the specification of the barcode type specified by
dwCDType, then this function sets "0" and returns an error code. However, if only the CD position
character in barcode data is out of the specification, this function calculates the correct CD and returns it
as one-character string.
[Ex 1] BHT_GetBarChkDgt(TEXT("494AB4458"), 'A', &dwChkDgt);
"A" and "B" are out of the specification of EAN or UPC, so dwChkDgt is "0" and the function
returns an error code.
[Ex 2] BHT_GetBarChkDgt(TEXT("4940045X"), 'A', &dwChkDgt);
"X" is out of the specification but it is a CD position character, so this function calculates the
correct CD and dwChkDgt is "8."
[Ex 3] BHT_GetBarChkDgt(TEXT("a0ef3-a"), 'N', &dwChkDgt);
"e" and "f" are out of the specification of Codabar (NW-7), so dwChkDgt is "0" and the
function returns an error code.
[Ex 4] BHT_GetBarChkDgt(TEXT("a123Qa"), 'N', &dwChkDgt)
"Q" is out of the specification but it is a CD position character, so this function calculates the
correct CD and dwChkDgt is "-."
90
When dwCDType is A (EAN or UPC), this function identifies the EAN or UPC depending upon the data
length (number of digits) as listed below. If the data length is a value other than 13, 8, and 7, this
function gets "0" and returns an error code.
Data length of barcode data Barcode type
13
EAN-13 (JAN-13), UPC-A
8
EAN-8 (JAN-8)
7
UPC-E
To check whether the CD is correct: Pass a CD-suffixed barcode data to the BHT_GetBarChkDgt
function as shown below. If the returned value is equal to the CD, the CD data is suitable for the
barcode data.
[Ex]
BHT_GetBarChkDgt(TEXT("49400458"), 'A', &dwChkDgt);
if ( dwChkDgt == '8' ) {
printf("CD OK");
}
To add a CD to barcode data: Pass barcode data followed by a dummy character to the
BHT_GetBarChkDgt function as shown below. The returned value will become the CD to be replaced
with the dummy character.
[Ex]
wcscpy(wchBarData, TEXT("4940045"));
wcscpy(wchBarData1, wchBarData);
wcscat(wchBarData1, TEXT("0"));
BHT_GetBarChkDgt(wchBarData1, 'A', &dwChkDgt);
wprintf(TEXT("CD = %s%c"), wchBarData, dwChkDgt);
Result
> CD = 49400458
91
When dwCDType is I (ITF), the length of barcode data must be an even number of two or more digits.
If not, this function gets "0" and returns an error code.
To check whether the CD is correct: Pass a CD-suffixed barcode data to the BHT_GetBarChkDgt
function as shown below. If the returned value is equal to the CD, the CD data is suitable for the
barcode data.
[Ex]
BHT_GetBarChkDgt(TEXT("123457"), 'I', &dwChkDgt);
if ( dwChkDgt == '7' ) {
printf("CD OK");
}
To add a CD to barcode data: Pass barcode data followed by a dummy character to the
BHT_GetBarChkDgt function as shown below. The returned value will become the CD to be replaced
with the dummy character.
[Ex]
wcscpy(wchBarData, TEXT("12345"));
wcscpy(wchBarData1, wchBarData);
wcscat(wchBarData1, TEXT("0"));
BHT_GetBarChkDgt(wchBarData1, 'I', &dwChkDgt);
wprintf(TEXT("%s%c"), wchBarData, dwChkDgt);
Result
> CD = 123457
92
When dwCDType is H (STF), the length of barcode data must be two or more digits. If not, this function
gets "0" and returns an error code.
To check whether the CD is correct: Pass a CD-suffixed barcode data to the BHT_GetBarChkDgt
function as shown below. If the returned value is equal to the CD, the CD data is suitable for the
barcode data.
[Ex]
BHT_GetBarChkDgt(TEXT("12345678905"), 'H', &dwChkDgt);
if ( dwChkDgt == '5' ) {
printf("CD OK");
}
To add a CD to barcode data: Pass barcode data followed by a dummy character to the
BHT_GetBarChkDgt function as shown below. The returned value will become the CD to be replaced
with the dummy character.
[Ex]
wcscpy(wchBarData, TEXT("1234567890"));
wcscpy(wchBarData1, wchBarData);
wcscat(wchBarData1, TEXT("5"));
BHT_GetBarChkDgt(wchBarData1, 'H', &dwChkDgt);
wprintf(TEXT("%s%c"), wchBarData, dwChkDgt);
Result
> CD = 12345678905
93
When dwCDType is N (Codabar), the length of barcode data must be three digits or more including
start and stop characters. If not, this function gets "0" and returns an error code.
To check whether the CD is correct: Pass a CD-suffixed barcode data to the BHT_GetBarChkDgt
function as shown below. If the returned value is equal to the CD, the CD data is suitable for the
barcode data.
[Ex]
BHT_GetBarChkDgt(TEXT("a0123-a"), 'M', &dwChkDgt);
if ( dwChkDgt == '-' ) {
printf("CD OK");
}
To add a CD to barcode data: Pass barcode data followed by a dummy character to the
BHT_GetBarChkDgt function as shown below. The returned value will become the CD to be replaced
with the dummy character.
[Ex]
wcscpy(wchBarData, TEXT("a0123a"));
len = wcslen(wchBarData);
wcsncpy(wchTmp1BarData, wchBarData, len – 1);
wcscpy(wchTmp2BarData, wchTmp1BarData);
wcscat(wchTmp2BarData, TEXT("0"));
wcscat(wchTmp2BarData, &(wchBarData[len – 1]));
BHT_GetBarChkDgt(wchTmp2BarData) 'M', &dwChkDgt);
wprintf(TEXT("%s%c%s"), wchTmp1BarData, dwChkDgt, &wchTmp2BarData[len-1]));
Result
> CD = a0123-a
94
When dwCDType is M (Code 39), the length of barcode data must be two or more digits except for
start and stop characters. If not, this function gets "0" and returns an error code.
To check whether the CD is correct: Pass a CD-suffixed barcode data to the BHT_GetBarChkDgt
function as shown below. If the returned value is equal to the CD, the CD data is suitable for the
barcode data.
[Ex]
BHT_GetBarChkDgt(TEXT("CODE39W"), 'M', &dwChkDgt);
if ( dwChkDgt == 'W' ) {
printf("CD OK");
}
To add a CD to barcode data: Pass barcode data followed by a dummy character to the
BHT_GetBarChkDgt function as shown below. The returned value will become the CD to be replaced
with the dummy character.
[Ex]
wcscpy(wchBarData, TEXT("CODE39"));
wcscpy(wchBarData1, wchBarData);
wcscat(wchBarData1, TEXT("0"));
BHT_GetBarChkDgt(wchBarData1, 'M', &dwChkDgt);
wprintf(TEXT("%s%c"), wchBarData, dwChkDgt);
Result
> CD = CODE39W
95
When dwCDType is P (MSI), the length of barcode data must be two or more digits. If not, this function
gets "0" and returns an error code. To calculate a two-digit CD, call this function twice.
To check whether the CD is correct: Pass a CD-suffixed barcode data to the BHT_GetBarChkDgt
function as shown below. If the returned value is equal to the CD, the CD data is suitable for the
barcode data.
[Ex]
BHT_GetBarChkDgt(TEXT("123456782"), 'P', &dwChkDgt);
if (dwChkDgt == '2' ) {
printf("CD OK");
}
To add a CD to barcode data: Pass barcode data followed by a dummy character to the
BHT_GetBarChkDgt function as shown below. The returned value will become the CD to be replaced
with the dummy character.
[Ex]
wcscpy(wchBarData, TEXT("12345678"));
wcscpy(wchBarData1, wchBarData);
wcscat(wchBarData1, TEXT("0"));
BHT_GetBarChkDgt(wchBarData1, 'P', &dwChkDgt);
wprintf(TEXT("%s%c"), wchBarData, dwChkDgt);
Result
> CD = 123456782
96
BHT_BAR_SetDecodeOptions
Description
Sets the editing function setting value for the decoded result.
This is supported only by the BHT-700B.
Syntax
DWORD BHT_BAR_SetDecodeOptions (
EN_DCD_OPTIONS_CODE_TYPE enCodeType,
LPVOID pOptions,
DWORD dwLen)
Parameters
enCodeType
[in] Code type to be edited
pOptions
[out] Editing function setting value. The addresses for the structure are listed below.
Code type
UPC-E
UPC-A
EAN-8
EnCodeType
EnOptionsUPCE
EnOptionsUPCA
enOptionsEAN8
pOptions
ST_DCD_UPCE_OPTIONS
ST_DCD_UPCA_OPTIONS
ST_DCD_EAN8_OPTIONS
dwLen
[in] pOptions size (bytes). Sets the value calculated at Sizeof.
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
The storage address has not been set.
ERROR_INVALID_PARAMETER
Invalid size specified.
Construction
The member construction for EN_DCD_OPTIONS_CODE_TYPE used to specify the code type is as
follows.
typedef enum _EN_DCD_OPTIONS_CODE_TYPE {
enOptionsUPCE,
enOptionsUPCA,
enOptionsEAN8,
} EN_DCD_OPTIONS_CODE_TYPE;
The member construction for ST_DCD_UPCE_OPTIONS, ST_DCD_UPCA_OPTIONS, and
ST_DCD_EAN8_OPTIONS is shown below.
typedef struct _ST_DCD_UPCE_OPTIONS {
BOOL bConvertToUPCA;
BOOL bReportNumsys;
BOOL bReportChk;
} ST_DCD_UPCE_OPTIONS, *PST_DCD_UPCE_OPTIONS;
97
Member name
bConvertToUPCA
Default
FALSE
bReportNumsys
FALSE
bReportChk
TRUE
Details
Used to convert (TRUE) or not convert (FALSE)
to UPC-A.
Used to add (TRUE) or not add (FALSE) a “0” at
the beginning.
Used to add (TRUE) or not add (FALSE) a C/D.
typedef struct _ST_DCD_UPCA_OPTIONS {
BOOL bReportNumsys;
BOOL bReportChk;
} ST_DCD_UPCA_OPTIONS, *PST_DCD_UPCA_OPTIONS;
Member name
bReportNumsys
Default
TRUE
bReportChk
TRUE
Details
Used to add (TRUE) or not add (FALSE) a “0” at
the beginning.
Used to add (TRUE) or not add (FALSE) a C/D.
typedef struct _ST_DCD_EAN8_OPTIONS {
BOOL bConvertToEAN13;
} ST_DCD_EAN8_OPTIONS, *PST_DCD_EAN8_OPTIONS;
Member name
bConvertToEAN13
Default
FALSE
Details
Used to convert (TRUE) or not convert (FALSE)
to EAN-13.
Notes
Authorize reading of the code type prior to conversion when authorizing code reading with
BHT_EnableBar.
The value acquired with BHT_ReadBar, BHT_GetBarType, BHT_GetBarNum, and BHT_GetBarInfo will
be the value after conversion.
The set value will only be valid within the application in which it is set. Settings are not updated to other
applications.
(Ex.) The following settings are used in order to convert UPC-E codes to UPC-A codes.
ST_DCD_UPCE_OPTIONS stOptions;
DWORD dwLen = sizeof(stOptions);
BHT_EnableBar(TEXT(“FB”), TEXT(“A:C”);
…………
…
/* Acquires current setting */
BHT_BAR_GetDecodeOptions(enOptionsUPCE, (LPVOID)&stOptions, &dwLen);
/* Authorizes conversion to UPC-A */
stOptions.bConvertToUPCA = TRUE;
BHT_BAR_SetDecodeOptions(enOptionsUPCE, (LPVOID)&stOptions, dwLen);
98
BHT_BAR_GetDecodeOptions
Description
Sets the editing function setting value for the decoded result.
This is supported only by the BHT-700B.
Syntax
DWORD BHT_BAR_GetDecodeOptions (
EN_DCD_OPTIONS_CODE_TYPE enCodeType,
TCHAR * pwchSysParam,
LPVOID pOptions,
DWORD* pdwLen)
Parameters
enCodeType
[in] Code type to be edited
pOptions
[out] Editing function setting value. The addresses for the structure are listed below.
Code type
UPC-E
UPC-A
EAN-8
enCodeType
enOptionsUPCE
enOptionsUPCA
enOptionsEAN8
pOptions
ST_DCD_UPCE_OPTIONS
ST_DCD_UPCA_OPTIONS
ST_DCD_EAN8_OPTIONS
pdwLen
[in] pOptions size (bytes). Sets the value calculated at sizeof.
[out] Size of valid data stored in pOptions (bytes).
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
The storage address has not been set.
ERROR_INVALID_PARAMETER
Invalid size specified.
Construction
The member construction for EN_DCD_OPTIONS_CODE_TYPE used to specify the code type is as
follows.
typedef enum _EN_DCD_OPTIONS_CODE_TYPE {
enOptionsUPCE,
enOptionsUPCA,
enOptionsEAN8,
} EN_DCD_OPTIONS_CODE_TYPE;
The member construction for ST_DCD_UPCE_OPTIONS, ST_DCD_UPCA_OPTIONS, and
ST_DCD_EAN8_OPTIONS is shown below.
typedef struct _ST_DCD_UPCE_OPTIONS {
BOOL bConvertToUPCA;
BOOL bReportNumsys;
BOOL bReportChk;
} ST_DCD_UPCE_OPTIONS, *PST_DCD_UPCE_OPTIONS;
99
Member name
bConvertToUPCA
Default
FALSE
bReportNumsys
FALSE
bReportChk
TRUE
Details
Used to convert (TRUE) or not convert (FALSE)
to UPC-A.
Used to add (TRUE) or not add (FALSE) a “0” at
the beginning.
Used to add (TRUE) or not add (FALSE) a C/D.
typedef struct _ST_DCD_UPCA_OPTIONS {
BOOL bReportNumsys;
BOOL bReportChk;
} ST_DCD_UPCA_OPTIONS,
*PST_DCD_UPCA_OPTIONS;
Member name
bReportNumsys
Default
TRUE
bReportChk
TRUE
Details
Used to add (TRUE) or not add (FALSE) a “0” at
the beginning.
Used to add (TRUE) or not add (FALSE) a C/D.
typedef struct _ST_DCD_EAN8_OPTIONS {
BOOL bConvertToEAN13;
} ST_DCD_EAN8_OPTIONS,
*PST_DCD_EAN8_OPTIONS;
Member name
bConvertToEAN13
Default
FALSE
Details
Used to convert (TRUE) or not convert (FALSE)
to EAN-13.
Notes
The acquired value will be the value set at that application.
(Ex.) The following settings are used in order to convert UPC-E codes to UPC-A codes.
ST_DCD_UPCE_OPTIONS stOptions;
DWORD dwLen = sizeof(stOptions);
BHT_EnableBar(TEXT(“FB”), TEXT(“A:C”);
…………
…
/* Acquires current setting */
BHT_BAR_GetDecodeOptions(enOptionsUPCE, (LPVOID)&stOptions, &dwLen);
/* Authorizes conversion to UPC-A */
stOptions.bConvertToUPCA = TRUE;
BHT_BAR_SetDecodeOptions(enOptionsUPCE, (LPVOID)&stOptions, dwLen);
100
16.2. Backlight API
BHT_SetBltStatus
Description
Control the backlight.
Syntax
DWORD BHT_SetBltStatus (
DWORD dwStatus )
Parameters
dwStatus
[in] Backlight status
dwStatus
Specification
BHT_BL_ENABLE_ON(*1) Turn on the backlight.
BHT_BL_ENABLE_OFF
Turn off the backlight.
BHT_BL_DISABLE
Disable the backlight.
(*1) The backlight specified with the BHT_SetSysSettingDW (BHT_BACKLIGHT_DEVICE,…) function illuminates.
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error.
101
BHT_GetBltStatus
Description
Read the backlight status.
Syntax
DWORD BHT_GetBltStatus (
DWORD* pdwStatus )
Parameters
pdwStatus
[out] Current backlight status
pdwStatus
Specification
BHT_BL_ENABLE_ON
Backlight ON
BHT_BL_ENABLE_OFF
Backlight OFF
BHT_BL_DISABLE
Backlight enabled
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Storage address not specified.
102
16.3. Battery API
BHT_GetPowerStatus
Description
Read information about the battery loaded in the BHT body.
Syntax
DWORD BHT_GetPowerStatus (
WORD* pwCuOnLine ,
WORD* pwBatteryFlag ,
WORD* pwBatteryVoltage ,
WORD* pwBatteryChemistry )
Parameters
pwCuOnLine
[out] Read the BHT state on/off the CU
pwCuOnLine
Specification
AC_LINE_ONLINE Placed on the CU
AC_LINE_OFFLINE Not placed on the CU
pwBatteryFlag
[out] Read battery voltage level
pwBatteryFlag
BHT_BATTERY_FLAG_HIGH
BHT_BATTERY_FLAG_MID
BHT_BATTERY_FLAG_LOW
BHT_BATTERY_FLAG_WARNING
BHT_BATTERY_FLAG_CRITICAL
BHT_BATTERY_FLAG_NO_BATTERY
Specification
High level (3.9 V ≤ Voltage)
Medium level (3.7 V ≤ Voltage < 3.9 V)
Low level (3.6 V ≤ Voltage < 3.7 V)
Warning level (Voltage < 3.6 V)
Critical level (Voltage < 3.5 V)
No battery loaded
pwBatteryVoltage
[out] Battery output voltage (mV)
pwBatteryChemistry
[out] Battery type
pwBatteryChemistry
Specification
BATTERY_CHEMISTRY_LION
Lithium ion battery
BATTERY_CHEMISTRY_UNKNOWN Unknown
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Storage address not specified.
Comments
"BHT_BATTERY_FLAG_NO_BATTERY" for the battery level are never actually acquired.
103
BHT_GetPowerStatus2nd
Description
Read information about the battery loaded in the grip.
Syntax
DWORD BHT_GetPowerStatus2nd (
WORD* pwCuOnLine ,
WORD* pwBatteryFlag ,
WORD* pwBatteryVoltage ,
WORD* pwBatteryChemistry )
Parameters
pwCuOnLine
[out] Read the BHT state on/off the CU
pwCuOnLine
Specification
AC_LINE_ONLINE Placed on the CU
AC_LINE_OFFLINE Not placed on the CU
pwBatteryFlag
[out] Read battery voltage level
pwBatteryFlag
Specification
BHT_BATTERY_FLAG_NO_BATTERY No battery loaded or no grip connected
pwBatteryVoltage
[out] Battery output voltage (mV)
"0" is always returned.
pwBatteryChemistry
[out] Battery type
pwBatteryChemistry
Specification
BATTERY_CHEMISTRY_UNKNOWN Unknown
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Storage address not specified.
Comments
With the BHT-700, the battery is not stored in the grip, and therefore the following information is returned
if this function is called.
- Battery voltage level : BHT_BATTERY_FLAG_NO_BATTERY (No battery loaded)
- Battery output voltage : 0 mV
- Battery type
: BATTERY_CHEMISTRY_UNKNOWN (Unknown)
104
16.4. LED API
BHT_GetNLedStatus
Description
Read the status of the indicator LED (red/blue).
Syntax
DWORD BHT_GetNLedStatus (
DWORD* pdwInfo )
Parameters
pdwInfo
[out] Address for storing the LED status
Specification
LED_OFF
Both red and blue LEDs OFF
RED_LED_ON
Red LED ON
GREEN_LED_ON
Blue LED ON
RED_LED_ON | GREEN_LED_ON Both red and blue LEDs ON
pdwInfo
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Storage address not specified.
105
BHT_SetNLedStatus
Description
Control the indicator LED (red/blue).
Syntax
DWORD BHT_SetNLedStatus (
DWORD dwStatus )
Parameters
dwStatus
[in] Controls the LED ON/OFF
dwStatus
LED_OFF
RED_LED_ON
GREEN_LED_ON
RED_LED_ON | GREEN_LED_ON
Specification
Turn off both red and blue LEDs
Turn on red LED only
Turn on blue LED only
Turn on both red and blue LEDs
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error.
Notes:
- When the barcode device file is opened by the BHT_EnableBar function, the indicator LED cannot be
controlled. Note that if the LED has been specified to be kept off by the BHT_EnableBar, the LED can
be controlled.
- If the LED is turned on by this function in a user program, it will be kept on until this function turns off the
LED even if the user program is terminated.
106
BHT_GetNLedStatusEx
Description
Read the status of the indicator LED and synchronization LED.
Syntax
DWORD BHT_GetNLedStatusEx (
DWORD dwLedDevice ,
DWORD* pdwStatus )
Parameters
dwLedDevice
[in] LED device
dwLedDevice Specification
LED_BAR
Indicator LED
pdwStatus
[out] Address for storing the LED status
pdwStatus
RED_LED_ON
GREEN_LED_ON
RED_LED_ON | GREEN_LED_ON
Specification
If dwLedDevice = LED_BAR
Red LED ON (Blue LED OFF)
Blue LED ON (Red LED OFF)
Both red and blue LEDs ON
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
Parameter error.
ERROR_INVALID_PARAMETER
Storage address not specified.
107
BHT_SetNLedOn
Description
Turn on the indicator LED and/or synchronization LED.
Syntax
DWORD BHT_SetNLedOn (
DWORD dwLedDevice ,
DWORD dwLedNum )
Parameters
dwLedDevice
[in] LED device
dwLedDevice
Specification
LED_BAR
Indicator LED
dwLedNum
[in] LEDs to be turned on
dwLedNum
RED_LED
GREEN_LED
RED_LED | GREEN_LED
Specification
If dwLedDevice = LED_BAR
Red LED
Blue LED
Red and blue LEDs
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error.
Notes:
- When the barcode device file is opened by the BHT_EnableBar function, the indicator LED cannot be
controlled. Note that if the LED has been specified to be kept off by the BHT_EnableBar, the LED can
be controlled.
- If the LED is turned on by this function in a user program, it will be kept on until this function turns off
the LED even if the user program is terminated.
108
BHT_SetNLedOff
Description
Turn off the indicator LED and/or synchronization LED.
Syntax
DWORD BHT_SetNLedOff (
DWORD dwLedDevice ,
DWORD dwLedNum )
Parameters
dwLedDevice
[in] LED device
dwLedDevice Specification
LED_BAR
Indicator LED
dwLedNum
[in] LEDs to be turned off
dwLedNum
RED_LED
GREEN_LED
RED_LED | GREEN_LED
Specification
If dwLedDevice = LED_BAR
Red LED
Blue LED
Red and blue LEDs
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error.
Notes:
- When the barcode device file is opened by the BHT_EnableBar function, the indicator LED cannot be
controlled. Note that if the LED has been specified to be kept off by the BHT_DisableBar, the LED can
be controlled.
109
16.5. Beeper/Vibrator API
BHT_StartBeep
Description
Drive the beeper or vibrator.
Syntax
DWORD BHT_StartBeep (
DWORD dwOnTime ,
DWORD dwOffTime ,
WORD wRepCnt ,
WORD wFreq )
Parameters
dwOnTime
[in] ON-duration (in units of 100 ms), Entry range: 0 to 255
dwOffTime
[in] OFF-duration (in units of 100 ms), Entry range: 0 to 255
wRepCnt
[in] Number of repetitions, Entry range: 0 to 255
wFreq
[in] Frequency (Hz) , Entry range: 0 to 32767
Specification of 0, 1 or 2 to wFeq produces the special beeper effects as listed below.
wFreq
Tone
Frequency (Hz)
0
Low-pitched
698
1
Medium-pitched
1396
2
High-pitched
2793
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error.
110
Comment:
- The system functions allow the beeper volume to be changed. (Refer to Section 5.2. and 5.3.)
- Specification of any of 3 through 667 to wFreq deactivates the beeper or vibrator.
- Specification of zero to dwOnTime deactivates the beeper or vibrator.
- Specification of a value except zero to dwOnTime and wRepCnt and specification of zero to
dwOffTime keep the beeper sounding.
- For your reference, the relationship between the frequencies and the musical scale is listed below.
Scale 1 Scale 2 Scale 3 Scale 4
do (C)
do# (C#)
re (D)
re# (D#)
mi (E)
fa (F)
fa# (F#)
sol (G)
sol# (G#)
la (A)
la (A#)
si (B)
698
739
783
830
880
932
987
1046
1108
1174
1244
1318
1396
1479
1567
1760
1760
1864
1975
2093
2217
2349
2489
2637
2793
2959
3135
3520
3520
3729
3951
4186
111
BHT_StartBeeperOnly
Description
Drive the beeper.
Syntax
DWORD BHT_StartBeeperOnly (
DWORD dwOnTime ,
DWORD dwOffTime,
WORD wRepCnt ,
WORD wFreq )
Parameters
dwOnTime
[in] ON-duration (in units of 100 ms), Entry range: 0 to 255
dwOffTime
[in] OFF-duration (in units of 100 ms), Entry range: 0 to 255
wRepCnt
[in] Number of repetitions, Entry range: 0 to 255
wFreq
[in] Frequency (Hz) , Entry range: 0 to 32767
Specification of 0, 1 or 2 to wFeq produces the special beeper effects as listed below.
wFreq
Tone
Frequency (Hz)
0
Low-pitched
698
1
Medium-pitched
1396
2
High-pitched
2793
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error.
112
Comment:
- The system functions allow the beeper volume to be changed. (Refer to Section 5.2. and 5.3.)
- Specification of any of 3 through 667 to wFreq deactivates the beeper or vibrator.
- Specification of zero to dwOnTime deactivates the beeper or vibrator.
- Specification of a value except zero to dwOnTime and wRepCnt and specification of zero to
dwOffTime keep the beeper sounding.
- For your reference, the relationship between the frequencies and the musical scale is listed below.
Scale 1 Scale 2 Scale 3 Scale 4
do (C)
do# (C#)
re (D)
re# (D#)
mi (E)
fa (F)
fa# (F#)
sol (G)
sol# (G#)
la (A)
la (A#)
si (B)
698
739
783
830
880
932
987
1046
1108
1174
1244
1318
1396
1479
1567
1760
1760
1864
1975
2093
2217
2349
2489
2637
2793
2959
3135
3520
3520
3729
3951
4186
113
BHT_StartVibrationOnly
Description
Drive the vibrator.
Syntax
DWORD BHT_StartVibrationOnly (
DWORD dwOnTime ,
DWORD dwOffTime ,
WORD wRepCnt )
Parameters
dwOnTime
[in] ON-duration (in units of 100 ms), Entry range: 0 to 255
dwOffTime
[in] OFF-duration (in units of 100 ms), Entry range: 0 to 255
wRepCnt
[in] Number of repetitions, Entry range: 0 to 255
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error.
114
16.6. Wireless Communication API
BHT_RF_Open
Description
Open the wireless LAN device and enable wireless communication.
Syntax
DWORD BHT_RF_Open ( void )
Parameters
None
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_DEV_NOT_EXIST
No NIC device found.
ERROR_SHARING_VIOLATION Bluetooth device is opened.
Remarks
Wireless LAN and Bluetooth device cannot be opened at the same time. If wireless LAN device tries to
be opened while Bluetooth device is opened, an error (ERROR_SHARING_VIOLATION) is returned.
115
BHT_RF_OpenEx
Description
Sets the communication format, opens the wireless LAN device and enables wireless communication.
Syntax
DWORD BHT_RF_OpenEx (
DWORD dwOpt )
Parameters
dwOpt
[in] Communication format
dwOpt
Specification
Wireless communication open
COMM_NORMAL
COMM_CONTINUOUS Wireless communication continuously open
Return value
Error code
ERROR_SUCCESS
ERROR_DEV_NOT_EXIST
ERROR_INVALID_PARAMETER
ERROR_SHARING_VIOLATION
Meaning
Successful completion
No NIC device found.
Parameter error
Bluetooth device is opened.
Remarks
Wireless LAN and Bluetooth device cannot be opened at the same time. If wireless LAN device tries to be
opened while Bluetooth device is opened, an error (ERROR_SHARING_VIOLATION) is returned.
116
BHT_RF_Close
Description
Close the wireless LAN device and disable wireless communication.
Syntax
DWORD BHT_RF_Close ( void )
Parameters
None
Return value
Error code
Meaning
ERROR_SUCCESS Successful completion
117
BHT_RF_CloseEx
Description
Closes the wireless LAN device for the set format and disables wireless communication.
Syntax
DWORD BHT_RF_CloseEx (
DWORD dwOpt )
Parameters
dwOpt
[in] Communication format
dwOpt
Specification
Wireless communication open
COMM_NORMAL
COMM_CONTINUOUS Wireless communication continuously open
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error
118
BHT_RF_IoControl
Description
Sends a control command to the driver and performs an operation corresponding to that command.
Syntax
DWORD BHT_RF_IoControl (
DWORD Oid ,
LPVOID lpInBuf ,
DWORD nInBufSize ,
LPVOID lpOutBuf ,
DWORD nOutBufSize ,
LPVOID lpBytesReturned )
Parameters
Oid
[in] Control command ID
Oid
Specification
RF_UPDATE_PROFILE
Updates the profile settings for the BHT wireless registry. (*1)
RF_COMMIT_PROFILE
Updates the changed parameter value to the driver. (*2)
RF_SET_PROFILE
Selects the profile to be edited.
RF_REMOVE_PROFILE
Deletes the profile.
RF_GET_PROFILE_COUNT Acquires the number of completed profiles.
RF_GET_PROFILE_KEY
Acquires the profile key.
(*1) Copies values set at the ZeroConfig GUI to the BHT wireless registry referenced by the wireless
driver.
(*2) Updates values set at this API to ZeroConfig.
lpInBuf
[in] Header address for buffer in which input data is stored
nInBufSize
[in] Size of buffer in which input data is stored (Bytes)
lpOutBuf
[out] Header address for buffer in which output data is stored
nOutBufSize
[out] Size of buffer in which output data is stored (Bytes)
lpBytesReturned
[out] Size of actually acquired output data (Bytes)
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
Parameter error
ERROR_INVALID_PARAMETER
Storage header address unset
ERROR_NOT_READY
Can not access ZeroConfig service
ERROR_NOT_ENOUGH_MEMORY The number of profiles has exceeded the maximum (16).
ERROR_NOT_FOUND
The relevant profile cannot be found.
ERROR_FILE_NOT_FOUND
The relevant file cannot be found.
119
The details set for each argument differ for each command.
Oid
RF_UPDATE_PROFILE
RF_COMMIT_PROFILE
RF_SET_PROFILE
RF_REMOVE_PROFILE
(*3)
nInBufSize
lpOutBuf
nOutBufSize
−
−
−
−
−
−
−
−
ST_RF_PROFILE
_KEY size
−
−
ST_RF_PROFILE
_KEY size
−
−
ST_RF
_PROFILE_KEY
(*3)
ST_RF
_PROFILE_KEY
−
RF_GET_PROFILE_COUNT
RF_GET_PROFILE_KEY
lpInBuf
Profile index to be
acquired
−
sizeof(DWORD)
Profile count
storage variable
ST_RF
_PROFILE_KEY
sizeof(DWORD)
ST_RF_PROFILE
_KEY size
Use ESSID and Infrastructure mode to specify the profile. Create a new profile if no profile can be
found corresponding to the specified ESSID and Infrastructure mode.
The ST_RF_PROFILE_KEY configuration is as follows.
Construction
typedef struct _ST_RF_PROFILE_KEY {
TCHAR szESSID [SSID_MAX+1]; // ESSID
UCHAR ucReserved [2];
// reserved
DWORD dwInfraMode;
// Infrastructure mode
} ST_RF_PROFILE_KEY;
Members
szESSID
SSID specified character string
dwInfraMode
Infrastructure mode
dwInfraMode
Specification
INFRA_INFRASTRUCTURE Infrastructure
120
BHT_RF_Synchronize
Description
Get the association status.
Syntax
DWORD BHT_RF_Synchronize (
long lTimeout ,
long* plSync )
Parameters
lTimeout
[in] Timeout (in units of 100 ms)
lTimeout
>0
0
-1
Specification
Confirm the synchronization status until timeout
Check the synchronization status immediately and return the result
Try to synchronize with the access point until synchronized
plSync
[out] Address for storing the synchronization result
plSync
Specification
0
Successfully synchronized
-1
Synchronization incomplete (timed out)
Return value
Error code
ERROR_SUCCESS
ERROR_DEV_NOT_EXIST
ERROR_NOT_READY
Meaning
Successful completion
No NIC device found.
Device not ready.
Parameter error
ERROR_INVALID_PARAMETER
Storage address not specified.
121
BHT_RF_GetParamInt
Description
Read integer from the wireless communications parameter.
Syntax
DWORD BHT_RF_GetParamInt (
DWORD dwParam ,
DWORD* pdwData ,
DWORD* pdwLen )
Parameters
dwParam
[in] Parameter number
Specification
Power mode
dwData
P_INT_POWERSAVE
= P_PWRSAVE_CAM
= P_PWRSAVE_PSP
Radio mode
dwData
= P_RADIOMODE_11A
P_INT_RADIOMODE
= P_RADIOMODE_11B
= P_RADIOMODE_11B |
P_RADIOMODE_11G
Authentication method
dwData
= P_AUTH_OPEN
= P_AUTH_SHARED
P_INT_AUTHENTICATE
= P_AUTH_WPA
= P_AUTH_WPAPSK
= P_AUTH_WPA2
= P_AUTH_WPA2PSK
Encryption
dwData
= P_ENCRYPT_DISABLE
P_INT_ENCRYPTION
= P_ENCRYPT_WEP
= P_ENCRYPT_TKIP
= P_ENCRYPT_AES
802.1x authentication (EAP type)
dwData
P_INT_8021X
= P_8021X_DISABLE
= P_8021X_PEAP
= P_8021X_TLS
Profile priority
P_INT_PRIORITY
dwData
= 1 (high) to 16 (low)
Index key
P_INT_INDEXKEY
dwData
= 1 to 4
dwParam
pdwData
[out] Address for storing data obtained
pdwLen
[out] Address for storing the length of data obtained
If the function succeeds in getting data, the length of data obtained is always 4.
122
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
Parameter error
ERROR_INVALID_PARAMETER
Address for storing data obtained not specified.
ERROR_NOT_SUPPORTED
Not supported
123
BHT_RF_SetParamInt
Description
Write integer to the wireless communications parameter.
Syntax
DWORD BHT_RF_SetParamInt (
DWORD dwParam ,
const DWORD* pdwData ,
DWORD dwLen )
Parameters
dwParam
[in] Parameter number
Specification
Power mode
dwData
P_INT_POWERSAVE
= P_PWRSAVE_CAM
= P_PWRSAVE_PSP
Radio mode
dwData
= P_RADIOMODE_11A
P_INT_RADIOMODE
= P_RADIOMODE_11B
= P_RADIOMODE_11B |
P_RADIOMODE_11G
Authentication method
dwData
= P_AUTH_OPEN
= P_AUTH_SHARED
P_INT_AUTHENTICATE
= P_AUTH_WPA
= P_AUTH_WPAPSK
= P_AUTH_WPA2
= P_AUTH_WPA2PSK
Encryption
dwData
= P_ENCRYPT_DISABLE
P_INT_ENCRYPTION
= P_ENCRYPT_WEP
= P_ENCRYPT_TKIP
= P_ENCRYPT_AES
802.1x authentication (EAP type)
dwData
P_INT_8021X
= P_8021X_DISABLE
= P_8021X_PEAP
= P_8021X_TLS
Profile priority
P_INT_PRIORITY
dwData
= 1 (high) to 16 (low)
Index key
P_INT_INDEXKEY
dwData
= 1 to 4
dwParam
pdwData
[in] Destination address where the set data is to be stored
dwLen
[in] Length of data
The data length is always 4.
124
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
Parameter error
ERROR_INVALID_PARAMETER
Address for storing data obtained not specified.
ERROR_NOT_SUPPORTED
Not supported
125
BHT_RF_GetParamStr
Description
Read string from the wireless communications parameter.
Syntax
DWORD BHT_RF_GetParamStr (
DWORD dwParam ,
TCHAR* pwchData ,
DWORD* pdwLen )
Parameters
dwParam
[in] Parameter number
dwParam
Specification
P_STR_VERSION
Driver version
P_STR_FW_VERSION Firmware version
P_STR_MACADDRESS MAC address
pwchData
[out] Heading address of the storage buffer for data obtained
pdwLen
[out] Length of data obtained
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
Parameter error
ERROR_INVALID_PARAMETER
Storage address not specified.
ERROR_NOT_SUPPORTED
Not supported
126
BHT_RF_SetParamStr
Description
Write character string to the wireless communications parameter.
Syntax
DWORD BHT_RF_SetParamStr (
DWORD dwParam ,
TCHAR* pwchData ,
DWORD dwLen )
Parameters
dwParam
[in] Parameter number
dwParam
Specification
P_STR_WEPKEY1
WEP Key 1
P_STR_PRESHAREDKEY Pre Shared Key
pwchData
[in] Heading address of the storage buffer for data specified
dwLen
[in] Length of data specified
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error
ERROR_NOT_SUPPORTED
Not supported.
127
BHT_RF_GetInfoInt
Description
Read integer from the communications parameter.
Syntax
DWORD BHT_RF_GetInfoInt (
DWORD dwType ,
DWORD* pdwInfo )
Parameters
dwType
[in] Type of information to be read out
dwType
P_RATE_INFO
P_RATE_INFO2
Specification
Current communication speeds:
No link → P_RATE_NOT_LINK
1Mbps → P_RATE_1MBPS
2Mbps → P_RATE_2MBPS
5.5Mbps → P_RATE_5_5MBPS
11Mbps → P_RATE_11MBPS
Above 11Mbps → P_RATE_OVER11MBPS
Current communication speeds (Units: 100bps):
[Ex.]
5.5Mbps → 55,000
11Mbps → 110,000
54Mbps → 540,000
P_CHANNEL_INFO Frequency channel currently used
pdwInfo
[out] Address for storing info read
Return value
Error code
ERROR_SUCCESS
ERROR_DEV_NOT_EXIST
ERROR_NOT_READY
Meaning
Successful completion
No NIC device found.
Device not ready.
Parameter error
ERROR_INVALID_PARAMETER
Storage address not specified.
128
BHT_RF_GetInfoStr
Description
Read string from the communications parameter.
Syntax
DWORD BHT_RF_GetInfoStr (
DWORD dwType ,
TCHAR* pwchInfo )
Parameters
dwType
[in] Type of information to be read out
dwType
Specification
P_APMAC_INFO MAC address of AP being linked
pwchInfo
[out] Heading address of the storage buffer for info read
Return value
Error code
ERROR_SUCCESS
ERROR_DEV_NOT_EXIST
ERROR_NOT_READY
Meaning
Successful completion
No NIC device found.
Device not ready.
Parameter error
ERROR_INVALID_PARAMETER
Storage address not specified.
129
BHT_RF_GetSiteSurvey
Description
Get the quality of the communications link.
Syntax
DWORD BHT_RF_GetSiteSurvey (
DWORD* pdwStrength ,
DWORD* pdwBeacon ,
DWORD* pdwLink )
Parameters
pdwStrength
[out] Current signal strength, 0 to 100 (%)
pdwBeacon
[out] The same value as pdwStrength, 0 to 100 (%)
pdwLink
[out] Current link quality
pdwLink
LQ_UNSYNC
LQ_POOR
LQ_FAIR
LQ_GOOD
LQ_EXCELLENT
Specification
Not associated
Poor communications link (less than 26%)
Fair communications link (26% or more and less than 42%)
Good communications link (42% or more and less than 74%)
Excellent communications link (74% or more for send and receive)
Return value
Error code
ERROR_SUCCESS
No NIC device found.
ERROR_NOT_READY
Meaning
Successful completion
No NIC device found.
Device not ready.
Parameter error
ERROR_INVALID_PARAMETER
Storage address not specified.
130
16.7. OS Updating API
BHT_SystemModify
Description
Update the BHT OS.
Syntax
DWORD BHT_SystemModify (
DWORD dwCtrlCode,
TCHAR * pwchSysParam,
DWORD dwLen,
DWORD * pdwLenReturned )
Parameters
pwszFileName
[in] Pointer filename that points a NULL-appended character string containing the OS reconfiguration
filename.
dwMode
[in] Reboot mode after turning the power off
dwMode
Specification
SYSMDFY_POWEROFF Turn the power off. (Cold-boot the BHT at the next power on)
SYSMDFY_REBOOT
Perform a cold boot.
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
Specified file or device not found. (OS reconfiguration file not
ERROR_FILE_NOT_FOUND
found.)
ERROR_INVALID_PARAMETER Parameter error.
ERROR_BAD_FORMAT
The OS update file is incorrect.
131
16.8. Bluetooth API
BHT_BT_PowerOn
Description
Turns ON the Bluetooth device power supply and enables Bluetooth.
Syntax
DWORD BHT_BT_PowerOn ( void )
Parameters
None
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
The unit is not equipped with a Bluetooth
ERROR_DEV_NOT_EXIST
device.
ERROR_SHARING_VIOLATION Wireless LAN device is opened.
Remarks
Wireless LAN and Bluetooth device cannot be opened at the same time. If Bluetooth device tries to be
opened while wireless LAN device is opened, an error (ERROR_SHARING_VIOLATION) is returned.
132
BHT_BT_PowerOff
Description
Turns OFF the Bluetooth device power supply and disables Bluetooth.
Syntax
DWORD BHT_BT_PowerOff ( void )
Parameters
None
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
The unit is not equipped with a Bluetooth
ERROR_DEV_NOT_EXIST
device.
133
BHT_BT_GetPowerStatus
Description
Acquires the Bluetooth device power status.
Syntax
DWORD BHT_BT_GetPowerStatus (
DWORD *pdwStatus )
Parameters
pdwStatus
[in] Device status storage location address
The following values are returned for the device status.
pdwStatus
Specification
BHT_BT_POWER_ON The Bluetooth device power is ON.
BHT_BT_POWER_OFF The Bluetooth device power is OFF.
Return value
Error code
Meaning
Successful completion
The unit is not equipped with a Bluetooth
ERROR_DEV_NOT_EXIST
device.
ERROR_INVALID_PARAMETER Storage location address unset
ERROR_SUCCESS
134
16.9. Other APIs
BHT_WaitEvent
Description
Make the system wait until the specified event or timeout occurs.
Syntax
DWORD BHT_WaitEvent (
DWORD dwEvtNum ,
DWORD dwEvtMask ,
DWORD dwTimeOut ,
DWORD* pdwSignalEvent )
Parameters
dwEvtNum
[in] Number of events to wait
dwEvtMask
[in] Waiting event mask
dwEvtMask
Specification
EVT_MASK_KEYDOWN
Key depressed
EVT_MASK_TRGDOWN
Trigger switch depressed
EVT_MASK_TCHUP
Stylus released
EVT_MASK_DECODE
Decoding completed
EVT_MASK_RECEIVE
Data reception (IrDA interface)
EVT_MASK_RECEIVE_IRDA
EVT_MASK_RECEIVE_RS232C Data reception(Serial interface)
EVT_MASK_RECEIVE_USB
Data reception(USB interface)
NOTE: ORing these events enables the BHT to wait for the two or more events.
dwTimeOut
[in] Timeout period (ms)
pdwSignalEvent
[out] Address for storing an event mask that occurred
pdwSignalEvent
Specification
EVT_MASK_KEYDOWN
Key depression
EVT_MASK_TRGDOWN
Trigger switch depression
EVT_MASK_TCHUP
Stylus release
EVT_MASK_DECODE
Decoding complete
EVT_MASK_RECEIVE
Data reception(IrDA interface)
EVT_MASK_RECEIVE_IRDA
EVT_MASK_RECEIVE_RS232C Data reception(Serial interface)
EVT_MASK_RECEIVE_USB
Data reception(USB interface)
EVT_MASK_TIMEOUT
Timeout
NOTE: To make the system wait for occurrence of any event infinitely, specify INFINITE in dwTimeOut.
135
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
Parameter error.
ERROR_INVALID_PARAMETER
Storage address not specified
Comment:
The following five types of events can be specified:
- Depression of any key
- Depression of the trigger switch
- Stylus release
- Decoding completion
- Data reception (in IrDA interface, Serial interface, USB interface)
Specifying two or more events concurrently using this function allows the system to wait for occurrence of
any of these events. To wait for other events in addition to events listed above, add desired events using
macros with the event names defined by the BHTLIB.h library.
[Ex] Wait for occurrence of entry by any key depression or decoding completion for 10 seconds
BHT_WaitEvent (2, EVT_MASK_KEYDOWN | EVT_MASK_DECODE,
10 * 1000, &dwSignalEvent);
136
BHT_WaitStandbyEvent
Description
Make the system wait until the specified event occurs.
Syntax
BHT_WaitStandbyEvent (
DWORD dwEvtNum ,
DWORD dwEvtMask ,
DWORD* pdwSignalEvent )
Parameters
dwEvtNum
[in] Number of events to wait
dwEvtMask
[in] Events to wait
dwEvtMask
EVT_MASK_KEYDOWN
EVT_MASK_TRGDOWN
EVT_MASK_TCHUP
EVT_MASK_DECODE
EVT_MASK_RECEIVE
EVT_MASK_RECEIVE_IRDA
EVT_MASK_RECEIVE_RS232C
EVT_MASK_RECEIVE_USB
Specification
Key depression
Trigger switch depression
Stylus release
Decoding complete
Data reception(IrDA interface)
Data reception(Serial interface)
Data reception(USB interface)
pdwSignalEvent
[out] Address for storing events that occurred
pdwSignalEvent
EVT_MASK_KEYDOWN
EVT_MASK_TRGDOWN
EVT_MASK_TCHUP
EVT_MASK_DECODE
EVT_MASK_RECEIVE
EVT_MASK_RECEIVE_IRDA
EVT_MASK_RECEIVE_RS232C
EVT_MASK_RECEIVE_USB
Specification
Key depression
Trigger switch depression
Stylus release
Decoding complete
Data reception(IrDA interface)
Data reception(Serial interface)
Data reception(USB interface)
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
Parameter error.
ERROR_INVALID_PARAMETER
Storage address not specified
137
Comment:
The following five types of events can be specified:
- Depression of any key
- Depression of the trigger switch
- Stylus release
- Decoding completion
- Data reception (in IrDA interface, Serial interface, USB interface)
Unlike BHT_WaitEvent, this function lets the CPU enter the standby mode when making the system wait,
reducing power consumption. Note that execution of any other active thread will be suspended during
execution of this function.
138
BHT_ShutdownSystem
Description
Turn off the BHT and boot the BHT according to the mode specified by the parameter.
Syntax
DWORD BHT_ShutdownSystem (
DWORD dwMode )
Parameters
dwMode
[in] Power-off mode
Specifications
dwMode
Turn off and warm-boot the BHT. No power-off action is required.
The contents in the RAM can be retained.
Transfer control to the suspended mode. Pressing the power key
BHT_PWR_SUSPEND
starts the BHT. The contents in the RAM will be retained as long as
the sub-battery is charged.
Turn off and cold-boot the BHT. Pressing the power key starts the
BHT_PWR_COLD_REGINIT
BHT. The contents in the RAM will be lost and the system registry
will be initialized.
Turn off and cold-boot the BHT. Pressing the power key starts the
BHT. The contents of the system registry will be saved into the nonBHT_PWR_COLD_REGREMAIN
volatile memory in powering-off sequence and restored at the cold
boot.
A cold boot is performed automatically after turning OFF the power.
BHT_PWR_SYSMODIFY
With the BHT-700, this is the same as BHT_PWR_COLD.
A cold boot is performed automatically after turning OFF the power.
If the registry has been saved, the BHT is booted based on the
BHT_PWR_COLD
values for that registry, however, if it has not been saved, the BHT
is booted based on the values for the default registry value.
BHT_PWR_WARM
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_INVALID_PARAMETER Parameter error.
Comment:
Any of the following five modes can be specified:
- Warm boot*
- Suspend
- Cold boot* with Registry initialization (The Registry backup will also be lost.)
- Cold boot* without Registry initialization
- Cold boot*
*Contents of the memory after warm-/cold-booting the BHT
After warm booting
Files in the FLASH folder
Files in the RAM
Contents of the Registry
Data being edited
After cold booting
Retained
Retained
Retained
Erased
Retained
Erased
Erased (Note)
Erased
(Note) If the Registry has been backed up, the backup will apply.
139
BHT_RegStore
Description
Save the registry.
Syntax
DWORD BHT_RegStore ( void )
Parameters
None
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_WRITE_FAULT Failed to save registry.
140
Chapter 17. Programming Using OCX (OLE Customer Control)
The BHT-700 Software Development Kit (BHT-700 SKD) provides ActiveX Control that can be used for
programming applications for barcode reading and file transfer.
This chapter gives information for using the ActiveX control.
17.1. System Requirements
(1) BHT-700 Software Development Kit
(2) Control files .ocx for the desktop
- Scanner700.ocx: For barcode reading (for BHT-700B)
- Scanner700Q.ocx: For barcode reading (for BHT-700Q)
- FileTransfer700.ocx: For file transmission
- FileTransferPC.ocx: For file transmission(for PC)
17.2. Installation
(1) Copy the .ocx files in the BHT-700 Software Development Kit CD onto the appropriate folder of your
PC.
(2) Open the DOS command prompt and change the directory to the folder including the .ocx files.
(3) Run the following two commands on the command line (>):
> regsvr32 Scanner700.ocx
> regsvr32 Scanner700Q.ocx
> regsvr32 FileTransfer700.ocx
> regsvr32 FileTrrnaferPC.ocx
17.3. Using OCX
In Microsoft Foundation Class (MFC)
(1) Open an existing project or create a new project in eMbedded Visual C++.
(2) Insert the newly installed ActiveX control into eMbedded Visual C++. (This step is required only
when the ActiveX control is first used after installation.)
(3) -1 Point and right-click the active window or dialog, then choose "Insert ActiveX Control" command
on the dropdown menu.
141
(2)-2 Click Add Control and choose the newly installed OCX by clicking Open.
(2)-3 Click OK, and the control is pasted as shown below.
(3) Add the control to the project.
(3)-1 Click Project–Add to Project–Components and Controls on the menu bar as shown below.
142
(3)-2 Select the installed .OCX file.
(3)-3 Click Insert, and the message “Do you insert component?” pops up. Click OK, and specify an
appropriate class name, header filename and implement filename.
(3)-4 If OK is clicked, an icon of the added control will be added to the dialog as shown below (redcircled).
(4) Following ClassWizard, assign a member variable to the inserted control.
143
17.4. Scanner Control
17.4.1. Properties
Name and type
R/W
eVC++
Value
Default value
GetPortOpen
SetPortOpen
BOOL
TRUE or
R/W
FALSE
FALSE
GetReadMode
SetReadMode
CString
R/W
Description
Enable/disable flag for barcode
reading
TRUE: Enable
FALSE: Disable
(*1)
"FB"
Character string for specifying
the read mode (*1), (*2)
BHT700B
"A,I:4-99,M:1-99,
N:3-99,L:1-99,
K:1-99,H:3-99,P:1-99"
BHT700Q
" Q:E,A,I:4-99,L:1-99,M:199,N:3-99,K:1-99,Y,X,Z,R,V "
Character string for specifying
the enable read code (*1), (*2)
GetReadType
SetReadType
CString
R/W
(*1)
GetBufferData
SetBufferData
CString
R
-
""
Data stored in the barcode buffer
(*1)
GetBufferCount
SetBufferCount
long
R
-
0
Number of digits stored in the
barcode buffer (*1)
GetBufferType
SetBufferType
long
R
-
0
Barcode type stored in the
barcode buffer (*1)
GetLastCount
SetLastCount (*5)
long
R
-
0
Number of digits in the barcode
read last
GetLastType
SetLastType (*5)
GetLastCodeNum(*6)
GetErrorStatus
SetErrorStatus
long
R
-
0
Barcode type read last
long
R
-
0
No. of barcodes read last (*7)
long
R/W
(*3)
ERROR_SUCCESS
Error code that occurred last (*4)
GetWaitStby
SetWaitStby
BOOL
R/W
TRUE or
FALSE
FALSE
Whether or not the control
transfers to the standby mode
before decoding completes
TRUE: Transfer
FALSE: Not transfer
(*1) Refer to BHT_EnableBar function.
(*2) Even if a value out of the range is specified, no error occurs. If TRUE is set to the portOpen property with
the value being out of the range, an error occurs.
(*3) For details about error codes, refer to Section 17.4.4 Error Codes."
(*4) A new error code overwrites the old one whenever an error occurs. The ERROR_SUCCESS does not
overwrite.
(*5) only for Scanner700.ocx
(*6) only for Scanner700Q.ocx
(*7) “1” when a code other than a multi-line code or a composite code has been read.
144
17.4.2. Methods
GetChkDigit
Description
Calculate a check digit (CD) of the barcode data according to the specified calculation method. (Refer to
the BHT_GetBarChkDgt function.)
Syntax
long GetChkDigit (
TCHAR* BarData ,
short ChkDgtType )
Parameters
BarData
[in] Character string of the barcode
ChkDgtType
[in] Check digit type
(For details, refer to the BHT_GetBarChkDgt function.)
Return value
Value of the check digit calculated
145
GetLastCount
Description
Supported only on BHT-700Q
Read the number of digits in the specified row of the code that was read most recently.
Syntax
long GetLastCount (
long CodeNo)
Parameters
CodeNo
[in] Row number for which you wish to get the number of digits (starting with “0” for the first row).
Return value
No. of digits in the row specified in CodeNo
If [the row number specified in CodeNo + 1] is larger than the number of rows actually read, “0” will be
returned.
146
GetLastType
Description
Supported only on BHT-700Q
Read the code type in the specified row of the code that was read most recently.
Syntax
long GetLastType(
long CodeNo)
Parameters
CodeNo
[in] Row number for which you wish to get the code type (starting with “0” for the first row).
Return value
Code type in the row specified in CodeNo
If [the row number specified in CodeNo + 1] is larger than the number of rows actually read, “0” will be
returned.
147
17.4.3. Event Callback Function
DecodeDone
Description
This function is called when decoding is successfully completed. It reads out the bufferData property to
get data decoded.
Syntax
void OnDecodeDone ( void )
Parameters
None
Return value
None
148
17.4.4. Error Codes
If an error occurs during access to properties or during calling to methods, the error code will be stored into
the errorStatus variable.
Error Code Table
Propertie or
Name
Content
Method
ERROR_TOO_MANY_OPEN_FILES Barcode reading enabled (when flag is TRUE).
readMode or readType out of the range (when
portOpen
ERROR_INVALID_PARAMETER
flag is TRUE)
ERROR_INVALID_HANDLE
Barcode reading disabled (when flag is FALSE)
BufferData
ERROR_INVALID_HANDLE
Barcode reading disabled
Check digit type out of the range or invalid
GetChkDigit
ERROR_INVALID_PARAMETER
barcode data
17.4.5. Coding Sample
/* Initialize main dialog */
BOOL CBarOCXDlg::OnInitDialog()
{
CDialog::OnInitDialog();
…………………………...…
…………………………...…
/* Enable barcode reading */
m_ScanCtrl.SetPortOpen(TRUE);
return TRUE;
}
/* Initialize main dialog */
void CBarOCXDlg::OnDestroy()
{
/* Disable barcode reading */
m_ScanCtrl.SetPortOpen(FALSE);
CDialog::OnDestroy();
}
/* Callback for decoding completion */
void CBarOCXDlg::OnDecodeDoneScannerctrl()
{
CString BarData; /* Read data */
/* Read data from buffer */
BarData = m_ScanCtrl.GetBufferData();
/* Display */
…………………………...…
…………………………...…
}
149
17.5. File Transfer Control
17.5.1. Properties
Name
eVC++
GetPort
SetPort
R/W Value
short
COM1
R/W COM4
CBR_300 (*1)
CBR_600 (*1)
CBR_1200 (*1)
CBR_2400 (*1)
CBR_4800 (*1)
CBR_9600
CBR_19200
CBR_38400
CBR_57600
CBR_115200
NOPARITY
ODDPARITY (*1)
EVENPARITY (*1)
GetBaud
SetBaud
long
R/W
GetParity
SetParity
short
R/W
GetStopBit
SetStopBit
GetPath
SetPath
GetTransferring
EventInterval
SetTransferring
EventInterval
short
R/W TWOSTOPBITS (*1)
ONESTOPBIT
CString
Absolute path starting
R/W with \ sign
LPCTSTR
long
R/W 0 to 2147483647
Default
value
Content
COM4
COM port
CBR_115200
Transmission rate
NOPARITY
Parity
ONESTOPBIT
Stop bit
"\"
Folder to store send files
Folder to store receive files
0
Transferring Event interval
during transmission
(in units of 100 ms)
0 for no event
long
R/W 0 to 65535
30
(30sec.)
Time required from
commencement of
transmission to timeout
(in seconds)
No timeout occurs when set
to 0.
GetRetransmissionInterval
long
SetRetransmissionInterval
R/W 1 to 65535
30
(30sec.)
Retransmission interval
(in units of 100 ms)
GetTransmissionTimeout
SetTransmissionTimeout
R/W 1 to 65535
30
(30sec.)
Time required for
transmission timeout
(in seconds)
GetLinkTimeout
SetLinkTimeout
long
(*1) Only for COM1
150
17.5.2. Methods
Function
AddFile
ClearFile
GetFile
Description
Add a file to be transmitted.
Clear a file added by AddFile.
Acquires the file name of the file to be transmitted or received.
At the transmission side, returns the number of transmitted files, and at the
GetFileCount
receipt side, returns the number of received files, including the file currently
being received.
GetTransferredCount Returns the number of files for which transmission or receipt is complete.
Send
Transmit a file specified by AddFile.
Receive
Receive a file.
Abort
Abort the current file transmission process.
GetState
Get the current file transmission status.
GetError
Return the error information about the transaction processed last.
AddFile
Description
Add a file to be transmitted. Specify the filename excluding its pathname. The length of the filename is
within 90 characters.
Syntax
long AddFile (
LPCTSTR FileName )
Parameters
FileName
[in] Filename excluding pathname
Return value
Error code
ERROR_SUCCESS
Meaning
Successful completion
NULL set to the parameter.
ERROR_INVALID_PARAMETER
Filename length is 0.
ERROR_FILENAME_EXCED_RANGE Filename too long
151
ClearFile
Description
Clears a file added by AddFile.
Syntax
void ClearFile ( void )
Parameters
None
Return value
None
GetFile
Description
Acquires the file name of the file to be transmitted or received.
The maximum value given by the “Index” parameter is the number of files acquired with GetFileCount.
Syntax
CString GetFile (long Index)
Parameter
Index
[in] Index (1 or greater)
Return Value
File name of the specified Index (character string with length 0 when the Index lies outside the range).
GetFileCount
Description
At the transmission side, returns the number of transmitted files, and at the receipt side, returns the
number of received files, including the file currently being received.
Syntax
short GetFileCount ( void )
Parameters
None
Return value
Transmission side:
Number of transmitted files (number of files added with AddFile)
Receipt side:
Number of received files (number of received files + file currently being transmitted)
Comment:
This value is cleared when Receive or ClearFile is called.
152
GetTransferredCount
Description
Returns the number of files for which transmission or receipt is complete.
Syntax
void GetTransferredCount (void)
Parameter
None
Return Values
Transmission side:
Number of files for which transmission is complete
Receipt side:
Number of files for which receipt is complete
Comment:
This value is cleared when Receive or ClearFile is called.
153
Send
Description
Transmit a file specified by AddFile.
Syntax
Long Send ( void )
Parameters
None
Return value
Error code
ERROR_SUCCESS
ERROR_ACCESS_DENIED
ERROR_FILE_NOT_FOUND
ERROR_NO_MORE_FILES
ERROR_BAD_PATHNAME
Meaning
Successful completion
Access to COM port denied (e.g., occupied by other tasks)
Specified file or device not found
No send file found (No file added by AddFile.)
Path too long (Path + filename > 260 characters)
Receive
Description
Receive a file.
Syntax
long Receive (void)
Parameters
None
Return value
Error code
Meaning
ERROR_SUCCESS
Successful completion
ERROR_ACCESS_DENIED Access to COM port denied (e.g., occupied by other tasks)
ERROR_FILE_NOT_FOUND Specified file or device not found
154
Abort
Description
Abort the current file transmission process. After aborting, the Done event will occur.
Syntax
Void Abort ( void )
Parameters
None
Return value
None
GetState
Description
Get the current file transmission status.
Syntax
short GetState ( void )
Parameters
None
Return value
Error code
Meaning
TRANSFER_READY
On standby
TRANSFER_SEND
Transmitting
TRANSFER_RECEIVE Receiving
155
GetError
Description
Return the error information for the transaction processed last.
Syntax
long GetError ( void )
Parameters
None
Return value
Code of an error that occurred during processing of methods.
156
17.5.3. Event Callback Functions
Function
Description
Done
This function is called when the transmission ends as specified.
Transferring Get the information about a file being transmitted.
Done
Description
This function is called when the transmission ends as specified.
Syntax
void OnDone (
long Result )
Parameters
Result
[out] End code listed in the table below
Result
RROR_SUCCESS
ERROR_TIMEOUT
ERROR_OPERATION_ABORTED
ERROR_OPEN_FAILED
ERROR_INVALID_DATA
ERROR_DISK_FULL
ERROR_BAD_PATHNAME
Meaning
Succeeded.
Timeout.
Process is aborted.
Failed to open a file.
Invalid data received.
Sufficient storage area not reserved.
Path too long (Path + filename > 260 characters)
Return value
None
157
Transferring
Description
Get the information about a file being transmitted.
Syntax
void OnTransferring (
LPCTSTR FileName ,
long Total ,
long Transferred )
Parameters
FileName
[out] Name of file being transmitted
Total
[out] Size of file being transmitted
Transferred
[out] Size of file already transmitted
Return value
None
158
17.5.4. Coding Sample
void CSerialTransferDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSerialTransferDlg)
DDX_Control(pDX, IDC_FILETRANSFERCTRL1, m_clFileTransfer);
//}}AFX_DATA_MAP
}
BEGIN_EVENTSINK_MAP(CSerialTransferDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CSerialTransferDlg)
ON_EVENT(CSerialTransferDlg, IDC_FILETRANSFERCTRL1, 1 /* Done */, OnDoneFiletransferctrl, VTS_I4)
ON_EVENT(CSerialTransferDlg, IDC_FILETRANSFERCTRL1, 2 /* Transferring */,
OnTransferringFiletransferctrl, VTS_BSTR VTS_I4 VTS_I4)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
/* Start download */
void CSerialTransferDlg::OnDownload()
{
m_clFileTransfer.SetPath(TEXT("\\My Documents"));
m_clFileTransfer.SetTransferringEventInterval(10);
m_clFileTransfer.Receive();
}
// Set a filepath for the work file
// File transmission event (1s)
// Start transmission
/* Start upload */
void CSerialTransferDlg::OnUpload()
{
m_clFileTransfer.SetPath(TEXT("\\My Documents"));
m_clFileTransfer.AddFiles(TEXT("File1.dat"));
m_clFileTransfer.AddFiles(TEXT("File2.dat"));
m_clFileTransfer.AddFiles(TEXT("File3.dat"));
m_clFileTransfer.SetTransferringEventInterval(10);
m_clFileTransfer.Send();
}
// Set a filepath for the work file
// Transmission file 1
// Transmission file 2
// Transmission file 3
// File transmission event (1s)
// Start transmission
/* Abort */
void CSerialTransferDlg::OnAbort()
{
m_clFileTransfer.Abort();
}
// Abort
/* Send/receive complete */
void CSerialTransferDlg::OnDoneFiletransferctrl(long Result)
{
CString clMsg;
clMsg.Format(TEXT("Done:%d"), Result);
AfxMessgeBox(clMsg, MB_ICONINFORMATION);
}
/* Display the info about file being transmitted */
void CSerialTransferDlg::OnTransferringFiletransferctrl(LPCTSTR FileName, long Total,
long Transferred)
{
if(0 < Total)
{
TCHAR szProgress[MAX_PATH];
wsprintf(szProgress, TEXT("%s %d%%"), FileName, (int)(Transferred*100/Total));
SetWindowText(szProgress);
// Display on the title bar
}
}
159
Appendix A. Keyboard Arrangement, Virtual Key Codes and Character Codes
A.1. 27-key pad
A.1.1.
Keyborard Arrangement
(1) Numeric entry mode
TAB
M1
TAB
M1
SCAN
SCAN
SCAN
SCAN
M2
M3
M2
M3
F1
F2
F1
SCAN
F4
F2
F3
SCAN
F4
F3
ESC
1
2
3
SF
4
5
6
FN
7
8
9
AL
.
0
SP
BS
ESC
!
@
#
SF
$
%
^
FN
&
*
(
AL
>
)
SP
ENT
BS
ENT
Status with [SF] pressed
Normal status
(3) Function mode
(2) Alphabet entry mode
TAB
M1
SEND
M1
SCAN
SCAN
SCAN
SCAN
M2
M3
M2
M3
F1
F2
F4
F5
SCAN
F6
F3
SCAN
F8
F7
ESC
.*:
ABC
DEF
SF
GHI
JKL
MNO
FN
PQRS
TUV
WXYZ
AL
+-%$
,/=
SP
BS
ENT
160
;
F9
F10
F12
F11
ESC
SP
=
CAPS
/
FN
\
‘
[
AL
.
]
SP
`
BS
A.1.2.
Virtual Key Codes and Character Codes
Numeric entry mode
Key
Normal status
Virtual key code
Constant
Value
Character
code
Status with [SF] pressed
Virtual key code
Character
code
Constant
Value
[F1]
[F2]
[F3]
[F4]
[▲]
[▼]
[◄]
[►]
[9]
[8]
[7]
[6]
[5]
[4]
[3]
VK_F1
VK_F2
VK_F3
VK_F4
VK_UP
VK_DOWN
VK_LEFT
VK_RIGHT
VK_9
VK_8
VK_7
VK_6
VK_5
VK_4
VK_3
70
71
72
73
26
28
25
27
39
38
37
36
35
34
33
39(9)
38(8)
37(7)
36(6)
35(5)
34(4)
33(3)
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
28(()
2A(*)
26(&)
5E(^)
25(%)
24($)
23(#)
[2]
VK_2
32
32(2)
←
←
40(@)
[1]
[0]
[.]
VK_1
VK_0
VK_PERIOD
31
30
BE
←
←
←
←
←
←
[SP]
VK_SPACE
20
31(1)
30(0)
2E(.)
20( )
←
←
21(!)
29())
3E(>)
←
[ESC]
[SF]
[FN]
[AL]
[BS]
[ENT]
[SCAN]
[TAB]
[M1]
[M2]
[M3]
VK_ESCAPE
VK_SHIFT
VK_FUNC
VK_ALP
VK_BACK
VK_RETURN
VK_SCAN
VK_TAB
VK_M1(*1)
VK_M2(*1)
VK_M3(*1)
1B
10
D2
D0
08
0D
D1
09
C1(*1)
C2(*1)
C3(*1)
1B
08
09
-(*1)
-(*1)
-(*1)
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
(*1) Virtual key codes and character codes will differ based on the key settings.
For details, refer to section “6.4 Magic Key Control”
161
←
←
←
←
←
←
←
←
Function mode
Key
Virtual key code
Constant
Value
Character code
[F1]
VK_F5
74
[F2]
VK_F6
75
[F3]
VK_F7
76
[F4]
VK_F8
77
[S]
VK_F9
78
[T]
VK_F11
7A
[W]
VK_F10
79
[X]
VK_F12
7B
[9]
DB
5B ( [ ]
[8]
DE
27 ( ’ )
[7]
DC
5C ( \ )
[6]
C0
60 ( ` )
[5]
BD
2D ( - )
[4]
BF
2F ( / )
[3]
BB
3D ( = )
[2]
BA
3B ( ; )
[1]
VK_SPACE
20
20(SPACE)
[0]
DD
5D ( ) )
[. ]
BC
2C ( , )
[SP]
VK_SPACE
20
20(SPACE)
[ESC]
VK_ESCAPE
1B
1B
[SF]
VK_CAPITAL
14
[FN]
VK_FUNC
D2
[AL]
VK_ALP
D0
[BS]
VK_BACK
08
08
[ENT]
VK_RETURN
D0
[SCAN]
VK_SCAN
D1
[TAB]
VK_SEND
D3
[M1]
VK_M1(*1)
C1(*1)
-(*1)
[M2]
VK_M2(*1)
C2(*1)
-(*1)
[M3]
VK_M3(*1)
C3(*1)
-(*1)
(*1) Virtual key codes and character codes will differ based on the key settings.
For details, refer to section “6.4 Magic Key Control”
162
A.1.3.
Character Codes in Alphabet Entry Mode
In the alphabetic entry mode, the 0 to 9 and period (.) keys are used to enter alphabets. The table below lists
the relationship between keys to be pressed, the number of depressions, and character codes.
Depression
1st
2nd
[0]
','
'/'
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[.]
‘.’
'A'
'D'
'G'
'J'
'M'
'P'
'T'
'W'
'-'
‘*’
'B'
'E'
'H'
'K'
'N'
'Q'
'U'
'X'
'%'
3rd
4 th
5 th
6 th
7 th
'b'
'e
'h
'k
'n'
'p'
'u'
'w'
'c'
'f'
'i'
'l'
'o'
'q'
'v'
'x'
(*1)
(*1)
(*1)
(*1)
(*1)
'r'
(*1)
'y'
8th
9th
‘s’
(*1)
'z'
(*1)
Key
' '
(blank)
(*1)
'C'
'F'
'I'
'L'
'O'
'R'
'V'
'Y'
'$'
(*1)
'a'
'd
'g
'j
'm'
‘S’
't'
'Z'
(*1)
(*1): Returns to the 1st letter.
Character code and virtual key code are notified at establishing character code.
163
A.2. 42-key pad
A.2.1.
Keyborard Arrangement
(1) Alphabet entry mode
TAB
M1
TAB
M
SCAN
SCAN
SCAN
SCAN
M2
M3
M2
M3
F1
F2
F1
SCAN
F4
F2
F3
SCAN
F4
F3
a
b
c
d
e
f
g
A
B
C
D
E
F
G
h
i
j
k
l
m
n
H
I
J
K
L
M
N
o
p
q
r
s
t
u
O
P
Q
R
S
T
U
v
w
x
y
V
W
X
Y
Z
SF
FN NUM BS
SF
SP ESC
FN NUM BS
ENT
Normal status
SP ESC
ENT
Status with [SF] pressed
(2) Numeric entry mode
TAB
M1
TAB
M1
SCAN
SCAN
SCAN
SCAN
M2
M3
M2
M3
F1
F2
F1
SCAN
F4
F2
F3
SCAN
F4
F3
1
2
3
!
@
#
-
`
4
5
6
\
‘
_
~
$
%
^
|
“
[
]
7
8
9
=
/
{
}
&
*
(
+
?
;
,
.
0
:
<
>
)
FN NUM BS
SP ESC
SF
FN NUM BS
ENT
SP ESC
SF
ENT
Status with [SF] pressed
Normal status
164
(3) Function mode
SEND
M1
SCAN
SCAN
M2
M3
F5
F6
F8
SCAN
F7
F9
F12
F10
F11
CAP
FN NUM BS
SP ESC
ENT
165
A.2.2.
Virtual Key Codes and Character Codes
Alphabet entry mode
Key
[F1]
[F2]
[F3]
[F4]
[▲]
[▼]
[◄]
[►]
[A]
[B]
[C]
[D]
[E]
[F]
[G]
[H]
[I]
[J]
[K]
[L]
[M]
[N]
[O]
[P]
[Q]
[R]
[S]
[T]
[U]
[V]
[W]
[X]
[Y]
[Z]
[SF]
[FN]
[NUM]
[BS]
[SP]
[ESC]
[ENTER]
[TAB]
[SCAN]
[M1]
[M2]
[M3]
Normal status
Virtual key code
Constant
Value
VK_F1
70
VK_F2
71
VK_F3
72
VK_F4
73
VK_UP
26
VK_DOWN
28
VK_LEFT
25
VK_RIGHT
27
VK_A
41
VK_B
42
VK_C
43
VK_D
44
VK_E
45
VK_F
46
VK_G
47
VK_H
48
VK_I
49
VK_J
4A
VK_K
4B
VK_L
4C
VK_M
4D
VK_N
4E
VK_O
4F
VK_P
50
VK_Q
51
VK_R
52
VK_S
53
VK_T
54
VK_U
55
VK_V
56
VK_W
57
VK_X
58
VK_Y
59
VK_Z
5A
VK_SHIFT
10
VK_FUNC
D2
VK_NUM
D4
VK_BACK
08
VK_SPACE
20
VK_ESCAPE
1B
VK_RETURN
0D
VK_TAB
09
VK_SCAN
D1
VK_M1
C1(*1)
VK_M2
C2(*1)
VK_M3
C3(*1)
Character
code
41(A)
42(B)
43(C)
44(D)
45(E)
46(F)
47(G)
48(H)
49(I)
4A(J)
4B(K)
4C(L)
4D(M)
4E(N)
4F(O)
50(P)
51(Q)
52(R)
53(S)
54(T)
55(U)
56(V)
57(W)
58(X)
59(Y)
5A(Z)
08
20
1B
0D
09
-(*1)
-(*1)
-(*1)
Status with [SF] pressed
Virtual key code
Character
code
Constant
Value
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
A
←
←
B
←
←
C
←
←
D
←
←
E
←
←
F
←
←
G
←
←
H
←
←
I
←
←
J
←
←
K
←
←
L
←
←
M
←
←
N
←
←
O
←
←
P
←
←
Q
←
←
R
←
←
S
←
←
T
←
←
U
←
←
V
←
←
W
←
←
X
←
←
Y
←
←
Z
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
(*1) Virtual key codes and character codes will differ based on the key settings.
For details, refer to section “6.4 Magic Key Control”
166
Numeric entry mode
Normal status
Key
[F1]
[F2]
[F3]
[F4]
[▲]
[▼]
[◄]
[►]
[A]
[B]
[C]
[D]
[E]
[F]
[G]
[H]
[I]
[J]
[K]
[L]
[M]
[N]
[O]
[P]
[Q]
[R]
[S]
[T]
[U]
[V]
[W]
[X]
[Y]
[Z]
[SF]
[FN]
[NUM]
[BS]
[SP]
[ESC]
[ENTER]
[TAB]
[SCAN]
[M1]
[M2]
[M3]
Character
code
Virtual key code
VK_F1
VK_F2
VK_F3
VK_F4
VK_UP
VK_DOWN
VK_LEFT
VK_RIGHT
VK_1
VK_2
VK_3
VK_HYPHEN
VK_BACKQUOTE
VK_4
VK_5
VK_6
VK_BACKSLASH
VK_APOSTROPHE
VK_LBRACKET
VK_RBRACKET
VK_7
VK_8
VK_9
VK_EQUAL
VK_SLASH
VK_SEMICOLON
VK_COMMA
VK_PERIOD
VK_0
VK_SHIFT
VK_FUNC
VK_NUM
VK_BACK
VK_SPACE
VK_ESCAPE
VK_RETURN
VK_TAB
VK_SCAN
VK_M1(*1)
VK_M2(*1)
VK_M3(*1)
-
-
31
32
33
1
2
3
-
-
BD
C0
34
35
36
DC
DE
DB
DD
37
38
39
BB
BF
BA
BC
BE
30
`
4
5
6
\
‘
[
]
7
8
9
=
/
;
,
.
0
-
-
70
71
72
73
26
28
25
27
10
D2
D4
08
20
1B
0d
09
D1
C1(*1)
C2(*1)
C3(*1)
08
20
1B
0d
09
-(*1)
-(*1)
-(*1)
Status with [SF] pressed
Character
Virtual key code
code
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
21( ! )
←
←
40( @ )
←
←
23( # )
←
←
←
←
←
←
←
←
5F( _ )
←
←
7E( ~ )
←
←
24( $ )
←
←
25( % )
←
←
5E( ^ )
←
←
7C( | )
←
←
22( “ )
←
←
7B( { )
←
←
7D( } )
←
←
26( & )
←
←
2A( * )
←
←
28 ( ( )
←
←
2B( + )
←
←
3F( ? )
←
←
3A( : )
←
←
3C( < )
←
←
3E( > )
←
←
29( ) )
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
(*1) Virtual key codes and character codes will differ based on the key settings.
For details, refer to section “6.4 Magic Key Control”
167
Function mode
Normal status
Key
[F1]
[F2]
[F3]
[F4]
[▲]
[▼]
[◄]
[►]
[A]
[B]
[C]
[D]
[E]
[F]
[G]
[H]
[I]
[J]
[K]
[L]
[M]
[N]
[O]
[P]
[Q]
[R]
[S]
[T]
[U]
[V]
[W]
[X]
[Y]
[Z]
[SF]
[FN]
[NUM]
[BS]
[SP]
[ESC]
[ENTER]
[TAB]
[SCAN]
[M1]
[M2]
[M3]
Character
code
Virtual key code
VK_F5
VK_F6
VK_F7
VK_F8
VK_F9
VK_F10
VK_F11
VK_F12
VK_CAPITAL
VK_FUNC
VK_NUM
VK_BACK
VK_SPACE
VK_ESCAPE
VK_RETURN
VK_TAB
VK_SCAN
VK_M1(*1)
VK_M2(*1)
VK_M3(*1)
74
75
76
77
26
28
25
27
14
D2
D4
08
20
1B
0d
09
D1
C1(*1)
C2(*1)
C3(*1)
08
20
1B
0d
09
-(*1)
-(*1)
-(*1)
(*1) Virtual key codes and character codes will differ based on the key settings.
For details, refer to section “6.4 Magic Key Control”
168
Appendix B. Differences between Older Unit
The following table lists differences between the BHT-700 and the BHT-400.
Type
Item
BHT-700
BHT-400
System
information
ROM capacity
128MB
64MB
Screen display
Rotation function
Possible
Not possible
Backlight
Key backlight
Equipped
Not equipped
Key backlight illumination trigger
Key press
Touch panel tap
No key backlight
Backlight control function assigned
to [Fx](x:1-4) key or [SF] + [Fx] keys.
Not possible
Possible
Backlight control function assigned
to [SCAN] key or [SF] + [SCAN]
keys.
Not possible
Possible
Audio output
Earphone jack, receiver
None
Audio input
Microphone
None
Laser key click sound
No receiver key
Click sound ON/OFF possible.
Half-press key click sound
No half-press key
Volume change possible.
MessageBox, MessageBeep,
PlaySound voice output destination
Earphone jack
Receiver
Beeper
VoIP
Supported
Not supported
No. of keys
27-key, 42-key
30-key, 50-key
Magic keys
M1, M2, M3
M1, M2, M3, M4, M5
Laser key
Not supported
Magic key assignment
possible.
Functions assignable to [SCAN] key
Trigger (fixed)
Same as magic keys
Default alphabet case
Lower case
Upper case
Default : Switching possible
with CAPS mode.
[F5] to [F12] independent entry
[F1] to [F4] key or arrow key
press in Function mode
[F1] to [F4] key or arrow key
press in Function mode by full
function assignment
Terminal service support
Standard U.S. version keypad
BHT original keypad
Switching possible with
keyboard emulation function.
Handle attachment
Not supported
Support possible
Numeric entry icon
Display/hide switching possible.
Not supported
SIP icon
BHT original
Windows CE standard + BHT
original
Default: Windows CE
standard only
Power
management
Auto power OFF when wireless
communication open
Changed with
BHT_SetSysSettingDW
(BHT_PM_SUSPEND_RF,…).
Changed with
BHT_SetSysSettingDW
(BHT_PM_SUSPEND_SLOT0,…)
LED
Red LED
Independent charge LED and
indicator LED
OR connection for charge
LED and indicator LED
Sound
Keyboard
Icons
169
Type
Data communication
Item
BHT-700
BHT-400
Default baud rate
115200 bps
9600 bps
RS-232C
Tx, Rx
Tx, Rx, RTS, CTS
I/F usable with Active Sync
USB, IrDA
USB, IrDA, RS-232C
Automatic connection
Placement in cradle connected to
computer by USB
(Default : Allow)
Connection of cable
connecting BHT with
computer (Default : Prohibit)
USB-LAN communication
Supported
Not supported
Wireless system
Selection from 802.11a, 802.11b,
802.11b/g (Default: 802.11b)
802.11b/g
WPA2
Supported
Not supported
RSS
Reading possible
Reading possible (Not
possible in models for the
domestic Japanese market.)
Marker mode
Not equipped with marker
Selection from Normal, Ahead
or No illumination
CODE-93
Reading possible
Reading not possible (BHT202Q)
Illumination mode
Selection from Auto, Always ON,
or Always OFF
Not supported
Procedure
Calling the BHT_SysModify
function after saving the OS file to
a suitable location
Calling the
BHT_ShutdownSystem
function and ensuring an area
to store the OS file, and then
calling the BHT_SysModify
function after saving the OS
file to the secured area.
Update file back-up location
Arbitrary
Sysmodify folder, CF slot
Equipped device
BHT_GetDeviceInfo
Barcode, COM, ActiveSync
compatible device acquisition
Not supported
Touch panel
Attachment status acquisition
Not possible
Possible
ScannerXXXQ.ocx
ReadType property default value
Q:E, A, I:4-99, L:1-99, M:1-99,
N:3-99, K:1-99, Y, X, Z, R, V
Q:E, A, I:4-99, M:1-99,
N:3-99, K:1-99, Y, X, Z, R, V
(BHT-202Q)
FileTransfeXXX.ocx
Default baud rate
115200 bps
9600 bps
Wireless
Barcode reading
(1D)
Code reading (2D)
OS update
170
BHT-700-CE
API Reference Manual
First Edition, October 2007
DENSO WAVE INCORPORATED
The purpose of this manual is to provide accurate information in the development of application programs for
the BHT-700. Please feel free to send your comments regarding any errors or omissions you may have found,
or any suggestions you may have for generally improving the manual.
In no event will DENSO WAVE be liable for any direct or indirect damages resulting from the application of
the information in this manual.