1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using ProGauge_StartItaliana_Probe.MessageEntity.Outgoing;
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace ProGauge_StartItaliana_Probe.MessageEntity.Incoming
- {
- public class DiagnosticResponse
- {
- /// <summary>
- /// water in dmm for probes up to 5,5 mt.
- /// water in mm for probes above 5,5 mt
- /// </summary>
- public double WaterLevel { get; private set; }
- /// <summary>
- /// product in dmm for probes up to 5,5 mt.
- /// product in mm for probes above 5,5 mt
- /// </summary>
- public double ProductLevel { get; private set; }
- /// <summary>
- ///
- /// </summary>
- public double TotalLenghtInPulseValue { get; private set; }
- public double TemperatureCompensationFactor { get; private set; }
- public double OffestSignal { get; private set; }
- public double PulseSignal { get; private set; }
- public double PowerSupply { get; private set; }
- /// <summary>
- /// alarm set in dmm
- /// </summary>
- public double AlarmSet { get; private set; }
- public double AlarmStatus { get; private set; }
- public static DiagnosticResponse Parse(byte[] raw)
- {
- var response = new DiagnosticResponse();
- var msg = Encoding.ASCII.GetString(raw);
- var parts = msg.Split(' ');
- if (parts.Length != 9)
- throw new ArgumentException("msg must has 8 chars of ' '");
- response.WaterLevel = double.Parse(parts[0]);
- response.ProductLevel = double.Parse(parts[1]);
- response.TotalLenghtInPulseValue = double.Parse(parts[2]);
- response.TemperatureCompensationFactor = double.Parse(parts[3]);
- response.OffestSignal = double.Parse(parts[4]);
- response.PulseSignal = double.Parse(parts[5]);
- response.PowerSupply = double.Parse(parts[6]);
- response.AlarmSet = double.Parse(parts[7]);
- response.AlarmStatus = double.Parse(parts[8]);
- return response;
- }
- }
- }
|