H15

Revision as of 01 July 2010 13:34 by Administrator (Comments | Contribs) | (FAQ) m

About

The H15 is a Windows CE 5.0 handheld terminal. Slim and simplistic in its design, it carries the full power of a Windows-based OS for more advanced applications. It connects to the PC via a wired cradle, the CRD15, and uses ActiveSync to transfer data and deploy software. It also possesses WiFi and Bluetooth capabilities for wireless data transfer needs.

The scan engine can be configured either programmatically, via C++ or .NET APIs, or through a control panel. Various configuration options are available, as well as the ability to send Universal Menu Book commands for additional configuration. As far as getting barcode data into an application, the H15 can either wedge the data in wherever there is text focus, or receive the barcode data from event handlers implemented and registered in applications.

FAQ

Are there any getting started guides or how-to guides installed with the .NET SDK?

No, there are not. There is a .chm file where the H15 SDK was installed that describes the classes, enums, and the like available for use in your application.

Where is the .NET SDK DLL?

Typically where you unzipped the SDK, and from there: \bcrctl\Version xxx\NETCF\bcrctl.net.dll.

How do I soft-reset the device programmatically from my .NET application?

In C#:
[DllImport("coredll.dll", SetLastError = true)]
static extern int SetSystemPowerState(string psState, int StateFlags, int Options);
const int POWER_FORCE = 4096;
const int POWER_STATE_RESET = 0x00800000;
Then call
SetSystemPowerState(null, POWER_STATE_RESET, POWER_FORCE);

How do I run my application after a warm reset?

There are various ways. One way involves editing the registry (see this link), where you can then do a backup of your device, and have it (and your application) persist across cold resets. Another way, which is very simple, is to just place a shortcut to your application in \FlashDisk\Startup\warm\.

I want to build an application for the PC that talks to my device application. How do I do that?

Check out the Microsoft.SmartDevice namespace. It contains classes that are used both on the device-side application and the PC-side application to communicate over ActiveSync. There is an unmanaged reference as well. If you want to get deeper into host-device communication, check out Microsoft's Remote API (RAPI).

The scan engine seems to behave incorrectly or lose settings when I attempt to scan in my application, immediately after the device wakes up from a suspend state. What gives?

Check out the IsSysBusy() function. It returns a boolean, depending on whether or not the barcode engine is currently undergoing its reinitialization process. Attempts to scan while this is happening can essentially crash the scan engine, so waiting until IsSysBusy() returns false before your application directs the scanner to scan should alleviate the problem.

OS Release Log

  • Version 4.4.3
    • Fixes a problem with the scan engine becoming unusable or losing settings if a scan is attempted directly after waking up. Provides support for a new function in version 1.0.3 of the .NET SDK, IsSysBusy(). This function is designed to be called in a user application before attempting a barcode scan, in order to determine if the scan engine is ready for scanning.

Links