Example #1
0
    public static DeviceStateEntity parseDeviceState(string stateId)
    {
        DeviceStateEntity deviceStateEntity = null;

        try
        {
            deviceStateEntity = new DeviceStateEntity();
            deviceStateEntity.meta.eventType    = "ACS_EQUINFO_UE";
            deviceStateEntity.meta.msgType      = "EQU";
            deviceStateEntity.meta.receiver     = "";
            deviceStateEntity.meta.recvSequence = "";
            deviceStateEntity.meta.recvTime     = "";
            deviceStateEntity.meta.sender       = "SXJ";
            deviceStateEntity.meta.sendTime     = DateTime.Now.ToString("yyyyMMddHHmmss");
            deviceStateEntity.meta.sequence     = "";

            //deviceStateEntity.body.createDate =deviceStateInfo.sEventTime;
            //deviceStateEntity.body.equCode =deviceStateInfo.sEventLocation;
            deviceStateEntity.body.timeStateId   = stateId;
            deviceStateEntity.body.timeStateName = stateDic[stateId];
        }
        catch (Exception ex)
        {
            FileWorker.LogHelper.WriteLog("解析设备状态失败," + ex.Message);
        }
        return(deviceStateEntity);
    }
Example #2
0
    public static DeviceStateEntity parseDeviceState(string devId, string state)
    {
        DeviceStateEntity deviceStateEntity = null;

        try
        {
            deviceStateEntity = new DeviceStateEntity();
            deviceStateEntity.meta.eventType    = "SVMS_EQU_STATUS_UE";
            deviceStateEntity.meta.msgType      = "EQU_STATUS";
            deviceStateEntity.meta.receiver     = "";
            deviceStateEntity.meta.recvSequence = "";
            deviceStateEntity.meta.recvTime     = "";
            deviceStateEntity.meta.sender       = "MJ";
            deviceStateEntity.meta.sendTime     = DateTime.Now.ToString("yyyyMMddHHmmss");
            deviceStateEntity.meta.sequence     = Guid.NewGuid().ToString();;
            //string pattern = "[\\[ \\] \\^ \\-_*×――(^)$%~!@#$…&%¥—+<>《》!!???::•`·、。,;,;\"‘’“”-]";
            //string channelID = Regex.Replace(devArr[1], pattern, "").Split(new char[] { '=' })[1];
            //string channelStatus = Regex.Replace(devArr[4], pattern, "").Split(new char[] { '=' })[1];
            deviceStateEntity.body.equCode = devId;
            if (state == "离线")
            {
                deviceStateEntity.body.timeStateId   = "ES02";
                deviceStateEntity.body.timeStateName = "离线";
            }
            else if (state == "上线")
            {
                deviceStateEntity.body.timeStateId   = "ES01";
                deviceStateEntity.body.timeStateName = "在线";
            }
            else
            {
                deviceStateEntity.body.timeStateId   = "ES03";
                deviceStateEntity.body.timeStateName = "故障";
            }
            deviceStateEntity.body.operateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            deviceStateEntity.body.airportIata = ConfigWorker.GetConfigValue("airportIata");
            deviceStateEntity.body.airportName = ConfigWorker.GetConfigValue("airportName");
        }
        catch (Exception ex)
        {
            FileWorker.LogHelper.WriteLog("解析设备状态失败," + ex.Message);
        }
        return(deviceStateEntity);
    }
Example #3
0
    public static DeviceStateEntity parseDeviceState(string stateId, string eventType)
    {
        DeviceStateEntity deviceStateEntity = null;

        try
        {
            deviceStateEntity = new DeviceStateEntity();
            deviceStateEntity.meta.eventType    = "ACS_EQUINFO_UE";
            deviceStateEntity.meta.msgType      = "EQU_STATUS";
            deviceStateEntity.meta.receiver     = "";
            deviceStateEntity.meta.recvSequence = "";
            deviceStateEntity.meta.recvTime     = "";
            deviceStateEntity.meta.sender       = "MJ";
            deviceStateEntity.meta.sendTime     = DateTime.Now.ToString("yyyyMMddHHmmss");
            deviceStateEntity.meta.sequence     = "";
            deviceStateEntity.body.equCode      = stateId;
            if (eventType == "903")//903---ES02---离线---开门
            {
                deviceStateEntity.body.timeStateId   = "ES02";
                deviceStateEntity.body.timeStateName = "开门";
            }
            else if (eventType == "10903")//10903---ES01---在线---关门
            {
                deviceStateEntity.body.timeStateId   = "ES01";
                deviceStateEntity.body.timeStateName = "关门";
            }
            else
            {
                deviceStateEntity.body.timeStateId   = "ES03";
                deviceStateEntity.body.timeStateName = "故障";
            }
            deviceStateEntity.body.operateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            deviceStateEntity.body.airportIata = ConfigWorker.GetConfigValue("airportIata");
            deviceStateEntity.body.airportName = ConfigWorker.GetConfigValue("airportName");
        }
        catch (Exception ex)
        {
            FileWorker.LogHelper.WriteLog("解析设备状态失败," + ex.Message);
        }
        return(deviceStateEntity);
    }
Example #4
0
        public static IntPtr NvrStatusCallback(IntPtr nPDLLHandle,
                                               [MarshalAs(UnmanagedType.LPStr)] StringBuilder szChnlId,
                                               IntPtr nStatus,
                                               IntPtr pUserParam)
        {
            String status = "未知";

            if (nStatus == (IntPtr)1)
            {
                status = "上线";
            }
            else
            {
                status = "离线";
            }
            string            str      = "NvrStatusCallback ChannelId:" + szChnlId.ToString() + "  nStatus:" + status;
            DeviceStateEntity devEnt   = DeviceStateParseTool.parseDeviceState(szChnlId.ToString(), status);
            string            jsonMess = devEnt.toJson();

            KafkaWorker.sendDeviceMessage(jsonMess, "状态");
            return((IntPtr)0);
        }
Example #5
0
        public void UpdateTestClient(Obj obixObj, Watch watch)
        {
            //FileWorker.LogHelper.WriteLog("收到数据:"+watch.type.ToString()+";;长度是"+obixObj.list().Length.ToString());
            if (watch.type == WatchType.Alarm)
            {
                if (obixObj.list().Length > 0)
                {
                    if (obixObj.list()[0].list().Length > 0)
                    {
                        //FileWorker.LogHelper.WriteLog("obixObj.list()[0].list().Length长度是" + obixObj.list()[0].list().Length.ToString());
                        if (obixObj.list()[0].list()[0].list().Length > 0)
                        {
                            //FileWorker.LogHelper.WriteLog("obixObj.list()[0].list()[0].list().Length长度是" + obixObj.list()[0].list()[0].list().Length.ToString());
                            foreach (Obj obj in obixObj.list()[0].list()[0].list())
                            {
                                try
                                {
                                    string time             = ((Abstime)obj.get("timestamp")).Val.ToString();
                                    string type             = ((Int)obj.get("eventType")).Val.ToString();
                                    string desc             = obj.Display.ToString();
                                    object id               = obj.Href;
                                    object ack              = obj.get("ack");
                                    object clear            = obj.get("clear");
                                    object pointDescription = null;
                                    object priority         = ((Int)obj.get("priority")).Val;
                                    string source           = string.Empty;
                                    string alarmType        = null;
                                    string fname            = string.Empty;
                                    string lname            = string.Empty;
                                    object cardnumber       = null;
                                    string user             = string.Empty;
                                    string card             = string.Empty;
                                    string deviceName       = string.Empty;
                                    string deptName         = string.Empty;

                                    if (obj.get("companyname") != null)
                                    {
                                        deptName = obj.get("companyname").ToString();
                                    }
                                    if (obj.get("devicedescription") != null)
                                    {
                                        deviceName = obj.get("devicedescription").ToString();
                                    }
                                    if (obj.get("source") != null)
                                    {
                                        source = obj.get("source").Href.ToString();
                                    }
                                    if (obj.get("fname") != null)
                                    {
                                        fname = obj.get("fname").ToString();
                                    }
                                    if (obj.get("lname") != null)
                                    {
                                        lname = obj.get("lname").ToString();
                                    }
                                    if (obj.get("cardnumber") != null)
                                    {
                                        cardnumber = obj.get("cardnumber").Href;
                                    }
                                    if (obj.get("accessUser") != null)
                                    {
                                        user = obj.get("accessUser").Href.ToString();
                                    }
                                    if (obj.get("accessCredential") != null)
                                    {
                                        card = obj.get("accessCredential").Href.ToString();
                                    }
                                    if (obj.get("AlarmStatus") != null)
                                    {
                                        alarmType = ((Str)obj.get("AlarmStatus")).Val;
                                    }
                                    if (obj.get("pointdescription") != null)
                                    {
                                        pointDescription = ((Str)obj.get("pointdescription")).Val;
                                    }
                                    FileWorker.LogHelper.WriteLog(string.Format("eventType:{0};desc:{1};source:{2};user:{3};credential:{4}",
                                                                                type, desc, source, user, card));

                                    if (source != string.Empty)
                                    {
                                        source = DataFormatTool.pickTailFromString(source);
                                    }
                                    time = DataFormatTool.formatDatetime(time);
                                    //event type=500是刷卡,只有刷卡时才产生卡号、人员编号
                                    if (type == "500")
                                    {
                                        if (card != string.Empty)
                                        {
                                            card = DataFormatTool.pickTailFromString(card);
                                        }
                                        if (user != string.Empty)
                                        {
                                            user = DataFormatTool.pickTailFromString(user);
                                        }
                                        AccessEntity access = AccessParseTool.parseAccess(card, source, "1", user, time, deptName, deviceName, lname + fname, "", "刷卡+密码开门");
                                        KafkaWorker.sendAccessMessage(access.toJson());
                                        //continue;
                                    }
                                    if (type == "608")//按钮开门,无卡号、人员编号
                                    {
                                        AccessEntity access = AccessParseTool.parseAccess("", source, "2", "", time, "", deviceName, "", "", "按钮开门");
                                        KafkaWorker.sendAccessMessage(access.toJson());
                                        continue;
                                    }
                                    if (type == "903" || type == "10903")
                                    {
                                        DeviceStateEntity devState = DeviceStateParseTool.parseDeviceState(source, type);
                                        KafkaWorker.sendDeviceMessage(devState.toJson());
                                    }
                                    //423,400,10900,900,500,903
                                    if (alarmRuleDic.ContainsKey(type))//报警
                                    {
                                        AlarmEntity alarm = AlarmParseTool.parseAlarm(source, alarmRuleDic[type].Item1, alarmRuleDic[type].Item2, time, airportIata, airportName);
                                        KafkaWorker.sendAlarmMessage(alarm.toJson());
                                        continue;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    FileWorker.LogHelper.WriteLog("消息接收及解析、发送过程中出现异常:" + ex.Message);
                                    continue;
                                }
                            }
                        }
                    }
                }
            }
            #region 暂时不用
            else //watch.type == WatchType.Object
            {
                if (obixObj.list().Length > 0)
                {
                    DateTime updateTime = DateTime.Now;
                    foreach (Obj obj in obixObj.list()[0].list())
                    {
                        //bool rowFound = false;
                        //for (int i = 0; i < grd.Rows.Count; i++)
                        //{
                        //    if (grd.Rows[i].Cells[0].Value.Equals(obj.Href))
                        //    {
                        //        if (obj.isErr())
                        //        {
                        //            //Object deleted in PW
                        //            grd.Rows.RemoveAt(i);
                        //        }
                        //        else
                        //        {
                        //            grd.Rows[i].Cells[1].Value = DateTime.Now;
                        //            updateTime = (DateTime)grd.Rows[i].Cells[1].Value;
                        //        }
                        //        rowFound = true;
                        //        break;
                        //    }
                        //}
                        //if (!rowFound)
                        //{
                        //    updateTime = DateTime.Now;
                        //    //grd.Rows.Add(obj.Href, updateTime);
                        //}

                        ////when object's parent url is subscribed.
                        //System.Uri uri = obj.Href.toUri();
                        //if (uri.Segments.Length >= 5)
                        //{
                        //    string strUri = uri.ToString();
                        //    if (strUri.EndsWith("/"))
                        //        strUri = strUri.Substring(0, strUri.Length - 1);
                        //    int nIndex = strUri.LastIndexOf("/");
                        //    strUri = strUri.Substring(0, nIndex);
                        //    for (int i = 0; i < grd.Rows.Count; i++)
                        //    {
                        //        string strObjHref = Convert.ToString(grd.Rows[i].Cells[0].Value);
                        //        if (strObjHref.EndsWith("/"))
                        //            strObjHref = strObjHref.Substring(0, strObjHref.Length - 1);
                        //        if (strObjHref.Equals(strUri))
                        //        {
                        //            grd.Rows[i].Cells[1].Value = updateTime;
                        //            break;
                        //        }
                        //    }
                        //}
                    }
                }
            }
            #endregion
        }