700 Series: Considerations for WM2003 Migration

For additional questions or concerns, contact the Intermec Developer Support at: [email protected] 800-755-5505

10-14-2005 Version 5

1 Question Index by Applicable Category (Questions below may be listed in many groups for easier searching)

General (Latest Operating Systems, Cold Boot Persistence, and General Practices):  I have a 700 Mono and want to run PPC 2003, is this possible? (Page 4)  I have a 700 Color Series (740, 750, or 760) running PPC 2002 and want to upgrade to PPC 2003, is this possible? (Page 4)  How am I able to find out what operating system is currently installed? (Page 4)  I am running PPC 2002, what is the latest build for the 700 Series? (Page 4)  I am running PPC 2003, what is the latest build for the 700 Series? (Page 4)  I have never upgraded a terminal before, how do I do that? (Page 4)  I am just starting to develop for the Intermec Terminals, where can I find any development tools to help me? (Page 4)  How can I have my application files all automatically reload on a cold boot? (Page 5)  How can I have my application automatically launch after a cold boot? (Page 5)  How can I have my general settings restore on a cold boot? (Page 5)  Why can’t I use my old registry on this new operating system? (Page 4)  Why when I try to save my registry does it error and appear to create 2 of them? (Page 6)  What is the difference between 740, 750, and 760 and 741, 751, and 761? (Page 6)  Is Windows Mobile SE on my handheld? (Page 7)  How do I remap the keyboard on my handheld? (Page 7)

General PPC 2003 (Windows Mobile):  What are the general differences between PPC 2002 and PPC 2003? (Page 8)  How do I order PPC 2003 for my device? (Page 8)  When I order PPC 2003 what is the difference between “A” and “B”? (Page 8)  With PPC 2003 what is the difference between “Upgrade Kit” and “Recovery CD”? (Page 8)  My application worked on the 4.41 version of the OS, but now doesn’t run at all on 4.51? (Page 6)  With PPC 2003, why is my Flash File Store now filled with files? (Page 8)  What new features do I get from Intermec with PPC 2003? (Page 9)

Microsoft Stuff:  My Pocket PC used to indicate certain events by the way the LED “flashed.” This seems to have changed between 2002 and 2003? (Page 10)  What has changed with ActiveX controls? (Page 10)  My JavaScript code no longer works. What changed? (Page 10)  How can I determine the version of the .NET CF that is installed on a device? (Page 10)

802.11:  My 802.11 code worked on PPC 2002 but not on PPC 2003, why? (Page 11)  How am I able to program the 802.1x security supplicant? (Page 11)  I recently upgraded to PPC 2003 and now my 802.11 radio doesn’t work? (Page 11)  My handheld has the new Samsung radio, what OS should I be on? (Page 11)

WWAN:  How do I program for the GPRS or CDMA radio in my unit? (Page 12)  What is the WWAN Toolkit? (Page 12)  Why won’t the example toolkit application run on my handheld? (Page 12)  This is my first WWAN application with the toolkit, how do I get started? (Page 12)  My toolkit application worked with PPC 2002 and now won’t with 2003? (Page 13)  What are my connection parameters for the WWAN radios profile? (Page 13)

2  Why is my application not creating my connection my manager entry? (Page 13)

Bluetooth™:  Is Bluetooth™ different from PPC 2002 to 2003? (Page 14)  What Bluetooth™ profiles are supported with PPC 2003? (Page 14)  What other files do I need for my SF51 to work? (Page 14)  Do you have an example program for MS Bluetooth™? (Page 14)  My Bluetooth™ is failing and not reconnecting, what should I do? (Page 14)  What are some Bluetooth™ best practices? (Page 14)  How do I optimize Bluetooth™ stack reloads? (Page 14)

Scanning:  Is scanning different from PPC 2002 to 2003? (Page 16)  What are my different options for scanning with a 700 Series Mobile Computer? (Page 16)  Are there issues with scanning applications on the latest 2003 OS? (Page 16)

3 General

 I have a 700 Mono and want to run PPC 2003, is this possible? The 700 Mono Series supports PPC 2000 and 2002. The Pocket PC 2002 operating system and the 700 Mono Line are in the process of being “End of Lifed.” Orders are taking place through the year and into Q1 2005 for the terminals. The PPC 2002 OS will be installed onto the 700 Series through mid- 2005. It is our recommendation that those interested in the 700 Mono, look at the 700 Color Series and the 730. Those customers still on PPC 2002 and looking to continue purchasing units and progressing forward, should look into the PPC 2003 Operating System.

 I have a 700 Color Series (740, 750, or 760) running PPC 2002 and want to upgrade to PPC 2003, is this possible? The 700 Color Series is broken down into groups and supports according to those. Any 740, 750, or 760 terminals with 32mb of ROM are able to run both the PPC 2002 and 2003 operating systems. It is important to note that the 2003 OS does not have any extra space on a 32mb ROM unit after a complete install. Any 740, 750, or 760 terminals with 64mb ROM may only run the PPC 2003 operating system. The 730 Color Terminal may also only run the PPC 2003 operating system.

 How am I able to find what operating system is currently installed? PPC 2002: Start>Internet Explorer>Intermec (gives the full OS build number)

PPC 2003: Start>Internet Explorer>Intermec (gives PPC version number)

Start>Programs>File Explorer>Flash File Store>PSMInfo.txt (gives Intermec Value Add Version)

About Screen: Start>Settings>About (gives CE Version PPC built off of) (3.xx.xx is PPC 2002, 4.xx.xx+ is PPC 2003)

 I am running PPC 2002, what is the latest build for the 700 Series? 700 Mono Series (Professional and Premium) – 2.42 700 Color Series (Professional and Premium) – 1.31.32 (and new PRISM drivers) Note: Does not include 64mb ROM option nor the 730 Terminal

 I am running PPC 2003, what is the latest build for the 700 Series? October 14, 2005: Pocket PC Operating System Version 4.51 Intermec Value Add Version 3.77 .Net Compact Framework Version 1.0 (RTM build no service packs)

 Why can’t I use my old registry on this new operating system? Registries are operating system specific and very sensitive and are not guaranteed to be the exact same nor in the same location across operating systems. Because of this, it is very important that you first blow away any old registries before you go to upgrade your handheld. This can be accomplished by going into Settings>Utilities>System and unchecking the registry save box and then cold booting. You will then need to rebuild/redo your registry keys on your new upgraded OS. This not only needs to be done between operating systems versions, but also between updates/upgrades to those OS versions.

 I have never upgraded a terminal before, how do I do that? Directions for the upgrading of each terminal are included within the operating system download. It is important to note that PPC 2003 can only be upgraded with the use of a SD card. You can transfer files onto the card via a card reader or active sync. A card reader is the quickest option. Support can help with any upgrade problems.

 I am just starting to develop for the Intermec Terminals, where can I find any development tools to help me? Your first stop when developing for an Intermec Terminal would be the Intermec Developer’s Library (IDL). This is a one-stop-shop to find all of our development tools, toolkits, samples, demos, applications, and free source code. The IDL is free, but a quick registration is required. As a part of

4 registration, you will be notified when new and updated tools are available. You can find the IDL at http://www.intermec.com/idl.

 How can I have my application files all automatically reload on a cold boot?

PPC 2002: This is accomplished via a combination of a 2577 directory and a Cabfiles directory. With PPC 2002 you have the option of using the available Flash File Store space to load your applications from or a card (Secure Digital or Compact Flash).

- First determine where you want to store your Cabfiles and have them reload on a cold boot. - Then go to the IDL Component Toolbox to download the ready made 2577 directory. - Unzip this directory on your desktop and open the autorun.dat file in Notepad. - If you want to load from the Flash File Store insert this into the strings: EXEC "Flash File Store\2577\AutoCab.exe" CALL "Flash File Store\2577\AutoUser.dat" - If you want to load from the SD card insert this into the strings: EXEC "SDMMC DISK\2577\AutoCab.exe" CALL "SDMMC DISK\2577\AutoUser.dat" - If you want to load from the CF card insert this into the strings: EXEC "Storage Card\2577\AutoCab.exe" CALL "Storage Card\2577\AutoUser.dat"

- Place this directory and its three files in the root of your desired location. - In the root of that same location create a directory called Cabfiles. - While the Cabfiles you want to autoload are on your desktop, right click and set them to read only. This will ensure that they remain after they have installed themselves for future use. - Place any Cabfiles you want autoloaded inside this Cabfiles directory. You are then finished!

PPC 2003: - With PPC 2003, make sure you grab the above 3 files (autocab.exe, autorun.exe, and autorun.dat) from the Flash File Store\2577 and not the website. 2003 always needs the latest files for each build. - With the introduction of some new programs in 2003 and a required warm boot to complete the install, it is necessary to change the method of having applications auto reload. Starting with the method above we have a few changes. - Take the autourun.dat and change to: EXEC "SDMMC Disk\2577\AutoCab.exe" CALL "SDMMC Disk\2577\AutoUser.dat" *Note on a 730 SDMMC Disk should be Storage Card - If you want your cabfiles to install in a specific order, open up notepad and create a file called autocab.dat. Inside this file, list each of your cabfiles on a new line by their name. They will install in this order.

 How can I have my application automatically launch after a cold boot? In combination with the above 2577 directory files you will want to create an autouser.dat file. For parameters on using this file you can look at the one contained in the Flash File Store/2577 directory, or email dev_supt and ask for the autoexe.pdf file for more information.

 How can I have my general settings restore on a cold boot? Most general settings on the handheld are stored in the registry. Anything stored in the registry can either be directly written into your application using the specific registry keys, or can be reloaded as an entire saved registry. For most people it is easier to just reload the entire saved registry. Depending on whether you are using a 700 Mono or Color terminal the process is a little different. Saving the registry is handled via the Regflush API. For those that do not wish to program it into their apps, we have written a small program that does this on its own.

Mono: - Go out to Developer’s Support>Pen Notepads>700 Support and download the regflush.cab. - Put regflush.cab onto your CF card and execute. - Set all of the settings you are interested in on your handheld. - Go into the Start Menu and click on Registry Save. - You will get a confirmation that your registry has been saved.

5 Color: - Go out to Developer Support>Pen Notepads>700 Color>Downloads and download regflush.cab. - Put regflush.cab onto your SD or CF card (Flash File Store also available) and execute. - Go to Start>Settings>System>Utilities>Registry Save and enable. - Note: PPC 2002 allows you to use SD, CR, or Flash File Store PPC 2003 will only allow you to save to the Flash File Store - Set all of the settings you are interested in on your handheld. - Go into the Start Menu and click on Registry Save. - You will get a confirmation that your registry has been saved.

Your registry is saved in your chosen location (only the flash file store on PPC 2003) as a registry.sys file. This is a hidden file that can only be shown by either tapping and holding in the area and choosing View All Files or via Active Sync.

*Note: With PPC 2003 the registry is reloaded on both a warm and a cold boot.

 Why when I try to save my registry does it error and appear to create 2 of them? You will see this happen on a 32mb ROM device when you have run out of ROM and are trying to save your registry. With the introduction of 4.41-3.65 and onward the operating system has gotten so large that these older 32mb ROM units are filled to capacity. There is not a way to free up enough MB’s to store application data, but you can free up enough space to save a registry. The application most people commonly are not using yet is Wavelink Avalanche. This can be removed by going into the flash file store. You will need to delete 3 pieces: Flash File Store>Persistent Copy>Cabfiles>_0000_comp…. (delete this file) Flash File Store>2577>autouser.dat (delete this file) Flash File Store>Avalanche (delete this folder) Cold Boot You should now be able to go in and save a clean and correct registry.

 What is the difference between 740, 750, and 760 and 741, 751, and 761? It is a forward migration of the 700 Color Series incorporating drop-in technologies updates, while maintaining backward compatibility with existing infrastructures.

740, 750, 760 741, 750, 761

802.11b 802.11 b/g WPA, TKIP, MIC WPA 2, 802.11i (AES) CCX v1.0 CCX v 2.0 1xRTT 1xRTT/CDMA Voice GSM/GPRS, Voice/Data GSM/GPRS, Voice/Data, 850 Mhz PPC 2002, WM2003 WM2003, Phone Edition

This model is not a change in form factor, a new processing platform, nor the end of the 700 Series. Minimal to NO impact is anticipated for our users and their applications. For additional information go to: global.intermec.com > GS&S > Product Tools > Launch Kit > 700 Series

 My application worked on the 4.41 version of the OS, but now doesn’t run at all on 4.51? With the 700 Color, every version of the operating system before 4.51 required you to install any Native Intermec programming dll’s onto the handheld in the \windows directory. A couple of examples would be the itc50.dll, itcscan.dll, 80211api.dll, and many more. With the 4.51 build and those going forward, we now include these native dll’s as part of the operating system install. This ensures that you are always running the latest version of our dll’s possible.

What this means is that prior application builds needed to include these dll’s for an application to run. If you take this same install and place it onto a 4.51 device you will be overwriting the most updated dll’s with older ones, and it will cause your application to not run. All Intermec native dll’s need to be removed from your install process (as well as the prebuilt cabs that contained them) for your application to run. .NET and Java wrappers still need to remain with your application.

 Is Windows Mobile SE on my handheld?

6 No, we have not incorporated Windows Mobile Second Edition into our builds.

 How do I remap the keyboard on my handheld? You can either remap the keyboard by writing the registry keys directly or by using our keyboard remapper program. The keyboard remapper is very easy to use and matches up the key with the function you want it to perform. Once you have set all of your keys, then perform a registry save to keep them. Remapping the keys via registry keys directly is a much more difficult process but can also be done. To get the keyboard remapper program or pdf for direct remapping please email dev_supt.

7 General PPC 2003 (Windows Mobile)

 What are the general differences between PPC 2002 and PPC 2003?

PPC 2002 PPC 2003 (Windows Mobile)

Pocket IE HTML version 3.0 HTML version 4.0, Java Script 4.0 Java Script 1.2 JScript 5.5, DHTML, CSS JScript 1.0 Ipv6, XHTML Basic, WML 2.0 802.11b Intermec Configuration Intermec & MS Configuration Old dll’s and toolkit Updated/New dll’s and toolkit NO 80211pm.dll 80211pm.dll for profile management PRISM drivers PRISM drivers with IVA 3.11+ Samsung Radio for 751 and 761 Bluetooth Socket Stack Microsoft Stack Shortcuts on Today Screen Config in Settings>Connections SPP only supported profile 3 Profiles Supported Printing LinePrinter Ctrl LinePrinter Ctrl No Changes in Methodology Data Collection Configurations Not Saved Configurations Saved Imager configuration only ICCU With Imager Configuration through code or imager demo Updated decoding WWAN/Conn. Mgr. WWAN Toolkit 3.0 WWAN Toolkit 4.5 Work & Internet My Work Network & My ISP OS Size, FFL Premium & Professional Premium Only-Different ROM Sizes OS Size: 23mb & 17mb OS Size: 30mb & 55mb FFL Size: 11mb & 5 mb FFL Size: <.5 mb & 30 mb (remaining after (remaining after install) install) Programming .NET CF Not Included .NET CF Built In v1.0 Embedded Tools 3.0* Embedded Tools 4.0, Visual Studio 2003 eVb Fully Supported eVb Runtime Needed

For more detailed information on general MS OS functionality differences please look at the Intermec PPC 2003 Presentation (available on GSS PPC2003.ppt). Microsoft’s page for the Window’s Mobile Operating System (PPC 2003) can be found here.

 When I order PPC 2003 what is the difference between “A” and “B”? The A version is a PPC 2003 version BEFORE the new 802.11 radio drivers. The B version will be the latest PPC 2003 version and will contain/require the new 802.11b PRISM drivers. The A version will be available through mid 2005 and then only B will be available. It is recommended to get all customers with new PPC 2003 development to use the B version.

 With PPC 2003 what is the difference between “Upgrade Kit” and “Recovery CD”? The Recovery CD is what always has to be ordered first for those upgrading to PPC 2003. It contains the license and one must be ordered for each unit being upgraded. The Upgrade Kit is what you will order when you need to upgrade your base PPC 2003 version. If you only need to upgrade your IVA, you can download that from the website at any point. Upgrades to the base 2003 build have to be ordered via the price guide. You do not need to purchase licenses more than once.

 How do I order PPC 2003 for my device? The latest operating system can always be ordered from the price guide. However, if you already own the Windows Mobile 2003 license’s for your terminals, you can order and electronic download from http://www.intermec.com/wm2003. You must provide all of the requested information in order to verify your license.

 With PPC 2003, why is my Flash File Store now filled with files? With the introduction of PPC 2003 we have now had to take our operating system files out of general ROM and put them into the Flash File Store. Although this takes up space that used to be open and available, it now gives you the full ability to customize your IVA. If you are running a 32 mb ROM device then you are left with less than .2 mb of space after the full OS. This is generally large enough to save the registry only. If you have a 64 mb ROM device you are looking at 33mb + of extra space to

8 use after the full OS has been loaded. Most of these files are dependant on being in the directory structure they are installed to, but there are a few that can be moved or deleted. If you go into the Apps folder you will see CORE. The entire CORE directory is stand alone and can be either deleted (if not wanted) or moved to a SD card for use. Inside Persistent Copy>Cabfiles you will find any Cabfiles that are required by the OS for cold boot recovery. The first one is the Cabfile for the Wavelink Enabler. If this is not a program you are currently using you can right-click, delete and then cold boot to remove it (with new os load, also remove avalanche folder in flash file store root, and the autouser.dat in the 2577 folder). This can always be reinstalled later.

 What new features do I get from Intermec with PPC 2003? Currently Available:

Wavelink Avalanche Enabler: “Wavelink Avalanche is proven software for centralized management of mobile devices. It performs rapid, hands-off updates of wireless devices located anywhere in the enterprise. Remotely and seamlessly, Avalanche revises configurations, synchronizes software and updates firmware and drivers. Best of all, it cuts your costs—in time, money and morale—by reducing the burden on your IT resources and eliminating labor-intensive management of mobile equipment. With Wavelink, you’ll have better tools, and more time, to achieve your wireless possibilities.” The Avalanche Enabler has now been added into the Intermec Value Add and will automatically load on every device running this build and higher. http://www.wavelink.com/wavelink/avalanche/

Security Supplicant: The Intermec Security Supplicant has now been added to the build and will automatically install on every device. This includes support for LEAP, PEAP, WPA, CCX, etc.

Data Collection / Intermec Settings: The latest version’s of Data Collection have been added into this OS. Now instead of the old Data Collection Icon, you will see Intermec Settings. Inside Intermec Settings you can now configure Scanner and Symbologies, the 802.11 Radio, UDP Plus, and basic 700 Settings. • Scanner symbologies are now saved in the registry and can be saved via regflush. • Improved decode speed and performance. • The Imager can now be configured via a gui, instead of an application or imager demo.

802.11: The drivers have now been updated to the new PRISM driver’s from Intel. Please look under the 802.11 section of this document for more detailed information. With the introduction of the 741 and 751 there is now support for the Samsung b/g radio.

Unbundled IVA Components The operating system and IVA components are now unbundled. This allows for smaller, individual .CAB file updates and patches to be enabled for customer fixes. - The IVA will be able to be updated on a component basis. There will no longer be a need for an entire IVA update.

Updated BT Components

Integrated Support of the Mag Stripe Reader (MSR) Fully integrated into the ICCU (Intermec Settings)

802.11b Software Enhancements Will provide a significant reduction in the amount of time required for a 700 to hard roam between APs. Multiple SSIDs will be supported. It also gives the ability to support devices with different security capabilities to use the same RF network.

Device Management and Remote OS Upgrade You will now be able to remotely manage the following device settings: MSR, Bluetooth, Power Management Settings, and Display Settings. 4.51-3.77 also saw the introduction of Smart Systems in the 64mb ROM units.

9 Microsoft Stuff

 My Pocket PC used to indicate certain events by the way the LED “flashed.” This seems to have changed between 2002 and 2003? Pocket PC 2002 provides options under “Sounds & Notifications” to set a “Display message on screen” and “Flash light for” a period of time. These choices are not available in WM 2003 for Pocket PC. For more information, see “Differences in LED flashing functionality between Pocket PC 2002 and 2003” on Microsoft’s website.

 What has changed with ActiveX controls? Starting with WM 2003 software, newly created ActiveX controls require that the threading model for the component be declared as Free or Both when they are registered. In earlier versions of Windows Mobile, the system ignored this registration setting, but it is now required.

 My JavaScript code no longer works. What changed? When referencing objects in JavaScript with WM 2003, you may be required to use a fully-qualified object reference. For example, if you had a button contained inside an HTML

tag, with Pocket PC 2002, you could access the button by the ID attribute anywhere in the script. With PPC 2003, it has to be fully qualified with window.form_name.object_id.ButtonGo.Disabled = 1, for example: Window.form1.ButtonGo.Disabled = 1

 How can I determine the version of the .NET Compact Framework that is installed on a device? Each version of the .NET Compact Framework is released with a different Win32 File Version number (this is a separate version number from the Assembly Version, which should be the same across all releases of the Version 1 .NET Compact Framework, including Service Packs).

In order to see what version is installed, use File Explorer to navigate to the \Windows directory on the device, and click the file called CGACUTIL. You will get a message box showing you the Win32 File Version of the .NET Compact Framework installed on the device.

RTM = 1.0.2268.0 SP1 = 1.0.3111.0 SP2 Recall = 1.0.3226.0 SP2 Beta = 1.0.3227.0 SP2 Final = 1.0.3316.0

To determine the version programmatically you can use System.Environment.Version.ToString().

10 802.11

 My 802.11 code worked on PPC 2002 but not on PPC 2003, why (not 751 and 761)? With every version of the PPC 2002 operating system but that latest (1.31.32) the drivers being used by the 802.11 radio were older ones from Intel. With the newer versions of PPC 2003 and the latest version of PPC 2002 these drivers have now been upgraded to Intel PRISM drivers. With this upgrade came a few changes in how the radio is programmed.

General 802.11 Radio Programming Differences: 1. If the application directly manipulates the radio, the driver name has changed. From: NETWLAN.DLL To: PRISM.DLL. 2. If an application modifies any registry settings for the radio driver. (i.e. EnableDHCP, IpAddress), the location of the root driver specific registry keys have moved. From: HKLM\CommNETWLAN1 To: HKLM\Comm\PRISMNDS1. 3. The Display Name in the Settings->Connections->Advanced(Tab)->Network Card has changed. From: “802.11b Wireless LAN (750-2011b)” To: “802.11b Wireless LAN (730-802CF13)”. 4. The new Prism drivers has a registry key for APDensity that has 3 values "HKLM\Comm\PRISMNDS1\Parms\APDensity" 1=Sparse, 2=Normal, 3=Dense.

WM 2003 IVA v2.28 vs. newer 1. If you are using NDISUIO.DLL, the device prefix for this driver has changed from “UIO1:” to “ZIO1:”. This device name is normally captured in the macro NDISUIO_DEVICE_NAME in nuiouser.h. This macro will no longer be valid and you will need to redefine the macro or use the new device prefix explicitly. 2. 80211pm.dll available for programming PPC 2003 Security Settings. Please look inside the SDK for more information.

 How am I able to program the 802.1x security supplicant? The ability to program the security supplicant was introduced with PPC 2003. This is handled via the 80211pm.dll. More information can be found within the SDK. The profile differences between PPC 2002 and PPC 2003 are noted below.

Profile Changes for WM 2003 with the Prism Radio Drivers 1. The 802.11 Profiles have changed. a. There are now only 4 static profiles available b. The 80211api.dll ConfigureProfile() function only accepts “Profile_1”, “Profile_2”, “Profile_4”, “Profile_4”. (Previously the function would accept user defined names for profiles.) c. Profiles will have to be recreated. 2. Customers will be able to take advantage of the new 80211pm API’s for managing their profiles programmatically.

Security Supplicant Differences: 1. If you are using the security supplicant for PPC2002 you will need the 700CSecure200RC5.CAB file.

 I recently upgraded to PPC 2003 and now my 802.11 radio doesn’t work (not 751 and 761)? With the newer versions of PPC 2003 (those after July 2004) the new Intel PRISM drivers are required in order to have the radio and security supplicant function correctly. Everything needed to complete the upgrade of these drivers is found in the general operating system upgrade zip file. The latest file for these drivers is: upg2011b_200x_C.CAB

 My handheld has the new Samsung radio, what OS should I be on? If you have a handheld (751 or 761) with the new Samsung B/G radio you need to be running version 4.51-3.77 of the Operating System and any patches that become available that apply to your issue.

11 WWAN

 How do I program for the GPRS or CDMA radio in my unit? PPC 2002 & 2003 (non phone edition): The WWAN radios can be programmed via the AT commands specific to those radios. Each different company and radio model will have their own commands. This means that if you are writing an application to work across multiple radios you will have to see multiple sets of commands. These commands must come from the radio manufacturer. It is important to note that the WWAN radios can be the most difficult to program for as you have multiple coverage and programming scenarios to work around. If you do not have an in-depth background in coms and WWAN radios, it is recommended that you look into the WWAN Toolkit.

PPC 2003 (761 Phone Edition): Programming with the wwan toolkit is the same, but you will need version 4.5 to take into account the RIL (Radio Interface Layer) on the operating system now. If you are not using the WWAN Toolkit please refer to the “761 and WM 2003 Phone Edition” White Paper.

 What is the WWAN Toolkit? The WWAN Toolkit is an Intermec Toolkit that was written by our offices overseas. It is written using the base AT commands of each of the radios that we support. The advantage to the toolkit, is that these AT commands are written into easy to use functions that are not radio specific. For example: WWANRadioPower() is the function that will turn the power onto any of our WWAN radios. There is not a separate function for each radio. This drastically cuts down on the amount of code needing to be written as well as the learning curve required to learn each radios AT commands. The WWAN Toolkit is also fully backwards compatible, so not only will our new radios be supported but our old ones going back to the 700 Mono Series will be as well. This is a for purchase toolkit that is in the price guide and has an applicable discount code. A full evaluation version of the WWAN Toolkit can be downloaded for free in the Software Showcase of the Developer’s Library.

 Why won’t the example application run on my handheld? The WWAN Toolkit needs dlls to run the application API calls that it makes to the radio. In order to save space in the operating system, these dlls do not come pre-loaded onto the device. Aside from the .exe of the application you want to run you will need to install the toolkit dll. This can either be done by directly loading the wwantk.dll into the \windows directory on your handheld via active sync, or by loading the WWANToolkit4_.ARM.CAB (based on toolkit version) onto your device and executing. If you are loading a .net application you will also need the .net wrapper. You will need to place Intermec.Communications.WWAN.dll in the same place as your application. Now go and click on your .exe and you should not have any problems.

 This is my first WWAN application with the toolkit, how do I get started? The first step should be to go into C:Program Files:Intermec:WWAN Toolkit and take a look at the enclosed sample applications. You will find that they cover evb, ec++, vb.net, c#, and java. The general application framework for both radios is similar, but GPRS has a few steps that CDMA does not. Here is a framework application, please look in the user’s guide for the actual calls.

Turn Power On to the Built In Radio Setup WWAN Toolkit Setup Modem Event Reporting Create either a RAS or Connection Manager Entry on Pocket PC Add a RAS or Connection Manager Entry You Created Above Check/Enter SIM Pin (GPRS radios ONLY) Get Signal Strength Attach to a GPRS Network (GPRS ONLY) Connect To Network either RAS or Connection Manager

YOU ARE NOW TALKING TO THE NETWORK AND CAN WORK WITH YOUR AP

Disconnect From Network either RAS or Connection Manger Remove a RAS Entry from Connection Manager Delete a RAS or Conneciton Manager Entry on Pocket PC Shutdown WWAN Toolkit Turn Power OFF to the Built in Radio

12  My toolkit application worked with PPC 2002 and now won’t with 2003? With PPC 2003 Microsoft changed the drop down boxes in connection manager from Internet Settings to My ISP and Work to My Work Network. The piece in your application that is effected with this is included in the short sample below. connParams.UseConnMgr = true; connParams.ConnMgrDestination = _T("Internet Settings"); connParams.SetAlwaysDialEntry = true;

Note if you have gone from a 760 application with 2002 or early 2003 to a 761 and Phone Edition you will need to make sure you have WWAN Toolkit Version 4.5 or higher.

 What are my connection parameters for the WWAN radios profile (non phone edition)? GPRS: connParams.Flags = 0; connParams.CountryCode = 0; connParams.AreaCode = _T(""); connParams.PhoneNumber = _T("*99***1#"); // *99***1# is the default GPRS Phone Number connParams.ExtraCmds = _T(""); // use SetGprsApn() method instead below for APN connParams.UserName = _T(""); // usually not given by provider, leave blank then connParams.Password = _T(""); // usually not given by provider, leave blank then connParams.Domain = _T("");

// Typically use DHCP, so we don't need to specify any IP, DNS or WINS addresses. connParams.IpAddr = _T(""); connParams.DnsAddr = _T(""); connParams.DnsAltAddr = _T(""); connParams.WinsAddr = _T(""); connParams.WinsAltAddr = _T("");

// We'll set our GPRS APN using the toolkit command. // You could instead use +CGDCONT=1,"IP","your.apn.here" in ExtraCmds, // but beware of 39 limit on that command string connParams.GprsApn = _T(""); // just the APN, not the whole +CGDCONT command string!!! // the above is usually left empty on most US networks. Overseas uses an APN all the time.

CDMA: Same as above except the below is changed and there is typically always a username and password.

connParams.PhoneNumber = _T("#777"); // #777 is the default CDMA Phone Number

 Why is my application not creating my connection my manager entry (non phone edition)? If you are basing your application off of one of the toolkit sample applications there could be a reason for this both on CDMA and GPRS. All of our samples are built for WWAN in general and to work across both radios. If you are writing a GPRS program and the samples are built for this com port:

connParams.ModemName = _T("WANA on COM4: (No modem reset)");

This is by default not loaded onto the devices. You will need the MC45 All Modems Cabfile which can be found in Developer’s Support>700 Color Support>Downloads. This cab must be loaded for applications using that com port to work. On the other side if you are using CDMA this is not a CDMA modem possibility. In your code remove the part in bold above and recompile.

13 Bluetooth™

 Is Bluetooth™ different from PPC 2002 to 2003? Pocket PC 2002 uses the Socket Stack and PPC 2003 uses the Microsoft Stack and it’s APIs.If you are currently using Bluetooth™ under PPC2002, then you need to know if you are using the underlying stack or just opening the correct com port. If you let the wizard setup the com port and then save off a favorite and flush the registry you should have no changes. If your application does anything with the Drakkar API, then you will need to make changes. It is recommended to look at the new Wireless Printing SDK and the Beta Zone of the Developer’s Library (http://www.intermec.com/idl.) If you use the wizard there is a new wizard that can be used to discover and set up the com port. You can then save off the registry and everything should work without a hitch. If you use the lineprinter activeX control to open the port and print, you will need the updated lineptr.dll which can be found in the latest 700 color toolkit.

 What Bluetooth™ profiles are supported with PPC 2003? Generic Access Profile, Service Discovery Profile, and Serial Port Profile

 What other files do I need for my SF51 to work? As of 10-15-05 all of the operating system files were not built into 4.51/3.77. If you have an SF51 you will want to be running this version of the operating system.

 Do you have an example program for MS Bluetooth™? Yes, if you go inside the Developer Library Beta Zone (http://www.intermec.com/idl) you will find the WP_Sample program which will help you get started with your programming. Please note that this sample is updated, so continue to check back for newer versions.

 My Bluetooth™ is failing and not reconnecting, what should I do? Just like cell phones and garage door openers, Bluetooth™ is a radio frequency technology. Because of that, there are times when a connection attempt does fail. This failure can occur for many reasons (out of range, interference, etc.). To cope with this, applications should build in a retry mechanism. Our testing shows that three retries is the optimum number to code into your program. The majority of the time, the first retry succeeds if the previous connection failed due to interference or timing windows. If a connection fails on a third retry, there is most likely a condition preventing the connection and should be investigated further.

 What are some Bluetooth™ best practices? Allow a minimum of 100ms between opening the Bluetooth printer port and sending any print data. Under certain conditions, the handheld is capable of sending data before the printer is ready. The 100ms pause provides correct timing to insure accurate print data transfer.

Printers which have RTS/CTS handshaking available should enable RTS/CTS flow control to prevent print buffer overruns. For the PB20, PB40, and PW40, print jobs over 40Kb have the potential to overrun the printer's buffer. Print jobs should be limited to 40Kb in size or delays need to be inserted in to the print data sending routines to allow the printer to process incoming data and remove it from its buffers.

Send 1000 null characters (0x00) after all other print data. This step solves a problem on the PB20, PB40, PW40, and 6820 that results in the Bluetooth connection not being closed at all levels. The null characters are discarded by the printer and will not affect the content of the rendered print job. If the 1000 nulls are not sent, the printer has the potential to enter a state where it will not accept future connections until the Bluetooth radio is power cycled.

Allow a minimum of 1 second between sending the last print data and closing the Bluetooth printer port. This solves a problem on the PB20, PB40, PW40 and 6820BT that can truncate the end of the report when the port is closed. The printer radio is designed to flush any buffered data when the Bluetooth connection is closed. The 1 second delay ensures that the radio has transferred all data to the print engine.

Please allow ten seconds following a resume of the handheld before attempting to use the Bluetooth Com port. This delay allows the Bluetooth stacks to re-synchronize with the Operating System.

 How do I optimize Bluetooth™ stack reloads (700 Series)?

14 As discussed in the "Advanced Features" chapter of the Intermec Bluetooth™ Development Guide, the Bluetooth™ stack reloads upon resume of the terminal after a suspend. This reload takes approximately six seconds, but it can take longer if a previous reload had not yet finished before the terminal suspended. To ensure consistent reload times, applications should avoid auto-suspending the terminal within seven seconds of resume. Also advise users to follow the seven second rule when putting the terminal into suspend via the |/O key.

15 Scanning

 Is scanning different from PPC 2002 to 2003? Are you using the scanner in wedge mode or does your application control the scanner? If you are using wedge mode, then no changes should be made. If you control the scanner and are using an ActiveX control, you must upgrade to the latest itcaxbarcodereader.dll. If you are using .Net you will need to upgrade to the latest itcscan.dll and itc50.dll. Both of these updated dlls can be found inside the latest 700 color toolkit in the Developer’s Library. http://www.intermec.com/idl.

 What are my different options for scanning with a 700 Series Mobile Computer? You may use two approaches to collecting scanned data (1) the virtual wedge or (2) the Com interfaces.

The virtual wedge requires no programming on your part to collect the data. Rather the scanned data is wedged into whatever input field has the keyboard focus. For example PWord, PExcel or an edit box in your app.

The Com interfaces, which may be accessed directly or accessed by ITCAXBarcodereader, provide the application programmer many options for collecting, editing and routing of scanned data. However to use the Com interfaces, the application must post a Read request to obtain the scanned data. This supports multiple channels, that may selectively read only when the application wants data on a particular channel. A Read request may be incorporated into the CompletRead processing from a previous read. Then after the first Read request is posted, during application initialization for example, the Read requests are "automatically" posted when data is scanned . This approach requires no pushbutton action by the operator. The Read requests may be programmed with a timeout defined or the Read request may be programmed to wait forever for scanned data. Note that the Read request is a blocking call. Thus the application may need to consider a separate thread for the Read requests, to prevent hanging up the application.

 Are there issues with scanning applications on the latest 2003 OS? Generally you will never need to load native dll’s onto your handheld anymore as these will be already loaded. However, there have been fixes to the itc50.dll and itcscan.dll that have not been rolled into an operating system yet for distribution. In the mean time these files can be downloaded from the beta zone located in the IDL. These will be placed in the \windows directory and will overwrite the ones currently installed on the handheld.

16