Automatically Detect GPS DevicesOne of the most useful features of GPS.NET is its ability to locate any available GPS device. GPS.NET will examine the host device for any serial, USB-to-serial, CompactFlash™, SecureDigital™ or Bluetooth™ GPS device. Detection can take place completely in the background so that devices are discovered by the time your application needs GPS data. Once devices have been discovered on your customers' devices, GPS.NET will optimize detection further by looking for devices which have been used before. On Windows Mobile 5.0 devices, GPS.NET can automatically configure and use the "GPS Intermediate Driver" GPSID, a special device which allows several applications to share a single GPS device. Get Fine-Tuned Control Over Detection FeaturesGPS.NET exposes several properties and methods which let you control every aspect of device detection. You can instruct GPS.NET to only search for devices using a particular set of baud rates. You can tell GPS.NET to avoid certain ports if they are already being occupied by other devices such as bar code scanners. You can configure GPS.NET to stop scanning for devices as soon as a device is discovered. Automatically Share GPS Devices With Windows Mobile 5.0Phones and hand-held devices running Windows Mobile 5.0 and above ship with an excellent feature known as the GPS Intermediate Driver or GPSID for short. The GPSID allows a single GPS device to be shared by multiple applications by creating virtual serial ports. With GPS.NET, you can automatically detect, configure and use the GPSID. GPS.NET starts by detecting actual GPS devices connected to your mobile device. If the GPSID has not yet been configured, GPS.NET sets the appropriate system settings then configures itself to use the GPSID. As a result, GPS.NET will naturally enable GPS device sharing. Automatically Recover From Connection FailuresWhen your application is actually in use out in the field, connections to GPS devices can be lost for several reasons. Batteries in the GPS device might suddenly lose power. The PDA your software is running on may run out of batteries. Your customer may decide to suddenly "suspend" their PDA putting it in a low-power state. Bluetooth GPS devices might stray too far out of range. Does your application handle each of these scenarios? With GPS.NET it will. GPS.NET will automatically detect sudden loss of live GPS data and automatically reconnect. GPS.NET can also detect when a suspend command is imminent and close connections gracefully to maintain stability. Get Customized Notifications When Power State ChangesGPS.NET exposes a custom .NET class known as PowerEvent which it uses to react to sudden suspend and resume commands. If your application needs to react to power events, you can subscribe to any event in this class. The PowerEvent is one of several public classes we've made available to help you with all aspects of programming, not just for GPS. Integrated Precision ControlDid you know that a GPS device can report data to you that is inaccurate by as much as 150 meters? That's nearly 500 feet of inaccuracy, which is too much to make any sort of intelligent business decision in your software. With GPS.NET, you can gain tight control over precision in your application to ensure that you make the most intelligent software decisions. Our competitors make no mention of precision, nor its importance, which creates a dangerous pitfall to developers. This feature is highlighted in our comparison of GPS.NET to other products. Easily Support All Device PlatformsYou need to make your software run on as many devices as possible to capture the largest market share. GPS.NET makes porting applications to other devices easy because the object model is the same for each platform. GPS.NET will automatically detect whether it is running on a PocketPC, Smartphone, or Windows Mobile 5.0 platform and adjust its internal behavior accordingly. For example, on Windows Mobile 5.0 GPS.NET will configure itself to look for, configure and use the GPS Intermediate Driver. On Smartphone devices, GPS.NET will try to discover Bluetooth devices first since they are used more often with Smartphones. Take Advantage of Features Only Available On .NET Framework Version 2.0On newer versions of the .NET Framework, GPS.NET takes advantage of new features. For example, GPS.NET uses objects known as "critical finalizers" on .NET Framework 2.0 to ensure that connections to GPS devices are gracefully shut down if your application suddenly exits, such as when you hit the "Stop" button in the Visual Studio IDE. GPS.NET also uses automatic thread marshalling on Compact Framework 2.0 to remove any need for special "Invoke" method calls. While all of these behaviors take place automatically behind the scenes, the public API you use in your application remains the same. This is how you can quickly port your appllications to a newer device platform. Learn the Object Model QuicklyGPS.NET is written using an object model which feels like a natural extension of the .NET Framework itself. Methods, properties, events, fields and operators are all carefully designed to be concise, versatile, and intuitive to learn. This is how we claim to make an "instant expert" out of developers by providing them with an intuitive object model. Use Our State-of-the-Art Documentation SystemIn 2004, GeoFrameworks built a state-of-the-art documentation system to keep up with our ever-growing products. Our online documentation system is driven by SQL Server and is updated automatically as part of our regular build schedule. The system uses Reflection to ingest compiled assemblies into SQL tables. The end result is more than 10,000 pages of online content which updates itself as XML documentation comments grow in the library. Build Highly-Optimized, Scalable GPS ApplicationsGPS.NET has been carefully tuned for performance on each individual .NET platform to deliver the best performance while also using the smallest possible amount of memory and CPU time. GPS.NET uses threads wisely to perform tasks in the background, letting your application remain responsive. GPS.NET simplifies multithreaded application development with a special class known as DynamicEvent which will automatically marshal event delegates to your form's own thread. If you have ever found yourself having to make calls to "Invoke" methods just to update something on your form, GPS.NET can solve this problem for you as well. Almost every object in the GPS.NET system is thread-safe by design to greatly simplify working with objects across threads. No other GPS component matches the performance and ease-of-use of GPS.NET. Quickly Support New GPS Data ProtocolsThe biggest mistake a component vendor can make is to reinvent their architecture because it forces every one of their customers to rewrite their software. GPS.NET avoided this pitfall from the beginning by using a special open architecture for raw GPS data processing. This means that GPS.NET will not have to be re-engineered when we add support for SiRF, Trimble TSIL, Rockwell-Zodiac and other GPS data protcols. Our competitors' components are so entwined with the NMEA protocol that they will be forced to re-engineer their component someday (and so will all of their customers). GPS.NET anticipates that GPS data protocols will evolve as GPS technology becomes more precise and more widely available to the public. |