Hi All
I've got a requirement to connect to the GPS device and log the current position to a file on a mobile unit running windows - there's no requirement to show the position on a map. I've put together some ArcObjects (v10) code based on some of the samples that uses IRealTimeFeedManager, IGPSFeed and IGPSConnection, but am struggling to get it reporting the position.
The code is basically similar to the following:
When I debug the code, the output is always:
Status: esriGpsConnectionStatusOpen
esriGpsConnectionErrorNone
Position: 0,0
I've messed around a little with the baud settings etc, but can't get it to report the status as esriGpsConnectionStatusReceiving, which I guess is why it's returning the position as 0,0.
Has anyone got any pointers as to what I'm doing wrong or perhaps can you confirm that the above should work? There aren't too many samples that use IGPSFeed, they mainly use a simulated feed.
Anyway. I'd appreciate any thoughts on this. Otherwise I may have to take another, possibly non-Esri route.
Thanks
John
I've got a requirement to connect to the GPS device and log the current position to a file on a mobile unit running windows - there's no requirement to show the position on a map. I've put together some ArcObjects (v10) code based on some of the samples that uses IRealTimeFeedManager, IGPSFeed and IGPSConnection, but am struggling to get it reporting the position.
The code is basically similar to the following:
Code:
IRealTimeFeedManager realTimeFeedMgr = new RealTimeFeedManagerClass();
IGpsFeed gpsFeed = realTimeFeedMgr.GpsFeed;
IGpsConnection gpsConnection = gpsFeed.Connection;
gpsConnection.CommPort = 1;
gpsConnection.BaudRate = (short)esriGpsBaudRate.esriGpsBaudRate9600;
gpsConnection.DataBits = 8;
gpsConnection.Parity = esriGpsParity.esriGpsParityNone;
gpsConnection.StopBits = 1;
gpsFeed.Connection = gpsConnection;
realTimeFeedMgr.RealTimeFeed = (IRealTimeFeed)gpsFeed;
realTimeFeed.Start();
System.Diagnostics.Debug.WriteLine("Status: " + realTimeFeed.Status.ToString());
esriGpsConnectionError conError = realTimeFeed.ConnectionError;
System.Diagnostics.Debug.WriteLine(conError.ToString());
esriGpsPositionInfo posInfo = realTimeFeed.CurrentPosition;
System.Diagnostics.Debug.WriteLine("Position: " + posInfo.latitude.ToString() + "," + posInfo.longitude);
realTimeFeed.Stop();Status: esriGpsConnectionStatusOpen
esriGpsConnectionErrorNone
Position: 0,0
I've messed around a little with the baud settings etc, but can't get it to report the status as esriGpsConnectionStatusReceiving, which I guess is why it's returning the position as 0,0.
Has anyone got any pointers as to what I'm doing wrong or perhaps can you confirm that the above should work? There aren't too many samples that use IGPSFeed, they mainly use a simulated feed.
Anyway. I'd appreciate any thoughts on this. Otherwise I may have to take another, possibly non-Esri route.
Thanks
John