public IActionResult Index() { zCustomUser uu = new zCustomUser() { Gender = 0, Name = "fd" }; _redisHashService.HashSet("mm", "pp0", uu); _redisHashService.HashSet("mm", "pp1", new zCustomUser() { Gender = 1, Name = "官方公告" }); _redisStringService.StringSet("aa", uu); string val = _redisStringService.StringGet("aa"); zCustomUser getuu = _redisHashService.HashGet<zCustomUser>("mm", "pp"); Log4helper<HomeController>.Info($"进入了{nameof(HomeController)} 的 {nameof(Index)}"); Log4helper<HomeController>.Errror(new System.Exception("测试Error的写入信息")); Log4helper<HomeController>.Debug($"测试Debug写入信息"); // services.Configure<InterExample>(configuration.GetSection("InterExample")); //配置为 InterExample 注入对象成功,可以获取对象信息 // InterExample interExample = (InterExample)HttpContext.RequestServices.GetService(typeof(InterExample)); _logger.LogError("控制台显示"); return View(); }
/// <summary> /// 1.请求主机房间列表 /// user:DAJCHSF_Server type:other msg:DAJCHSF_2047DABEF936;8;835;admin$/r$ /// 2.主机返回房间列表 /// user:DAJCHSF_2047DABEF936 type:other msg:DAJCHSF_2047DABEF936;835;admin;Zip;H4sIAAAAAAAAAIuuViotTi3KTFGyUlLSUSouSSxJBTJLikpTgdzkjMy8xLzEXJDQs46Jz2e1PF23DSiemZyfB9GQmZuYngrTXZBfDGYaQNgFiUWJSlbVSimpZSX5JYk5QBlDS5AliWmpxaklJZl56TCrasEaSioLUqHa40EGGego+aWWB6Um5xcBeSCFtTrY3Yvm1qfrFj3ta8Xh0KL8/FxDJNcaGhgbmpoYG1iam5iiOJzajupd/nTdEtIcBcRmBjR1VNe8p61rSHaXkampBW0Da13nyxmbSHOUsYmBkTl5jooFAHQFerEIAwAA$/r$ /// </summary> /// <param name="msg">user:DAJCHSF_Server type:other msg:DAJCHSF_2047DABEF936;8;835;admin$/r$</param> public static string Host835(string msg) { try { if (msg.Split(';').Length >= 3) { string appUser = msg.Split(';')[0]; if (appUser.Contains("_")) { string account = appUser.Split('_')[0];//DAJCHSF,一个家庭可能有多个用户,mac不同,只取账户 List <host_room> roomList = null; //获取当前房间的设备列表,先找缓存 string msgResult = service.HashGet("Room", account); if (string.IsNullOrEmpty(msgResult)) { using (HsfDBContext hsfDBContext = new HsfDBContext()) { roomList = hsfDBContext.host_room.Where(t => t.Account == account && t.DeleteMark == 0).ToList(); msgResult = $";835;admin;Zip;{EncryptionHelp.Encryption(JsonConvert.SerializeObject(roomList), true)}$/r$"; //不能缓存用户信息 //缓存当前账户房间列表返回字符串 service.HashSet("Room", account, msgResult); } } msgResult = appUser + msgResult;//带上用户信息 log.Debug($"835 OK,返回房间列表成功!返回信息:{msgResult}"); return(msgResult); } else { log.Debug($"835 Fail,命令不符合规范!"); return(null); } } else { log.Debug($"835 Fail,命令不符合规范!"); return(null); } } catch (Exception) { throw; } }
//报警事件回掉 private static bool AlarmCallBackEx(int lCommand, IntPtr lLoginID, IntPtr pBuf, uint dwBufLen, IntPtr pchDVRIP, int nDVRPort, bool bAlarmAckFlag, int nEventID, IntPtr dwUser) { EM_ALARM_TYPE type = (EM_ALARM_TYPE)lCommand; string hostIp = Marshal.PtrToStringAnsi(pchDVRIP); var alarmdata = httpHelper.GetAlarmsByHostIP(hostIp); switch (type) { case EM_ALARM_TYPE.ALARM_ARMMODE_CHANGE_EVENT: { NET_ALARM_ARMMODE_CHANGE_INFO info = (NET_ALARM_ARMMODE_CHANGE_INFO)Marshal.PtrToStructure(pBuf, typeof(NET_ALARM_ARMMODE_CHANGE_INFO)); Console.WriteLine("布撤防状态变化事件信息:变化后状态:{0},场景模式:{1},触发方式:{2},ID:{3}", GetStatus(info.bArm), GetScene(info.emSceneMode), GetTrigger(info.emTriggerMode), info.dwID); } break; case EM_ALARM_TYPE.ALARM_INPUT_SOURCE_SIGNAL: //报警状态变化写入 { NET_ALARM_INPUT_SOURCE_SIGNAL_INFO info = (NET_ALARM_INPUT_SOURCE_SIGNAL_INFO)Marshal.PtrToStructure(pBuf, typeof(NET_ALARM_INPUT_SOURCE_SIGNAL_INFO)); var alarm = alarmdata.Where(u => u.Channel_ID - 1 == info.nChannelID).FirstOrDefault(); //AppAlarmStatus appAlarmStatus = alarmstatusdto.Where(u => u.Channel_ID-1 == info.nChannelID).FirstOrDefault(); AppAlarmStatus appAlarmStatus = service.HashGet <AppAlarmStatus>("AlarmStatus_" + alarm.Alarm_ID, "data"); if (info.nAction == 0) // 0:开始 1:停止(设备内0表示报警) { if (appAlarmStatus != null) { appAlarmStatus.IsOpenDoor = alarm.IsOpenOrClosed; appAlarmStatus.IsAlarm = 1; appAlarmStatus.LastModificationTime = DateTime.Now.ToString(); appAlarmStatus.TreatmentState = 1; appAlarmStatus.AlarmHostIP = hostIp; service.HashSet <AppAlarmStatus>("AlarmStatus_" + alarm.Alarm_ID, "data", appAlarmStatus); if (appAlarmStatus.IsDefence == 1) //报警 { AppAlarmManageStates appAlarmManage = new AppAlarmManageStates(); appAlarmManage.AlarmHost_IP = hostIp; appAlarmManage.Alarm_ID = alarm.Alarm_ID; appAlarmManage.Channel_ID = info.nChannelID + 1; appAlarmManage.AlarmTime = DateTime.Now.ToString(); appAlarmManage.LastModificationTime = DateTime.Now; appAlarmManage.CreationTime = DateTime.Now; service.HashSet <AppAlarmStatus>("AlarmStatus_" + alarm.Alarm_ID, "data", appAlarmStatus); Console.WriteLine("设备处于布防状态"); } } else { UpdateAlarmManageStateDto AppAlarmManageStates2 = new UpdateAlarmManageStateDto(); AppAlarmManageStates2.AlarmHost_IP = hostIp; AppAlarmManageStates2.AlarmTime = info.stuTime.ToString(); AppAlarmManageStates2.Channel_ID = info.nChannelID; httpHelper.AddAlarmManageState(AppAlarmManageStates2); Console.WriteLine("此模块未添加进资料库"); } } else //消除报警状态 { if (appAlarmStatus != null) { appAlarmStatus.IsAlarm = 0; appAlarmStatus.LastModificationTime = DateTime.Now.ToString(); service.HashSet <AppAlarmStatus>("AlarmStatus_" + alarm.Alarm_ID, "data", appAlarmStatus); } else { //AppAlarmStatus appAlarmStatus4 = new AppAlarmStatus(); //appAlarmStatus4.IsAlarm = 0; //appAlarmStatus4.Channel_ID = info.nChannelID; //appAlarmStatus4.Alarm_ID = info.nChannelID.ToString(); //appAlarmStatus4.AlarmHostIP = hostIp; //appAlarmStatus4.LastModificationTime = info.stuTime.ToString(); //StatusDB.Add(appAlarmStatus4); } } Console.WriteLine($"报警输入源事件信息:IP:{hostIp},通道:{info.nChannelID+1},动作:{ GetAction(info.nAction)},报警时间:{DateTime.Now.ToString()}"); loghelper.WriteLog($"报警输入:IP:{hostIp},通道:{info.nChannelID+1},动作:{ GetAction(info.nAction)}"); } break; case EM_ALARM_TYPE.ALARM_DEFENCE_ARMMODE_CHANGE: //撤布防状态变化写入 { NET_ALARM_DEFENCE_ARMMODECHANGE_INFO info = (NET_ALARM_DEFENCE_ARMMODECHANGE_INFO)Marshal.PtrToStructure(pBuf, typeof(NET_ALARM_DEFENCE_ARMMODECHANGE_INFO)); var alarmstatuslist = httpHelper.GetAlarmsByHostIP(hostIp); var appAlarm = alarmstatuslist.Where(u => u.Channel_ID == info.nDefenceID).FirstOrDefault(); if (!service.HashExists(appAlarm.Alarm_ID, "data")) { var appAlarmStatus = service.HashGet <AppAlarmStatus>(appAlarm.Alarm_ID, "data"); if (appAlarmStatus != null) { if (info.emDefenceStatus == EM_DEFENCEMODE.ARMING) { appAlarmStatus.IsDefence = 1; //布防 } else if (info.emDefenceStatus == EM_DEFENCEMODE.DISARMING) { appAlarmStatus.IsDefence = 2; //撤防 } else { appAlarmStatus.IsDefence = -1; //未知 } appAlarmStatus.LastModificationTime = DateTime.Now.ToString(); service.HashSet("AlarmStatus_" + appAlarmStatus.Alarm_ID, "data", appAlarmStatus); } } //更新AppAlarmManageStates数据 AppAlarmManageStates appAlarmManage = httpHelper.GetAlarmManageStates(appAlarm.Alarm_ID).FirstOrDefault(); if (appAlarmManage != null && appAlarmManage.AlarmTime != null) { if (string.IsNullOrEmpty(appAlarmManage.WithdrawTime)) { //判断异常 if (info.emDefenceStatus == EM_DEFENCEMODE.ARMING) { appAlarmManage.DefenceTime = DateTime.Now.ToString(); appAlarmManage.WithdrawRemark = "用户布防"; } else { appAlarmManage.WithdrawTime = DateTime.Now.ToString(); appAlarmManage.WithdrawRemark = "报警撤防"; appAlarmManage.WithdrawMan = "系统默认"; } } else { if (info.emDefenceStatus == EM_DEFENCEMODE.ARMING) { appAlarmManage.DefenceTime = DateTime.Now.ToString(); // appAlarmManage.WithdrawRemark = "用户布防"; } else { appAlarmManage.WithdrawTime = DateTime.Now.ToString(); appAlarmManage.WithdrawRemark = "重复撤防"; appAlarmManage.WithdrawMan = "系统默认"; } } appAlarmManage.LastModificationTime = DateTime.Now; httpHelper.UpdateAlarmManageState(appAlarmManage); } else { UpdateAlarmManageStateDto appAlarmManage3 = new UpdateAlarmManageStateDto(); appAlarmManage3.AlarmHost_IP = hostIp; appAlarmManage3.Channel_ID = info.nDefenceID + 1; if (alarmdata.Where(u => u.Channel_ID - 1 == info.nDefenceID).FirstOrDefault() != null) { appAlarmManage3.Alarm_ID = alarmdata.Where(u => u.Channel_ID - 1 == info.nDefenceID).FirstOrDefault().Alarm_ID; } if (info.emDefenceStatus == EM_DEFENCEMODE.ARMING) { appAlarmManage3.DefenceTime = DateTime.Now.ToString(); } else { appAlarmManage3.WithdrawTime = DateTime.Now.ToString(); appAlarmManage3.WithdrawRemark = "用户撤防"; appAlarmManage3.WithdrawMan = "系统默认"; } httpHelper.AddAlarmManageState(appAlarmManage3); } Console.WriteLine($"防区布撤防状态改变事件信息:IP:{hostIp},状态:{GetDefence(info.emDefenceStatus)}, 防区号:{info.nDefenceID+1},时间:{DateTime.Now.ToString()}"); loghelper.WriteLog($"防区布撤防信息:IP:{hostIp}, 防区号:{info.nDefenceID+1},状态:{GetDefence(info.emDefenceStatus)}"); } break; default: Console.WriteLine(lCommand.ToString("X")); break; } return(true); }