Exemple #1
0
        //实时数据
        //7A 7A 01 00 02 01 15 00 31 32 33 34 35 36 37 38 17 10 31 17 34 00 01 00 02 00 03 00 01 15 03 7B 7B
        //有报警7A 7A 01 00 02 01 15 00 31 32 33 34 35 36 37 38 17 10 31 17 34 00 01 00 02 00 03 00 0f DB E2 7B 7B
        static public void ReceiveDispose_Current(byte[] data, TcpSocketClient client, bool isCurrent)
        {
            try
            {
                Zhgd_iot_discharge_current dataFrame = new Zhgd_iot_discharge_current();
                //设备编号
                byte[] sn = new byte[8];   //设备编号
                for (int i = 0; i < 8; i++)
                {
                    sn[i] = data[i];
                }
                dataFrame.sn = Encoding.ASCII.GetString(sn);  //获取设备编号ASCII
                //RTC
                string tStr = ConvertData.ToHexString(data, 8, 6);
                try
                {
                    dataFrame.timestamp = DPC_Tool.GetTimeStamp(DateTime.ParseExact(tStr, "yyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture));
                }
                catch (Exception)
                {
                    dataFrame.timestamp = DPC_Tool.GetTimeStamp(DateTime.Now);
                }
                //当前载重
                UShortValue us = new UShortValue();
                us.bValue1       = data[14];
                us.bValue2       = data[15];
                dataFrame.weight = us.sValue;
                //倾角X
                ShortValue s = new ShortValue();
                s.bValue1       = data[16];
                s.bValue2       = data[17];
                dataFrame.dip_x = (double)((double)(s.sValue) / 100d);
                //倾角Y
                s.bValue1       = data[18];
                s.bValue2       = data[19];
                dataFrame.dip_y = (double)((double)(s.sValue) / 100d);
                //报警状态
                string        state = Convert.ToString(data[20], 2).PadLeft(8, '0');
                List <string> vs    = new List <string>();
                dataFrame.is_warning = "N";
                //  dataFrame.WeightWarning = (byte)(state[7] - 48);
                if ((byte)(state[6] - 48) == 1)
                {
                    vs.Add(Warning_type.重量告警); dataFrame.is_warning = "Y";
                }
                //dataFrame.WeightAlarm = (byte)(state[6] - 48);
                // dataFrame.AngleWarning = (byte)(state[5] - 48);
                if ((byte)(state[4] - 48) == 1)
                {
                    vs.Add(Warning_type.重量告警); dataFrame.is_warning = "Y";
                }
                //dataFrame.AngleAlarm = (byte)(state[4] - 48);
                //离线数据应答
                if (!isCurrent)
                {
                    byte[] result = SendJoint_OffLine();
                    if (result != null)
                    {
                        client.SendBuffer(result);
                    }
                }

                //进行数据put
                Discharge_operation.Send_discharge_Current(dataFrame);
            }
            catch (Exception)
            { }
        }
Exemple #2
0
 //参数配置
 //7A 7A 01 00 02 04 32 00 31 32 33 34 35 36 37 38 17 10 31 17 34 00 17 10 31 01 00 01 01 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0a 00 0b 00 0c 00 0d 00 31 32 33 D4 18 7b 7b
 //7a 7a 01 00 02 04 00 00 00 00 7b 7b
 static public void ReceiveDispose_ParameterConfig(byte[] data, TcpSocketClient client)
 {
     try
     {
         Frame_ParameterConfig dataFrame = new Frame_ParameterConfig();
         //设备编号
         byte[] sn = new byte[8];   //设备编号
         for (int i = 0; i < 8; i++)
         {
             sn[i] = data[i];
         }
         dataFrame.DeviceNo = Encoding.ASCII.GetString(sn);  //获取设备编号ASCII
         //参数修改时间
         string tStr = ConvertData.ToHexString(data, 8, 6);
         try
         {
             dataFrame.ParameterUpdateTime = DateTime.ParseExact(tStr, "yyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture);
         }
         catch (Exception)
         {
             dataFrame.ParameterUpdateTime = DateTime.Now;
         }
         //安装时间
         tStr = ConvertData.ToHexString(data, 14, 3);
         try
         {
             dataFrame.InstallDate = DateTime.ParseExact(tStr, "yyMMdd", System.Globalization.CultureInfo.InvariantCulture);
         }
         catch (Exception)
         {
             dataFrame.InstallDate = DateTime.Now;
         }
         //额定载荷
         UShortValue us = new UShortValue();
         us.bValue1           = data[17];
         us.bValue2           = data[18];
         dataFrame.LoadRating = us.sValue;
         //预警系数
         dataFrame.EarlyAlarmCoefficient = data[19];
         //报警系数
         dataFrame.AlarmCoefficient = data[20];
         //空载AD1
         ShortValue s = new ShortValue();
         s.bValue1          = data[21];
         s.bValue2          = data[22];
         dataFrame.EmptyAD1 = s.sValue;
         //空载AD2
         s.bValue1          = data[23];
         s.bValue2          = data[24];
         dataFrame.EmptyAD2 = s.sValue;
         //空载AD3
         s.bValue1          = data[25];
         s.bValue2          = data[26];
         dataFrame.EmptyAD3 = s.sValue;
         //空载AD4
         s.bValue1          = data[27];
         s.bValue2          = data[28];
         dataFrame.EmptyAD4 = s.sValue;
         //空载AD
         s.bValue1         = data[29];
         s.bValue2         = data[30];
         dataFrame.EmptyAD = s.sValue;
         //标准重物AD1
         s.bValue1 = data[31];
         s.bValue2 = data[32];
         dataFrame.StandardLoadAD1 = s.sValue;
         //标准重物AD2
         s.bValue1 = data[33];
         s.bValue2 = data[34];
         dataFrame.StandardLoadAD2 = s.sValue;
         //标准重物AD3
         s.bValue1 = data[35];
         s.bValue2 = data[36];
         dataFrame.StandardLoadAD3 = s.sValue;
         //标准重物AD4
         s.bValue1 = data[37];
         s.bValue2 = data[38];
         dataFrame.StandardLoadAD1 = s.sValue;
         //标准重物AD
         s.bValue1 = data[39];
         s.bValue2 = data[40];
         dataFrame.StandardLoadAD = s.sValue;
         //标准重物
         s.bValue1 = data[41];
         s.bValue2 = data[42];
         dataFrame.StandardLoad = s.sValue;
         //倾角预警值
         s.bValue1 = data[43];
         s.bValue2 = data[44];
         dataFrame.AngleEarlyAlarm = s.sValue;
         //倾角报警值
         s.bValue1            = data[45];
         s.bValue2            = data[46];
         dataFrame.AngleAlarm = s.sValue;
         //软件版本号 ASCII
         byte[] SoftVersion = new byte[data.Length - 47];
         for (int i = 47, j = 0; i < data.Length; i++, j++)
         {
             SoftVersion[j] = data[i];
         }
         dataFrame.SoftVersion = Encoding.ASCII.GetString(SoftVersion);
         //拼接应答
         byte[] result = SendJoint_ParameterConfig(dataFrame);
         if (result != null)
         {
             client.SendBuffer(result);
         }
     }
     catch (Exception)
     { }
 }
        public void CanConvertToStringWithFormatAndCulture(ShortValue value, string format, string expectedValue)
        {
            var actualValue = value.ToString(format, CultureInfo.GetCultureInfo("ru-RU"));

            Assert.AreEqual(expectedValue, actualValue);
        }
 public bool TestIsNumber(ShortValue value)
 {
     return(value.IsNumber());
 }
        public void CanCreateShortValue_FromShort(short value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.Short, s.ValueType);
        }
        public void CanCreateShortValue_FromTimeSpan(TimeSpan value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.TimeSpan, s.ValueType);
        }
        public void CanCreateShortValue_FromLong(long value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.Long, s.ValueType);
        }
        public void CanCreateShortValue_FromSByte(sbyte value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.SByte, s.ValueType);
        }
        public void CanCreateShortValue_FromFloat(float value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.Float, s.ValueType);
        }
        public void CanCreateShortValue_FromInt(int value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.Int, s.ValueType);
        }
        public void CanCreateShortValue_FromDouble(double value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.Double, s.ValueType);
        }
        public void CanCreateShortValue_FromDateTime(DateTime value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.DateTime, s.ValueType);
        }
        public void CanCreateShortValue_FromChar(char value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.Char, s.ValueType);
        }
        public void CanCreateShortValue_FromBool(bool value)
        {
            ShortValue s = value;

            Assert.AreEqual(SimpleValueType.Bool, s.ValueType);
        }
 public void CannotCreateShortValue_FromGuid(Guid value)
 {
     Assert.Throws <InvalidCastException>(() => ShortValue.Create(value));
 }