public ResponseText(MessageStoryItem msi = default) { if (msi == default) { return; } this.DateTime = msi.DateTime.ToString(); LastCmd = msi.Command.ToString(); if (msi.DataLength > 12) { UpFreq = msi.Data[0].ToString(); DnFreq = msi.Data[1].ToString(); StokeLength = msi.Data[2].ToString(); StokeRate = msi.Data[3].ToString(); StatusByte = msi.Data[3].ToString("X2"); var sb = new StatusByte { Byte = msi.Data[4] }; StatusStart = sb.Start ? "Started" : "Stopped"; StatusShortCircuit = sb.ShortCircuit ? "ShortCircuit" : "ok"; StatusOverTemp = sb.OverTemperature ? "OverHeat" : "ok"; StatusOverLoad = sb.OverLoad ? "OverLoad" : "ok"; } }
private void NewResponseHandle(MessageStoryItem response) { if ((response == null) && response.IsHeaderValid) { return; } var responseTimeStamp = response.DateTime.ToUnixTimestamp(); var i = 0; currentData[i++] = (ushort)(responseTimeStamp >> 16); currentData[i++] = (ushort)(responseTimeStamp); currentData[i++] = (ushort)response.Command; // Если есть текущие данные if (response.DataLength >= 5) { for (var j = 0; j < 5; j++) { currentData[i++] = response.Data[j]; } } else { for (var j = 0; j < 5; j++) { currentData[i++] = 0; } } iRegisters.WritePoints(10, currentData); // Если есть sampledData if (response.DataLength > 12) { var k = 0; sampledData[k++] = (ushort)(responseTimeStamp >> 16); sampledData[k++] = (ushort)(responseTimeStamp); sampledData[k++] = (ushort)(response.DataLength - 12); for (var j = 12; j < response.DataLength; j++) { sampledData[k++] = response.Data[j]; } for (; k < sampledData.Length;) { sampledData[k++] = 0; } iRegisters.WritePoints(18, sampledData); } }
public ArcRecord(MessageStoryItem msi) { if (msi == default) { throw new ArgumentException("MessageStoryItem mast not be null."); } UnixTimestamp = msi.DateTime.ToUnixTimestamp(); UpFreq = msi.Data[0]; DnFreq = msi.Data[1]; StokeRate = msi.Data[2]; StokeLength = msi.Data[3]; Status = msi.Data[4]; }