From 7a43c970478beab1c7c94cd3b559d3862bf0f854 Mon Sep 17 00:00:00 2001 From: TianMaiCheng <746290578@qq.com> Date: Fri, 16 Jan 2026 11:37:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=83=BD=E8=80=97=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E5=92=8C=E6=96=B0=E7=9A=84=20=E9=82=A3=E4=B8=AA?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CRICS_V3_1124.suo | Bin 12780544 -> 12780544 bytes CommonEntity/CommonEntity.csproj | 1 + CommonEntity/DataTongJi.cs | 80 ++++++- CommonEntity/NengHao_Repeat.cs | 17 ++ ConsoleApplication2/Program.cs | 12 ++ RCUHost/Implement/HostServer.cs | 224 ++++++++++++++++---- RCUHost/Implement/New_RoomStatusReceiver.cs | 7 + RCUHost/Implement/RoomStatusReceiver.cs | 10 +- WebSite/Controllers/ApiController.cs | 61 ++++-- 9 files changed, 349 insertions(+), 63 deletions(-) create mode 100644 CommonEntity/NengHao_Repeat.cs diff --git a/CRICS_V3_1124.suo b/CRICS_V3_1124.suo index f464c84ab3bc7dd3726e61aabd8abdf2f014d888..f5de05019b552caa23fa9da3040a6ba10ec90ab8 100644 GIT binary patch delta 95101 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 z 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�%m%#m(r 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

`!)Y0AC8pAh%rBm56Kix?7_+i_K-Y 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 + diff --git a/CommonEntity/DataTongJi.cs b/CommonEntity/DataTongJi.cs index 208e72b..4a828b6 100644 --- a/CommonEntity/DataTongJi.cs +++ b/CommonEntity/DataTongJi.cs @@ -238,32 +238,90 @@ namespace CommonEntity /// public bool IsTakeCard { get; set; } + ///

+ /// 是否插卡 + /// + public int IsInsertCard { get; set; } + /// ///短离长离 ///我们这里叫卡事件 /// public ushort CardEvent { get; set; } - /// - /// 卡身份 - /// - public ushort CardID { get; set; } - /// /// PMS 状态 /// public string PMS_Status { get; set; } public int CarbonVIP { get; set; } - public double V { get; set; } - public double A { get; set; } - public double P { get; set; } - public double Energy_Consumption { get; set; } - public double Sum_Energy_Consumption { get; set; } + public List NengHaoList { get; set; } + //public double V { get; set; } + //public double A { get; set; } + //public double P { get; set; } + //public double Energy_Consumption { get; set; } + //public double Sum_Energy_Consumption { get; set; } public long CreateTime { get; set; } public string ReportTime { get; set; } public List AllDeviceData { get; set; } - public int IdentityInfo {get;set;} + + /// + /// 卡身份 + /// + public int IdentityInfo { get; set; } + } + + /// + /// ts 日志 + /// + public class NewVersionLog + { + public string hotel_id { get; set; } + public string room_id { get; set; } + public string device_id { get; set; } + public string ip { get; set; } + + public ushort power_state { get; set; } + public ushort guest_type { get; set; } + public ushort cardless_state { get; set; } + public ulong service_mask { get; set; } + public ushort pms_state { get; set; } + public ushort carbon_state { get; set; } + public int device_count { get; set; } + public ushort comm_seq { get; set; } + public List electricity { get; set; } + public List air_conditioner { get; set; } + public extra_data extra { get; set; } + + } + public class NengHaolog + { + public string address { get; set; } + public double voltage { get; set; } + public double ampere { get; set; } + public double power { get; set; } + //public double watt { get; set; } + public double energy { get; set; } + public double sum_energy { get; set; } + public string phase { get; set; } + } + public class KongTiao + { + public string address { get; set; } + public int state { get; set; } + public int model { get; set; } + public int speed { get; set; } + public int set_temp { get; set; } + public int now_temp { get; set; } + public int solenoid_valve { get; set; } + } + public class extra_data + { + public byte[] original_byte { get; set; } + public string source { get; set; } + public string ver { get; set; } + public object ac { get; set; } + public object meter { get; set; } } public class Interface3Log diff --git a/CommonEntity/NengHao_Repeat.cs b/CommonEntity/NengHao_Repeat.cs new file mode 100644 index 0000000..e5ab293 --- /dev/null +++ b/CommonEntity/NengHao_Repeat.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace CommonEntity +{ + public class NengHao_Repeat + { + public string address { get; set; } + public double dianya { get; set; } + public double dianliu { get; set; } + public double gonglv { get; set; } + public double nenghao { get; set; } + public double zongnenghao { get; set; } + } +} diff --git a/ConsoleApplication2/Program.cs b/ConsoleApplication2/Program.cs index 3d50bf8..9385689 100644 --- a/ConsoleApplication2/Program.cs +++ b/ConsoleApplication2/Program.cs @@ -96,6 +96,12 @@ namespace ConsoleApplication2 static void JieXi() { + NewVersionLog s = new NewVersionLog(); + var nas= JsonConvert.SerializeObject(s); + var data= Encoding.UTF8.GetBytes(nas); + + Encoding.UTF8.GetString(data); + string strnn1 = "AA 55 2F 00 54 33 53 41 02 34 80 EB 03 6B 24 34 D0 B8 11 6B 24 01 01 01 39 01 01 00 10 F0 55 E8 03 E8 03 00 00 E8 03 00 00 E8 03 00 00 9E 00"; @@ -249,6 +255,12 @@ namespace ConsoleApplication2 } static void Main(string[] args) { + + BitArray bit_a = new BitArray(new byte[] { 0xAA}); + + bool bfa= bit_a.Get(0); + bool bfaa= bit_a.Get(1); + var DDD = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffffff"); Console.WriteLine(DDD); var qqqhj = CSRedisCacheHelper.Get_Partition("HostModalStatusReceiver_13_000000001"); diff --git a/RCUHost/Implement/HostServer.cs b/RCUHost/Implement/HostServer.cs index dafae84..01f7a24 100644 --- a/RCUHost/Implement/HostServer.cs +++ b/RCUHost/Implement/HostServer.cs @@ -1314,7 +1314,7 @@ namespace RCUHost.Implement #region 新版协议 if (cmdType == 0x32 || cmdType == 0x33 || cmdType == 0x34 || cmdType == 0x35 || cmdType == 0x36) { - NewXieYi(context111, hotelCode, HostNNN, framenolist, cmdType, EndPoint); + NewXieYi(context111, hotelCode, HostNNN, framenolist, cmdType, EndPoint, MyFrameNO); } else { @@ -1632,8 +1632,10 @@ namespace RCUHost.Implement } } + + public static byte[] nocard_enum = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; public static object oo = new object(); - private void NewXieYi(ReceiverContext context_1, string hotelCode_1, string HostNNN_1, byte[] framenolist_1, byte cmdType_1, string EndPoint_1) + private void NewXieYi(ReceiverContext context_1, string hotelCode_1, string HostNNN_1, byte[] framenolist_1, byte cmdType_1, string EndPoint_1, ushort MyFrameNO) { var Tuple = new Tuple(context_1, hotelCode_1, HostNNN_1, framenolist_1, cmdType_1, EndPoint_1); Task.Factory.StartNew((state) => @@ -1895,14 +1897,81 @@ namespace RCUHost.Implement using (BinaryReader reader = new BinaryReader(stream)) { //版本 + //默认是02 var Version = reader.ReadByte(); //取电 + //P1:插卡与取电状态设备类型(1Byte) + //bit0-bit1 + //00 当前未取电 + //01 当前已经取电 + //bit2-bit3 + //00 无插卡 + //01 已经插卡 + + //下面的是是否取电 var TakeCardStatus = reader.ReadByte(); + bool 是否取电 = false; + ushort 是否取电_Int = 0; + int 是否插卡 = 0; + if (Version == 0x02) + { + BitArray bit_a = new BitArray(new byte[] { TakeCardStatus }); + bool b0 = bit_a.Get(0); + bool b1 = bit_a.Get(1); + bool b2 = bit_a.Get(2); + bool b3 = bit_a.Get(3); + if (b0 == false && b1 == false) + { + 是否取电 = false; + 是否取电_Int = 2; + } + else if (b0 == true && b1 == false) + { + 是否取电 = true; + 是否取电_Int = 1; + } + + if (b2 == false && b3 == false) + { + 是否插卡 = 2; + } + else if (b2 == true && b3 == false) + { + 是否插卡 = 1; + } + } + //如果是01就只有取电 + //从取电动作那里取数据 + if (Version == 0x01) + { + string HostID_redis = CSRedisCacheHelper.HMGet(5, CacheKey.HostId_HostNumber, HostNNN)[0]; + if (!string.IsNullOrEmpty(HostID)) + { + string KKey = CacheKey.HostModalStatus_Prefix + "_" + HostID + "_" + "004000001"; + var OldHostModal = CSRedisCacheHelper.Get_Partition(KKey); + if (OldHostModal != null) + { + var aaa = OldHostModal.Status; + if (aaa == 01) + { + 是否取电 = true; + } + else if (aaa == 02) + { + 是否取电 = false; + } + } + } + } + + + //身份 var IdentityInfo = reader.ReadByte(); + byte[] nocard_enum = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; //无卡逻辑状态(对应事件状态) //0x01:开门进入事件 //0x02:卡在人离事件 @@ -1914,6 +1983,21 @@ namespace RCUHost.Implement //0x08:长时间人离事件 var NOCardInfo = reader.ReadByte(); + if (!nocard_enum.Contains(NOCardInfo)) + { + NOCardInfo = 0x00; + } + #region BUG处理 + //只有同派酒店做这个处理 + if (hotelCode.Equals("2144")) + { + if (NOCardInfo == 0x03) + { + 是否插卡 = 2; + } + } + #endregion + //服务信息全部回路状态 1~64 64Bit 0 :关 1:开 //把8个字节转换成64个二进制位 var N = reader.ReadBytes(8); @@ -2010,9 +2094,19 @@ namespace RCUHost.Implement //碳达人 var CarbonVIP = reader.ReadByte(); + + byte[] carbon_enum = new byte[] { 0x01, 0x02 }; + if (!carbon_enum.Contains(CarbonVIP)) + { + CarbonVIP = 0x00; + } var DeviceCount = reader.ReadByte(); int DeviceCount_I = (int)DeviceCount; + + List nenghaoList = new List(); + List nenghaoList1 = new List(); + List kongtiaoList = new List(); for (int i = 0; i < DeviceCount_I; i++) { var QA = reader.ReadBytes(4); @@ -2020,6 +2114,8 @@ namespace RCUHost.Implement #region 能耗 if (QA[0] == 0x39) { + NengHao_Repeat nr = new NengHao_Repeat(); + NengHaolog nr1 = new NengHaolog(); string address = new DeviceAddress(QA).ToString(); //设备数据长度 var DeviceInfoLen = reader.ReadByte(); @@ -2055,14 +2151,15 @@ namespace RCUHost.Implement n.Mac = ""; n.EndPoint = EndPoint; n.Version = ((int)Version).ToString(); - if (TakeCardStatus == 0x01) - { - n.IsTakeCard = true; - } - else - { - n.IsTakeCard = false; - } + //if (TakeCardStatus == 0x01) + //{ + // n.IsTakeCard = true; + //} + //else + //{ + // n.IsTakeCard = false; + //} + n.IsTakeCard = 是否取电; n.V = Math.Round(V, 2); n.A = Math.Round(A, 2); n.P = Math.Round(P, 2); @@ -2077,33 +2174,21 @@ namespace RCUHost.Implement //这里不再发送这个了,改发送全部的数据 - NengHao4BaoJing ns2 = new NengHao4BaoJing() - { - HotelCode = n.HotelCode, - HostNumber = n.HostNumber, - RoomNumber = n.RoomNumber, - Mac = n.Mac, - EndPoint = n.EndPoint, - Version = n.Version, - IsTakeCard = n.IsTakeCard, - CarbonVIP = n.CarbonVIP, - V = dianya, - A = dianliu, - P = gonglv, - Energy_Consumption = nenghao, - Sum_Energy_Consumption = zongnenghao, - CreateTime = n.CreateTime, - ReportTime = n.ReportTime.ToString("yyyy-MM-dd HH:mm:ss"), - AllDeviceData = DeviceStatusList, - IdentityInfo = IdentityInfo, - CardID = IdentityInfo, - CardEvent = NOCardInfo, - PMS_Status = PMS_CurrentStatus - }; - - string mns = Newtonsoft.Json.JsonConvert.SerializeObject(ns2); - CSRedisCacheHelper.Publish("redis-power", mns); + nr.address = address; + nr.dianya = n.V; + nr.dianliu = n.A; + nr.gonglv = n.P; + nr.nenghao = n.KW_H; + nr.zongnenghao = n.Sum_KW_H; + nenghaoList.Add(nr); + nr1.address = address; + nr1.voltage = n.V; + nr1.ampere = n.A; + nr1.power = n.P; + nr1.energy = n.KW_H; + nr1.sum_energy = n.Sum_KW_H; + nenghaoList1.Add(nr1); string KeyFilter = "能耗"; RCUHost.RCUHostCommon.tools.LanJieData(KeyFilter, hotelCode.ToString()); @@ -2147,6 +2232,16 @@ namespace RCUHost.Implement int temperature = 0;//设定温度 int currentTemp = 0;//当前温度(室内温度) KongTiaoReport(StatusReceiver, out status, out temperature, out mode, out fanspeed, out currentTemp); + + KongTiao kkk = new KongTiao(); + kkk.state = status; + kkk.address = address; + kkk.model = mode; + kkk.speed = fanspeed; + kkk.now_temp = currentTemp; + kkk.set_temp = temperature; + kkk.solenoid_valve = valve; + kongtiaoList.Add(kkk); if (!string.IsNullOrEmpty(HostID)) { string KKey = CacheKey.HostModalStatus_Prefix + "_" + HostID + "_" + address; @@ -2195,6 +2290,63 @@ namespace RCUHost.Implement } #endregion } + + long tf0 = Tools.GetUnixTime(); + NengHao4BaoJing ns2 = new NengHao4BaoJing() + { + HotelCode = long.Parse(hotelCode), + HostNumber = HostNNN, + RoomNumber = RoomNUMBER, + Mac = "", + EndPoint = EndPoint, + Version = ((int)Version).ToString(), + IsTakeCard = 是否取电, + IsInsertCard = 是否插卡, + CarbonVIP = CarbonVIP, + NengHaoList = nenghaoList, + //V = dianya, + //A = dianliu, + //P = gonglv, + //Energy_Consumption = nenghao, + //Sum_Energy_Consumption = zongnenghao, + CreateTime = tf0, + ReportTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + AllDeviceData = DeviceStatusList, + IdentityInfo = IdentityInfo, + //CardID = IdentityInfo, + CardEvent = NOCardInfo, + PMS_Status = PMS_CurrentStatus + }; + + string mns = Newtonsoft.Json.JsonConvert.SerializeObject(ns2); + CSRedisCacheHelper.Publish("redis-power", mns); + + + #region TSlog + NewVersionLog tslog = new NewVersionLog() + { + hotel_id = hotelCode, + room_id = RoomNUMBER, + device_id = HostNNN, + ip = EndPoint, + power_state = 是否取电_Int, + cardless_state = Convert.ToUInt16(NOCardInfo), + guest_type = Convert.ToUInt16(IdentityInfo), + service_mask = BitConverter.ToUInt64(N, 0), + pms_state = Convert.ToUInt16(PMS), + carbon_state = Convert.ToUInt16(CarbonVIP), + device_count = DeviceCount_I, + comm_seq = MyFrameNO, + electricity=nenghaoList1, + air_conditioner=kongtiaoList, + extra = new extra_data() + { + original_byte = OriginalByte + } + }; + string mns111 = Newtonsoft.Json.JsonConvert.SerializeObject(tslog); + CSRedisCacheHelper.Publish("redis-tslog", mns111); + #endregion } } } diff --git a/RCUHost/Implement/New_RoomStatusReceiver.cs b/RCUHost/Implement/New_RoomStatusReceiver.cs index ad5c7b0..9a4368c 100644 --- a/RCUHost/Implement/New_RoomStatusReceiver.cs +++ b/RCUHost/Implement/New_RoomStatusReceiver.cs @@ -550,6 +550,13 @@ namespace RCUHost.Implement { TCLCommon.SendData(hotelcode, roomnum, TCLcuid, skillid, "SIP"); } + if (hotelcode.Equals("1085")) + { + if (hostModal.Modal.ModalAddress.Equals("004000021")) + { + TCLCommon.SendData(hotelcode, roomnum, TCLcuid, skillid, "ROMANTIC"); + } + } } #endregion diff --git a/RCUHost/Implement/RoomStatusReceiver.cs b/RCUHost/Implement/RoomStatusReceiver.cs index e274273..6f53963 100644 --- a/RCUHost/Implement/RoomStatusReceiver.cs +++ b/RCUHost/Implement/RoomStatusReceiver.cs @@ -628,7 +628,13 @@ namespace RCUHost.Implement { TCLCommon.SendData(hotelcode, roomnum, TCLcuid, skillid, "SIP"); } - + if (hotelcode.Equals("1085")) + { + if (hostModal.Modal.ModalAddress.Equals("004000023")) + { + TCLCommon.SendData(hotelcode, roomnum, TCLcuid, skillid, "ROMANTIC"); + } + } } #endregion @@ -2221,7 +2227,7 @@ namespace RCUHost.Implement var DDD = State as Tuple; string Res_P = MyHttp.SendHttpData(DDD.Item1, DDD.Item1); //XuanZhuOperation.ReportService(DDD.Item1, DDD.Item2); - logger.Error("Fault Return:" + ""); + //logger.Error("Fault Return:" + ""); }, fault_data); } } diff --git a/WebSite/Controllers/ApiController.cs b/WebSite/Controllers/ApiController.cs index b0b6e62..3463010 100644 --- a/WebSite/Controllers/ApiController.cs +++ b/WebSite/Controllers/ApiController.cs @@ -3819,20 +3819,7 @@ namespace WebSite.Controllers { return Json(new { IsSuccess = false, Data = "hostid_lists不能为空" }); } - int roomTypeID = 0; - int.TryParse(b, out roomTypeID); - - logger.Error("微信端开始升级: " + fileName + " " + roomTypeID + " host_list: " + host_list_str); - var host_list = Newtonsoft.Json.JsonConvert.DeserializeObject>(host_list_str); - - //让服务器获取升级文件 - HostUpdateController.GetUpdateFileByRoomTypeID(roomTypeID); - - string lll = JsonConvert.SerializeObject(host_list); - HostUpdateController hh = new HostUpdateController(); - logger.Error("开始升级: " + fileName + " host_list: " + lll); - //升级 - hh.ShengJI_NEW(host_list, fileName, HostManager); + ReallyUpgrade(b, host_list_str, fileName); return Json(new { IsSuccess = true, Data = "正在升级,请等待……" }); } catch (Exception ex) @@ -3841,6 +3828,52 @@ namespace WebSite.Controllers } } + [HttpPost()] + public ActionResult WebChatUpgradeTimer() + { + try + { + string b = Request.Form["roomTypeID"].ToString(); + if (string.IsNullOrEmpty(b)) + { + return Json(new { IsSuccess = false, Data = "roomTypeID不能为空" }); + } + + string host_list_str = Request.Form["hostid_lists"].ToString(); + string fileName = Request.Form["upgradefileName"].ToString(); + + if (string.IsNullOrEmpty(host_list_str)) + { + return Json(new { IsSuccess = false, Data = "hostid_lists不能为空" }); + } + ReallyUpgrade(b, host_list_str, fileName); + return Json(new { IsSuccess = true, Data = "正在升级,请等待……" }); + } + catch (Exception ex) + { + return Json(new { IsSuccess = false, Data = ex.Message }); + } + } + + + private void ReallyUpgrade(string 房型ID, string host_list_str, string fileName) + { + int roomTypeID = 0; + int.TryParse(房型ID, out roomTypeID); + + logger.Error("微信端开始升级: " + fileName + " " + roomTypeID + " host_list: " + host_list_str); + var host_list = Newtonsoft.Json.JsonConvert.DeserializeObject>(host_list_str); + + //让服务器获取升级文件 + HostUpdateController.GetUpdateFileByRoomTypeID(roomTypeID); + + string lll = JsonConvert.SerializeObject(host_list); + HostUpdateController hh = new HostUpdateController(); + logger.Error("开始升级: " + fileName + " host_list: " + lll); + //升级 + hh.ShengJI_NEW(host_list, fileName, HostManager); + } + [HttpPost()] public ActionResult QueryUpdateHostProgressBar(string HostIDList) {