Are there any guidelines available regarding what is involved in porting custom applications from legacy Symbol handheld computers to the ES400S? What to look out for, tools available, things that won't work, ...? In general is it easier, harder or about the same as porting to other new handheld computers such as the MC75, MC65, ...? Looking for generalities in prep for a discovery meeting, but will then need more detail. So a pointer to a whitepaper or support forum would be greatly appreciated. Thanks
Porting Apps from legacy Symbol devices to ES400S? |
7 Replies
As for me, https://rocketech.it/cases is one o the best developing companies I've ever worked with. We had a big project together, and the finishing result satisfied me a lot, so I can say for sure the guys are real professionals in the area.
The latest EMDK's (c .NET) do have some porting guidelines for ES400/MC65. i.e. what Motorola API's are supported etc..
ES400 Programming
Introduction
This documentation provides important information on using EMDK for C for creating new applications or porting existing applications to run on ES400.
Development Tools
The following tools are required for developing C/C++ applications for the ES400:
Supported IDE
Visual Studio 2005 and/or Visual Studio 2008
Required EMDK
EMDK for C v2.3 or higher
Required SDKs
Windows Mobile 6.0 Professional Software Development Kit and Windows Mobile 6.5.x Developer Tool Kit
Support for Features
Feature
Supported?
Audio
Yes
AudioEx
No
Bluetooth
Yes (Microsoft stack only)
Display
Yes
Fusion WLAN
Yes (Fusion 3.20)
Image Capture
No
IO
No
Keyboard
No
Keylight
No
MSR
No
Notification
Yes
Printing
Yes
Resource Coordinator
Yes
RFID
No
RFID3
No
Scanning
Yes
Spectrum24
No
VBus
No
MT2000 “C” APIs
No
Design Notes
You must consider the following guidelines for developing new applications or porting existing applications to run on ES400:
GUI
Resolution Issues – ES400 supports the 480x640 resolution. If you are porting an application designed to work on a different resolution, the graphic objects may not display as intended on the ES400. The GUI objects may be distorted or partially visible or completely invisible. You will need to modify your application to work on multiple resolutions. Numerous articles available online describe how to write an application to run on multiple resolutions.
Portrait and Landscape modes - You may want to consider designing the application GUI to scale for both portrait and landscape modes. The ES400 comes with the accelerometer which allows the screen to rotate automatically when the device is rotated.
Bluetooth
Bluetooth Stack - Only the Microsoft stack is available on the device. Stone Street One stack is not supported.
Porting - If you have written a C/C++ application targeting StoneStreet stack, you will need to modify the application to use Microsoft Bluetooth APIs instead. There is no compatibility between the syntax and behavior of these two APIs. Please refer to the MSDN for a list of Microsoft Bluetooth APIs.
Available com ports for Bluetooth Serial Operations - On ES400, any com port from 0 to 9 can be used if they are not already used.
Scanning
Camera button - Normally, pressing the camera button on the right side of the device will open the picture taking application. However, if the scanner is already opened by an application, the picture taking application will not be opened. Instead, the camera button will act as a trigger to enable barcode scanning. Even if a background scanner application such as DataWedge is open, the camera button will enable scanning.
Scanner button - ES400 is equipped with a dedicated scanner button at the front of the unit.
Image Capture
Image Capture - You must use Microsoft’s DirectShow for capturing images. The Imager APIs distributed with EMDK does not support ES400 development.
Fusion
Wi-Fi Support - ES400 supports Fusion v3.20 for accessing WLAN features. Fusion 3.20 supports Dual Boot mode. Dual Boot mode consists of WZC (Wireless Zero Configuration) and Fusion modes to manage Wi-Fi adapter. By default ES400 is pre-configured to use the WZC mode. Please note Fusion 3.20 will not support all the commands that are available in other Fusion versions.
The following table lists the commands supported in ES400
API Command
WZC
Fusion
DATA_EXPORT_OPERATION_WLAN_PROFILE
Y
DATA_EXPORT_OPERATION_WLAN_OPTIONS
Y
Y
DATA_IMPORT_OPERATION_WLAN_PROFILE
Y
DATA_IMPORT_OPERATION_WLAN_OPTIONS
Y
Y
SET_PROFILE_ATTRIBUTE_WLAN_PROFILE
Y
ENUMERATE_PROFILES_WLAN_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_ALL_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_WLAN_GET_PROFILES_DATA
Y
ENUMERATE_PROFILES_ALL_GET_PROFILES_DATA
Y
SELECT_AND_CONNECT_WLAN_PROFILE
Y
CANCEL_CONNECTION_PERSISTENCE
Y
ADD_WLAN_PROFILE
Y
DELETE_WLAN_PROFILE
Y
SAVE_DATA_STRUCTURE_MODE_TEXT
Y
Y
GET_FUSION_VERSION_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_DATA
Y
Y
GET_FUSION_VERSION_EX_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_EX_DATA
Y
Y
FUSION_DIAG_LOG_SAVE
Y
Y
FUSION_DIAG_LOG_CLEAR
Y
Y
FUSION_DIAG_LOG_SET_SIZE
Y
Y
ADAPTER_WLAN_GET_BUFFER_SIZE
Y
Y
ADAPTER_ALL_GET_BUFFER_SIZE
Y
Y
ADAPTER_WLAN_GET_ENUM_DATA
Y
Y
ADAPTER_ALL_GET_ENUM_DATA
Y
Y
ADAPTER_INFO_WLAN
Y
Y
ERROR_INFO_GET_LAST_ERROR
Y
Y
USER_CREDENTIAL_WLAN_OVERRIDE
Y
USER_CREDENTIAL_WLAN_RESET
Y
NDIS_STAT_WLAN_GET_BUFFER_SIZE
Y
Y
NDIS_STAT_WLAN_GET_DATA
Y
Y
NDIS_STAT_WLAN_SET_DATA
Y
Y
RF_SIGNAL_STRENGTH_WLAN_GET
Y
Y
RF_SIGNAL_QUALITY_WLAN_GET
Y
Y
CONNECTION_STATUS_WLAN_GET
Y
NETWORK_CONTROL_WLAN_IPV4_DHCP_RENEW
Y
Y
NETWORK_CONTROL_WLAN_IPV6_RESET
Y
POWER_CONTROL_WLAN_DISABLE_POWER
Y
Y
POWER_CONTROL_WLAN_ENABLE_POWER
Y
Y
POWER_CONTROL_WLAN_GET_POWER_STATUS
Y
Y
ADAPTER_APP_OP_PROFILE_WLAN_SET (Future)
FUSION_ACCESS_CONTROL_ALL
Y
Y
WLAN_ADAPTER_STATISTICS_GET
Y
WLAN_SSID_LIST_GET_BUFFER_SIZE
Y
WLAN_SSID_LIST_GET_DATA
Y
WLAN_AP_OR_PEER_LIST_GET_BUFFER_SIZE
Y
WLAN_AP_OR_PEER_LIST_GET_DATA
Y
WLAN_RF_BAND_GET
WLAN_RF_BAND_SET
WLAN_AUTO_TIME_CONFIG_GET
WLAN_AUTO_TIME_CONFIG_SET
WLAN_IP_MANAGEMENT_GET
Y
Y
WLAN_IP_MANAGEMENT_SET
Y
Y
WLAN_802_11d_GET
WLAN_802_11d_SET
WLAN_COUNTRY_CODE_GET
WLAN_COUNTRY_CODE_SET
WLAN_PAC_AUTO_REFRESHING_GET
Y
WLAN_PAC_AUTO_REFRESHING_SET
Y
ADD_PAC
Deprecated
WLAN_PAC_AUTO_PROVISIONING_GET
Y
WLAN_PAC_AUTO_PROVISIONING_SET
Y
IMPORT_PAC_FILE
Y
WLAN_IPv6_GET
Y
WLAN_IPv6_SET
Y
WLAN_IPv6_GET
Y
WLAN_MANAGEMENT_GET
Y
Y
WLAN_MANAGEMENT_SET
Y
Y
Managing Dual Boot modes – The Dual Boot feature provides 2 modes: WZC and Fusion modes. New commands WLAN_MANAGEMENT_GET and WLAN_MANAGEMENT_SET provide options to read and modify the Dual Boot mode.
New FAPI profile - A new FAPI Profile is added to address the naming of FAPI_WLAN_AES_ALLOW_MIXED_MODE enumeration to FAPI_WLAN_ALLOW_MIXED_MODE. This is required since Mixed mode operation is possible for both TKIP as well as AES encryption keys. The Earlier naming scheme only indicates this mode for AES encryption
Display
Backlight Intensity - The ES400 supports two modes for the Backlight:
Auto Mode (default) - where the light sensor input affects the backlight intensity.
Manual Mode - where the user setting [via the applet or EMDK API] sets the Backlight intensity
ES400 is set to the 'Auto' mode by default. In this mode, an attempt to set the backlight intensity will return an error. In order to programmatically change the mode to manual, modify the following registry and perform a cold boot:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Backlight]
; Set to “1” for Manual mode and “0” for Auto mode
"ACBacklightAdjMode" = dword:1 ; Backlight mode when connected to AC
"BatteryBacklightAdjMode" = dword:1 ; Backlight mode when on battery power
Alternatively, the Backlight & Keylight applet in Start -> Settings -> System can be used to manually control the backlight mode. The 'Backlight Brightness' field needs to be set appropriately.
Keyboard
Unsupported feature - Please note the EMDK’s Keyboard APIs are not supported on ES400. You must use Microsoft APIs as a work around.
AudioEx
Unsupported feature - Please note the EMDK’s AudioEx APIs are not supported on ES400.
Spectrum24
Unsupported feature - The Spectrum24 APIs are not supported on ES400. For all WLAN operations, you must use Fusion APIs.
RS507
No RS507 support - ES400 does not support using RS507 or any other Bluetooth scanners.
Printing
Printing support – Print APIs can be used to print from ES400 to one of the supported printers such as Zebra’s RW420 and QL320. The following steps must be completed before attempting to print:
You must install the “_ES40X_WM65_07_01_2010.cab” file. This file is available on the ES400 product web page
For Bluetooth printing, the following configuration must be performed:
i. Pair with printer using the “Devices” tab found in the Bluetooth applet located in “Start->Settings”
ii. After pairing, select the “Com Ports” tab and assign an outgoing COM port for the printer. COM8 was used for engineering testing. Close the applet after setting the port.
iii. Modify the ES400 registry setting to configure the com port as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\PrintPort] = COM8: 9600
In the above example, COM8 and 9600 baud rate were selected for the QL320 printer.
iv. Modify the following registry to configure the TLD:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDBluetooth.dll
The above example shows the modification required for the QL320 printer.
Further information on wireless printing, refer to the document “\Printer Drivers\Wireless printing Guide for WM5 0 and WCE5 0 Terminals.pdf”.
For USB printing, make sure the device is connected to the printer with an appropriate USB cables.
The registry must be modified as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDUSB.dll
A sample application “\Printer Drivers\Sample\Win32PrintSamp.exe” is provided for testing.
2. No support for WiFi Printing - The ES400 device does not support WiFi (WirelessLAN) printing
Resource Coordination
1. The RCM_GetConfigurationData function retrieves mobile computer configuration data. The following new ES400 configuration data can be obtained:
CONFIG_TYPE_LIGHT_SENSOR CONFIG_TYPE_HOLSTER CONFIG_TYPE_NAVPAD
2. ES400 does not have any hardware trigger that can be programmatically accessed.
The latest EMDK's (c .NET) do have some porting guidelines for ES400/MC65. i.e. what Motorola API's are supported etc..
ES400 Programming
Introduction
This documentation provides important information on using EMDK for C for creating new applications or porting existing applications to run on ES400.
Development Tools
The following tools are required for developing C/C++ applications for the ES400:
Supported IDE
Visual Studio 2005 and/or Visual Studio 2008
Required EMDK
EMDK for C v2.3 or higher
Required SDKs
Windows Mobile 6.0 Professional Software Development Kit and Windows Mobile 6.5.x Developer Tool Kit
Support for Features
Feature
Supported?
Audio
Yes
AudioEx
No
Bluetooth
Yes (Microsoft stack only)
Display
Yes
Fusion WLAN
Yes (Fusion 3.20)
Image Capture
No
IO
No
Keyboard
No
Keylight
No
MSR
No
Notification
Yes
Printing
Yes
Resource Coordinator
Yes
RFID
No
RFID3
No
Scanning
Yes
Spectrum24
No
VBus
No
MT2000 “C” APIs
No
Design Notes
You must consider the following guidelines for developing new applications or porting existing applications to run on ES400:
GUI
Resolution Issues – ES400 supports the 480x640 resolution. If you are porting an application designed to work on a different resolution, the graphic objects may not display as intended on the ES400. The GUI objects may be distorted or partially visible or completely invisible. You will need to modify your application to work on multiple resolutions. Numerous articles available online describe how to write an application to run on multiple resolutions.
Portrait and Landscape modes - You may want to consider designing the application GUI to scale for both portrait and landscape modes. The ES400 comes with the accelerometer which allows the screen to rotate automatically when the device is rotated.
Bluetooth
Bluetooth Stack - Only the Microsoft stack is available on the device. Stone Street One stack is not supported.
Porting - If you have written a C/C++ application targeting StoneStreet stack, you will need to modify the application to use Microsoft Bluetooth APIs instead. There is no compatibility between the syntax and behavior of these two APIs. Please refer to the MSDN for a list of Microsoft Bluetooth APIs.
Available com ports for Bluetooth Serial Operations - On ES400, any com port from 0 to 9 can be used if they are not already used.
Scanning
Camera button - Normally, pressing the camera button on the right side of the device will open the picture taking application. However, if the scanner is already opened by an application, the picture taking application will not be opened. Instead, the camera button will act as a trigger to enable barcode scanning. Even if a background scanner application such as DataWedge is open, the camera button will enable scanning.
Scanner button - ES400 is equipped with a dedicated scanner button at the front of the unit.
Image Capture
Image Capture - You must use Microsoft’s DirectShow for capturing images. The Imager APIs distributed with EMDK does not support ES400 development.
Fusion
Wi-Fi Support - ES400 supports Fusion v3.20 for accessing WLAN features. Fusion 3.20 supports Dual Boot mode. Dual Boot mode consists of WZC (Wireless Zero Configuration) and Fusion modes to manage Wi-Fi adapter. By default ES400 is pre-configured to use the WZC mode. Please note Fusion 3.20 will not support all the commands that are available in other Fusion versions.
The following table lists the commands supported in ES400
API Command
WZC
Fusion
DATA_EXPORT_OPERATION_WLAN_PROFILE
Y
DATA_EXPORT_OPERATION_WLAN_OPTIONS
Y
Y
DATA_IMPORT_OPERATION_WLAN_PROFILE
Y
DATA_IMPORT_OPERATION_WLAN_OPTIONS
Y
Y
SET_PROFILE_ATTRIBUTE_WLAN_PROFILE
Y
ENUMERATE_PROFILES_WLAN_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_ALL_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_WLAN_GET_PROFILES_DATA
Y
ENUMERATE_PROFILES_ALL_GET_PROFILES_DATA
Y
SELECT_AND_CONNECT_WLAN_PROFILE
Y
CANCEL_CONNECTION_PERSISTENCE
Y
ADD_WLAN_PROFILE
Y
DELETE_WLAN_PROFILE
Y
SAVE_DATA_STRUCTURE_MODE_TEXT
Y
Y
GET_FUSION_VERSION_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_DATA
Y
Y
GET_FUSION_VERSION_EX_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_EX_DATA
Y
Y
FUSION_DIAG_LOG_SAVE
Y
Y
FUSION_DIAG_LOG_CLEAR
Y
Y
FUSION_DIAG_LOG_SET_SIZE
Y
Y
ADAPTER_WLAN_GET_BUFFER_SIZE
Y
Y
ADAPTER_ALL_GET_BUFFER_SIZE
Y
Y
ADAPTER_WLAN_GET_ENUM_DATA
Y
Y
ADAPTER_ALL_GET_ENUM_DATA
Y
Y
ADAPTER_INFO_WLAN
Y
Y
ERROR_INFO_GET_LAST_ERROR
Y
Y
USER_CREDENTIAL_WLAN_OVERRIDE
Y
USER_CREDENTIAL_WLAN_RESET
Y
NDIS_STAT_WLAN_GET_BUFFER_SIZE
Y
Y
NDIS_STAT_WLAN_GET_DATA
Y
Y
NDIS_STAT_WLAN_SET_DATA
Y
Y
RF_SIGNAL_STRENGTH_WLAN_GET
Y
Y
RF_SIGNAL_QUALITY_WLAN_GET
Y
Y
CONNECTION_STATUS_WLAN_GET
Y
NETWORK_CONTROL_WLAN_IPV4_DHCP_RENEW
Y
Y
NETWORK_CONTROL_WLAN_IPV6_RESET
Y
POWER_CONTROL_WLAN_DISABLE_POWER
Y
Y
POWER_CONTROL_WLAN_ENABLE_POWER
Y
Y
POWER_CONTROL_WLAN_GET_POWER_STATUS
Y
Y
ADAPTER_APP_OP_PROFILE_WLAN_SET (Future)
FUSION_ACCESS_CONTROL_ALL
Y
Y
WLAN_ADAPTER_STATISTICS_GET
Y
WLAN_SSID_LIST_GET_BUFFER_SIZE
Y
WLAN_SSID_LIST_GET_DATA
Y
WLAN_AP_OR_PEER_LIST_GET_BUFFER_SIZE
Y
WLAN_AP_OR_PEER_LIST_GET_DATA
Y
WLAN_RF_BAND_GET
WLAN_RF_BAND_SET
WLAN_AUTO_TIME_CONFIG_GET
WLAN_AUTO_TIME_CONFIG_SET
WLAN_IP_MANAGEMENT_GET
Y
Y
WLAN_IP_MANAGEMENT_SET
Y
Y
WLAN_802_11d_GET
WLAN_802_11d_SET
WLAN_COUNTRY_CODE_GET
WLAN_COUNTRY_CODE_SET
WLAN_PAC_AUTO_REFRESHING_GET
Y
WLAN_PAC_AUTO_REFRESHING_SET
Y
ADD_PAC
Deprecated
WLAN_PAC_AUTO_PROVISIONING_GET
Y
WLAN_PAC_AUTO_PROVISIONING_SET
Y
IMPORT_PAC_FILE
Y
WLAN_IPv6_GET
Y
WLAN_IPv6_SET
Y
WLAN_IPv6_GET
Y
WLAN_MANAGEMENT_GET
Y
Y
WLAN_MANAGEMENT_SET
Y
Y
Managing Dual Boot modes – The Dual Boot feature provides 2 modes: WZC and Fusion modes. New commands WLAN_MANAGEMENT_GET and WLAN_MANAGEMENT_SET provide options to read and modify the Dual Boot mode.
New FAPI profile - A new FAPI Profile is added to address the naming of FAPI_WLAN_AES_ALLOW_MIXED_MODE enumeration to FAPI_WLAN_ALLOW_MIXED_MODE. This is required since Mixed mode operation is possible for both TKIP as well as AES encryption keys. The Earlier naming scheme only indicates this mode for AES encryption
Display
Backlight Intensity - The ES400 supports two modes for the Backlight:
Auto Mode (default) - where the light sensor input affects the backlight intensity.
Manual Mode - where the user setting [via the applet or EMDK API] sets the Backlight intensity
ES400 is set to the 'Auto' mode by default. In this mode, an attempt to set the backlight intensity will return an error. In order to programmatically change the mode to manual, modify the following registry and perform a cold boot:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Backlight]
; Set to “1” for Manual mode and “0” for Auto mode
"ACBacklightAdjMode" = dword:1 ; Backlight mode when connected to AC
"BatteryBacklightAdjMode" = dword:1 ; Backlight mode when on battery power
Alternatively, the Backlight & Keylight applet in Start -> Settings -> System can be used to manually control the backlight mode. The 'Backlight Brightness' field needs to be set appropriately.
Keyboard
Unsupported feature - Please note the EMDK’s Keyboard APIs are not supported on ES400. You must use Microsoft APIs as a work around.
AudioEx
Unsupported feature - Please note the EMDK’s AudioEx APIs are not supported on ES400.
Spectrum24
Unsupported feature - The Spectrum24 APIs are not supported on ES400. For all WLAN operations, you must use Fusion APIs.
RS507
No RS507 support - ES400 does not support using RS507 or any other Bluetooth scanners.
Printing
Printing support – Print APIs can be used to print from ES400 to one of the supported printers such as Zebra’s RW420 and QL320. The following steps must be completed before attempting to print:
You must install the “_ES40X_WM65_07_01_2010.cab” file. This file is available on the ES400 product web page
For Bluetooth printing, the following configuration must be performed:
i. Pair with printer using the “Devices” tab found in the Bluetooth applet located in “Start->Settings”
ii. After pairing, select the “Com Ports” tab and assign an outgoing COM port for the printer. COM8 was used for engineering testing. Close the applet after setting the port.
iii. Modify the ES400 registry setting to configure the com port as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\PrintPort] = COM8: 9600
In the above example, COM8 and 9600 baud rate were selected for the QL320 printer.
iv. Modify the following registry to configure the TLD:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDBluetooth.dll
The above example shows the modification required for the QL320 printer.
Further information on wireless printing, refer to the document “\Printer Drivers\Wireless printing Guide for WM5 0 and WCE5 0 Terminals.pdf”.
For USB printing, make sure the device is connected to the printer with an appropriate USB cables.
The registry must be modified as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDUSB.dll
A sample application “\Printer Drivers\Sample\Win32PrintSamp.exe” is provided for testing.
2. No support for WiFi Printing - The ES400 device does not support WiFi (WirelessLAN) printing
Resource Coordination
1. The RCM_GetConfigurationData function retrieves mobile computer configuration data. The following new ES400 configuration data can be obtained:
CONFIG_TYPE_LIGHT_SENSOR CONFIG_TYPE_HOLSTER CONFIG_TYPE_NAVPAD
2. ES400 does not have any hardware trigger that can be programmatically accessed.
The latest EMDK's (c .NET) do have some porting guidelines for ES400/MC65. i.e. what Motorola API's are supported etc..
ES400 Programming
Introduction
This documentation provides important information on using EMDK for C for creating new applications or porting existing applications to run on ES400.
Development Tools
The following tools are required for developing C/C++ applications for the ES400:
Supported IDE
Visual Studio 2005 and/or Visual Studio 2008
Required EMDK
EMDK for C v2.3 or higher
Required SDKs
Windows Mobile 6.0 Professional Software Development Kit and Windows Mobile 6.5.x Developer Tool Kit
Support for Features
Feature
Supported?
Audio
Yes
AudioEx
No
Bluetooth
Yes (Microsoft stack only)
Display
Yes
Fusion WLAN
Yes (Fusion 3.20)
Image Capture
No
IO
No
Keyboard
No
Keylight
No
MSR
No
Notification
Yes
Printing
Yes
Resource Coordinator
Yes
RFID
No
RFID3
No
Scanning
Yes
Spectrum24
No
VBus
No
MT2000 “C” APIs
No
Design Notes
You must consider the following guidelines for developing new applications or porting existing applications to run on ES400:
GUI
Resolution Issues – ES400 supports the 480x640 resolution. If you are porting an application designed to work on a different resolution, the graphic objects may not display as intended on the ES400. The GUI objects may be distorted or partially visible or completely invisible. You will need to modify your application to work on multiple resolutions. Numerous articles available online describe how to write an application to run on multiple resolutions.
Portrait and Landscape modes - You may want to consider designing the application GUI to scale for both portrait and landscape modes. The ES400 comes with the accelerometer which allows the screen to rotate automatically when the device is rotated.
Bluetooth
Bluetooth Stack - Only the Microsoft stack is available on the device. Stone Street One stack is not supported.
Porting - If you have written a C/C++ application targeting StoneStreet stack, you will need to modify the application to use Microsoft Bluetooth APIs instead. There is no compatibility between the syntax and behavior of these two APIs. Please refer to the MSDN for a list of Microsoft Bluetooth APIs.
Available com ports for Bluetooth Serial Operations - On ES400, any com port from 0 to 9 can be used if they are not already used.
Scanning
Camera button - Normally, pressing the camera button on the right side of the device will open the picture taking application. However, if the scanner is already opened by an application, the picture taking application will not be opened. Instead, the camera button will act as a trigger to enable barcode scanning. Even if a background scanner application such as DataWedge is open, the camera button will enable scanning.
Scanner button - ES400 is equipped with a dedicated scanner button at the front of the unit.
Image Capture
Image Capture - You must use Microsoft’s DirectShow for capturing images. The Imager APIs distributed with EMDK does not support ES400 development.
Fusion
Wi-Fi Support - ES400 supports Fusion v3.20 for accessing WLAN features. Fusion 3.20 supports Dual Boot mode. Dual Boot mode consists of WZC (Wireless Zero Configuration) and Fusion modes to manage Wi-Fi adapter. By default ES400 is pre-configured to use the WZC mode. Please note Fusion 3.20 will not support all the commands that are available in other Fusion versions.
The following table lists the commands supported in ES400
API Command
WZC
Fusion
DATA_EXPORT_OPERATION_WLAN_PROFILE
Y
DATA_EXPORT_OPERATION_WLAN_OPTIONS
Y
Y
DATA_IMPORT_OPERATION_WLAN_PROFILE
Y
DATA_IMPORT_OPERATION_WLAN_OPTIONS
Y
Y
SET_PROFILE_ATTRIBUTE_WLAN_PROFILE
Y
ENUMERATE_PROFILES_WLAN_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_ALL_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_WLAN_GET_PROFILES_DATA
Y
ENUMERATE_PROFILES_ALL_GET_PROFILES_DATA
Y
SELECT_AND_CONNECT_WLAN_PROFILE
Y
CANCEL_CONNECTION_PERSISTENCE
Y
ADD_WLAN_PROFILE
Y
DELETE_WLAN_PROFILE
Y
SAVE_DATA_STRUCTURE_MODE_TEXT
Y
Y
GET_FUSION_VERSION_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_DATA
Y
Y
GET_FUSION_VERSION_EX_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_EX_DATA
Y
Y
FUSION_DIAG_LOG_SAVE
Y
Y
FUSION_DIAG_LOG_CLEAR
Y
Y
FUSION_DIAG_LOG_SET_SIZE
Y
Y
ADAPTER_WLAN_GET_BUFFER_SIZE
Y
Y
ADAPTER_ALL_GET_BUFFER_SIZE
Y
Y
ADAPTER_WLAN_GET_ENUM_DATA
Y
Y
ADAPTER_ALL_GET_ENUM_DATA
Y
Y
ADAPTER_INFO_WLAN
Y
Y
ERROR_INFO_GET_LAST_ERROR
Y
Y
USER_CREDENTIAL_WLAN_OVERRIDE
Y
USER_CREDENTIAL_WLAN_RESET
Y
NDIS_STAT_WLAN_GET_BUFFER_SIZE
Y
Y
NDIS_STAT_WLAN_GET_DATA
Y
Y
NDIS_STAT_WLAN_SET_DATA
Y
Y
RF_SIGNAL_STRENGTH_WLAN_GET
Y
Y
RF_SIGNAL_QUALITY_WLAN_GET
Y
Y
CONNECTION_STATUS_WLAN_GET
Y
NETWORK_CONTROL_WLAN_IPV4_DHCP_RENEW
Y
Y
NETWORK_CONTROL_WLAN_IPV6_RESET
Y
POWER_CONTROL_WLAN_DISABLE_POWER
Y
Y
POWER_CONTROL_WLAN_ENABLE_POWER
Y
Y
POWER_CONTROL_WLAN_GET_POWER_STATUS
Y
Y
ADAPTER_APP_OP_PROFILE_WLAN_SET (Future)
FUSION_ACCESS_CONTROL_ALL
Y
Y
WLAN_ADAPTER_STATISTICS_GET
Y
WLAN_SSID_LIST_GET_BUFFER_SIZE
Y
WLAN_SSID_LIST_GET_DATA
Y
WLAN_AP_OR_PEER_LIST_GET_BUFFER_SIZE
Y
WLAN_AP_OR_PEER_LIST_GET_DATA
Y
WLAN_RF_BAND_GET
WLAN_RF_BAND_SET
WLAN_AUTO_TIME_CONFIG_GET
WLAN_AUTO_TIME_CONFIG_SET
WLAN_IP_MANAGEMENT_GET
Y
Y
WLAN_IP_MANAGEMENT_SET
Y
Y
WLAN_802_11d_GET
WLAN_802_11d_SET
WLAN_COUNTRY_CODE_GET
WLAN_COUNTRY_CODE_SET
WLAN_PAC_AUTO_REFRESHING_GET
Y
WLAN_PAC_AUTO_REFRESHING_SET
Y
ADD_PAC
Deprecated
WLAN_PAC_AUTO_PROVISIONING_GET
Y
WLAN_PAC_AUTO_PROVISIONING_SET
Y
IMPORT_PAC_FILE
Y
WLAN_IPv6_GET
Y
WLAN_IPv6_SET
Y
WLAN_IPv6_GET
Y
WLAN_MANAGEMENT_GET
Y
Y
WLAN_MANAGEMENT_SET
Y
Y
Managing Dual Boot modes – The Dual Boot feature provides 2 modes: WZC and Fusion modes. New commands WLAN_MANAGEMENT_GET and WLAN_MANAGEMENT_SET provide options to read and modify the Dual Boot mode.
New FAPI profile - A new FAPI Profile is added to address the naming of FAPI_WLAN_AES_ALLOW_MIXED_MODE enumeration to FAPI_WLAN_ALLOW_MIXED_MODE. This is required since Mixed mode operation is possible for both TKIP as well as AES encryption keys. The Earlier naming scheme only indicates this mode for AES encryption
Display
Backlight Intensity - The ES400 supports two modes for the Backlight:
Auto Mode (default) - where the light sensor input affects the backlight intensity.
Manual Mode - where the user setting [via the applet or EMDK API] sets the Backlight intensity
ES400 is set to the 'Auto' mode by default. In this mode, an attempt to set the backlight intensity will return an error. In order to programmatically change the mode to manual, modify the following registry and perform a cold boot:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Backlight]
; Set to “1” for Manual mode and “0” for Auto mode
"ACBacklightAdjMode" = dword:1 ; Backlight mode when connected to AC
"BatteryBacklightAdjMode" = dword:1 ; Backlight mode when on battery power
Alternatively, the Backlight & Keylight applet in Start -> Settings -> System can be used to manually control the backlight mode. The 'Backlight Brightness' field needs to be set appropriately.
Keyboard
Unsupported feature - Please note the EMDK’s Keyboard APIs are not supported on ES400. You must use Microsoft APIs as a work around.
AudioEx
Unsupported feature - Please note the EMDK’s AudioEx APIs are not supported on ES400.
Spectrum24
Unsupported feature - The Spectrum24 APIs are not supported on ES400. For all WLAN operations, you must use Fusion APIs.
RS507
No RS507 support - ES400 does not support using RS507 or any other Bluetooth scanners.
Printing
Printing support – Print APIs can be used to print from ES400 to one of the supported printers such as Zebra’s RW420 and QL320. The following steps must be completed before attempting to print:
You must install the “_ES40X_WM65_07_01_2010.cab” file. This file is available on the ES400 product web page
For Bluetooth printing, the following configuration must be performed:
i. Pair with printer using the “Devices” tab found in the Bluetooth applet located in “Start->Settings”
ii. After pairing, select the “Com Ports” tab and assign an outgoing COM port for the printer. COM8 was used for engineering testing. Close the applet after setting the port.
iii. Modify the ES400 registry setting to configure the com port as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\PrintPort] = COM8: 9600
In the above example, COM8 and 9600 baud rate were selected for the QL320 printer.
iv. Modify the following registry to configure the TLD:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDBluetooth.dll
The above example shows the modification required for the QL320 printer.
Further information on wireless printing, refer to the document “\Printer Drivers\Wireless printing Guide for WM5 0 and WCE5 0 Terminals.pdf”.
For USB printing, make sure the device is connected to the printer with an appropriate USB cables.
The registry must be modified as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDUSB.dll
A sample application “\Printer Drivers\Sample\Win32PrintSamp.exe” is provided for testing.
2. No support for WiFi Printing - The ES400 device does not support WiFi (WirelessLAN) printing
Resource Coordination
1. The RCM_GetConfigurationData function retrieves mobile computer configuration data. The following new ES400 configuration data can be obtained:
CONFIG_TYPE_LIGHT_SENSOR CONFIG_TYPE_HOLSTER CONFIG_TYPE_NAVPAD
2. ES400 does not have any hardware trigger that can be programmatically accessed.
The latest EMDK's (c .NET) do have some porting guidelines for ES400/MC65. i.e. what Motorola API's are supported etc..
ES400 Programming
Introduction
This documentation provides important information on using EMDK for C for creating new applications or porting existing applications to run on ES400.
Development Tools
The following tools are required for developing C/C++ applications for the ES400:
Supported IDE
Visual Studio 2005 and/or Visual Studio 2008
Required EMDK
EMDK for C v2.3 or higher
Required SDKs
Windows Mobile 6.0 Professional Software Development Kit and Windows Mobile 6.5.x Developer Tool Kit
Support for Features
Feature
Supported?
Audio
Yes
AudioEx
No
Bluetooth
Yes (Microsoft stack only)
Display
Yes
Fusion WLAN
Yes (Fusion 3.20)
Image Capture
No
IO
No
Keyboard
No
Keylight
No
MSR
No
Notification
Yes
Printing
Yes
Resource Coordinator
Yes
RFID
No
RFID3
No
Scanning
Yes
Spectrum24
No
VBus
No
MT2000 “C” APIs
No
Design Notes
You must consider the following guidelines for developing new applications or porting existing applications to run on ES400:
GUI
Resolution Issues – ES400 supports the 480x640 resolution. If you are porting an application designed to work on a different resolution, the graphic objects may not display as intended on the ES400. The GUI objects may be distorted or partially visible or completely invisible. You will need to modify your application to work on multiple resolutions. Numerous articles available online describe how to write an application to run on multiple resolutions.
Portrait and Landscape modes - You may want to consider designing the application GUI to scale for both portrait and landscape modes. The ES400 comes with the accelerometer which allows the screen to rotate automatically when the device is rotated.
Bluetooth
Bluetooth Stack - Only the Microsoft stack is available on the device. Stone Street One stack is not supported.
Porting - If you have written a C/C++ application targeting StoneStreet stack, you will need to modify the application to use Microsoft Bluetooth APIs instead. There is no compatibility between the syntax and behavior of these two APIs. Please refer to the MSDN for a list of Microsoft Bluetooth APIs.
Available com ports for Bluetooth Serial Operations - On ES400, any com port from 0 to 9 can be used if they are not already used.
Scanning
Camera button - Normally, pressing the camera button on the right side of the device will open the picture taking application. However, if the scanner is already opened by an application, the picture taking application will not be opened. Instead, the camera button will act as a trigger to enable barcode scanning. Even if a background scanner application such as DataWedge is open, the camera button will enable scanning.
Scanner button - ES400 is equipped with a dedicated scanner button at the front of the unit.
Image Capture
Image Capture - You must use Microsoft’s DirectShow for capturing images. The Imager APIs distributed with EMDK does not support ES400 development.
Fusion
Wi-Fi Support - ES400 supports Fusion v3.20 for accessing WLAN features. Fusion 3.20 supports Dual Boot mode. Dual Boot mode consists of WZC (Wireless Zero Configuration) and Fusion modes to manage Wi-Fi adapter. By default ES400 is pre-configured to use the WZC mode. Please note Fusion 3.20 will not support all the commands that are available in other Fusion versions.
The following table lists the commands supported in ES400
API Command
WZC
Fusion
DATA_EXPORT_OPERATION_WLAN_PROFILE
Y
DATA_EXPORT_OPERATION_WLAN_OPTIONS
Y
Y
DATA_IMPORT_OPERATION_WLAN_PROFILE
Y
DATA_IMPORT_OPERATION_WLAN_OPTIONS
Y
Y
SET_PROFILE_ATTRIBUTE_WLAN_PROFILE
Y
ENUMERATE_PROFILES_WLAN_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_ALL_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_WLAN_GET_PROFILES_DATA
Y
ENUMERATE_PROFILES_ALL_GET_PROFILES_DATA
Y
SELECT_AND_CONNECT_WLAN_PROFILE
Y
CANCEL_CONNECTION_PERSISTENCE
Y
ADD_WLAN_PROFILE
Y
DELETE_WLAN_PROFILE
Y
SAVE_DATA_STRUCTURE_MODE_TEXT
Y
Y
GET_FUSION_VERSION_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_DATA
Y
Y
GET_FUSION_VERSION_EX_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_EX_DATA
Y
Y
FUSION_DIAG_LOG_SAVE
Y
Y
FUSION_DIAG_LOG_CLEAR
Y
Y
FUSION_DIAG_LOG_SET_SIZE
Y
Y
ADAPTER_WLAN_GET_BUFFER_SIZE
Y
Y
ADAPTER_ALL_GET_BUFFER_SIZE
Y
Y
ADAPTER_WLAN_GET_ENUM_DATA
Y
Y
ADAPTER_ALL_GET_ENUM_DATA
Y
Y
ADAPTER_INFO_WLAN
Y
Y
ERROR_INFO_GET_LAST_ERROR
Y
Y
USER_CREDENTIAL_WLAN_OVERRIDE
Y
USER_CREDENTIAL_WLAN_RESET
Y
NDIS_STAT_WLAN_GET_BUFFER_SIZE
Y
Y
NDIS_STAT_WLAN_GET_DATA
Y
Y
NDIS_STAT_WLAN_SET_DATA
Y
Y
RF_SIGNAL_STRENGTH_WLAN_GET
Y
Y
RF_SIGNAL_QUALITY_WLAN_GET
Y
Y
CONNECTION_STATUS_WLAN_GET
Y
NETWORK_CONTROL_WLAN_IPV4_DHCP_RENEW
Y
Y
NETWORK_CONTROL_WLAN_IPV6_RESET
Y
POWER_CONTROL_WLAN_DISABLE_POWER
Y
Y
POWER_CONTROL_WLAN_ENABLE_POWER
Y
Y
POWER_CONTROL_WLAN_GET_POWER_STATUS
Y
Y
ADAPTER_APP_OP_PROFILE_WLAN_SET (Future)
FUSION_ACCESS_CONTROL_ALL
Y
Y
WLAN_ADAPTER_STATISTICS_GET
Y
WLAN_SSID_LIST_GET_BUFFER_SIZE
Y
WLAN_SSID_LIST_GET_DATA
Y
WLAN_AP_OR_PEER_LIST_GET_BUFFER_SIZE
Y
WLAN_AP_OR_PEER_LIST_GET_DATA
Y
WLAN_RF_BAND_GET
WLAN_RF_BAND_SET
WLAN_AUTO_TIME_CONFIG_GET
WLAN_AUTO_TIME_CONFIG_SET
WLAN_IP_MANAGEMENT_GET
Y
Y
WLAN_IP_MANAGEMENT_SET
Y
Y
WLAN_802_11d_GET
WLAN_802_11d_SET
WLAN_COUNTRY_CODE_GET
WLAN_COUNTRY_CODE_SET
WLAN_PAC_AUTO_REFRESHING_GET
Y
WLAN_PAC_AUTO_REFRESHING_SET
Y
ADD_PAC
Deprecated
WLAN_PAC_AUTO_PROVISIONING_GET
Y
WLAN_PAC_AUTO_PROVISIONING_SET
Y
IMPORT_PAC_FILE
Y
WLAN_IPv6_GET
Y
WLAN_IPv6_SET
Y
WLAN_IPv6_GET
Y
WLAN_MANAGEMENT_GET
Y
Y
WLAN_MANAGEMENT_SET
Y
Y
Managing Dual Boot modes – The Dual Boot feature provides 2 modes: WZC and Fusion modes. New commands WLAN_MANAGEMENT_GET and WLAN_MANAGEMENT_SET provide options to read and modify the Dual Boot mode.
New FAPI profile - A new FAPI Profile is added to address the naming of FAPI_WLAN_AES_ALLOW_MIXED_MODE enumeration to FAPI_WLAN_ALLOW_MIXED_MODE. This is required since Mixed mode operation is possible for both TKIP as well as AES encryption keys. The Earlier naming scheme only indicates this mode for AES encryption
Display
Backlight Intensity - The ES400 supports two modes for the Backlight:
Auto Mode (default) - where the light sensor input affects the backlight intensity.
Manual Mode - where the user setting [via the applet or EMDK API] sets the Backlight intensity
ES400 is set to the 'Auto' mode by default. In this mode, an attempt to set the backlight intensity will return an error. In order to programmatically change the mode to manual, modify the following registry and perform a cold boot:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Backlight]
; Set to “1” for Manual mode and “0” for Auto mode
"ACBacklightAdjMode" = dword:1 ; Backlight mode when connected to AC
"BatteryBacklightAdjMode" = dword:1 ; Backlight mode when on battery power
Alternatively, the Backlight & Keylight applet in Start -> Settings -> System can be used to manually control the backlight mode. The 'Backlight Brightness' field needs to be set appropriately.
Keyboard
Unsupported feature - Please note the EMDK’s Keyboard APIs are not supported on ES400. You must use Microsoft APIs as a work around.
AudioEx
Unsupported feature - Please note the EMDK’s AudioEx APIs are not supported on ES400.
Spectrum24
Unsupported feature - The Spectrum24 APIs are not supported on ES400. For all WLAN operations, you must use Fusion APIs.
RS507
No RS507 support - ES400 does not support using RS507 or any other Bluetooth scanners.
Printing
Printing support – Print APIs can be used to print from ES400 to one of the supported printers such as Zebra’s RW420 and QL320. The following steps must be completed before attempting to print:
You must install the “_ES40X_WM65_07_01_2010.cab” file. This file is available on the ES400 product web page
For Bluetooth printing, the following configuration must be performed:
i. Pair with printer using the “Devices” tab found in the Bluetooth applet located in “Start->Settings”
ii. After pairing, select the “Com Ports” tab and assign an outgoing COM port for the printer. COM8 was used for engineering testing. Close the applet after setting the port.
iii. Modify the ES400 registry setting to configure the com port as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\PrintPort] = COM8: 9600
In the above example, COM8 and 9600 baud rate were selected for the QL320 printer.
iv. Modify the following registry to configure the TLD:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDBluetooth.dll
The above example shows the modification required for the QL320 printer.
Further information on wireless printing, refer to the document “\Printer Drivers\Wireless printing Guide for WM5 0 and WCE5 0 Terminals.pdf”.
For USB printing, make sure the device is connected to the printer with an appropriate USB cables.
The registry must be modified as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDUSB.dll
A sample application “\Printer Drivers\Sample\Win32PrintSamp.exe” is provided for testing.
2. No support for WiFi Printing - The ES400 device does not support WiFi (WirelessLAN) printing
Resource Coordination
1. The RCM_GetConfigurationData function retrieves mobile computer configuration data. The following new ES400 configuration data can be obtained:
CONFIG_TYPE_LIGHT_SENSOR CONFIG_TYPE_HOLSTER CONFIG_TYPE_NAVPAD
2. ES400 does not have any hardware trigger that can be programmatically accessed.
The latest EMDK's (c .NET) do have some porting guidelines for ES400/MC65. i.e. what Motorola API's are supported etc..
ES400 Programming
Introduction
This documentation provides important information on using EMDK for C for creating new applications or porting existing applications to run on ES400.
Development Tools
The following tools are required for developing C/C++ applications for the ES400:
Supported IDE
Visual Studio 2005 and/or Visual Studio 2008
Required EMDK
EMDK for C v2.3 or higher
Required SDKs
Windows Mobile 6.0 Professional Software Development Kit and Windows Mobile 6.5.x Developer Tool Kit
Support for Features
Feature
Supported?
Audio
Yes
AudioEx
No
Bluetooth
Yes (Microsoft stack only)
Display
Yes
Fusion WLAN
Yes (Fusion 3.20)
Image Capture
No
IO
No
Keyboard
No
Keylight
No
MSR
No
Notification
Yes
Printing
Yes
Resource Coordinator
Yes
RFID
No
RFID3
No
Scanning
Yes
Spectrum24
No
VBus
No
MT2000 “C” APIs
No
Design Notes
You must consider the following guidelines for developing new applications or porting existing applications to run on ES400:
GUI
Resolution Issues – ES400 supports the 480x640 resolution. If you are porting an application designed to work on a different resolution, the graphic objects may not display as intended on the ES400. The GUI objects may be distorted or partially visible or completely invisible. You will need to modify your application to work on multiple resolutions. Numerous articles available online describe how to write an application to run on multiple resolutions.
Portrait and Landscape modes - You may want to consider designing the application GUI to scale for both portrait and landscape modes. The ES400 comes with the accelerometer which allows the screen to rotate automatically when the device is rotated.
Bluetooth
Bluetooth Stack - Only the Microsoft stack is available on the device. Stone Street One stack is not supported.
Porting - If you have written a C/C++ application targeting StoneStreet stack, you will need to modify the application to use Microsoft Bluetooth APIs instead. There is no compatibility between the syntax and behavior of these two APIs. Please refer to the MSDN for a list of Microsoft Bluetooth APIs.
Available com ports for Bluetooth Serial Operations - On ES400, any com port from 0 to 9 can be used if they are not already used.
Scanning
Camera button - Normally, pressing the camera button on the right side of the device will open the picture taking application. However, if the scanner is already opened by an application, the picture taking application will not be opened. Instead, the camera button will act as a trigger to enable barcode scanning. Even if a background scanner application such as DataWedge is open, the camera button will enable scanning.
Scanner button - ES400 is equipped with a dedicated scanner button at the front of the unit.
Image Capture
Image Capture - You must use Microsoft’s DirectShow for capturing images. The Imager APIs distributed with EMDK does not support ES400 development.
Fusion
Wi-Fi Support - ES400 supports Fusion v3.20 for accessing WLAN features. Fusion 3.20 supports Dual Boot mode. Dual Boot mode consists of WZC (Wireless Zero Configuration) and Fusion modes to manage Wi-Fi adapter. By default ES400 is pre-configured to use the WZC mode. Please note Fusion 3.20 will not support all the commands that are available in other Fusion versions.
The following table lists the commands supported in ES400
API Command
WZC
Fusion
DATA_EXPORT_OPERATION_WLAN_PROFILE
Y
DATA_EXPORT_OPERATION_WLAN_OPTIONS
Y
Y
DATA_IMPORT_OPERATION_WLAN_PROFILE
Y
DATA_IMPORT_OPERATION_WLAN_OPTIONS
Y
Y
SET_PROFILE_ATTRIBUTE_WLAN_PROFILE
Y
ENUMERATE_PROFILES_WLAN_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_ALL_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_WLAN_GET_PROFILES_DATA
Y
ENUMERATE_PROFILES_ALL_GET_PROFILES_DATA
Y
SELECT_AND_CONNECT_WLAN_PROFILE
Y
CANCEL_CONNECTION_PERSISTENCE
Y
ADD_WLAN_PROFILE
Y
DELETE_WLAN_PROFILE
Y
SAVE_DATA_STRUCTURE_MODE_TEXT
Y
Y
GET_FUSION_VERSION_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_DATA
Y
Y
GET_FUSION_VERSION_EX_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_EX_DATA
Y
Y
FUSION_DIAG_LOG_SAVE
Y
Y
FUSION_DIAG_LOG_CLEAR
Y
Y
FUSION_DIAG_LOG_SET_SIZE
Y
Y
ADAPTER_WLAN_GET_BUFFER_SIZE
Y
Y
ADAPTER_ALL_GET_BUFFER_SIZE
Y
Y
ADAPTER_WLAN_GET_ENUM_DATA
Y
Y
ADAPTER_ALL_GET_ENUM_DATA
Y
Y
ADAPTER_INFO_WLAN
Y
Y
ERROR_INFO_GET_LAST_ERROR
Y
Y
USER_CREDENTIAL_WLAN_OVERRIDE
Y
USER_CREDENTIAL_WLAN_RESET
Y
NDIS_STAT_WLAN_GET_BUFFER_SIZE
Y
Y
NDIS_STAT_WLAN_GET_DATA
Y
Y
NDIS_STAT_WLAN_SET_DATA
Y
Y
RF_SIGNAL_STRENGTH_WLAN_GET
Y
Y
RF_SIGNAL_QUALITY_WLAN_GET
Y
Y
CONNECTION_STATUS_WLAN_GET
Y
NETWORK_CONTROL_WLAN_IPV4_DHCP_RENEW
Y
Y
NETWORK_CONTROL_WLAN_IPV6_RESET
Y
POWER_CONTROL_WLAN_DISABLE_POWER
Y
Y
POWER_CONTROL_WLAN_ENABLE_POWER
Y
Y
POWER_CONTROL_WLAN_GET_POWER_STATUS
Y
Y
ADAPTER_APP_OP_PROFILE_WLAN_SET (Future)
FUSION_ACCESS_CONTROL_ALL
Y
Y
WLAN_ADAPTER_STATISTICS_GET
Y
WLAN_SSID_LIST_GET_BUFFER_SIZE
Y
WLAN_SSID_LIST_GET_DATA
Y
WLAN_AP_OR_PEER_LIST_GET_BUFFER_SIZE
Y
WLAN_AP_OR_PEER_LIST_GET_DATA
Y
WLAN_RF_BAND_GET
WLAN_RF_BAND_SET
WLAN_AUTO_TIME_CONFIG_GET
WLAN_AUTO_TIME_CONFIG_SET
WLAN_IP_MANAGEMENT_GET
Y
Y
WLAN_IP_MANAGEMENT_SET
Y
Y
WLAN_802_11d_GET
WLAN_802_11d_SET
WLAN_COUNTRY_CODE_GET
WLAN_COUNTRY_CODE_SET
WLAN_PAC_AUTO_REFRESHING_GET
Y
WLAN_PAC_AUTO_REFRESHING_SET
Y
ADD_PAC
Deprecated
WLAN_PAC_AUTO_PROVISIONING_GET
Y
WLAN_PAC_AUTO_PROVISIONING_SET
Y
IMPORT_PAC_FILE
Y
WLAN_IPv6_GET
Y
WLAN_IPv6_SET
Y
WLAN_IPv6_GET
Y
WLAN_MANAGEMENT_GET
Y
Y
WLAN_MANAGEMENT_SET
Y
Y
Managing Dual Boot modes – The Dual Boot feature provides 2 modes: WZC and Fusion modes. New commands WLAN_MANAGEMENT_GET and WLAN_MANAGEMENT_SET provide options to read and modify the Dual Boot mode.
New FAPI profile - A new FAPI Profile is added to address the naming of FAPI_WLAN_AES_ALLOW_MIXED_MODE enumeration to FAPI_WLAN_ALLOW_MIXED_MODE. This is required since Mixed mode operation is possible for both TKIP as well as AES encryption keys. The Earlier naming scheme only indicates this mode for AES encryption
Display
Backlight Intensity - The ES400 supports two modes for the Backlight:
Auto Mode (default) - where the light sensor input affects the backlight intensity.
Manual Mode - where the user setting [via the applet or EMDK API] sets the Backlight intensity
ES400 is set to the 'Auto' mode by default. In this mode, an attempt to set the backlight intensity will return an error. In order to programmatically change the mode to manual, modify the following registry and perform a cold boot:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Backlight]
; Set to “1” for Manual mode and “0” for Auto mode
"ACBacklightAdjMode" = dword:1 ; Backlight mode when connected to AC
"BatteryBacklightAdjMode" = dword:1 ; Backlight mode when on battery power
Alternatively, the Backlight & Keylight applet in Start -> Settings -> System can be used to manually control the backlight mode. The 'Backlight Brightness' field needs to be set appropriately.
Keyboard
Unsupported feature - Please note the EMDK’s Keyboard APIs are not supported on ES400. You must use Microsoft APIs as a work around.
AudioEx
Unsupported feature - Please note the EMDK’s AudioEx APIs are not supported on ES400.
Spectrum24
Unsupported feature - The Spectrum24 APIs are not supported on ES400. For all WLAN operations, you must use Fusion APIs.
RS507
No RS507 support - ES400 does not support using RS507 or any other Bluetooth scanners.
Printing
Printing support – Print APIs can be used to print from ES400 to one of the supported printers such as Zebra’s RW420 and QL320. The following steps must be completed before attempting to print:
You must install the “_ES40X_WM65_07_01_2010.cab” file. This file is available on the ES400 product web page
For Bluetooth printing, the following configuration must be performed:
i. Pair with printer using the “Devices” tab found in the Bluetooth applet located in “Start->Settings”
ii. After pairing, select the “Com Ports” tab and assign an outgoing COM port for the printer. COM8 was used for engineering testing. Close the applet after setting the port.
iii. Modify the ES400 registry setting to configure the com port as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\PrintPort] = COM8: 9600
In the above example, COM8 and 9600 baud rate were selected for the QL320 printer.
iv. Modify the following registry to configure the TLD:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDBluetooth.dll
The above example shows the modification required for the QL320 printer.
Further information on wireless printing, refer to the document “\Printer Drivers\Wireless printing Guide for WM5 0 and WCE5 0 Terminals.pdf”.
For USB printing, make sure the device is connected to the printer with an appropriate USB cables.
The registry must be modified as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDUSB.dll
A sample application “\Printer Drivers\Sample\Win32PrintSamp.exe” is provided for testing.
2. No support for WiFi Printing - The ES400 device does not support WiFi (WirelessLAN) printing
Resource Coordination
1. The RCM_GetConfigurationData function retrieves mobile computer configuration data. The following new ES400 configuration data can be obtained:
CONFIG_TYPE_LIGHT_SENSOR CONFIG_TYPE_HOLSTER CONFIG_TYPE_NAVPAD
2. ES400 does not have any hardware trigger that can be programmatically accessed.
The latest EMDK's (c .NET) do have some porting guidelines for ES400/MC65. i.e. what Motorola API's are supported etc..
ES400 Programming
Introduction
This documentation provides important information on using EMDK for C for creating new applications or porting existing applications to run on ES400.
Development Tools
The following tools are required for developing C/C++ applications for the ES400:
Supported IDE
Visual Studio 2005 and/or Visual Studio 2008
Required EMDK
EMDK for C v2.3 or higher
Required SDKs
Windows Mobile 6.0 Professional Software Development Kit and Windows Mobile 6.5.x Developer Tool Kit
Support for Features
Feature
Supported?
Audio
Yes
AudioEx
No
Bluetooth
Yes (Microsoft stack only)
Display
Yes
Fusion WLAN
Yes (Fusion 3.20)
Image Capture
No
IO
No
Keyboard
No
Keylight
No
MSR
No
Notification
Yes
Printing
Yes
Resource Coordinator
Yes
RFID
No
RFID3
No
Scanning
Yes
Spectrum24
No
VBus
No
MT2000 “C” APIs
No
Design Notes
You must consider the following guidelines for developing new applications or porting existing applications to run on ES400:
GUI
Resolution Issues – ES400 supports the 480x640 resolution. If you are porting an application designed to work on a different resolution, the graphic objects may not display as intended on the ES400. The GUI objects may be distorted or partially visible or completely invisible. You will need to modify your application to work on multiple resolutions. Numerous articles available online describe how to write an application to run on multiple resolutions.
Portrait and Landscape modes - You may want to consider designing the application GUI to scale for both portrait and landscape modes. The ES400 comes with the accelerometer which allows the screen to rotate automatically when the device is rotated.
Bluetooth
Bluetooth Stack - Only the Microsoft stack is available on the device. Stone Street One stack is not supported.
Porting - If you have written a C/C++ application targeting StoneStreet stack, you will need to modify the application to use Microsoft Bluetooth APIs instead. There is no compatibility between the syntax and behavior of these two APIs. Please refer to the MSDN for a list of Microsoft Bluetooth APIs.
Available com ports for Bluetooth Serial Operations - On ES400, any com port from 0 to 9 can be used if they are not already used.
Scanning
Camera button - Normally, pressing the camera button on the right side of the device will open the picture taking application. However, if the scanner is already opened by an application, the picture taking application will not be opened. Instead, the camera button will act as a trigger to enable barcode scanning. Even if a background scanner application such as DataWedge is open, the camera button will enable scanning.
Scanner button - ES400 is equipped with a dedicated scanner button at the front of the unit.
Image Capture
Image Capture - You must use Microsoft’s DirectShow for capturing images. The Imager APIs distributed with EMDK does not support ES400 development.
Fusion
Wi-Fi Support - ES400 supports Fusion v3.20 for accessing WLAN features. Fusion 3.20 supports Dual Boot mode. Dual Boot mode consists of WZC (Wireless Zero Configuration) and Fusion modes to manage Wi-Fi adapter. By default ES400 is pre-configured to use the WZC mode. Please note Fusion 3.20 will not support all the commands that are available in other Fusion versions.
The following table lists the commands supported in ES400
API Command
WZC
Fusion
DATA_EXPORT_OPERATION_WLAN_PROFILE
Y
DATA_EXPORT_OPERATION_WLAN_OPTIONS
Y
Y
DATA_IMPORT_OPERATION_WLAN_PROFILE
Y
DATA_IMPORT_OPERATION_WLAN_OPTIONS
Y
Y
SET_PROFILE_ATTRIBUTE_WLAN_PROFILE
Y
ENUMERATE_PROFILES_WLAN_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_ALL_GET_BUFFER_SIZE
Y
ENUMERATE_PROFILES_WLAN_GET_PROFILES_DATA
Y
ENUMERATE_PROFILES_ALL_GET_PROFILES_DATA
Y
SELECT_AND_CONNECT_WLAN_PROFILE
Y
CANCEL_CONNECTION_PERSISTENCE
Y
ADD_WLAN_PROFILE
Y
DELETE_WLAN_PROFILE
Y
SAVE_DATA_STRUCTURE_MODE_TEXT
Y
Y
GET_FUSION_VERSION_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_DATA
Y
Y
GET_FUSION_VERSION_EX_BUFFER_SIZE
Y
Y
GET_FUSION_VERSION_EX_DATA
Y
Y
FUSION_DIAG_LOG_SAVE
Y
Y
FUSION_DIAG_LOG_CLEAR
Y
Y
FUSION_DIAG_LOG_SET_SIZE
Y
Y
ADAPTER_WLAN_GET_BUFFER_SIZE
Y
Y
ADAPTER_ALL_GET_BUFFER_SIZE
Y
Y
ADAPTER_WLAN_GET_ENUM_DATA
Y
Y
ADAPTER_ALL_GET_ENUM_DATA
Y
Y
ADAPTER_INFO_WLAN
Y
Y
ERROR_INFO_GET_LAST_ERROR
Y
Y
USER_CREDENTIAL_WLAN_OVERRIDE
Y
USER_CREDENTIAL_WLAN_RESET
Y
NDIS_STAT_WLAN_GET_BUFFER_SIZE
Y
Y
NDIS_STAT_WLAN_GET_DATA
Y
Y
NDIS_STAT_WLAN_SET_DATA
Y
Y
RF_SIGNAL_STRENGTH_WLAN_GET
Y
Y
RF_SIGNAL_QUALITY_WLAN_GET
Y
Y
CONNECTION_STATUS_WLAN_GET
Y
NETWORK_CONTROL_WLAN_IPV4_DHCP_RENEW
Y
Y
NETWORK_CONTROL_WLAN_IPV6_RESET
Y
POWER_CONTROL_WLAN_DISABLE_POWER
Y
Y
POWER_CONTROL_WLAN_ENABLE_POWER
Y
Y
POWER_CONTROL_WLAN_GET_POWER_STATUS
Y
Y
ADAPTER_APP_OP_PROFILE_WLAN_SET (Future)
FUSION_ACCESS_CONTROL_ALL
Y
Y
WLAN_ADAPTER_STATISTICS_GET
Y
WLAN_SSID_LIST_GET_BUFFER_SIZE
Y
WLAN_SSID_LIST_GET_DATA
Y
WLAN_AP_OR_PEER_LIST_GET_BUFFER_SIZE
Y
WLAN_AP_OR_PEER_LIST_GET_DATA
Y
WLAN_RF_BAND_GET
WLAN_RF_BAND_SET
WLAN_AUTO_TIME_CONFIG_GET
WLAN_AUTO_TIME_CONFIG_SET
WLAN_IP_MANAGEMENT_GET
Y
Y
WLAN_IP_MANAGEMENT_SET
Y
Y
WLAN_802_11d_GET
WLAN_802_11d_SET
WLAN_COUNTRY_CODE_GET
WLAN_COUNTRY_CODE_SET
WLAN_PAC_AUTO_REFRESHING_GET
Y
WLAN_PAC_AUTO_REFRESHING_SET
Y
ADD_PAC
Deprecated
WLAN_PAC_AUTO_PROVISIONING_GET
Y
WLAN_PAC_AUTO_PROVISIONING_SET
Y
IMPORT_PAC_FILE
Y
WLAN_IPv6_GET
Y
WLAN_IPv6_SET
Y
WLAN_IPv6_GET
Y
WLAN_MANAGEMENT_GET
Y
Y
WLAN_MANAGEMENT_SET
Y
Y
Managing Dual Boot modes – The Dual Boot feature provides 2 modes: WZC and Fusion modes. New commands WLAN_MANAGEMENT_GET and WLAN_MANAGEMENT_SET provide options to read and modify the Dual Boot mode.
New FAPI profile - A new FAPI Profile is added to address the naming of FAPI_WLAN_AES_ALLOW_MIXED_MODE enumeration to FAPI_WLAN_ALLOW_MIXED_MODE. This is required since Mixed mode operation is possible for both TKIP as well as AES encryption keys. The Earlier naming scheme only indicates this mode for AES encryption
Display
Backlight Intensity - The ES400 supports two modes for the Backlight:
Auto Mode (default) - where the light sensor input affects the backlight intensity.
Manual Mode - where the user setting [via the applet or EMDK API] sets the Backlight intensity
ES400 is set to the 'Auto' mode by default. In this mode, an attempt to set the backlight intensity will return an error. In order to programmatically change the mode to manual, modify the following registry and perform a cold boot:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Backlight]
; Set to “1” for Manual mode and “0” for Auto mode
"ACBacklightAdjMode" = dword:1 ; Backlight mode when connected to AC
"BatteryBacklightAdjMode" = dword:1 ; Backlight mode when on battery power
Alternatively, the Backlight & Keylight applet in Start -> Settings -> System can be used to manually control the backlight mode. The 'Backlight Brightness' field needs to be set appropriately.
Keyboard
Unsupported feature - Please note the EMDK’s Keyboard APIs are not supported on ES400. You must use Microsoft APIs as a work around.
AudioEx
Unsupported feature - Please note the EMDK’s AudioEx APIs are not supported on ES400.
Spectrum24
Unsupported feature - The Spectrum24 APIs are not supported on ES400. For all WLAN operations, you must use Fusion APIs.
RS507
No RS507 support - ES400 does not support using RS507 or any other Bluetooth scanners.
Printing
Printing support – Print APIs can be used to print from ES400 to one of the supported printers such as Zebra’s RW420 and QL320. The following steps must be completed before attempting to print:
You must install the “_ES40X_WM65_07_01_2010.cab” file. This file is available on the ES400 product web page
For Bluetooth printing, the following configuration must be performed:
i. Pair with printer using the “Devices” tab found in the Bluetooth applet located in “Start->Settings”
ii. After pairing, select the “Com Ports” tab and assign an outgoing COM port for the printer. COM8 was used for engineering testing. Close the applet after setting the port.
iii. Modify the ES400 registry setting to configure the com port as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\PrintPort] = COM8: 9600
In the above example, COM8 and 9600 baud rate were selected for the QL320 printer.
iv. Modify the following registry to configure the TLD:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDBluetooth.dll
The above example shows the modification required for the QL320 printer.
Further information on wireless printing, refer to the document “\Printer Drivers\Wireless printing Guide for WM5 0 and WCE5 0 Terminals.pdf”.
For USB printing, make sure the device is connected to the printer with an appropriate USB cables.
The registry must be modified as shown below:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SymPrint\QL320\TldDLL] = PrintTLDUSB.dll
A sample application “\Printer Drivers\Sample\Win32PrintSamp.exe” is provided for testing.
2. No support for WiFi Printing - The ES400 device does not support WiFi (WirelessLAN) printing
Resource Coordination
1. The RCM_GetConfigurationData function retrieves mobile computer configuration data. The following new ES400 configuration data can be obtained:
CONFIG_TYPE_LIGHT_SENSOR CONFIG_TYPE_HOLSTER CONFIG_TYPE_NAVPAD
2. ES400 does not have any hardware trigger that can be programmatically accessed.