private void GPSStatusChangedEventHandler(object sender, EventArgs e) { NMEAGPSClient.NMEAGPSClient.GPSStatusEvent gpsStatus = (NMEAGPSClient.NMEAGPSClient.GPSStatusEvent)e; mGPSStatus = gpsStatus.Status; if (mGPSStatus < NMEAGPSClient.NMEAGPSClient.GPS_STATUS.Fix) { GPSPosition.Position position = ((NMEAGPSClient.NMEAGPSClient)sender).Position; // publish the new position to CAN clients. CANFrame frame = CNXCANMsgHelper.PackGPSFrame((byte)mGPSStatus, position.Latitude, position.Longitude, 0); int count = mCANClient.Send(frame); } CNXLog.Debug("GPSStatusChangedEventHandler"); }
/// <summary> /// Deals with changes of GPS state /// </summary> /// <param name="o">Event source object.</param> /// <param name="e">Event Parmeters</param> public void OnGPSStateChangedEventHandler(object o, EventArgs e) { try { NMEAGPSClient.NMEAGPSClient.GPSStatusEvent ev = (NMEAGPSClient.NMEAGPSClient.GPSStatusEvent)e; // work out what needs doing // as far as we are concerned only the failed states are interesting if ((ev.Status & NMEAGPSClient.NMEAGPSClient.GPS_STATUS.Fix) == NMEAGPSClient.NMEAGPSClient.GPS_STATUS.OFFLINE) { mLocationMessage.MessageId = (ev.Status == NMEAGPSClient.NMEAGPSClient.GPS_STATUS.OFFLINE) ? RTTMesg.RTTOutMsgIds.GPSNone : RTTMesg.RTTOutMsgIds.GPSNoFix; StateMachine(TrackingEvent.LOST_GPS); } } catch (Exception ex) { CNXLog.Error("TrackerState GPS state error.", ex); } }