예제 #1
0
        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");
        }
예제 #2
0
 /// <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);
     }
 }