예제 #1
0
        public static MtbDevStatus GetMDevstatusByCrsCode(string crsCode, string subCode)
        {
            MtbDevStatus model = new MtbDevStatus
            {
                ACB              = false,
                AlarmTemp        = 0,
                CameraOne        = false,
                CameraTwo        = false,
                CameraThree      = false,
                CaseTemp         = 0,
                CoolingTemp      = 0,
                CreateDate       = DateTime.Now,
                CrsCode          = crsCode,
                SubCode          = subCode,
                ESAlarm          = false,
                ESSum            = 0,
                SwitchInt        = 0,
                SwitchOnSum      = 0,
                FOT              = false,
                Router           = false,
                Fan              = false,
                TempAlarm        = false,
                AliveTime        = 2,
                ThresholdVoltage = 0,
                IsOnline         = false
            };

            return(model);
        }
예제 #2
0
        public static void UpdateOnline(MtbDevStatus model)
        {
            using (var conn = DbContext.Open())
            {
                conn.Execute(@"UPDATE TB_DevStatus SET 
 CameraOne=@CameraOne,CameraTwo=@CameraTwo,CameraThree=@CameraThree,FOT=@FOT,Router=@Router,Fan=@Fan,ACB=@ACB,TempAlarm=@TempAlarm,ESAlarm=@ESAlarm,CoolingTemp=@CoolingTemp,AlarmTemp=@AlarmTemp,CaseTemp=@CaseTemp,ESSum=@ESSum,SwitchOnSum=@SwitchOnSum,SwitchInt=@SwitchInt,CreateDate=@CreateDate,CrsCode=@CrsCode,IsOnline=@IsOnline,AliveTime=@AliveTime,Voltage=@Voltage,ThresholdVoltage=@ThresholdVoltage,SubCode=@SubCode  WHERE CrsCode=@CrsCode",
                             new { model.CameraOne, model.CameraTwo, model.CameraThree, model.FOT, model.Router, model.Fan, model.ACB, model.TempAlarm, model.ESAlarm, model.CoolingTemp, model.AlarmTemp, model.CaseTemp, model.ESSum, model.SwitchOnSum, model.SwitchInt, model.CreateDate, model.CrsCode, model.IsOnline, model.AliveTime, model.Voltage, model.ThresholdVoltage, model.SubCode });
                conn.Close();
                conn.Dispose();
            }
        }
예제 #3
0
     public static void InsertOnline(MtbDevStatus model)
     {
         using (var conn = DbContext.Open())
         {
             conn.Execute(@"INSERT INTO TB_DevStatus
     (CameraOne,CameraTwo,CameraThree,FOT,Router,Fan,ACB,TempAlarm,ESAlarm,CoolingTemp,AlarmTemp,CaseTemp,ESSum,SwitchOnSum,SwitchInt,CreateDate,CrsCode,IsOnline,AliveTime,Voltage,ThresholdVoltage,SubCode)
 VALUES
     (@CameraOne,@CameraTwo,@CameraThree,@FOT,@Router,@Fan,@ACB,@TempAlarm,@ESAlarm,@CoolingTemp,@AlarmTemp,@CaseTemp,@ESSum,@SwitchOnSum,@SwitchInt,@CreateDate,@CrsCode,@IsOnline,@AliveTime,@Voltage,@ThresholdVoltage,@SubCode)",
                          new { model.CameraOne, model.CameraTwo, model.CameraThree, model.FOT, model.Router, model.Fan, model.ACB, model.TempAlarm, model.ESAlarm, model.CoolingTemp, model.AlarmTemp, model.CaseTemp, model.ESSum, model.SwitchOnSum, model.SwitchInt, model.CreateDate, model.CrsCode, model.IsOnline, model.AliveTime, model.Voltage, model.ThresholdVoltage, model.SubCode });
             conn.Close();
             conn.Dispose();
         }
     }
예제 #4
0
        public static void InSertDb()
        {
            var para = GetIpList(DbContext.GetSubCode());

            foreach (var i in para)
            {
                Socket    clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress ipAddress    = IPAddress.Parse(i.CrsIp);
                try
                {
                    TcpConn.ConnectWithTimeout(clientSocket, new IPEndPoint(ipAddress, 5000), 2000);//超时2秒
                    Console.WriteLine("Socket连接成功");
                }
                catch
                {
                    UpdateIsOnline(false, i.CrsCode);
                    var model = GetMDevstatusByCrsCode(i.CrsCode, i.SubCode);
                    if (IsExist(i.CrsCode))
                    {
                        UpdateOnline(model);
                    }
                    else
                    {
                        InsertOnline(model);
                    }
                    Console.WriteLine("Socket连接失败");

                    //clientSocket.Shutdown(SocketShutdown.Both);
                    clientSocket.Close();
                    clientSocket.Dispose();
                    //continue;
                }
                try
                {
                    string send = "EF EF 04 14 00 F6";
                    var    msg  = Common.StrToHexByte(send);
                    clientSocket.Send(msg);       // Sends some data  BitConverter.ToString(msg, 0))
                    var buffer = new byte[103];
                    clientSocket.Receive(buffer); // Receives some data back (blocks execution)
                    var response = BitConverter.ToString(buffer, 0);
                    // Receives some data back (blocks execution)  AB-CD-09-08-2A-E8-07-00-00-00-A243
                    var dataArr     = response.Replace("-", "");
                    var byteDataArr = Common.StrToHexByte(dataArr);

                    //8421码按位与操作
                    var cameraTwo = (byteDataArr[4] & 0x08) == 0x08;
                    var cameraOne = (byteDataArr[4] & 0x04) == 0x04;
                    var fot       = (byteDataArr[4] & 0x02) == 0x02;
                    var router    = (byteDataArr[4] & 0x01) == 0x01;

                    var fan         = (byteDataArr[4] & 0x10) == 0x10;
                    var acb         = (byteDataArr[4] & 0x20) == 0x20;
                    var cameraThree = (byteDataArr[4] & 0x40) == 0x40;
                    var tempAlarm   = (byteDataArr[5] & 0x01) == 0x01;
                    var esAlarm     = (byteDataArr[5] & 0x02) == 0x02;

                    byte[] coolingTempbyte = new byte[4];
                    coolingTempbyte[0] = byteDataArr[6];
                    coolingTempbyte[1] = byteDataArr[7];
                    coolingTempbyte[2] = byteDataArr[8];
                    coolingTempbyte[3] = byteDataArr[9];
                    var coolingTemp = BitConverter.ToSingle(coolingTempbyte, 0);
                    if (float.IsNaN(coolingTemp))
                    {
                        coolingTemp = 0f;
                    }

                    byte[] alarmTempbyte = new byte[4];
                    alarmTempbyte[0] = byteDataArr[10];
                    alarmTempbyte[1] = byteDataArr[11];
                    alarmTempbyte[2] = byteDataArr[12];
                    alarmTempbyte[3] = byteDataArr[13];
                    var alarmTemp = BitConverter.ToSingle(alarmTempbyte, 0);
                    if (float.IsNaN(alarmTemp))
                    {
                        alarmTemp = 0f;
                    }
                    byte[] caseTempbyte = new byte[4];
                    caseTempbyte[0] = byteDataArr[14];
                    caseTempbyte[1] = byteDataArr[15];
                    caseTempbyte[2] = byteDataArr[16];
                    caseTempbyte[3] = byteDataArr[17];
                    var caseTemp = BitConverter.ToSingle(caseTempbyte, 0);

                    byte[] esSumbyte = new byte[4];
                    esSumbyte[0] = byteDataArr[18];
                    esSumbyte[1] = byteDataArr[19];
                    esSumbyte[2] = byteDataArr[20];
                    esSumbyte[3] = byteDataArr[21];
                    var esSum = BitConverter.ToInt32(esSumbyte, 0);

                    byte[] switchOnSumbyte = new byte[4];
                    switchOnSumbyte[0] = byteDataArr[22];
                    switchOnSumbyte[1] = byteDataArr[23];
                    switchOnSumbyte[2] = byteDataArr[24];
                    switchOnSumbyte[3] = byteDataArr[25];
                    var switchOnSum = BitConverter.ToInt32(switchOnSumbyte, 0);

                    byte[] switchIntbyte = new byte[4];
                    switchIntbyte[0] = byteDataArr[26];
                    switchIntbyte[1] = byteDataArr[27];
                    switchIntbyte[2] = byteDataArr[28];
                    switchIntbyte[3] = byteDataArr[29];
                    var switchInt = BitConverter.ToInt32(switchIntbyte, 0);

                    byte[] aliveTimebyte = new byte[4];
                    aliveTimebyte[0] = byteDataArr[30];
                    aliveTimebyte[1] = byteDataArr[31];
                    aliveTimebyte[2] = byteDataArr[32];
                    aliveTimebyte[3] = byteDataArr[33];
                    var aliveTime = BitConverter.ToInt32(aliveTimebyte, 0);

                    byte[] voltageByte = new byte[4];
                    voltageByte[0] = byteDataArr[34];
                    voltageByte[1] = byteDataArr[35];
                    voltageByte[2] = byteDataArr[36];
                    voltageByte[3] = byteDataArr[37];
                    var voltage = BitConverter.ToSingle(voltageByte, 0);

                    byte[] thresholdVoltageByte = new byte[4];
                    thresholdVoltageByte[0] = byteDataArr[38];
                    thresholdVoltageByte[1] = byteDataArr[39];
                    thresholdVoltageByte[2] = byteDataArr[40];
                    thresholdVoltageByte[3] = byteDataArr[41];
                    var thresholdVoltage = BitConverter.ToSingle(thresholdVoltageByte, 0);

                    MtbDevStatus model = new MtbDevStatus
                    {
                        ACB         = acb,
                        AlarmTemp   = alarmTemp,
                        CameraOne   = cameraOne,
                        CameraTwo   = cameraTwo,
                        CameraThree = cameraThree,
                        CaseTemp    = caseTemp,
                        CoolingTemp = coolingTemp,
                        CreateDate  = DateTime.Now,
                        CrsCode     = i.CrsCode,
                        SubCode     = i.SubCode,
                        ESAlarm     = esAlarm,
                        ESSum       = esSum,
                        SwitchInt   = switchInt,
                        SwitchOnSum = switchOnSum,
                        FOT         = fot,
                        Router      = router,
                        Fan         = fan,
                        TempAlarm   = tempAlarm,
                        //CrsName = i.CrsName,
                        AliveTime        = aliveTime,
                        IsOnline         = true,
                        Voltage          = voltage,
                        ThresholdVoltage = thresholdVoltage
                    };
                    UpdateIsOnline(true, i.CrsCode);
                    if (IsExist(i.CrsCode))
                    {
                        UpdateOnline(model);
                    }
                    else
                    {
                        InsertOnline(model);
                    }
                }
                catch
                {
                    UpdateIsOnline(false, i.CrsCode);
                    var model = GetMDevstatusByCrsCode(i.CrsCode, i.SubCode);
                    if (IsExist(i.CrsCode))
                    {
                        UpdateOnline(model);
                    }
                    else
                    {
                        InsertOnline(model);
                    }
                }
                //clientSocket.Shutdown(SocketShutdown.Both);
                clientSocket.Close();
                clientSocket.Dispose();
            }
            para.Clear();
        }