| | |
| | | /// 所有的房间信息
|
| | | /// </summary>
|
| | | private Dictionary<string, Room> dicRooms = new Dictionary<string, Room>();
|
| | | /// <summary>
|
| | | /// 物理设备属于哪个房间的记录
|
| | | /// </summary>
|
| | | private Dictionary<string, string> dicDeviceRoomId = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | | //检测我的喜爱这个房间对象
|
| | | this.CheckLoveRoom();
|
| | |
|
| | | var listFile = Global.FileListByHomeId();
|
| | | var listFile = HdlFileLogic.Current.GetRootPathListFile();
|
| | | foreach (var fileName in listFile)
|
| | | {
|
| | | if (fileName.StartsWith("Room_") == true)
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | //设置当前楼层的ID
|
| | | Config.Instance.Home.SetCurrentFloorId();
|
| | | //顺便刷新场景
|
| | | HdlSceneLogic.Current.ReFreshByLocal();
|
| | | //刷新房间视图列表
|
| | |
| | | /// </summary>
|
| | | public void RefreshAllRoomByLocation()
|
| | | {
|
| | | var listFile = Global.FileListByHomeId();
|
| | | var listFile = HdlFileLogic.Current.GetRootPathListFile();
|
| | |
|
| | | //我的喜爱的房间必须要在第0位才行
|
| | | string fRoom = "Room_Favorite.json";
|
| | |
| | | /// <returns></returns>
|
| | | public void RemoveRoom(string roomId, bool refreshLeftView = true)
|
| | | {
|
| | | if (this.NowMainPageRoom != null && this.NowMainPageRoom.Id == roomId)
|
| | | {
|
| | | //当删除的是主页的房间的时候
|
| | | this.NowMainPageRoom = this.GetLoveRoom();
|
| | | }
|
| | | if (this.NowCategoryRoom != null && this.NowCategoryRoom.Id == roomId)
|
| | | {
|
| | | //当删除的是分类的房间的时候
|
| | | this.NowCategoryRoom = this.GetLoveRoom();
|
| | | }
|
| | |
|
| | | //根据房间Id,获取房间对象
|
| | | var room = this.GetRoomById(roomId);
|
| | | if (room == null)
|
| | |
| | | HdlAutoBackupLogic.DeleteFile(roomFilePath);
|
| | |
|
| | | //根据房间ID,移除指定的真实物理设备的所属房间记录
|
| | | Common.LocalDevice.Current.DeleteRealDeviceByRoomId(roomId);
|
| | | HdlRoomLogic.Current.DeleteRealDeviceByRoomId(roomId);
|
| | | if (refreshLeftView == true)
|
| | | {
|
| | | //HdlAutoBackupLogic.DeleteFile(roomFilePath);
|
| | | //刷新房间视图列表
|
| | | this.RefreshRoomListView();
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | return listRoom;
|
| | | return this.SortRoom(listRoom);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | listRoom.Add(room);
|
| | | }
|
| | | return this.SortRoom(listRoom);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取当前楼层的房间名称
|
| | | /// </summary>
|
| | | /// <param name="id"></param>
|
| | | /// <returns></returns>
|
| | | public List<string> GetRoomNamesByFloorId(string id)
|
| | | {
|
| | | var listName = new List<string>();
|
| | | if (Config.Instance.Home.FloorDics.Count == 0)
|
| | | {
|
| | | //没有楼层
|
| | | foreach (var room in this.dicRooms.Values)
|
| | | {
|
| | | listName.Add(room.Name);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | foreach (var room in this.dicRooms.Values)
|
| | | {
|
| | | if (room.FloorId == id)
|
| | | {
|
| | | listName.Add(room.Name);
|
| | | }
|
| | | }
|
| | | }
|
| | | return listName;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | listRoom = this.SortRoom(listRoom);
|
| | |
|
| | | listRoom.Insert(0, GetLoveRoom());
|
| | | return listRoom;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取当前楼层的房间(拼接了【常用】在第一位)
|
| | | /// 获取网关所在的房间
|
| | | /// </summary>
|
| | | /// <param name="zbGateway">网关对象</param>
|
| | | /// <returns></returns>
|
| | | public Room GetRoomByGateway(ZbGateway zbGateway)
|
| | | {
|
| | | return this.GetRoomByGateway(zbGateway.GwId);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取网关所在的房间
|
| | | /// </summary>
|
| | | /// <param name="gatewayId">网关ID</param>
|
| | | /// <returns></returns>
|
| | | public Room GetRoomByGateway(string gatewayId)
|
| | | {
|
| | | var localGateway = HdlGatewayLogic.Current.GetLocalGateway(gatewayId);
|
| | | if (localGateway == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | return HdlRoomLogic.Current.GetRoomById(localGateway.RoomId);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 变更网关房间
|
| | | /// </summary>
|
| | | /// <param name="gwId">网关Id</param>
|
| | | /// <param name="roomId">房间ID</param>
|
| | | public void ChangedGatewayRoom(string gwId, string roomId)
|
| | | {
|
| | | var localGateway = HdlGatewayLogic.Current.GetLocalGateway(gwId);
|
| | | if (localGateway != null)
|
| | | {
|
| | | localGateway.RoomId = roomId;
|
| | | localGateway.ReSave();
|
| | | //添加备份
|
| | | HdlAutoBackupLogic.AddOrEditorFile(localGateway.FilePath);
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | |
|
| | | #region ■ 物理设备所属房间___________________
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化物理设备所属房间的记录
|
| | | /// </summary>
|
| | | public void InitRealDeviceRoomId()
|
| | | {
|
| | | this.dicDeviceRoomId = new Dictionary<string, string>();
|
| | | string fullName = DirNameResourse.DeviceRoomIdFile;
|
| | | var strData = HdlFileLogic.Current.ReadFileTextContent(fullName);
|
| | | if (strData != null)
|
| | | {
|
| | | this.dicDeviceRoomId = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(strData);
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取全部物理设备所属房间的记录
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | public List<Room> GetRoomsByCurrentFloorIdAppendLoveRoom()
|
| | | public Dictionary<string, string> GetAllRealDeviceRoomData()
|
| | | {
|
| | | return this.GetRoomsByFloorIdAppendLoveRoom(Config.Instance.Home.CurrentFloorId);
|
| | | return this.dicDeviceRoomId;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 保存物理设备所属房间的记录
|
| | | /// </summary>
|
| | | /// <param name="listDevice">需要保存的设备对象</param>
|
| | | /// <param name="roomId">需要保存的哪个设备的房间ID</param>
|
| | | /// <param name="saveRoadDevice">如果只有一个回路,是否把回路的房间一起修改</param>
|
| | | public void SaveRealDeviceRoomId(List<CommonDevice> listDevice, string roomId, bool saveRoadDevice = true)
|
| | | {
|
| | | if (listDevice == null || listDevice.Count == 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | | //如果设备只有一个回路,如果改变了真实设备区域,则它的回路的区域也一起改了
|
| | | if (saveRoadDevice == true && listDevice.Count == 1)
|
| | | {
|
| | | if ((listDevice[0] is OTADevice) == false)
|
| | | {
|
| | | //ota设备不需要处理
|
| | | HdlRoomLogic.Current.ChangedRoom(listDevice[0], roomId, false);
|
| | | }
|
| | | }
|
| | | bool save = false;
|
| | | if (roomId == string.Empty)
|
| | | {
|
| | | //选择的是未分配
|
| | | this.dicDeviceRoomId.Remove(listDevice[0].DeviceAddr);
|
| | | save = true;
|
| | | }
|
| | | else
|
| | | {
|
| | | if (this.dicDeviceRoomId.ContainsKey(listDevice[0].DeviceAddr) == false)
|
| | | {
|
| | | this.dicDeviceRoomId[listDevice[0].DeviceAddr] = roomId;
|
| | | save = true;
|
| | | }
|
| | | else
|
| | | {
|
| | | //2020.05.18追加:如果记录的房间ID是不存在的话,则重新覆盖
|
| | | var room = HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[listDevice[0].DeviceAddr]);
|
| | | if (room == null || this.dicDeviceRoomId[listDevice[0].DeviceAddr] != roomId)
|
| | | {
|
| | | this.dicDeviceRoomId[listDevice[0].DeviceAddr] = roomId;
|
| | | save = true;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (save == true)
|
| | | {
|
| | | //保存记录
|
| | | HdlFileLogic.Current.SaveFileContent(DirNameResourse.DeviceRoomIdFile, this.dicDeviceRoomId);
|
| | |
|
| | | //添加自动备份
|
| | | HdlAutoBackupLogic.AddOrEditorFile(DirNameResourse.DeviceRoomIdFile);
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取真实物理设备的房间名字
|
| | | /// </summary>
|
| | | /// <param name="device">设备的某一个回路</param>
|
| | | /// <returns></returns>
|
| | | public string GeteRealDeviceRoomName(CommonDevice device)
|
| | | {
|
| | | if (this.dicDeviceRoomId.ContainsKey(device.DeviceAddr) == false)
|
| | | {
|
| | | //未分配区域
|
| | | return Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
|
| | | }
|
| | | var room = HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
|
| | | return HdlRoomLogic.Current.GetRoomName(room);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取真实物理设备属于哪个房间
|
| | | /// </summary>
|
| | | /// <param name="device">设备的某一个回路</param>
|
| | | /// <returns></returns>
|
| | | public Room GeteRealDeviceRoom(CommonDevice device)
|
| | | {
|
| | | if (this.dicDeviceRoomId.ContainsKey(device.DeviceAddr) == false)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | return HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 将真实物理设备从房间中移除
|
| | | /// </summary>
|
| | | /// <param name="device">随便一个回路</param>
|
| | | public void DeleteRealDeviceFromRoom(CommonDevice device)
|
| | | {
|
| | | //将真实物理设备从房间中移除
|
| | | this.DeleteRealDeviceFromRoom(new List<string>() { device.DeviceAddr });
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 将真实物理设备从房间中移除
|
| | | /// </summary>
|
| | | /// <param name="listMac">设备Mac地址</param>
|
| | | public void DeleteRealDeviceFromRoom(List<string> listMac)
|
| | | {
|
| | | bool save = false;
|
| | | foreach (var deviceMacAddr in listMac)
|
| | | {
|
| | | if (this.dicDeviceRoomId.ContainsKey(deviceMacAddr) == true)
|
| | | {
|
| | | this.dicDeviceRoomId.Remove(deviceMacAddr);
|
| | | save = true;
|
| | | }
|
| | | }
|
| | | if (save == false)
|
| | | {
|
| | | //没有改变,不需要保存
|
| | | return;
|
| | | }
|
| | | //保存记录
|
| | | HdlFileLogic.Current.SaveFileContent(DirNameResourse.DeviceRoomIdFile, this.dicDeviceRoomId);
|
| | |
|
| | | //添加自动备份
|
| | | HdlAutoBackupLogic.AddOrEditorFile(DirNameResourse.DeviceRoomIdFile);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 根据房间ID,移除指定的真实物理设备的所属房间记录
|
| | | /// </summary>
|
| | | /// <param name="i_RoomId"></param>
|
| | | public void DeleteRealDeviceByRoomId(string i_RoomId)
|
| | | {
|
| | | var listDeleteKey = new List<string>();
|
| | | foreach (var deviceAddr in this.dicDeviceRoomId.Keys)
|
| | | {
|
| | | if (this.dicDeviceRoomId[deviceAddr] == i_RoomId
|
| | | && listDeleteKey.Contains(deviceAddr) == false)
|
| | | {
|
| | | listDeleteKey.Add(deviceAddr);
|
| | | }
|
| | | }
|
| | | //将真实物理设备从房间中移除
|
| | | this.DeleteRealDeviceFromRoom(listDeleteKey);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | //移除我的喜爱
|
| | | this.DeleteLoveDevice(device);
|
| | | //设备改变房间的话,主页需要重新刷新
|
| | | UserView.UserPage.Instance.RefreshForm = true;
|
| | | UserView.UserPage.Instance.RefreshAllForm = true;
|
| | | return;
|
| | | }
|
| | | //房间是否修改
|
| | |
| | | this.AddDevice(room, device, saveRealRoom);
|
| | | }
|
| | | //设备改变房间的话,主页需要重新刷新
|
| | | UserView.UserPage.Instance.RefreshForm = true;
|
| | | UserView.UserPage.Instance.RefreshAllForm = true;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | if (i_room.IsLove == false && saveRealRoom == true && LocalDevice.Current.GetDevicesCountByMac(device.DeviceAddr) == 1)
|
| | | {
|
| | | //如果只有一个回路,则修改真实物理设备的房间
|
| | | LocalDevice.Current.SaveRealDeviceRoomId(new List<CommonDevice>() { device }, i_room.Id, false);
|
| | | this.SaveRealDeviceRoomId(new List<CommonDevice>() { device }, i_room.Id, false);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | //保存到本地
|
| | | loveRoom.ListDevice.Add(mainkeys);
|
| | | loveRoom.Save();
|
| | | //添加收藏设备时,需要刷新主页
|
| | | UserView.UserPage.Instance.RefreshAllForm = true;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | if (deleteReal == true && LocalDevice.Current.GetDevicesCountByMac(device.DeviceAddr) == 1)
|
| | | {
|
| | | //删除掉它的真实物理设备的所在位置
|
| | | LocalDevice.Current.DeleteRealDeviceFromRoom(device);
|
| | | HdlRoomLogic.Current.DeleteRealDeviceFromRoom(device);
|
| | | }
|
| | |
|
| | | //根据设备,获取所在的房间
|
| | |
| | | loveRoom.Save();
|
| | | //更改自动备份
|
| | | HdlAutoBackupLogic.AddOrEditorFile(loveRoom.FileName);
|
| | | //添加收藏设备时,需要刷新主页
|
| | | UserView.UserPage.Instance.RefreshAllForm = true;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | /// <returns></returns>
|
| | | public Dictionary<string, string> GetFloorSortList()
|
| | | {
|
| | | //没有楼层
|
| | | if (Config.Instance.Home.FloorDics.Count == 0)
|
| | | {
|
| | | return new Dictionary<string, string>();
|
| | | }
|
| | | //从一堆文字中,获取这一堆文字里面数字字符串的最长长度
|
| | | var listName = new List<string>();
|
| | | foreach (var floorName in Config.Instance.Home.FloorDics.Values)
|
| | |
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 发送房间信息给网关_________________
|
| | |
|
| | | /// <summary>
|
| | | /// 发送房间信息给网关
|
| | | /// </summary>
|
| | | public void SetRoomInfoToGateway()
|
| | | {
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1 && UserCenterResourse.UserInfo.AuthorityNo != 2)
|
| | | {
|
| | | //不是主人和管理员,则不处理
|
| | | return;
|
| | | }
|
| | | var realMain = ZbGateway.MainGateWay;
|
| | | if (realMain == null || Common.Config.Instance.Home.IsVirtually == true)
|
| | | {
|
| | | //没有主网关,则不理
|
| | | return;
|
| | | }
|
| | | //获取房间全部的设备对象
|
| | | string strSendDeviceRoomInfo = string.Empty;
|
| | | foreach (var room in this.dicRooms.Values)
|
| | | {
|
| | | if (room.IsSharedRoom || room.IsLove)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | var listDevice = this.GetRoomListDevice(room);
|
| | | //发送给网关的设备房间json
|
| | | foreach (var device in listDevice)
|
| | | {
|
| | | if (strSendDeviceRoomInfo != string.Empty)
|
| | | {
|
| | | strSendDeviceRoomInfo += "\r\n";
|
| | | }
|
| | | strSendDeviceRoomInfo += " " + this.SetDoublMark(device.DeviceAddr) + " ";
|
| | | strSendDeviceRoomInfo += this.SetDoublMark("0x" + Convert.ToString(device.DeviceEpoint, 16).PadLeft(2, '0')) + " ";
|
| | | strSendDeviceRoomInfo += this.SetDoublMark(LocalDevice.Current.GetDeviceEpointName(device).Replace(UserCenterResourse.douMarks, string.Empty)) + " ";
|
| | | strSendDeviceRoomInfo += this.SetDoublMark(room.Id);
|
| | | }
|
| | | }
|
| | |
|
| | | var listAreaSpaceInfo = new List<AreaSpaceInfo>();
|
| | | //首先添加住宅
|
| | | var houseInfo = new AreaSpaceInfo();
|
| | | houseInfo.name = Common.Config.Instance.Home.Name;
|
| | | houseInfo.uid = Common.Config.Instance.Home.Id;
|
| | | houseInfo.parentId = null;
|
| | | listAreaSpaceInfo.Add(houseInfo);
|
| | | //然后添加楼层
|
| | | foreach (var floorId in Common.Config.Instance.Home.FloorDics.Keys)
|
| | | {
|
| | | var floorInfo = new AreaSpaceInfo();
|
| | | floorInfo.name = Common.Config.Instance.Home.FloorDics[floorId];
|
| | | floorInfo.uid = floorId;
|
| | | floorInfo.parentId = Common.Config.Instance.Home.Id;
|
| | | listAreaSpaceInfo.Add(floorInfo);
|
| | | }
|
| | | //然后添加房间
|
| | | var listRoom = this.GetAllListRooms();
|
| | | foreach (var room in listRoom)
|
| | | {
|
| | | if (room.IsLove == true) { continue; }
|
| | |
|
| | | var roomInfo = new AreaSpaceInfo();
|
| | | roomInfo.name = room.Name;
|
| | | roomInfo.uid = room.Id;
|
| | | if (Common.Config.Instance.Home.FloorDics.ContainsKey(room.FloorId) == true)
|
| | | {
|
| | | roomInfo.parentId = room.FloorId;
|
| | | }
|
| | | else
|
| | | {
|
| | | roomInfo.parentId = Common.Config.Instance.Home.Id;
|
| | | }
|
| | | listAreaSpaceInfo.Add(roomInfo);
|
| | | }
|
| | | //然后添加网关房间信息
|
| | | var gatewayInfo = new GatewayAreaSpaceInfo();
|
| | |
|
| | | var loaclGateway = HdlGatewayLogic.Current.GetLocalGateway(realMain.GwId);
|
| | | if (loaclGateway == null || loaclGateway.GwMac == string.Empty)
|
| | | {
|
| | | //没有mac,或者找不到对象,则不上传
|
| | | return;
|
| | | }
|
| | | string gwMac = loaclGateway.GwMac.Replace(":", string.Empty);
|
| | | gatewayInfo.uid = "000101" + gwMac.Substring(2) + "07";
|
| | | gatewayInfo.name = HdlGatewayLogic.Current.GetGatewayName(loaclGateway);
|
| | |
|
| | | var roomGateway = HdlRoomLogic.Current.GetRoomByGateway(loaclGateway);
|
| | | if (roomGateway != null)
|
| | | {
|
| | | gatewayInfo.parentId = roomGateway.Id;
|
| | | }
|
| | | gatewayInfo.hwInfo = new GatewayHwInfo();
|
| | | gatewayInfo.pkgInfo = new GatewayPkgInfo { version = loaclGateway.LinuxFirmwareVersion.ToString() };
|
| | | gatewayInfo.swInfo = new List<GatewaySwInfo> { new GatewaySwInfo { ver = loaclGateway.LinuxFirmwareVersion.ToString() } };
|
| | | gatewayInfo.ip = loaclGateway.GwIP;
|
| | | gatewayInfo.mac = loaclGateway.GwMac;
|
| | |
|
| | | var data = new { spaces = listAreaSpaceInfo, gateway = gatewayInfo };
|
| | | string strSendRoomInfo = Newtonsoft.Json.JsonConvert.SerializeObject(data);
|
| | |
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | //发送设备区域信息
|
| | | if (strSendDeviceRoomInfo != string.Empty)
|
| | | {
|
| | | //创建文件对象
|
| | | var result0 = await realMain.CreateFileAsync("DeviceRoomInfo.json");
|
| | | if (result0 == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | if (result0.Result != 0 && result0.Result != 2)
|
| | | {
|
| | | //如果是2,允许上传
|
| | | return;
|
| | | }
|
| | | //发送数据流
|
| | | var byteData = ASCIIEncoding.UTF8.GetBytes(strSendDeviceRoomInfo);
|
| | | var result1 = await realMain.SendFileAsync(byteData);
|
| | | if (result1 == null || result1.Result != 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | //创建文件对象
|
| | | var result3 = await realMain.CreateFileAsync("space.json");
|
| | | if (result3 == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | if (result3.Result != 0 && result3.Result != 2)
|
| | | {
|
| | | //如果是2,允许上传
|
| | | return;
|
| | | }
|
| | |
|
| | | //发送区域信息
|
| | | var byteData2 = ASCIIEncoding.UTF8.GetBytes(strSendRoomInfo);
|
| | | var result4 = await realMain.SendFileAsync(byteData2);
|
| | | });
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 设置双引号
|
| | | /// </summary>
|
| | | /// <param name="i_text"></param>
|
| | | /// <returns></returns>
|
| | | private string SetDoublMark(string i_text)
|
| | | {
|
| | | return UserCenterResourse.douMarks + i_text + UserCenterResourse.douMarks;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 空间区域信息
|
| | | /// </summary>
|
| | | private class AreaSpaceInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 住宅ID 或者 楼层ID 或者 房间ID
|
| | | /// </summary>
|
| | | public string uid = string.Empty;
|
| | | /// <summary>
|
| | | /// 住宅名称 或者 楼层名称 或者 房间名称
|
| | | /// </summary>
|
| | | public string name = string.Empty;
|
| | | /// <summary>
|
| | | /// 当前ID的父ID,如果没有,则为带双引号的"null" 比如 楼层ID就填住宅ID 房间ID就填楼层ID
|
| | | /// </summary>
|
| | | public string parentId = string.Empty;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 网关空间区域信息
|
| | | /// </summary>
|
| | | private class GatewayAreaSpaceInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 【000101】+绑定网关的时间戳转16进制+【07】
|
| | | /// </summary>
|
| | | public string uid = string.Empty;
|
| | | /// <summary>
|
| | | /// 这个固定
|
| | | /// </summary>
|
| | | public string name = "hdl_bus_gatway";
|
| | | /// <summary>
|
| | | /// 网关所在的房间ID
|
| | | /// </summary>
|
| | | public string parentId = string.Empty;
|
| | | /// <summary>
|
| | | /// 这个固定
|
| | | /// </summary>
|
| | | public int deviceType = 61184;
|
| | | /// <summary>
|
| | | /// 网关硬件信息
|
| | | /// </summary>
|
| | | public GatewayHwInfo hwInfo = null;
|
| | | /// <summary>
|
| | | /// 网关标准信息
|
| | | /// </summary>
|
| | | public GatewayPkgInfo pkgInfo = null;
|
| | | /// <summary>
|
| | | /// 网关固件版本
|
| | | /// </summary>
|
| | | public List<GatewaySwInfo> swInfo = null;
|
| | | /// <summary>
|
| | | /// 网关IP
|
| | | /// </summary>
|
| | | public string ip = string.Empty;
|
| | | /// <summary>
|
| | | /// 网关的Mac
|
| | | /// </summary>
|
| | | public string mac = string.Empty;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 网关硬件信息
|
| | | /// </summary>
|
| | | private class GatewayHwInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 这个固定
|
| | | /// </summary>
|
| | | public string brand = "MIPS";
|
| | | /// <summary>
|
| | | /// 这个固定
|
| | | /// </summary>
|
| | | public string model = "MT7688";
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 网关标准信息
|
| | | /// </summary>
|
| | | private class GatewayPkgInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 这个是Linux的固件版本
|
| | | /// </summary>
|
| | | public string version = string.Empty;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 网关固件版本
|
| | | /// </summary>
|
| | | private class GatewaySwInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 这个固定
|
| | | /// </summary>
|
| | | public string name = "HDL";
|
| | | /// <summary>
|
| | | /// 这个是Linux的固件版本
|
| | | /// </summary>
|
| | | public string ver = string.Empty;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 克隆房间对象_______________________
|
| | |
|
| | | /// <summary>
|
| | |
| | | newRoom.Id = i_room.Id;
|
| | | newRoom.FloorId = i_room.FloorId;
|
| | | newRoom.TemperatrueDevice = i_room.TemperatrueDevice;
|
| | | newRoom.Temperatrue = i_room.Temperatrue;
|
| | | newRoom.HumidityDevice = i_room.HumidityDevice;
|
| | | newRoom.Humidity = i_room.Humidity;
|
| | | newRoom.Name = i_room.Name;
|
| | | newRoom.BackgroundImage = i_room.BackgroundImage;
|
| | | newRoom.BackgroundImageType = i_room.BackgroundImageType;
|