| | |
| | | { |
| | | } |
| | | |
| | | |
| | | #region base info |
| | | /// <summary> |
| | | /// HDL统一协议格式:14bytes
|
| | |
| | | /// 产品时间戳:4bytes 以2020年1月1日算出的时间戳0.1s为单位
|
| | | /// 产品类别:01 调光器、02 继电器、03 干接点模块、04 传感器、05 面板
|
| | | /// 物模型类型:
|
| | | /// 01 开关类:01 开关、02 插座、03 |
| | | /// 02 照明: 01 开关、02 调光、03 色温、04 LED
|
| | | /// 01 开关类:01 开关、02 插座、03 |
| | | /// 02 照明: 01 开关、02 调光、03 色温、04 LED
|
| | | /// 03 遮阳: 01 窗帘电机、02 百叶窗、03 开合帘、04 卷帘
|
| | | /// 04 恒温器:01 空调、02 地暖、03 毛细空调 |
| | | /// 04 恒温器:01 空调、02 地暖、03 毛细空调 |
| | | /// 05 新风 |
| | | /// 06 影音 |
| | | /// 07 音乐 |
| | |
| | | } |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 功能类型 |
| | | /// </summary> |
| | | ///// <summary> |
| | | ///// 功能类型 |
| | | ///// </summary> |
| | | public FunctionType functionType |
| | | { |
| | | get |
| | | { |
| | | var _functionTypeString = sid.Substring(16, 4); |
| | | return (FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(_functionTypeString, 16)); |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | /// 是否收藏 |
| | | /// </summary> |
| | | public bool collect = false; |
| | | /// <summary> |
| | | /// 是否在线 |
| | | /// </summary> |
| | | public bool online = true; |
| | | /// <summary> |
| | | /// 云端数据创建的时间 |
| | | /// </summary> |
| | | public string createTime = ""; |
| | | /// <summary> |
| | | /// 云端数据修改的最后时间 |
| | | /// </summary> |
| | | public string modifyTime = ""; |
| | | /// <summary> |
| | | /// 删除标记 |
| | | /// 需要删除数据时,标记为:true |
| | | /// 由云端删除成功之后,返回数据再清除本地数据 |
| | | /// </summary> |
| | | public bool DeleteSign = false; |
| | | |
| | | #endregion |
| | | /// <summary> |
| | | /// 延时 |
| | |
| | | /// </summary> |
| | | public int fixedSerialNumber = int.MaxValue; |
| | | |
| | | public string GetBusId () |
| | | public string GetBusId() |
| | | { |
| | | string busId = ""; |
| | | if (bus_Data != null) |
| | |
| | | public string GetRoomListName() |
| | | { |
| | | string roomNameList = ""; |
| | | foreach(var roomId in roomIds) |
| | | foreach (var roomId in roomIds) |
| | | { |
| | | var findRoom = DB_ResidenceData.Rooms.Find(obj => obj.uid == roomId); |
| | | var findRoom = DB_ResidenceData.residenceData.Rooms.Find(obj => obj.uid == roomId); |
| | | if (findRoom == null) |
| | | { |
| | | continue; |
| | |
| | | public void SaveFunctionData() |
| | | { |
| | | var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); |
| | | FileUtils.WriteFileByBytes( savePath + this.sid, ssd); |
| | | FileUtils.WriteFileByBytes(savePath, ssd); |
| | | MainPage.Log($"Save FunctionData {this.functionType} : {this.sid}"); |
| | | } |
| | | |
| | |
| | | |
| | | var acd = new AlinkControlData(); |
| | | acd.sid = sid; |
| | | #if DEBUG |
| | | acd.sid = "0001016FB925AB02020100010101"; |
| | | #endif |
| | | var aca = new AlinkControlAttributes(); |
| | | foreach(var dic in commandDictionary) |
| | | foreach (var dic in commandDictionary) |
| | | { |
| | | aca.key = dic.Key; |
| | | aca.value = dic.Value; |
| | |
| | | /// 获取Api控制数据 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ApiAlinkControlActionObj GetApiControlData(Dictionary<string,string> keyValues) |
| | | public ApiAlinkControlActionObj GetApiControlData(Dictionary<string, string> keyValues) |
| | | { |
| | | ApiAlinkControlActionObj aaao = new ApiAlinkControlActionObj(); |
| | | aaao.deviceId = this.deviceId; |
| | |
| | | public string spk = ""; |
| | | |
| | | public List<AlinkControlAttributes> attributes = new List<AlinkControlAttributes>(); |
| | | //[Newtonsoft.Json.JsonIgnore] |
| | | public BusData bus = new BusData(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | public string time_stamp = ""; |
| | | public string id = ""; |
| | | } |
| | | /// <summary> |
| | | /// 本地状态读取 |
| | | /// A协议状态读取格式对象 |
| | | /// </summary> |
| | | public class GatewayAlinkReadObj |
| | | { |
| | | public string id = "0"; |
| | | public List<Dictionary<string, string>> objects = new List<Dictionary<string, string>>(); |
| | | public string time_stamp = ""; |
| | | } |
| | | /// <summary> |
| | | /// A协议控制数据 |
| | |
| | | public class BusData |
| | | { |
| | | public string addresses = "FFFF"; |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public byte SubnetID |
| | | { |
| | | get |
| | |
| | | return Convert.ToByte(addresses.Substring(0, 2), 16); |
| | | } |
| | | } |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public byte DeviceID |
| | | { |
| | | get |
| | |
| | | public byte loopId; |
| | | } |
| | | |
| | | public static class SPK |
| | | { |
| | | /// <summary> |
| | | /// (开关灯) |
| | | /// </summary> |
| | | public const string LightSwitch = "light.switch"; |
| | | /// <summary> |
| | | /// (调光灯) |
| | | /// </summary> |
| | | public const string LightDimming = "light.dimming"; |
| | | /// <summary> |
| | | /// (RGB灯) |
| | | /// </summary> |
| | | public const string LightRGB = "light.rgb"; |
| | | /// <summary> |
| | | /// (RGBW灯) |
| | | /// </summary> |
| | | public const string LightRGBW = "light.rgbw"; |
| | | /// <summary> |
| | | /// (CCT灯) |
| | | /// </summary> |
| | | public const string LightCCT = "light.cct"; |
| | | /// <summary> |
| | | /// (开关窗帘) |
| | | /// </summary> |
| | | public const string CurtainSwitch = "curtain.switch"; |
| | | /// <summary> |
| | | /// (开合帘) |
| | | /// </summary> |
| | | public const string CurtainTrietex = "curtain.trietex"; |
| | | /// <summary> |
| | | /// (百叶帘) |
| | | /// </summary> |
| | | public const string CurtainShades = "curtain.shades"; |
| | | /// <summary> |
| | | /// (卷帘) |
| | | /// </summary> |
| | | public const string CurtainRoller = "curtain.roller"; |
| | | /// <summary> |
| | | /// (空调) |
| | | /// </summary> |
| | | public const string AcStandard = "ac.standard"; |
| | | /// <summary> |
| | | /// (地热) |
| | | /// </summary> |
| | | public const string FloorHeatStandard = "floorHeat.standard"; |
| | | /// <summary> |
| | | /// (新风) |
| | | /// </summary> |
| | | public const string AirFreshStandard = "airFresh.standard"; |
| | | /// <summary> |
| | | /// (音乐) |
| | | /// </summary> |
| | | public const string MusicStandard = "music.standard"; |
| | | /// <summary> |
| | | /// (亮度传感器) |
| | | /// </summary> |
| | | public const string SensorLight = "sensor.light"; |
| | | /// <summary> |
| | | /// (温度传感器) |
| | | /// </summary> |
| | | public const string SensorTemperature = "sensor.temperature"; |
| | | /// <summary> |
| | | /// (红外移动传感器) |
| | | /// </summary> |
| | | public const string SensorPir = "sensor.pir"; |
| | | /// <summary> |
| | | /// (门窗传感器) |
| | | /// </summary>
|
| | | public const string SensorDoorWindow = "sensor.doorwindow"; |
| | | /// <summary> |
| | | /// (PM2.5传感器) |
| | | /// </summary>
|
| | | public const string SensorPm25 = "sensor.pm25"; |
| | | /// <summary> |
| | | /// co2传感器 |
| | | /// </summary> |
| | | public const string SensorCO2 = "sensor.co2"; |
| | | /// <summary> |
| | | /// tvoc传感器 |
| | | /// </summary> |
| | | public const string SensorTVOC = "sensor.tvoc"; |
| | | /// <summary> |
| | | /// 湿度传感器 |
| | | /// </summary> |
| | | public const string SensorHumidity = "sensor.humidity"; |
| | | /// <summary> |
| | | /// (干接点) |
| | | /// </summary>
|
| | | public const string DryContact = "dryContact.standard";
|
| | | /// <summary> |
| | | /// 家电、插座 |
| | | /// </summary> |
| | | public const string ElectricSocket = "electric.socket ";
|
| | | /// <summary> |
| | | /// 家电、电视 |
| | | /// </summary> |
| | | public const string ElectricTV = "electric.tv";
|
| | | /// <summary> |
| | | /// 家电、风扇 |
| | | /// </summary> |
| | | public const string ElectricFan = "electric.fan"; |
| | | } |
| | | |
| | | } |