From 1840794f40796aa582d7c42908d26818463be9f4 Mon Sep 17 00:00:00 2001 From: TianMaiCheng <746290578@qq.com> Date: Mon, 23 Mar 2026 08:48:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=AE=E4=BF=A1=E9=94=81?= =?UTF-8?q?=E7=94=B5=E9=87=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CRICS_V3_1124.suo | Bin 12780544 -> 12780544 bytes CommonEntity/CacheKey.cs | 5 + CommonEntity/DataTongJi.cs | 5 + ConsoleApplication666/Program.cs | 5 + RCUHost/Implement/HostServer.cs | 130 ++++++++------------ RCUHost/Implement/New_RoomStatusReceiver.cs | 44 +++++-- WebSite/Controllers/IoTController.cs | 2 +- WebSite/Controllers/RoomStatusController.cs | 16 +++ WebSite/Models/RoomStatusModels.cs | 5 + WebSite/Scripts/simon-room-status-index.js | 12 +- 10 files changed, 131 insertions(+), 93 deletions(-) diff --git a/CRICS_V3_1124.suo b/CRICS_V3_1124.suo index 465329af469a6e39b2b5aef7c8df9d93900e8fb3..b226b7d9ba410b8ffb76b4b473f5e5dc93f05e5a 100644 GIT binary patch delta 50364 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 diff --git a/CommonEntity/CacheKey.cs b/CommonEntity/CacheKey.cs index 7bd5d48..d3b2626 100644 --- a/CommonEntity/CacheKey.cs +++ b/CommonEntity/CacheKey.cs @@ -132,6 +132,11 @@ namespace CommonEntity /// 济南同派 特殊处理 /// public static string JiNan_TongPai_Spec = "jntp_spec"; + + /// + /// 微信 锁电量 + /// + public static string DianLiang = "DL"; } public class ChangLiangValue { diff --git a/CommonEntity/DataTongJi.cs b/CommonEntity/DataTongJi.cs index b9c0872..859813b 100644 --- a/CommonEntity/DataTongJi.cs +++ b/CommonEntity/DataTongJi.cs @@ -270,6 +270,11 @@ namespace CommonEntity /// public int IdentityInfo { get; set; } public int Bright_G { get; set; } + + /// + /// 微信锁电量 + /// + public int WeiXinSuo_DianLiang { get; set; } } /// diff --git a/ConsoleApplication666/Program.cs b/ConsoleApplication666/Program.cs index c0927de..fccdc67 100644 --- a/ConsoleApplication666/Program.cs +++ b/ConsoleApplication666/Program.cs @@ -25,6 +25,11 @@ namespace ConsoleApplication666 static void Main(string[] args) { + ushort abb=0x6440; + var gs1= BitConverter.GetBytes(abb); + var f1= gs1[0]; + var f2= gs1[1]; + bool NewResult = true || false; BigInteger hugeNumber = BigInteger.Parse("1234567890123456789012345678901234567890"); var H= hugeNumber.ToByteArray(); diff --git a/RCUHost/Implement/HostServer.cs b/RCUHost/Implement/HostServer.cs index 6d9906d..a085467 100644 --- a/RCUHost/Implement/HostServer.cs +++ b/RCUHost/Implement/HostServer.cs @@ -604,31 +604,6 @@ namespace RCUHost.Implement MemoryCacheHelper.Set(ShiJianLanJie, 1, DateTimeOffset.Now.AddSeconds(50)); } - - if (VVV.CmdType == 0x01) - { - //后面出问题了,这个功能先不用 - //升级之后,会上报注册指令,不能被跳过 - //string Key = "Upgrade_UpdateSQL_" + hostnumber1; - //object OOO1 = MemoryCacheHelper.Get(Key); - //if (OOO1 == null) - //{ - //string RegisterKey2 = "SearchHostFilter"; - - //上报注册指令太快会被拦截 - //string KKK = "RegisterKey_" + hostnumber1; - //object OOO = MemoryCacheHelper.Get(KKK); - //if (OOO != null) - //{ - // RCUHost.RCUHostCommon.tools.LanJieData(RegisterKey2, hotelCode); - // return; - //} - //} - } - - - - string LanJieKey = "Intercept"; ConcurrentBag RoomNumberList = null; bool isexists = DataTongJi.BlockLowerMachineList.TryGetValue(hotelCode, out RoomNumberList); @@ -652,19 +627,11 @@ namespace RCUHost.Implement //如果不存在就处理 else { - GaiXie g = new GaiXie(); g.Data = receiveBuffer111; g.IPEndPoint = remoteEP111.ToString(); var data = Newtonsoft.Json.JsonConvert.SerializeObject(g); CSRedisCacheHelper.StreamAdd(1, "All_UDPPackage_Data", data); - //ProcessData(context, hotelCode); - //var ts1 = new Tuple(context, hotelCode); - //Task.Factory.StartNew((actor_state) => - // { - // var gg = actor_state as Tuple; - // ProcessData(gg.Item1, gg.Item2); - // }, ts1); } } else @@ -681,19 +648,12 @@ namespace RCUHost.Implement } else { - //ProcessData(context, hotelCode); - GaiXie g = new GaiXie(); g.Data = receiveBuffer111; g.IPEndPoint = remoteEP111.ToString(); var data = Newtonsoft.Json.JsonConvert.SerializeObject(g); CSRedisCacheHelper.StreamAdd(1, "All_UDPPackage_Data", data); var ts1 = new Tuple(context, hotelCode); - //Task.Factory.StartNew((actor_state) => - // { - // var gg = actor_state as Tuple; - // ProcessData(gg.Item1, gg.Item2); - // }, ts1); } } #endregion @@ -1325,7 +1285,7 @@ namespace RCUHost.Implement //var TTT111= CSRedisCacheHelper.Get_Partition(HostNNN,7); //if ((string.IsNullOrEmpty(EEE) && ssspan.TotalMinutes > 5)||string.IsNullOrEmpty(TTT111)) //if ((string.IsNullOrEmpty(EEE) && ssspan.TotalMinutes > 5)) - if (string.IsNullOrEmpty(EEE)) + if (string.IsNullOrEmpty(EEE)) { CSRedisCacheHelper.Publish("redis-on_off_line", n); //CSRedisCacheHelper.Set_PartitionWithForever(HostNNN,"1",7); @@ -1376,41 +1336,41 @@ namespace RCUHost.Implement ///注册指令 也要推送 if (cmdType == 0x01) { - string RoomNUMBER = CSRedisCacheHelper.HMGet(5, CacheKey.RoomNumber_HostNumber, HostNNN)[0]; - if (string.IsNullOrEmpty(RoomNUMBER)) - { - return; - } - int startIndex = StructConverter.SizeOf(context111.SystemHeader); - SearchHostPacketReply? reply = DecodeSearchHostPacketReply(context111.Data, startIndex); - //SearchHostPacketReplyV2? C_Xilie_zhuji = null; - //if (context111.Data.Length > 100)//V2版本新补充的内容 + //string RoomNUMBER = CSRedisCacheHelper.HMGet(5, CacheKey.RoomNumber_HostNumber, HostNNN)[0]; + //if (string.IsNullOrEmpty(RoomNUMBER)) //{ - // C_Xilie_zhuji = DecodeSearchHostPacketReplyV2(context111.Data, 58); + // return; + //} + //int startIndex = StructConverter.SizeOf(context111.SystemHeader); + //SearchHostPacketReply? reply = DecodeSearchHostPacketReply(context111.Data, startIndex); + ////SearchHostPacketReplyV2? C_Xilie_zhuji = null; + ////if (context111.Data.Length > 100)//V2版本新补充的内容 + ////{ + //// C_Xilie_zhuji = DecodeSearchHostPacketReplyV2(context111.Data, 58); + ////} + //string MAC = ""; + //if (reply.HasValue) + //{ + // MAC = BitConverter.ToString(reply.Value.MAC); + // //string version = reply.Value.Version; + // //var ConfigVersion = String.Join(".", reply.Value.ConfigVersion); + // //var SubnetMask = String.Join(".", reply.Value.SubnetMask); + // //var Gateway = String.Join(".", reply.Value.Gateway); //} - string MAC = ""; - if (reply.HasValue) - { - MAC = BitConverter.ToString(reply.Value.MAC); - //string version = reply.Value.Version; - //var ConfigVersion = String.Join(".", reply.Value.ConfigVersion); - //var SubnetMask = String.Join(".", reply.Value.SubnetMask); - //var Gateway = String.Join(".", reply.Value.Gateway); - } - LMRegisterInfo lma = new LMRegisterInfo(); - lma.HotelCode = CODE; - lma.RoomNumber = RoomNUMBER; - lma.HostNumber = HostNNN; - lma.MAC = MAC; - lma.Original_Data = context111.Data; + //LMRegisterInfo lma = new LMRegisterInfo(); + //lma.HotelCode = CODE; + //lma.RoomNumber = RoomNUMBER; + //lma.HostNumber = HostNNN; + //lma.MAC = MAC; + //lma.Original_Data = context111.Data; - string ti = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - lma.CurrentDateTime = ti; - lma.UnixTime = Tools.GetUnixTime(); + //string ti = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + //lma.CurrentDateTime = ti; + //lma.UnixTime = Tools.GetUnixTime(); - string sss = Newtonsoft.Json.JsonConvert.SerializeObject(lma); - CSRedisCacheHelper.Publish("redis-0X01", sss); + //string sss = Newtonsoft.Json.JsonConvert.SerializeObject(lma); + //CSRedisCacheHelper.Publish("redis-0X01", sss); } try @@ -2389,8 +2349,8 @@ namespace RCUHost.Implement ///碳达人状态更新 if (!string.IsNullOrEmpty(HostID)) { - CarbonVIPReport(HostID, CarbonVIP,"054001000"); - CarbonVIPReport(HostID, CarbonVIP,"054000001"); + CarbonVIPReport(HostID, CarbonVIP, "054001000"); + CarbonVIPReport(HostID, CarbonVIP, "054000001"); } var DeviceCount = reader.ReadByte(); @@ -2541,7 +2501,7 @@ namespace RCUHost.Implement { if (fanspeed == 2 || fanspeed == 3) { - string KKKSpec = HostNNN + "_" + address+"_"+HostID; + string KKKSpec = HostNNN + "_" + address + "_" + HostID; if (status == 1) { string ReportTime111 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); @@ -2573,7 +2533,7 @@ namespace RCUHost.Implement string KKey = CacheKey.HostModalStatus_Prefix + "_" + HostID + "_" + address; var HHostModalData = CSRedisCacheHelper.Get_Partition(KKey); - if (HHostModalData==null) + if (HHostModalData == null) { HHostModalData = new HostModal_Cache(); HHostModalData.HostID = int.Parse(HostID); @@ -2582,7 +2542,7 @@ namespace RCUHost.Implement HHostModalData.Modal = new RoomTypeModalCache() { ModalAddress = address - }; + }; } if (HHostModalData != null) { @@ -2627,6 +2587,17 @@ namespace RCUHost.Implement } #region 给宝镜推送的数据 + short usa = 0; + string DLKey = CacheKey.DianLiang + "_" + HostNNN; + string dianliang = CSRedisCacheHelper.Get_Partition(DLKey, 5); + if (!string.IsNullOrEmpty(dianliang)) + { + short.TryParse(dianliang, out usa); + } + else + { + usa = -1; + } long tf0 = Tools.GetUnixTime(); NengHao4BaoJing ns2 = new NengHao4BaoJing() { @@ -2652,7 +2623,8 @@ namespace RCUHost.Implement //CardID = IdentityInfo, CardEvent = NOCardInfo, PMS_Status = PMS_CurrentStatus, - Bright_G = Bright_Va + Bright_G = Bright_Va, + WeiXinSuo_DianLiang=usa }; string mns = Newtonsoft.Json.JsonConvert.SerializeObject(ns2); @@ -2743,9 +2715,9 @@ namespace RCUHost.Implement /// /// /// - private static void CarbonVIPReport(string HostID, byte CarbonVIP,string Address) + private static void CarbonVIPReport(string HostID, byte CarbonVIP, string Address) { - string KKey = CacheKey.HostModalStatus_Prefix + "_" + HostID + "_" +Address; + string KKey = CacheKey.HostModalStatus_Prefix + "_" + HostID + "_" + Address; var OldHostModal = CSRedisCacheHelper.Get_Partition(KKey); if (OldHostModal != null) { diff --git a/RCUHost/Implement/New_RoomStatusReceiver.cs b/RCUHost/Implement/New_RoomStatusReceiver.cs index 54ca2c3..6345b9b 100644 --- a/RCUHost/Implement/New_RoomStatusReceiver.cs +++ b/RCUHost/Implement/New_RoomStatusReceiver.cs @@ -123,7 +123,7 @@ namespace RCUHost.Implement if (status.Devices != null && status.Devices.Count > 0) { //来一个数据,把所有的地址拼接起来 - ProcessModal_NEW_NEW(host, status.Devices, isTriggerWelcomeMsg, context.MessageID, context.IsMonitor,context.RemoteEndPoint.ToString());//更新灯光及其他回路状态 + ProcessModal_NEW_NEW(host, status.Devices, isTriggerWelcomeMsg, context.MessageID, context.IsMonitor, context.RemoteEndPoint.ToString());//更新灯光及其他回路状态 } if (status.Faults != null && status.Faults.Count > 0) @@ -183,7 +183,7 @@ namespace RCUHost.Implement public static string Missionsys_Address = ConfigurationManager.AppSettings["missionsys_address"]; public static string MQTTInfo_report_url = ConfigurationManager.AppSettings["debug_log_report_url"].ToString(); - private void ProcessModal_NEW_NEW(Host host, ConcurrentDictionary devices, bool IsTriggerWelcomeMsg, string ContextMessageId, bool ismonitor,string EEndPoint) + private void ProcessModal_NEW_NEW(Host host, ConcurrentDictionary devices, bool IsTriggerWelcomeMsg, string ContextMessageId, bool ismonitor, string EEndPoint) { string UUID = "9dc6a0ee-dcf1-4385-b05f-09cb463838cd"; UUID = host.FCS_locationUUID; @@ -1146,27 +1146,49 @@ namespace RCUHost.Implement //MemoryModal.Mode = mode; break; case DeviceType.WXLock://微信锁 - status = device.Value.StatusReceiver & 0x00FF; - if (status == 1)//设备开 + //status = device.Value.StatusReceiver & 0x00FF; + status = device.Value.StatusReceiver; + var gs1 = BitConverter.GetBytes(status); + var f1 = gs1[0]; + var f2 = gs1[1]; + if (f1 == 1)//设备开 { if (hostModal.Status != 1)//设备有变化时才去更改状态 { hostModal.Status = 1; - //sbSQL.Append("Status=1,"); - - //MemoryModal.Status = 1; } } - else//设备关 + else if (f1 == 2)//设备关 { if (hostModal.Status != 2)//设备有变化时才去更改状态 { hostModal.Status = 2; - //sbSQL.Append("Status=2,"); - - //MemoryModal.Status = 2; } } + + //2026-03-29 阿文说 电量上报动作和 开关动作分两包数据上报 + else if (f1 == 0x40) + { + //杨格锁: + //P4: + //Bit7: + //门锁动作上报 + //Bit6: + //门锁电量上报 + //P5: + //门锁动作上报: + //0xE1:防撬报警 + //0xE2:假锁 + //0xE3:反锁 + //0xE4:门磁 + //0xE5:钥匙开锁 + //0xE6:门锁常开 + //门锁电量报警: + //电量:0-100 + ushort dianliang = (ushort)f2; + string DLKey = CacheKey.DianLiang + "_" + HOSTNUMBER; + CSRedisCacheHelper.Set_PartitionWithForever(DLKey,dianliang.ToString(),5); + } //更新主机主表 if (hostModal.Modal.Sort == 1)//.ModalAddress == "020001000") { diff --git a/WebSite/Controllers/IoTController.cs b/WebSite/Controllers/IoTController.cs index a12f134..48d806d 100644 --- a/WebSite/Controllers/IoTController.cs +++ b/WebSite/Controllers/IoTController.cs @@ -7460,7 +7460,7 @@ namespace WebSite.Controllers var name = item.applianceName; var area = item.area; List q1 = new List(); - if (name.Equals("灯")) + if (name.Equals("灯")||name.Equals("所有灯")) { q1 = hostModals.Where(A => A.Modal.Name.Contains("灯")).ToList(); } diff --git a/WebSite/Controllers/RoomStatusController.cs b/WebSite/Controllers/RoomStatusController.cs index b251f38..a1d64c1 100644 --- a/WebSite/Controllers/RoomStatusController.cs +++ b/WebSite/Controllers/RoomStatusController.cs @@ -362,6 +362,22 @@ namespace WebSite.Controllers var roomnum = room.RoomNumber; var roomModel = new RoomModel(); + #region 电量 + + string DLKey = CacheKey.DianLiang + "_" + room.HostNumber; + string dianliang = CSRedisCacheHelper.Get_Partition(DLKey, 5); + if (!string.IsNullOrEmpty(dianliang)) + { + ushort usa = 0; + ushort.TryParse(dianliang, out usa); + roomModel.WeiXinSuo_DianLiang = usa.ToString(); + } + else + { + roomModel.WeiXinSuo_DianLiang = ""; + } + #endregion + #region 碳达人 StringBuilder sb = new StringBuilder(); sb.Append(CacheKey.CarbonVIP_Prefix); diff --git a/WebSite/Models/RoomStatusModels.cs b/WebSite/Models/RoomStatusModels.cs index 242bba5..ca6a87a 100644 --- a/WebSite/Models/RoomStatusModels.cs +++ b/WebSite/Models/RoomStatusModels.cs @@ -114,6 +114,11 @@ namespace WebSite.Models /// public string CarbonVIP { get; set; } + /// + /// 微信锁电量 + /// + public string WeiXinSuo_DianLiang { get; set; } + /// /// 功率 /// diff --git a/WebSite/Scripts/simon-room-status-index.js b/WebSite/Scripts/simon-room-status-index.js index b1872ef..4ceb259 100644 --- a/WebSite/Scripts/simon-room-status-index.js +++ b/WebSite/Scripts/simon-room-status-index.js @@ -231,7 +231,8 @@ function loadRooms(opts, callback) { strHtml += "
" + r.Data[i].FloorRooms[j].RoomNumber; var CarbonVIP_Status = r.Data[i].FloorRooms[j].CarbonVIP; - console.log("VIP:"+CarbonVIP_Status); + var WeiXinSuo_DianLiang = r.Data[i].FloorRooms[j].WeiXinSuo_DianLiang; + console.log("VIP:" + WeiXinSuo_DianLiang); if (CarbonVIP_Status == "open") { strHtml += "" + r.Data[i].FloorRooms[j].RoomNumber + "
"; @@ -261,7 +262,14 @@ function loadRooms(opts, callback) { { //strHtml += "
" + r.Data[i].FloorRooms[j].Power + "
"; strHtml += "
" + r.Data[i].FloorRooms[j].RoomStatus + " " + r.Data[i].FloorRooms[j].Power + "
"; - strHtml += "
" + lang.Identity + ":" + r.Data[i].FloorRooms[j].Identity + " " + r.Data[i].FloorRooms[j].PowerSupplyName + "
"; + if (WeiXinSuo_DianLiang != "") + { + strHtml += "
" + lang.Identity + ":" + r.Data[i].FloorRooms[j].Identity + " " + r.Data[i].FloorRooms[j].PowerSupplyName + " E:" + r.Data[i].FloorRooms[j].WeiXinSuo_DianLiang + "
"; + } + else + { + strHtml += "
" + lang.Identity + ":" + r.Data[i].FloorRooms[j].Identity + " " + r.Data[i].FloorRooms[j].PowerSupplyName + "
"; + } strHtml += "
" + r.Data[i].FloorRooms[j].AirStatusName + " " + strRoomTemp + r.Data[i].FloorRooms[j].RoomTemp + "℃ " + r.Data[i].FloorRooms[j].SettingTemp + "℃" + "
"; strHtml += "
" + r.Data[i].FloorRooms[j].ValveName + " " + airMode(r.Data[i].FloorRooms[j].Mode) + " " + fanSpeed(r.Data[i].FloorRooms[j].FanSpeed) + "
"; if (r.Data[i].FloorRooms[j].Peripheral != "")