增加升级 ,增加 新版本的日志推送

This commit is contained in:
2026-01-30 09:52:17 +08:00
parent 3a5ace4817
commit e4610f1ffa
11 changed files with 413 additions and 47 deletions

Binary file not shown.

View File

@@ -77,6 +77,9 @@ namespace Common
Marshal.Copy(bytes, startIndex, structPtr, size);
structObj = Marshal.PtrToStructure(structPtr, type);
}
catch (Exception)
{
}
finally
{
Marshal.FreeHGlobal(structPtr);

View File

@@ -236,7 +236,7 @@ namespace CommonEntity
/// <summary>
/// 这个叫是否 取电 取断电状态
/// </summary>
public bool IsTakeCard { get; set; }
public int IsTakeCard { get; set; }
/// <summary>
/// 是否插卡
@@ -269,6 +269,7 @@ namespace CommonEntity
/// 卡身份
/// </summary>
public int IdentityInfo { get; set; }
public int Bright_G { get; set; }
}
/// <summary>
@@ -293,6 +294,60 @@ namespace CommonEntity
public List<KongTiao> air_conditioner { get; set; }
public extra_data extra { get; set; }
public int insert_card { get; set; }
public int bright_g { get; set; }
public int version { get; set; }
}
public class ts_deviceitem
{
public short dev_type { get; set; }
public short dev_addr { get; set; }
public short dev_loop { get; set; }
public int dev_data { get; set; }
}
public class ts_faultitem
{
public short dev_type { get; set; }
public short dev_addr { get; set; }
public short dev_loop { get; set; }
public short error_type { get; set; }
public int error_data { get; set; }
}
public class ts_controlitem
{
public short dev_type { get; set; }
public short dev_addr { get; set; }
public short dev_loop { get; set; }
public short type_l { get; set; }
public int type_h { get; set; }
}
/// <summary>
/// 0x36
/// </summary>
public class DeviceActionData
{
public long ts_ms { get; set; }
public string hotel_id { get; set; }
public string room_id { get; set; }
public string device_id { get; set; }
/// <summary>
/// "上报" 或 "下发"
/// </summary>
public string direction { get; set; }
public string cmd_word { get; set; }
public int frame_id { get; set; }
public string udp_raw { get; set; }
public int sys_lock_status { get; set; }
public int report_count { get; set; }
public int fault_count { get; set; }
public List<ts_deviceitem> device_list { get; set; }
public List<ts_faultitem> fault_list { get; set; }
public List<ts_controlitem> control_list { get; set; }
}
public class NengHaolog
{

View File

@@ -97,8 +97,8 @@ namespace ConsoleApplication2
{
NewVersionLog s = new NewVersionLog();
var nas= JsonConvert.SerializeObject(s);
var data= Encoding.UTF8.GetBytes(nas);
var nas = JsonConvert.SerializeObject(s);
var data = Encoding.UTF8.GetBytes(nas);
Encoding.UTF8.GetString(data);
@@ -250,21 +250,73 @@ namespace ConsoleApplication2
}
static void RedisTest()
{
var redis_webchat = new CSRedisClient(string.Format("47.119.147.104:26379" + ",password={0},defaultDatabase=0", "1001^_^lool"));
redis_webchat.HMSet("a","b","c");
var redis_webchat = new CSRedisClient(string.Format("47.119.147.104:26379" + ",password={0},defaultDatabase=0", "1001^_^lool"));
redis_webchat.HMSet("a", "b", "c");
}
static void AAA()
{
string nnn = "AA 55 30 00 54 33 53 41 0F 15 71 FF FF FF FF 05 07 01 00 00 00 80 07 02 00 00 00 80 07 03 00 00 00 80 07 04 00 00 00 80 07 05 00 00 00 80 CA 7C";
var data = Tools.GetBytesFromString(nnn.Replace(" ", ""));
string hostNumber = "233003055055";
var cmdtype = data[8];
var device_count = data[15];
if (cmdtype == 0x0F)
{
byte[] framenolist = data.Skip(7).Take(2).ToArray();
var zhenhao = BitConverter.ToUInt16(framenolist, 0);
string RoomNUMBER = CSRedisCacheHelper.HMGet<string>(5, CacheKey.RoomNumber_HostNumber, hostNumber)[0];
if (!string.IsNullOrEmpty(RoomNUMBER))
{
var code = Tools.HostNumberToHotelCode(hostNumber);
DeviceActionData d1 = new DeviceActionData();
d1.ts_ms = Tools.GetUnixTime();
d1.hotel_id = code.ToString();
d1.room_id = RoomNUMBER;
d1.device_id = hostNumber;
d1.frame_id = zhenhao;
d1.cmd_word = "0F";
d1.udp_raw = Tools.ByteToString(data);
d1.direction = "下发";
List<ts_deviceitem> lll1 = new List<ts_deviceitem>();
List<ts_faultitem> lll2 = new List<ts_faultitem>();
List<ts_controlitem> lll3 = new List<ts_controlitem>();
int skip = 16;
for (int i = 1; i <= device_count; i++)
{
var t1 = data.Skip(skip + (i - 1) * 6).Take(6).ToArray();
ts_controlitem ts = new ts_controlitem();
ts.dev_addr = t1[0];
ts.dev_type = t1[1];
ts.dev_loop = t1[2];
ts.type_h = t1[3];
ts.type_l = BitConverter.ToInt16(new byte[] { t1[5], t1[4] }, 0);
lll3.Add(ts);
}
d1.control_list = lll3;
}
}
}
static void Main(string[] args)
{
AAA();
string aaa111 = "233003";
var bj1 = aaa111.Substring(0, 3);
var a1 = int.Parse(bj1);
var a2 = int.Parse(aaa111.Substring(3, 3));
var a3 = new byte[] { Convert.ToByte(a1), Convert.ToByte(a2) };
var uuua = BitConverter.ToUInt16(a3, 0);
BitArray bit_a = new BitArray(new byte[] { 0xAA});
BitArray bit_a = new BitArray(new byte[] { 0xAA });
bool bfa= bit_a.Get(0);
bool bfaa= bit_a.Get(1);
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<HostModal_Cache>("HostModalStatusReceiver_13_000000001");
var qq223= JsonConvert.DeserializeObject<HostModal_Cache>(File.ReadAllText("3.txt"));
var qq223 = JsonConvert.DeserializeObject<HostModal_Cache>(File.ReadAllText("3.txt"));
RedisTest();
Data();
Console.ReadLine();

View File

@@ -214,18 +214,72 @@ namespace RCUHost.Implement
/// <param name="hostNumber"></param>
protected void Send(byte[] data, string hostNumber, string mac)
{
string ipAndPort = CSRedisCacheHelper.Get<string>(hostNumber, mac);
if (!string.IsNullOrEmpty(ipAndPort))
try
{
//if (HostServer!=null)
//{
// logger.Error("1111111111");
//}
//else
//{
// logger.Error("222222222222222222222");
//}
HostServer.Send(data, ipAndPort.ToString().Split(':')[0], int.Parse(ipAndPort.ToString().Split(':')[1]));
string ipAndPort = CSRedisCacheHelper.Get<string>(hostNumber, mac);
if (!string.IsNullOrEmpty(ipAndPort))
{
//这里判断0x0F
//AA 55 30 00 54 33 53 41 0F 15 71 FF FF FF FF
//05
//07 01 00 00 00 80
//07 02 00 00 00 80
//07 03 00 00 00 80
//07 04 00 00 00 80
//07 05 00 00 00 80 CA 7C
//AA 55 11 00 54 33 53 41 0F 15 71 3D 04 92 D0 6B 15
var cmdtype = data[8];
var device_count = data[15];
if (cmdtype == 0x0F)
{
byte[] framenolist = data.Skip(7).Take(2).ToArray();
var zhenhao = BitConverter.ToUInt16(framenolist, 0);
string RoomNUMBER = CSRedisCacheHelper.HMGet<string>(5, CacheKey.RoomNumber_HostNumber, hostNumber)[0];
if (!string.IsNullOrEmpty(RoomNUMBER))
{
var code = Tools.HostNumberToHotelCode(hostNumber);
DeviceActionData d1 = new DeviceActionData();
d1.ts_ms = Tools.GetUnixTime();
d1.hotel_id = code.ToString();
d1.room_id = RoomNUMBER;
d1.device_id = hostNumber;
d1.frame_id = zhenhao;
d1.cmd_word = "0F";
d1.udp_raw = Tools.ByteToString(data);
d1.direction = "下发";
List<ts_controlitem> lll3 = new List<ts_controlitem>();
int skip = 16;
for (int i = 1; i <= device_count; i++)
{
var t1 = data.Skip(skip + (i - 1) * 6).Take(6).ToArray();
ts_controlitem ts = new ts_controlitem();
ts.dev_addr = t1[0];
ts.dev_type = t1[1];
ts.dev_loop = t1[2];
ts.type_h = t1[3];
ts.type_l = BitConverter.ToInt16(new byte[] { t1[5], t1[4] }, 0);
lll3.Add(ts);
}
d1.control_list = lll3;
d1.report_count = lll3.Count;
string sss = Newtonsoft.Json.JsonConvert.SerializeObject(d1);
CSRedisCacheHelper.Publish("redis-0X36-0X0F", sss);
}
}
HostServer.Send(data, ipAndPort.ToString().Split(':')[0], int.Parse(ipAndPort.ToString().Split(':')[1]));
}
}
catch (Exception ex)
{
logger.Error("发送:"+ex.Message);
logger.Error(ex.StackTrace);
}
}
/// <summary>

View File

@@ -357,6 +357,7 @@ namespace RCUHost.Implement
/// <param name="needPushCommandQueue">是否需要将命令放入队列</param>
public void Send(byte[] data, IPEndPoint endPoint, bool needPushCommandQueue)
{
if (udpClient != null)
{
#region lock
@@ -831,6 +832,30 @@ namespace RCUHost.Implement
reader.BaseStream.Position = originalPosition;
//logger.Error("device_count error");
}
try
{
//故障数量默认0
int faultNumber = reader.ReadByte();
for (int i = 0; i < faultNumber; i++)
{
string faultNo = new DeviceAddress(reader.ReadBytes(4)).ToString();//设备类型1、设备地址1、回路地址2
byte type = reader.ReadByte();
if (!roomStatus.Faults.ContainsKey(faultNo + type.ToString()))
{
roomStatus.Faults[faultNo + type.ToString()] = new FaultStaus();
}
roomStatus.Faults[faultNo + type.ToString()].FaultNo = faultNo;
roomStatus.Faults[faultNo + type.ToString()].Type = type;//类型1在线状态0在线1离线2电量0~100%3电流4 1901故障检测次数
roomStatus.Faults[faultNo + type.ToString()].Data = reader.ReadByte();//内容
}
}
catch (Exception)
{
}
return roomStatus;
}
}
@@ -1320,6 +1345,26 @@ namespace RCUHost.Implement
}
else
{
if (cmdType == 0x0F)
{
string RoomNUMBER = CSRedisCacheHelper.HMGet<string>(5, CacheKey.RoomNumber_HostNumber, HostNNN)[0];
if (!string.IsNullOrEmpty(RoomNUMBER))
{
//控制回复
DeviceActionData d1 = new DeviceActionData();
d1.ts_ms = Tools.GetUnixTime();
d1.hotel_id = hotelCode;
d1.room_id = RoomNUMBER;
d1.device_id = HostNNN;
d1.frame_id = MyFrameNO;
d1.cmd_word = "0F";
d1.udp_raw = Tools.ByteToString(OriginalByte);
d1.direction = "上报";
string sss = Newtonsoft.Json.JsonConvert.SerializeObject(d1);
CSRedisCacheHelper.Publish("redis-0X36-0X0F", sss);
}
}
#region 01
if (cmdType == 0x01)
{
@@ -1794,16 +1839,96 @@ namespace RCUHost.Implement
if (cmdType == 0x36)
{
//Reply(context111);
string hexdata = Tools.ByteToString(context111.Data);
NewVersionHexData ns = new NewVersionHexData();
ns.CmdType = 0x36;
ns.HotelCode = hotelCode;
ns.HostNumber = HostNNN;
ns.RemoteEndPoint = EndPoint;
ns.CurrentTime = DateTime.Now;
ns.HexData = Tools.ByteToString(context111.Data);
string RoomNUMBER = CSRedisCacheHelper.HMGet<string>(5, CacheKey.RoomNumber_HostNumber, HostNNN)[0];
if (string.IsNullOrEmpty(RoomNUMBER))
{
return;
}
byte[] OriginalByte = context111.Data;
int offset = StructConverter.SizeOf(context111.SystemHeader);
int length = context111.Data.Length - offset - 2;
DeviceActionData d1 = new DeviceActionData();
d1.ts_ms = Tools.GetUnixTime();
d1.hotel_id = hotelCode;
d1.room_id = RoomNUMBER;
d1.device_id = HostNNN;
d1.frame_id = MyFrameNO;
d1.cmd_word = "36";
d1.udp_raw = Tools.ByteToString(OriginalByte);
d1.direction = "上报";
List<ts_deviceitem> lll1 = new List<ts_deviceitem>();
List<ts_faultitem> lll2 = new List<ts_faultitem>();
using (MemoryStream stream = new MemoryStream(context111.Data, offset, length))
{
Status status = NewStatusParse(stream);
if (status.SysLock)
{
d1.sys_lock_status = 1;
}
else
{
d1.sys_lock_status = 2;
}
if (status != null && status.Devices.Count > 0)
{
foreach (var item in status.Devices)
{
string ItemKKK = item.Key;
Device VVV = item.Value;
ts_deviceitem t1 = new ts_deviceitem();
string dizhi = VVV.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 = VVV.StatusReceiver;
lll1.Add(t1);
}
}
if (status.Faults != null && status.Faults.Count > 0)
{
var F1 = status.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;
lll2.Add(t1);
}
}
}
d1.device_list = lll1;
d1.fault_list = lll2;
d1.report_count = lll1.Count;
d1.fault_count = lll2.Count;
string sss = Newtonsoft.Json.JsonConvert.SerializeObject(d1);
CSRedisCacheHelper.Publish("redis-0X36-0X0F", sss);
//Reply(context111);
//string hexdata = Tools.ByteToString(context111.Data);
//NewVersionHexData ns = new NewVersionHexData();
//ns.CmdType = 0x36;
//ns.HotelCode = hotelCode;
//ns.HostNumber = HostNNN;
//ns.RemoteEndPoint = EndPoint;
//ns.CurrentTime = DateTime.Now;
//ns.HexData = Tools.ByteToString(context111.Data);
//CSRedisCacheHelper.Publish("redis-rcu-hexdata", Newtonsoft.Json.JsonConvert.SerializeObject(ns));
}
if (cmdType == 0x34)
@@ -1921,7 +2046,7 @@ namespace RCUHost.Implement
bool = false;
ushort _Int = 0;
int = 0;
if (Version == 0x02)
if (Version == 0x02 || Version == 0x03)
{
BitArray bit_a = new BitArray(new byte[] { TakeCardStatus });
bool b0 = bit_a.Get(0);
@@ -1930,16 +2055,24 @@ namespace RCUHost.Implement
bool b3 = bit_a.Get(3);
if (b0 == false && b1 == false)
{
= false;
//是否取电 = false;
_Int = 0;
}
else if (b0 == false && b1 == true)
{
_Int = 2;
}
else if (b0 == true && b1 == false)
{
= true;
//是否取电 = true;
_Int = 1;
}
if (b2 == false && b3 == false)
{
= 0;
}
else if (b2 == false && b3 == true)
{
= 2;
}
@@ -1977,11 +2110,10 @@ namespace RCUHost.Implement
}
//身份
var IdentityInfo = reader.ReadByte();
byte[] nocard_enum = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 };
byte[] nocard_enum = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A };
//无卡逻辑状态(对应事件状态)
//0x01开门进入事件
//0x02卡在人离事件
@@ -1991,6 +2123,8 @@ namespace RCUHost.Implement
//0x06室内按键触发
//0x07短暂人离事件
//0x08长时间人离事件
//0x09:短暂人离超时
//0x0A:长时间人离超时
var NOCardInfo = reader.ReadByte();
var NOCardInfo_NoFilter = NOCardInfo;
if (!nocard_enum.Contains(NOCardInfo))
@@ -2125,6 +2259,13 @@ namespace RCUHost.Implement
//碳达人
var CarbonVIP = reader.ReadByte();
int Bright_Va = -1;
if (Version == 0x03)
{
var LiangDu = reader.ReadBytes(4);
Bright_Va = (int)LiangDu[0];
}
var CarbonVIP_NoFilter = CarbonVIP;
byte[] carbon_enum = new byte[] { 0x01, 0x02 };
if (!carbon_enum.Contains(CarbonVIP))
@@ -2332,7 +2473,7 @@ namespace RCUHost.Implement
Mac = "",
EndPoint = EndPoint,
Version = ((int)Version).ToString(),
IsTakeCard = ,
IsTakeCard = _Int,
IsInsertCard = ,
CarbonVIP = CarbonVIP,
NengHaoList = nenghaoList,
@@ -2347,7 +2488,8 @@ namespace RCUHost.Implement
IdentityInfo = IdentityInfo,
//CardID = IdentityInfo,
CardEvent = NOCardInfo,
PMS_Status = PMS_CurrentStatus
PMS_Status = PMS_CurrentStatus,
Bright_G = Bright_Va
};
string mns = Newtonsoft.Json.JsonConvert.SerializeObject(ns2);
@@ -2358,11 +2500,14 @@ namespace RCUHost.Implement
#region TSlog
NewVersionLog tslog = new NewVersionLog()
{
version = (int)Version,
hotel_id = hotelCode,
room_id = RoomNUMBER,
device_id = HostNNN,
ip = EndPoint,
power_state = _Int,
insert_card = ,
bright_g = Bright_Va,
cardless_state = Convert.ToUInt16(NOCardInfo_NoFilter),
guest_type = Convert.ToUInt16(IdentityInfo),
service_mask = BitConverter.ToUInt64(N, 0),

View File

@@ -58,6 +58,7 @@ namespace RCUHost.Implement
foreach (var host in hosts)
{
SendUpdateRequest(host, fileMd5, blockNum, (byte)fileType, fileHref.Substring(fileHref.IndexOf("/")));//发送升级通知
Thread.Sleep(300);
this.updateHostList.Add(new UpdateHostWorker(host, hostUpdate, MessageIP, fileHref, updateFile));
if (hostUpdate == null)//从api获取升级文件方式为null保存主机表升级状态信息
{
@@ -214,8 +215,10 @@ namespace RCUHost.Implement
/// <param name="updateFileMd5">升级文件MD5值</param>
private void SendUpdateRequest(Host host, string updateFileMd5, ushort blockNum, byte fileType, string fileName)
{
logger.Error("主机升级:"+host.SysHotel.Code+":"+host.RoomNumber);
logger.Error("主机升级:"+host.SysHotel.Code+":"+host.RoomNumber+" FileMd5:"+updateFileMd5+" FileName:"+fileName);
byte[] data = CreateUpdateRequestPacket(updateFileMd5, blockNum, fileType, fileName);
logger.Error("升级HostNumber为"+host.HostNumber);
logger.Error("升级指令为:"+Tools.ByteToString(data));
Send(data, host.HostNumber, host.MAC);// host.IP, host.Port);
}
/// <summary>

View File

@@ -345,12 +345,31 @@ namespace WebSite.Controllers
return Json(new { IsSuccess = false, Message = "升级文件不合法!" });
}
string fileHref = "Uploads/room_type/" + hosts[hosts.Count - 1].RoomType.ID + "/" + fileName;//升级文件相对路径
//string fileMd5 = "";
//using (Stream stream = System.IO.File.Open(Tools.GetApplicationPath() + fileHref, FileMode.Open))
//{
// fileMd5 = Tools.ComputeFileHash(stream);
// stream.Close();
//}
string fileMd5 = "";
using (Stream stream = System.IO.File.Open(Tools.GetApplicationPath() + fileHref, FileMode.Open))
string FileKey = "FileMD5_" + fileHref;
string kkka = CSRedisCacheHelper.Get_Partition<string>(FileKey, 3);
if (!string.IsNullOrEmpty(kkka))
{
fileMd5 = Tools.ComputeFileHash(stream);
stream.Close();
fileMd5 = kkka;
}
else
{
using (Stream stream = System.IO.File.Open(Tools.GetApplicationPath() + fileHref, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
fileMd5 = Tools.ComputeFileHash(stream);
CSRedisCacheHelper.Set_PartitionWithTime<string>(FileKey, fileMd5, 5, 3);
stream.Close();
}
}
//HostUpdate hostUpdate = HostUpdateManager.Get(fileMd5, CurrentHotelID);
//if (null == hostUpdate)
//{
@@ -423,7 +442,7 @@ namespace WebSite.Controllers
using (Stream stream = System.IO.File.Open(Tools.GetApplicationPath() + fileHref, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
fileMd5 = Tools.ComputeFileHash(stream);
CSRedisCacheHelper.Set_PartitionWithTime<string>(FileKey, fileMd5, 60 * 60, 3);
CSRedisCacheHelper.Set_PartitionWithTime<string>(FileKey, fileMd5, 5, 3);
stream.Close();
}
}
@@ -472,12 +491,30 @@ namespace WebSite.Controllers
}
//string fileHref = "Uploads/room_type/" + hosts[hosts.Count - 1].RoomType.ID + "/" + fileName;//升级文件相对路径
string fileHref = "Uploads/room_type/" + RoomTypeID + "/" + fileName;//升级文件相对路径
//string fileMd5 = "";
//using (Stream stream = System.IO.File.Open(Tools.GetApplicationPath() + fileHref, FileMode.Open))
//{
// fileMd5 = Tools.ComputeFileHash(stream);
// stream.Close();
//}
string fileMd5 = "";
using (Stream stream = System.IO.File.Open(Tools.GetApplicationPath() + fileHref, FileMode.Open))
string FileKey = "FileMD5_" + fileHref;
string kkka = CSRedisCacheHelper.Get_Partition<string>(FileKey, 3);
if (!string.IsNullOrEmpty(kkka))
{
fileMd5 = Tools.ComputeFileHash(stream);
stream.Close();
fileMd5 = kkka;
}
else
{
using (Stream stream = System.IO.File.Open(Tools.GetApplicationPath() + fileHref, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
fileMd5 = Tools.ComputeFileHash(stream);
CSRedisCacheHelper.Set_PartitionWithTime<string>(FileKey, fileMd5, 6, 3);
stream.Close();
}
}
HostManager1.UpdateHostC(null, fileType, fileHref, fileMd5, hosts);
IList<string> hostNumberList = new List<string>();
foreach (Host h in hosts)

View File

@@ -7433,6 +7433,7 @@ namespace WebSite.Controllers
{
var action = item.action;
var name = item.applianceName;
//var area = item.area;
List<HostModal> q1 = new List<HostModal>();
if (name.Equals("灯"))
{
@@ -7440,6 +7441,10 @@ namespace WebSite.Controllers
}
else
{
//if (!string.IsNullOrEmpty(area))
//{
// name = area+ name;
//}
q1 = hostModals.Where(A => A.Modal.Name.Equals(name) || A.Modal.AliasName.Equals(name)).ToList();
}
if (q1 != null && q1.Count > 0)
@@ -7473,8 +7478,14 @@ namespace WebSite.Controllers
{
var action = item.action;
var name = item.applianceName;
//var area = item.area;
var value = item.value;
var q1 = hostModals.Where(A => A.Modal.Type == DeviceType.AirConditioner && (A.Modal.Name.Equals(name)||A.Modal.AliasName.Equals(name)));
//if (!string.IsNullOrEmpty(area))
//{
// name = area + name;
//}
var q1 = hostModals.Where(A => A.Modal.Type == DeviceType.AirConditioner && (A.Modal.Name.Equals(name) || A.Modal.AliasName.Equals(name)));
foreach (var item_inter in q1)
{
int status = 0;
@@ -7553,7 +7564,12 @@ namespace WebSite.Controllers
{
var action = item.action;
var name = item.applianceName;
//var area = item.area;
int hid = int.Parse(hotelid);
//if (!string.IsNullOrEmpty(area))
//{
// name = area + name;
//}
var scene = RoomTypeSceneManager.LoadAll().Where(A => A.HotelID == hid && A.Name.Equals(name)).FirstOrDefault();
if (scene != null)
{
@@ -7581,7 +7597,7 @@ namespace WebSite.Controllers
i.RequestId = msgid;
i.Platform = "ETV";
i.CommandDescription = "success: 控制设备"+JsonConvert.SerializeObject(lla);
i.CommandDescription = "success: 控制设备" + JsonConvert.SerializeObject(lla);
SendMQTTData.Send(i);
}
return Json(new { code = 200, msg = "控制成功" }, JsonRequestBehavior.AllowGet);
@@ -7607,6 +7623,7 @@ namespace WebSite.Controllers
public string action { get; set; }
public string applianceName { get; set; }
public string value { get; set; }
//public string area { get; set; }
}
public class TV_ResponseData
{

View File

@@ -57,7 +57,7 @@ namespace WebSite
private object _lock = new object(), _lock1 = new object();
//private List<Host> _hosts = null;//西软pms对接使用
public static int TimeInterval = 10;
public static int TimeInterval = 1;
public static string IntervalKey = "TimeInterval";
/// <summary>
/// 凌晨ECO