Esempio n. 1
0
        public void Parse(CanMessage canMessage)
        {
            J1708Message j1708Message = (canMessage as J1708Message);

            foreach (CanMessageSegment segment in canMessage.CanMessageSegments)
            {
                if (J1708ParseMethodMap.ContainsKey(segment.Pid))
                {
                    J1708ParseMethodMap[segment.Pid].ParseMethod(segment, J1708ParseMethodMap[segment.Pid]);
                }
                else
                {
                    CreateUnsupportedResponse(segment);
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Istantiates a J1708 can message from the raw message. The J1708 Can Message handles it's own
 /// raw value extraction, which is then passed onto the J1708Parser to get standard and metric values
 /// </summary>
 /// <param name="rawMessage"></param>
 /// <param name="e"></param>
 private void ProcessJ1708Data(string rawMessage, VMSCommDataEventArgs e)
 {
     try
     {
         var canMessage = new J1708Message(rawMessage, e.timeStamp);
         if (canMessage.IsValidMessage())
         {
             canMessage.ExtractMessage();
             _J1708Parser.Parse(canMessage);
             PublishNewDataEvent(canMessage);
         }
         else
         {
         }
     }
     catch (Exception ex)
     {   //Todo - trim this down to only invoke CommDataErrorEvent on specific exceptions (ie, from CanMesssage or parser)
         RaiseVMSEvent?.Invoke(this, new VMSCommDataErrorEventArgs(e, MessageError.UnrecognizedMessage, ex));
         ErrorLogger.GenerateErrorRecord(ex);
     }
 }