From 426d99959c41ad0e55cf9e776544e3240d049067 Mon Sep 17 00:00:00 2001 From: TianMaiCheng <746290578@qq.com> Date: Wed, 11 Mar 2026 16:30:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=BF=83=E8=B7=B3?= =?UTF-8?q?=E6=8E=A8=E9=80=81=EF=BC=8C=E7=A9=BA=E4=BA=BA=E8=AF=B4=E6=88=91?= =?UTF-8?q?=E5=A4=AA=E5=86=B7=E4=BA=86=EF=BC=8C=E6=88=91=E5=A4=AA=E7=83=AD?= =?UTF-8?q?=E4=BA=86=E7=9A=84=E6=97=B6=E5=80=99=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=89=93=E5=BC=80=E7=A9=BA=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CRICS_V3_1124.suo | Bin 12780544 -> 12780544 bytes Common/Tools.cs | 11 +++++++++++ CommonEntity/CommonEntity.csproj | 1 + CommonEntity/Kafka_XinTiao.cs | 16 ++++++++++++++++ RCUHost/Implement/HostServer.cs | 18 +++++++++++++++++- WebSite/Controllers/IoTController.cs | 7 +++++++ 6 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 CommonEntity/Kafka_XinTiao.cs diff --git a/CRICS_V3_1124.suo b/CRICS_V3_1124.suo index b7c5f86e64cc275235797da5b45c9f10f14de08f..913694f022795429becec82e6788bb16b7b705b7 100644 GIT binary patch delta 41653 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 + /// 格林尼治时间 毫秒 + /// + /// + public static long GetUnixTime_MS() + { + DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + long unixTimestampMillisecondsManual = (long)(DateTime.UtcNow - unixEpoch).TotalMilliseconds; + return unixTimestampMillisecondsManual; + } public static DateTime GetTimeFromUnixTime(long timestampSeconds) { // Unix 时间戳的起始时间(1970-01-01 00:00:00 UTC) diff --git a/CommonEntity/CommonEntity.csproj b/CommonEntity/CommonEntity.csproj index 873c302..9ac461d 100644 --- a/CommonEntity/CommonEntity.csproj +++ b/CommonEntity/CommonEntity.csproj @@ -70,6 +70,7 @@ + diff --git a/CommonEntity/Kafka_XinTiao.cs b/CommonEntity/Kafka_XinTiao.cs new file mode 100644 index 0000000..d66fd5e --- /dev/null +++ b/CommonEntity/Kafka_XinTiao.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace CommonEntity +{ + public struct Kafka_XinTiao + { + public string current_time { get; set; } + public long ts_ms { get; set; } + public string hotel_id { get; set; } + public string device_id { get; set; } + public string room_id { get; set; } + } +} diff --git a/RCUHost/Implement/HostServer.cs b/RCUHost/Implement/HostServer.cs index 251823b..cbfbace 100644 --- a/RCUHost/Implement/HostServer.cs +++ b/RCUHost/Implement/HostServer.cs @@ -1270,6 +1270,22 @@ namespace RCUHost.Implement string CODE = context111.SystemHeader.Value.HostNumber.ToHotelCode().ToString(); string hotelCode = CODE; string EndPoint = context111.RemoteEndPoint.ToString(); + if (cmdType == 0x02) + { + string RoomNUMBER = CSRedisCacheHelper.HMGet(5, CacheKey.RoomNumber_HostNumber, HostNNN)[0]; + if (!string.IsNullOrEmpty(RoomNUMBER)) + { + string hotelid = CODE; + string roomid = RoomNUMBER; + Kafka_XinTiao k = new Kafka_XinTiao(); + k.hotel_id = CODE; + k.device_id = HostNNN; + k.room_id = RoomNUMBER; + k.ts_ms = Tools.GetUnixTime_MS(); + k.current_time = CPUData.GetNowPrecise().ToString("yyyy-MM-dd HH:mm:ss.ffffff") ; + CSRedisCacheHelper.Publish("redis-heartbeat", Newtonsoft.Json.JsonConvert.SerializeObject(k)); + } + } if (cmdType != 0x01 && cmdType != 0xb1) //if (!(cmdType==0x01||cmdType==0xb1) ) //在线状态 不排队 注册0x01 @@ -2506,7 +2522,7 @@ namespace RCUHost.Implement //温控器 var DataLen1 = Convert.ToInt32(WenKongQiDataLen); - ///ushort StatusReceiver = reader.ReadUInt16(); + //ushort StatusReceiver = reader.ReadUInt16(); ushort StatusReceiver = BitConverter.ToUInt16(reader.ReadBytes(2).Reverse().ToArray(), 0); int XiaoShu_BuFen = 0; float xiaoshu_l = 0.0f; diff --git a/WebSite/Controllers/IoTController.cs b/WebSite/Controllers/IoTController.cs index f826636..1eaa19b 100644 --- a/WebSite/Controllers/IoTController.cs +++ b/WebSite/Controllers/IoTController.cs @@ -1626,6 +1626,13 @@ namespace WebSite.Controllers } else { + + string tiaowen = request.header.name; + if (tiaowen.Equals("IncrementTemperatureRequest") || tiaowen.Equals("IncrementTemperatureRequest")) + { + HostModalManager.SetDevice(host, hostModal, 1, 0); + Thread.Sleep(50); + } //对房间设备进行操作 HostModalManager.SetDevice(host, hostModal, status, brightness, temperature, fanSpeed, mode, valve); }