Exemple #1
0
 /// <summary>
 /// Instantiates a J1939 can message from the raw message, then passes the message to the J1939 parser,
 /// which handles both extraction and parsing
 /// </summary>
 /// <param name="rawMessage"></param>
 /// <param name="e"></param>
 private void ProcessJ1939Data(string rawMessage, VMSCommDataEventArgs e)
 {
     try
     {
         var canMessage = new J1939Message(rawMessage, e.timeStamp);
         if (canMessage.IsValidMessage())
         {
             canMessage.ExtractMessage();
             _J1939Parser.Parse(canMessage);
             PublishNewDataEvent(canMessage);
         }
     }
     catch (Exception ex)
     {
         RaiseVMSEvent?.Invoke(this, new VMSCommDataErrorEventArgs(e, MessageError.UnrecognizedMessage, ex));
         ErrorLogger.GenerateErrorRecord(ex);
     }
 }
Exemple #2
0
        private void HandleMessage(VMSCommDataEventArgs e)
        {
            var message = RemoveControlCharacters(e.message);
            var type    = GetMessageType(message);

            message = message.Substring(1); //remove the type indicator from the message ('J', 'R', or 'I')
            switch (type)
            {
            case VMSDataSource.J1708:
                ProcessJ1708Data(message, e);
                break;

            case VMSDataSource.J1939:
                ProcessJ1939Data(message, e);
                break;

            case VMSDataSource.None:
                break;
            }
        }
Exemple #3
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);
     }
 }
Exemple #4
0
 public RawDataParsingException(VMSCommDataEventArgs e, Exception ex)
     : base($"Could not parse the raw message \"{e.message}\"" + ex.Message)
 {
 }