示例#1
0
        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";
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
 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];
 }