How do you setup/configure a bluetooth GPS to work with windows 8 internal map programs. So far i,ve been able to connect the GPS device to the tablet, but it only works with Microsoft legacy map programs using the COM ports ie 3,7. Hi, The devices used in Windows Store Apps must have special drivers insintalled. See the following document. GlobalSat BU353-S4 SiRF Star IV USB GPS Receiver: The BU-353-S4 is a USB GPS receiver that features a highly sensitive, low power consumption chipset in a ultra compact form factor. The BU-353-S4 is powered by a SiRF Star IV GPS chipset, and will provide you with superior performance in urban canyons, and in dense foliage.
-->
This section provides specific guidance for writing drivers for devices that provide location data. In addition to the information that is contained in this section, location driver authors must also understand and apply the information that is provided in Writing a Sensor Device Driver.
The Sensor and Location Platform provides the Windows Location API to enable software developers to add location features to their programs easily. If you are writing a driver for a location sensor, you must understand how to make the driver compatible with the Location API and follow the guidelines in Location Driver Guidelines for Power and Performance.
Windows Hardware Certification Program requirements
The Windows Hardware Certification Program enables hardware manufacturers to receive certification that their devices meet the required standards for working with Windows. The certification program describes the requirements for location sensors and other types of sensors. You should make your location sensor driver comply with all the certification program requirements. These requirements include the following:
Location sensors must support the required set of data and sensor properties.
Location sensors must support the required data fields for at least one built-in data report type.
Generally, the recommendations in this WDK documentation match the Certification Program requirements. However, you must review the official Certification Program documentation when you create sensor drivers that you intend to submit for approval. For more information about the Windows Hardware Certification Program, see the Windows Hardware Developer Central website.
Location API requirements
You create drivers for location sensors by using the same driver model and class extension as for any other category of sensor. At a minimum, to work as a location sensor, the driver must:
Identify the location sensor as belonging to the Location category.
Set the sensor type to one of the location sensor types.
Identify the location report data fields the sensor provides.
Support the required properties.
Provide data, when it is requested.
Manage state transitions.
Raise>Sensor constantLocation API method and property
SENSOR_DATA_TYPE_ADDRESS1
SENSOR_DATA_TYPE_ADDRESS2
SENSOR_DATA_TYPE_ALTITUDE_ELLIPSOID_ERROR_METERS
SENSOR_DATA_TYPE_ALTITUDE_ELLIPSOID_METERS
SENSOR_DATA_TYPE_CITY
SENSOR_DATA_TYPE_COUNTRY_REGION
SENSOR_DATA_TYPE_ERROR_RADIUS_METERS
SENSOR_DATA_TYPE_LATITUDE_DEGREES
SENSOR_DATA_TYPE_LONGITUDE_DEGREES
SENSOR_DATA_TYPE_POSTALCODE
SENSOR_DATA_TYPE_STATE_PROVINCE
Managing state transitions
At any time, a sensor driver can be in one of a number of states. Sensor states are defined by the SensorState enumeration. To work correctly with the Location API, location sensors must follow these rules for handling state transitions.
Always start in the SENSOR_STATE_INITIALIZING state, but do not raise a state-changed event at startup.
The driver should transition from SENSOR_STATE_INITIALIZING to SENSOR_STATE_READY when data is available.
The driver should transition back to SENSOR_STATE_INITIALIZING when the driver does not have current data to report. The driver should decide when that transition occurs. If you have lost a signal, but still have a means to provide valid data, stay in the SENSOR_STATE_READY state.
Always raise events in the correct order. First, establish that data is available. Then, raise a state-changed event. Finally, raise the>ValueMeaningLocation API state
SENSOR_STATE_READY
Sensor driver can provide new location reports that have complete and accurate data.
For example, a Wi-Fi or cellular provider is connected and working, or a GPS sensor has a fix.
A GPS driver that has used data from a triangulation sensor to determine location has this state.
REPORT_RUNNING
SENSOR_STATE_INITIALIZING
Sensor driver is trying to acquire a fix. The sensor driver should leave this state to transition to SENSOR_STATE_READY, after a fix is locked and tracking.
For example, a Wi-Fi provider is looking for an Internet connection, a cellular provider is looking for radios, or a GPS sensor is acquiring a fix.
GPS sensors should re-enter this state when they try to reacquire a fix.
REPORT_INITIALIZING
SENSOR_STATE_NO_DATA
The location provider is available, but is unable to provide location data.
For example, a Wi-Fi provider has access to the Internet, but the database has no location data.
REPORT_ERROR
SENSOR_STATE_NOT_AVAILABLE
The functionality that the location provider uses to acquire data is disabled.
A GPS sensor could be in this state if the radio is turned off.
REPORT_ERROR
SENSOR_STATE_ERROR
The sensor has encountered a major error. The sensor can recover from this state, but the time frame for recovery is not known.
REPORT_ERROR
The following diagram shows how state transitions may occur in a location sensor.
Raising data-updated and state-changed events
The Location API, requires location sensors, such as GPS sensors, to raise events that provide data and state-change information. For more information about raising sensor events, see About Sensor Driver Events.
When raising these events, location drivers must follow these rules:
Raise state change events by calling the sensor class extension's ISensorClassExtension::PostStateChange method. Do not call PostEvent to raise state change events.
Raise data-updated events by calling PostEvent.
Raise a data-updated event only if the data is up to date and accurate.
Do not raise a data-updated event twice. This means that you should not raise a data-updated event by using cached data. You can provide cached data in response to a synchronous request for data.
Always include all the required data fields when you send a latitude/longitude report through an event.
Always raise a data-updated event when the sensor accuracy changes.
Report a valid value for SENSOR_DATA_TYPE_ERROR_RADIUS_METERS before raising events or changing the value for SENSOR_PROPERTY_STATE to SENSOR_STATE_READY.
Do not provide incomplete data reports.
You might not have current data for the required data fields, such as when a GPS sensor has lost its fix. In this case, you might still want to provide notifications about updates to extended data fields, such as SENSOR_DATA_TYPE_NMEA_SENTENCE. To provide such notifications, you must use a custom event type and raise only the custom event until data for the required data fields becomes available. For information about how to define custom types, see Defining Custom Values for Constants.