Exemple #1
0
        /// <summary>
        /// 处理测斜数据。
        /// </summary>
        /// <param name="Name">命令名称。</param>
        /// <param name="OriginalCode">原始数据。</param>
        /// <param name="info">测斜信息。</param>
        public static void Handle(string Name, string OriginalCode, CeXieInfo info)
        {
            UInt16 ResultNum;
            string Reason;

            CeXieDal.GetDeviceInfo(info, out ResultNum, out Reason);
            if (ResultNum == 0)
            {
                MyLibrary.Log.Debug(Name + "正常信息:" + Reason + " 设备编号:" + info.DeviceId);
            }
            else if (ResultNum == 1)
            {
                MyLibrary.Log.Debug(Name + "出错:" + Reason + " 设备编号:" + info.DeviceId + " 原始代码:" + OriginalCode);
            }
            else
            {
                string[]        InfoArray     = Reason.Split(',');
                string          m_DeviceId    = InfoArray[0];
                string          m_DESCRIPTION = InfoArray[1];
                string          m_StandardX   = InfoArray[2];
                string          m_StandardY   = InfoArray[3];
                List <SendInfo> sendInfo      = CeXieDal.GetSendList();
                if (sendInfo.Count != 0)
                {
                    string            RetrunMsg = "";
                    string            content   = "";
                    PushAlarmListInfo listInfo;
                    for (int i = 0; i < sendInfo.Count; i++)
                    {
                        //content = "警告:" + sendInfo[i].Name + "你好,[" + info.DeviceTime + "][" + m_DESCRIPTION + "]监测到倾斜角度位移超过5°,正常X轴" + m_StandardX + "°Y轴" + m_StandardY + "°,目前X轴" + info.Reserved1 + "°Y轴" + info.Reserved2 + "°,请尽快排查处理!";

                        content = "【天地人科技】警告:" + sendInfo[i].Name + "您好," + info.DeviceTime.ToString("yyyy - MM - dd") + ",我公司监测到设备" + info.DeviceId + ",安装位置为" + m_DESCRIPTION + ",边坡结构发生倾斜,存在滑坡险情,请尽快排查处理、";

                        listInfo = new PushAlarmListInfo();
                        bool IsOk = Send(sendInfo[i].Phone, content, out RetrunMsg);
                        listInfo.Issuccess = IsOk?"1":"2";


                        listInfo.DeviceId    = m_DeviceId;
                        listInfo.DeviceCode  = info.DeviceId;
                        listInfo.Description = m_DESCRIPTION;
                        listInfo.AngleX      = info.Reserved1;
                        listInfo.AngleY      = info.Reserved2;
                        listInfo.StandardX   = m_StandardX;
                        listInfo.StandardY   = m_StandardY;
                        listInfo.AlarmTime   = info.DeviceTime;
                        listInfo.Name        = sendInfo[i].Name;
                        listInfo.Phone       = sendInfo[i].Phone;
                        CeXieDal.PushAlarmList_Insert(listInfo);
                        MyLibrary.Log.Debug(RetrunMsg + " 设备编号:" + listInfo.DeviceCode);
                    }
                }
                else
                {
                    MyLibrary.Log.Debug(Name + ";推送预警配置表(TB_PUSHALARMSET)没有任何内容 设备编号:" + info.DeviceId);
                }
            }
        }
Exemple #2
0
        public static void GetDeviceInfo(CeXieInfo info, out UInt16 resultNum, out string reason)
        {
            Database  db  = DataConnect.GetConnect;
            DbCommand cmd = db.GetStoredProcCommand("pro_CeXie");

            db.AddInParameter(cmd, ":Pi_DeviceCode", DbType.String, info.DeviceId);
            db.AddInParameter(cmd, ":Pi_DeviceTime", DbType.Date, info.DeviceTime);
            db.AddInParameter(cmd, ":Pi_AngleX", DbType.String, info.Reserved1);
            db.AddInParameter(cmd, ":Pi_AngleY", DbType.String, info.Reserved2);
            db.AddOutParameter(cmd, ":po_ResultNum", DbType.String, 256);
            db.AddOutParameter(cmd, ":po_Reason", DbType.String, 256);
            db.ExecuteNonQuery(cmd);
            resultNum = Convert.ToUInt16(db.GetParameterValue(cmd, ":po_ResultNum"));
            reason    = db.GetParameterValue(cmd, ":po_Reason").ToString();
        }
        public bool Execute()
        {
            try
            {
                byte[] DeviceTypeByte = new byte[2];                           //设备类型
                Array.Copy(_content, 1, DeviceTypeByte, 0, 2);
                string DeviceType = Convert.ToUInt16(ConverUtil.ByteToStr_A(DeviceTypeByte), 16).ToString();

                byte[] DeviceIdByte = new byte[4];                             //设备Id
                Array.Copy(_content, 3, DeviceIdByte, 0, 4);
                string DeviceId = Convert.ToUInt32(ConverUtil.ByteToStr_A(DeviceIdByte), 16).ToString();

                string CommandWord = _content[7].ToString();                  //命令字

                byte[] XAxisAngleValueByte = new byte[2];                     //X轴值
                Array.Copy(_content, 8, XAxisAngleValueByte, 0, 2);
                string XAxisAngleValue = DataJM.GetAngleValue(ConverUtil.ByteToStr_A(XAxisAngleValueByte));

                byte[] YAxisAngleValueByte = new byte[2];                                 //Y轴值
                Array.Copy(_content, 10, YAxisAngleValueByte, 0, 2);
                string YAxisAngleValue = DataJM.GetAngleValue(ConverUtil.ByteToStr_A(YAxisAngleValueByte));

                string Version = _content[12].ToString();                      //版本号。

                CeXieInfo info = new CeXieInfo();
                info.DeviceTime   = DateTime.Now;
                info.DeviceType   = DeviceType;
                info.DeviceId     = DeviceId;
                info.ProtocolType = CommandWord;
                info.Reserved1    = XAxisAngleValue;
                info.Reserved2    = YAxisAngleValue;
                info.Version      = Version;
                info.StationNo    = StationId.ToString();
                info.ServiceTime  = PlatformTime;

                ICeXieDal.Handle(Name, OriginalCode, info);
            }
            catch (Exception ex)
            {
                MyLibrary.Log.Error(Name + "错误:" + ex.Message + " 基站编号:" + StationId.ToString() + " 原始代码:" + OriginalCode);
            }

            return(true);
        }
Exemple #4
0
        public static void AgreementFormat_Insert(CeXieInfo info)
        {
            Database  db  = DataConnect.GetConnect;
            DbCommand cmd = db.GetSqlStringCommand(@"insert into tb_agreementformat
            (listid, devicetime, devicetype, deviceid, protocoltype, reserved1, reserved2, reserved3, reserved4, reserved5, version, stationno, servicetime, intime)
            values
            (sys_guid(), :devicetime, :devicetype, :deviceid, :protocoltype, :reserved1, :reserved2, :reserved3, :reserved4, :reserved5, 
            :version, :stationno, :servicetime, sysdate)");

            db.AddInParameter(cmd, ":devicetime", DbType.Date, info.DeviceTime);
            db.AddInParameter(cmd, ":devicetype", DbType.String, info.DeviceType);
            db.AddInParameter(cmd, ":deviceid", DbType.String, info.DeviceId);
            db.AddInParameter(cmd, ":protocoltype", DbType.String, info.ProtocolType);
            db.AddInParameter(cmd, ":reserved1", DbType.String, info.Reserved1);
            db.AddInParameter(cmd, ":reserved2", DbType.String, info.Reserved2);
            db.AddInParameter(cmd, ":reserved3", DbType.String, info.Reserved3);
            db.AddInParameter(cmd, ":reserved4", DbType.String, info.Reserved4);
            db.AddInParameter(cmd, ":reserved5", DbType.String, info.Reserved5);
            db.AddInParameter(cmd, ":version", DbType.String, info.Version);
            db.AddInParameter(cmd, ":stationno", DbType.String, info.StationNo);
            db.AddInParameter(cmd, ":servicetime", DbType.Date, info.ServiceTime);
            db.ExecuteNonQuery(cmd);
        }
        public bool Execute()
        {
            try
            {
                #region 测斜统计



                DateTime time        = ConverUtil.Time(_content, 0);        //设备时间。
                string   ZhongJiId   = _content[6].ToString();              //中继号
                string   DeviceType  = ConverUtil.ByteToStr_2(_content, 7);
                string   DeviceId    = ConverUtil.ByteToStr_4(_content, 9); // 设备Id
                string   CommandWord = _content[13].ToString();             //命令字

                byte[] XAxisAngleValueByte = new byte[2];                   //X轴值
                Array.Copy(_content, 14, XAxisAngleValueByte, 0, 2);
                string XAxisAngleValue = DataJM.GetAngleValue(ConverUtil.ByteToStr_A(XAxisAngleValueByte));

                byte[] YAxisAngleValueByte = new byte[2];                                 //Y轴值
                Array.Copy(_content, 16, YAxisAngleValueByte, 0, 2);
                string YAxisAngleValue = DataJM.GetAngleValue(ConverUtil.ByteToStr_A(YAxisAngleValueByte));

                string Version = _content[18].ToString();                    //版本号。

                CeXieInfo info = new CeXieInfo();
                info.DeviceTime   = time;
                info.DeviceType   = DeviceType;
                info.DeviceId     = DeviceId;
                info.ProtocolType = CommandWord;
                info.Reserved1    = XAxisAngleValue;
                info.Reserved2    = YAxisAngleValue;
                info.Version      = Version;
                info.StationNo    = StationId.ToString();
                info.ServiceTime  = PlatformTime;
                CeXieDal.AgreementFormat_Insert(info);

                #endregion



                #region 处理后发送短信

                //byte[] timeByte = new byte[6];                                 //设备时间
                //Array.Copy(_content, 0, timeByte, 0, 6);
                //DateTime time = Utils.GetTime(timeByte);
                //string ZhongJiId = _content[6].ToString();                     //中继号
                //byte[] DeviceTypeByte = new byte[2];                           //设备类型
                //Array.Copy(_content, 7, DeviceTypeByte, 0, 2);
                //string DeviceType = Convert.ToUInt64(ConverUtil.ByteToStr_A(DeviceTypeByte), 16).ToString();
                //byte[] DeviceIdByte = new byte[4];                             //设备Id
                //Array.Copy(_content, 9, DeviceIdByte, 0, 4);
                //string DeviceId = Convert.ToUInt64(ConverUtil.ByteToStr_A(DeviceIdByte), 16).ToString();
                //string CommandWord = _content[13].ToString();                  //命令字

                //byte[] XAxisAngleValueByte = new byte[2];                                 //X轴值
                //Array.Copy(_content, 14, XAxisAngleValueByte, 0, 2);
                //string XAxisAngleValue = Utils.GetAngleValue(ConverUtil.ByteToStr_A(XAxisAngleValueByte));

                //byte[] YAxisAngleValueByte = new byte[2];                                 //Y轴值
                //Array.Copy(_content, 16, YAxisAngleValueByte, 0, 2);
                //string YAxisAngleValue = Utils.GetAngleValue(ConverUtil.ByteToStr_A(YAxisAngleValueByte));

                //string Version = _content[18].ToString();                      //版本号。

                //CeXieInfo info = new CeXieInfo();
                //info.DeviceTime = time;
                //info.DeviceType = DeviceType;
                //info.DeviceId = DeviceId;
                //info.ProtocolType = CommandWord;
                //info.Reserved1 = XAxisAngleValue;
                //info.Reserved2 = YAxisAngleValue;
                //info.Version = Version;
                //info.StationNo = StationId.ToString();
                //info.ServiceTime = PlatformTime;

                //ICeXieDal.Handle(Name, OriginalCode, info);



                #endregion
            }
            catch (Exception ex)
            {
                MyLibrary.Log.Error(Name + "错误:" + ex.Message + " 基站编号:" + StationId.ToString() + " 原始代码:" + OriginalCode);
            }

            return(true);
        }