diff --git a/CRICS_V3_1124.suo b/CRICS_V3_1124.suo
index 1dd2740..a6f04f4 100644
Binary files a/CRICS_V3_1124.suo and b/CRICS_V3_1124.suo differ
diff --git a/Common/CSRedisCacheHelper.cs b/Common/CSRedisCacheHelper.cs
index aa110c9..c9ac3c3 100644
--- a/Common/CSRedisCacheHelper.cs
+++ b/Common/CSRedisCacheHelper.cs
@@ -20,6 +20,7 @@ namespace Common
public static CSRedisClient redis3;
public static CSRedisClient redis4;
public static CSRedisClient redis5;
+ public static CSRedisClient redis6;
public static CSRedisClient redis_webchat;
//private static readonly string[] redisHosts = null;
private static int SessionExpireMinutes = int.Parse(ConfigurationManager.AppSettings["session_expire_minutes"]);
@@ -57,7 +58,7 @@ namespace Common
redis4 = new CSRedisClient(redisHostStr + ",password=,defaultDatabase=4");
redis5 = new CSRedisClient(redisHostStr + ",password=,defaultDatabase=5");
- redis5 = new CSRedisClient(redisHostStr + ",password=,defaultDatabase=5");
+ redis6 = new CSRedisClient(redisHostStr + ",password=,defaultDatabase=6");
redis_webchat = new CSRedisClient(string.Format(webchat_redisstr + ",password={0},defaultDatabase=0",webchat_redis_pwd));
//Native subscribe
@@ -200,6 +201,10 @@ namespace Common
{
client = redis5;
}
+ else if (SliceNo == 6)
+ {
+ client = redis6;
+ }
else
{
client = redis;
diff --git a/CommonEntity/GetHostIDByNumber.cs b/CommonEntity/GetHostIDByNumber.cs
index 364591e..bc9f112 100644
--- a/CommonEntity/GetHostIDByNumber.cs
+++ b/CommonEntity/GetHostIDByNumber.cs
@@ -22,6 +22,12 @@ namespace CommonEntity
public string RemoteEndPoint { get; set; }
public string HexData { get; set; }
public DateTime CurrentTime { get; set; }
+
+ public string MAC { get; set; }
+ public string CurrentStatus { get; set; }
+ public long UnixTime { get; set; }
+ public byte[] LauncherVersion { get; set; }
+ public byte[] RebootReason { get; set; }
}
///
/// 新版本的设备状态
diff --git a/ConsoleApplication2/Program.cs b/ConsoleApplication2/Program.cs
index d3ad2b9..d8c0d5a 100644
--- a/ConsoleApplication2/Program.cs
+++ b/ConsoleApplication2/Program.cs
@@ -306,6 +306,7 @@ namespace ConsoleApplication2
#endif
+ var ggg= BitConverter.ToString(new byte[]{0xaa,0xcc});
AAA();
string aaa111 = "233003";
var bj1 = aaa111.Substring(0, 3);
diff --git a/RCUHost/Implement/HostServer.cs b/RCUHost/Implement/HostServer.cs
index 8a0233d..667ac38 100644
--- a/RCUHost/Implement/HostServer.cs
+++ b/RCUHost/Implement/HostServer.cs
@@ -1280,13 +1280,14 @@ namespace RCUHost.Implement
o.CurrentTime = DateTime.Now;
o.EndPoint = EndPointStr;
o.UnixTime = Tools.GetUnixTime();
+ o.MAC = BitConverter.ToString(gga.Data.Skip(9).Take(2).ToArray());
//新来的数据
var n = Newtonsoft.Json.JsonConvert.SerializeObject(o);
//上线
//string EEE = CSRedisCacheHelper.Get(EndPointStr);
- var EEE = CSRedisCacheHelper.Get_Partition(EndPointStr, 4);
+ var EEE = CSRedisCacheHelper.Get_Partition(EndPointStr, 6);
var dtstart = CSRedisCacheHelper.ForeverGet(CacheKey.ServerStartTime);
DateTime SSS = DateTime.Now;
DateTime.TryParse(dtstart, out SSS);
@@ -1295,7 +1296,8 @@ namespace RCUHost.Implement
{
CSRedisCacheHelper.Publish("redis-on_off_line", n);
}
- CSRedisCacheHelper.Set_PartitionWithTime(EndPointStr, n, 5, 4);
+ CSRedisCacheHelper.Set_PartitionWithTime(EndPointStr, n, 5, 6);
+ CSRedisCacheHelper.Set_PartitionWithTime(EndPointStr, n, 20, 4);
@@ -1713,9 +1715,14 @@ namespace RCUHost.Implement
int length = context111.Data.Length - offset - 2;
var data = OriginalByte.Skip(offset).ToArray();
- var LauncherVersion = data.Take(20);
- var RestartReason = data.Skip(20).Take(1);
+ var LauncherVersion = data.Take(20).ToArray();
+ var RestartReason = data.Skip(20).Take(1).ToArray();
+ string RoomNUMBER = CSRedisCacheHelper.HMGet(5, CacheKey.RoomNumber_HostNumber, HostNNN)[0];
+ if (string.IsNullOrEmpty(RoomNUMBER))
+ {
+ return;
+ }
NewVersionHexData ns = new NewVersionHexData();
ns.CmdType = 0x33;
ns.HotelCode = hotelCode;
@@ -1723,9 +1730,17 @@ namespace RCUHost.Implement
ns.RemoteEndPoint = EndPoint;
ns.CurrentTime = DateTime.Now;
ns.HexData = Tools.ByteToString(context111.Data);
+
+ ns.RoomNumber = RoomNUMBER;
+ ns.MAC = BitConverter.ToString(OriginalByte.Skip(9).Take(2).ToArray());
+ ns.CurrentStatus = "on";
+ ns.UnixTime = Tools.GetUnixTime();
+ ns.LauncherVersion = LauncherVersion;
+ ns.RebootReason = RestartReason;
string mns1 = Newtonsoft.Json.JsonConvert.SerializeObject(ns);
CSRedisCacheHelper.Publish("redis-rcu-restart", mns1);
}
+ #region 取电
if (cmdType == 0x35)
{
ReplyWithContent(context111, new byte[] { 0x00 }, framenolist);
@@ -1806,6 +1821,7 @@ namespace RCUHost.Implement
}
}
}
+ #endregion
// AA 55 35 00 54 33 53 41 34 10 80 EB 03 6B 24
// 01 //协议版本
@@ -1843,6 +1859,7 @@ namespace RCUHost.Implement
//P30~P33:通道总能耗,单位:Wh(1度电 = 1KWh)
+ #region 定时上报
if (cmdType == 0x36)
{
@@ -1937,6 +1954,9 @@ namespace RCUHost.Implement
//ns.HexData = Tools.ByteToString(context111.Data);
//CSRedisCacheHelper.Publish("redis-rcu-hexdata", Newtonsoft.Json.JsonConvert.SerializeObject(ns));
}
+ #endregion
+
+ #region 定时上报
if (cmdType == 0x34)
{
ReplyWithContent(context111, new byte[] { 0x00 }, framenolist);
@@ -2540,6 +2560,7 @@ namespace RCUHost.Implement
logger.Error("定是上报出错:" + ex.StackTrace);
}
}
+ #endregion
//向服务器获取房态
if (cmdType == 0x32)
diff --git a/RCUHost/Implement/RoomStatusReceiver.cs b/RCUHost/Implement/RoomStatusReceiver.cs
index fc79a50..25c1091 100644
--- a/RCUHost/Implement/RoomStatusReceiver.cs
+++ b/RCUHost/Implement/RoomStatusReceiver.cs
@@ -157,7 +157,7 @@ namespace RCUHost.Implement
//来一个数据,把所有的地址拼接起来
string YiJingChuLiGuo = CacheKey.AllReadyDealWith0E_Prefix + "_" + HostNumberOnly;
MemoryCacheHelper.Delete(YiJingChuLiGuo);
- ProcessModal_NEW_NEW(host, status.Devices, isTriggerWelcomeMsg, context.MessageID, context.IsMonitor);//更新灯光及其他回路状态
+ ProcessModal_NEW_NEW(host, status.Devices, isTriggerWelcomeMsg, context.MessageID, context.IsMonitor, context.Data, status);//更新灯光及其他回路状态
string nnn = VVV1 + VVV2;
if (!string.IsNullOrEmpty(nnn))
{
@@ -224,7 +224,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)
+ private void ProcessModal_NEW_NEW(Host host, ConcurrentDictionary devices, bool IsTriggerWelcomeMsg, string ContextMessageId, bool ismonitor, byte[] OriginalByteList, Status yuanshidata)
{
string UUID = "9dc6a0ee-dcf1-4385-b05f-09cb463838cd";
UUID = host.FCS_locationUUID;
@@ -257,6 +257,9 @@ namespace RCUHost.Implement
bool isInsert = false;
StepTongJi.SendInfo(4.3, "Task开始执行设备信息处理", ContextMessageId, ismonitor);
+
+ List shebei_changeaction_list = new List();
+ List exception_list = new List();
//StringBuilder sbSQL;
foreach (var device in devices)
{
@@ -1845,9 +1848,26 @@ namespace RCUHost.Implement
}
#endregion
+
+ //0关闭设备,
+ //1打开设备且当前设备处于关闭状态,
+ //2打开设备且当前设备处于打开状态
+ if (flag == 0 || flag == 1)
+ {
+
+ ts_deviceitem t1 = new ts_deviceitem();
+
+ string dizhi = device.Value.Address;
+ t1.dev_type = short.Parse(dizhi.Substring(0, 3));
+ t1.dev_addr = short.Parse(dizhi.Substring(3, 3));
+ t1.dev_loop = short.Parse(dizhi.Substring(6, 3));
+ t1.dev_data = device.Value.StatusReceiver;
+ shebei_changeaction_list.Add(t1);
+ }
#region 当设备或服务状态发生变化时,推送给指定的第三方接口
if ((flag == 0 || flag == 1) && (!string.IsNullOrEmpty(host.SysHotel.DeviceStatusPushURL)))
{
+
if (host.SysHotel.DeviceStatusPushURL.ToLower().IndexOf("wangjile") > -1)//freego过滤
{
switch (hostModal.Modal.ModalAddress)
@@ -1892,18 +1912,12 @@ namespace RCUHost.Implement
}
MyHttp.SendHttpData(ttt.Item1.SysHotel.DeviceStatusPushURL, resp);
- //string Key = "HttpRequest_" + resp.code + "_" + resp.roomNumber;
- //var Data = MemoryCacheHelper.Get(Key);
- //if (Data != null)
- //{
-
- //}
- //else
- //{
- // //XuanZhuOperation.ReportService(ttt.Item1.SysHotel.DeviceStatusPushURL, resp);
- //}
}, tup);
+
}
+
+
+
#endregion
@@ -1940,6 +1954,7 @@ namespace RCUHost.Implement
CSRedisCacheHelper.Publish("Redis-XuanZhuKafka", str111);
}
#endregion
+
}
else
{
@@ -1952,6 +1967,55 @@ namespace RCUHost.Implement
}
}
+ #region 新版本日志队列
+
+ byte[] OriginalByte = OriginalByteList;
+ DeviceActionData d1 = new DeviceActionData();
+ d1.ts_ms = Tools.GetUnixTime();
+ d1.hotel_id = HOTEL_CODE;
+ d1.room_id = ROOMNUMBER;
+ d1.device_id = HOSTNUMBER;
+ d1.frame_id = frameNo;
+ d1.cmd_word = "0E";
+ d1.udp_raw = OriginalByte;
+ d1.direction = "上报";
+
+
+ if (yuanshidata.SysLock)
+ {
+ d1.sys_lock_status = 1;
+ }
+ else
+ {
+ d1.sys_lock_status = 2;
+ }
+
+
+ if (yuanshidata.Faults != null && yuanshidata.Faults.Count > 0)
+ {
+ var F1 = yuanshidata.Faults;
+ foreach (var item in F1)
+ {
+ string dizhi = item.Value.FaultNo;
+ ts_faultitem t1 = new ts_faultitem();
+ t1.dev_type = short.Parse(dizhi.Substring(0, 3));
+ t1.dev_addr = short.Parse(dizhi.Substring(3, 3));
+ t1.dev_loop = short.Parse(dizhi.Substring(6, 3));
+ t1.error_type = item.Value.Type;
+ t1.error_data = item.Value.Data;
+ exception_list.Add(t1);
+ }
+ }
+
+ d1.device_list = shebei_changeaction_list;
+ d1.fault_list = exception_list;
+ d1.report_count = shebei_changeaction_list.Count;
+ d1.fault_count = exception_list.Count;
+
+ string sss111 = Newtonsoft.Json.JsonConvert.SerializeObject(d1);
+ CSRedisCacheHelper.Publish("redis-0X36-0X0F", sss111);
+ #endregion
+
StepTongJi.SendInfo(5, "Task中的设备处理代码执行完毕", ContextMessageId, ismonitor);
devices.Clear();
}
diff --git a/WebSite/Controllers/ApiController.cs b/WebSite/Controllers/ApiController.cs
index 9643220..41ae302 100644
--- a/WebSite/Controllers/ApiController.cs
+++ b/WebSite/Controllers/ApiController.cs
@@ -599,6 +599,8 @@ namespace WebSite.Controllers
///
///
///
+
+ //public ActionResult GetRoomAirList_Deprecate(string jsonData)
public ActionResult GetRoomAirList(string jsonData)
{
//return Json(new { IsSuccess = false, Result = "接口修改调整" }, JsonRequestBehavior.AllowGet);
@@ -927,6 +929,7 @@ namespace WebSite.Controllers
///
///
///
+ //public ActionResult GetRoomLightList_Deprecate(string jsonData)
public ActionResult GetRoomLightList(string jsonData)
{
@@ -1059,6 +1062,7 @@ namespace WebSite.Controllers
///
///
///
+ //public ActionResult GetRoomCurtainList_Deprecate(string jsonData)
public ActionResult GetRoomCurtainList(string jsonData)
{