//using System;
|
//using System.Collections.Generic;
|
//using Shared;
|
|
//namespace SmartHome
|
//{
|
// /// <summary>
|
// /// HDLLink协议 工具类
|
// /// </summary>
|
// public class HDLLinkUtlis
|
// {
|
// #region ■ Current___________________________
|
// /// <summary>
|
// /// 通用方法
|
// /// </summary>
|
// private static HDLLinkUtlis m_Current = null;
|
// /// <summary>
|
// /// 通用方法
|
// /// </summary>
|
// public static HDLLinkUtlis Current {
|
// get {
|
// if (m_Current == null) {
|
// m_Current = new HDLLinkUtlis ();
|
// }
|
// return m_Current;
|
// }
|
// }
|
// #endregion
|
|
// /// <summary>
|
// /// 将在线设备转换成sid + 属性列表
|
// /// </summary>
|
// /// <param name="onlineDevices"></param>
|
// /// <returns></returns>
|
// public List<Sid> ConvertToSidListToIotCloud (string sOid, Common onlineDevice)
|
// {
|
// List<Sid> tmpResult = new List<Sid> ();
|
// try {
|
// if (onlineDevice.bytSimpleParam == null || onlineDevice.bytSimpleParam.Length == 0) {
|
// string sSimpleList = DeviceTypeList.GetSimpleFunctionListFromPublicModeGroup (onlineDevice.DeviceType);
|
// #region
|
// string [] ArayStr = sSimpleList.Trim ().Split (new char [] { ' ' });
|
// List<byte> ArayTmp = new List<byte> ();
|
// for (int i = 0; i < ArayStr.Length; i++) {
|
// if (ArayStr [i] != null && ArayStr [i] != "" && ArayStr [i].Trim () != "") {
|
// ArayTmp.Add (Convert.ToByte (ArayStr [i], 16));
|
// }
|
// }
|
// onlineDevice.bytSimpleParam = ArayTmp.ToArray ();
|
// #endregion
|
// }
|
// if (onlineDevice.bytSimpleParam != null && onlineDevice.bytSimpleParam.Length > 0) {
|
// for (int intI = 0; intI < onlineDevice.bytSimpleParam.Length / 3; intI++) {
|
// Byte BigType = onlineDevice.bytSimpleParam [0 + intI * 3];
|
// Byte SmallType = onlineDevice.bytSimpleParam [1 + intI * 3];
|
// int Count = onlineDevice.bytSimpleParam [2 + intI * 3];
|
// if (Count > 0) {
|
// for (int j = 1; j <= Count; j++) {
|
// Sid tmpSid = new Sid ();
|
// tmpSid.sid = HDLSysPF.FormingNewSid (onlineDevice.DeviceType, sOid, j, false, BigType, SmallType);
|
// tmpSid.oid = sOid;
|
|
// try {
|
// tmpSid.name = onlineDevice.myEasyDesignChannelRemark [intI] [j - 1];
|
// } catch (Exception ex) {
|
// tmpSid.name = "";
|
// }
|
// if (tmpSid.name == null || tmpSid.name == "" || tmpSid.name == "Unread") {
|
// tmpSid.name = onlineDevice.Remark + CsConst.mstrINIDefault.IniReadValue ("public", "00000", "") + " " + j.Tostring ();
|
// if (onlineDevice.Remark == "") {
|
// tmpSid.name = onlineDevice.strDescription + CsConst.mstrINIDefault.IniReadValue ("public", "00000", "") + " " + j.Tostring ();
|
// }
|
// }
|
// GateWay.sidObject tmp = HDLSysPF.UpdateSidAttributesToDeviceList (onlineDevice, tmpSid.name, sOid, j, BigType, SmallType, true);
|
// tmpSid.attributes = tmp.attributes;//UpdateSidAttributesToDeviceList(onlineDevice.DeviceType, sOid, j, BigType, SmallType, ref spk);
|
// tmpSid.spk = tmp.spk;
|
// tmpResult.Add (tmpSid);
|
// }
|
// }
|
// }
|
// }
|
// return tmpResult;
|
// } catch (Exception) {
|
// return tmpResult;
|
// //throw;
|
// }
|
// }
|
|
// /// <summary>
|
// ///
|
// /// </summary>
|
// /// <param name="homeId"></param>
|
// /// <param name="onlineDevices"></param>
|
// /// <param name="gatewayId"></param>
|
// /// <param name="currentProject"></param>
|
// public void ConvertOidListToIotStruct (string homeId, List<Common> onlineDevices, string gatewayId, ref IotCloud currentProject)
|
// {
|
// try {
|
// //step 1 ;抓换类型
|
// Sids functionList = currentProject.functions;
|
// List<Sid> tmpFunction = new List<Sid> ();
|
|
// //step 2 转换类型
|
// Oids tmp = ConvertToOidListToIotCloud (onlineDevices, ref tmpFunction);
|
// if (currentProject.modules == null || currentProject.modules.devices == null || currentProject.modules.devices.Count == 0) currentProject.modules = tmp;
|
// else {
|
// foreach (Oid tmpModule in tmp.devices) {
|
// Oid tmpFind = currentProject.modules.devices.Find (P => P.mac.Equals (tmpModule.mac));
|
// if (tmpFind == null) currentProject.modules.devices.Add (tmpModule);
|
// }
|
// }
|
// tmp.homeId = homeId;
|
|
// //上传功能列表
|
// #region
|
// //if (functionList == null)
|
// //{
|
// functionList = new Sids ();
|
// functionList.devices = new List<Sid> ();
|
// functionList.devices = tmpFunction;
|
// //}
|
// functionList.homeId = homeId;
|
// functionList.gatewayId = gatewayId;
|
// currentProject.modules = tmp;
|
// currentProject.functions = functionList;
|
// #endregion
|
|
// } catch (Exception ex) {
|
// //MessageBox.Show (ex.Tostring ());
|
// //throw;
|
// }
|
// }
|
|
// /// <summary>
|
// ///
|
// /// </summary>
|
// /// <param name="homeId"></param>
|
// /// <param name="onlineDevices"></param>
|
// /// <param name="gatewayId"></param>
|
// /// <param name="currentProject"></param>
|
// public void ConvertOidListToIotStruct (string homeId, List<Common> onlineDevices, string gatewayId, ref IotCloud currentProject)
|
// {
|
// try {
|
// //step 1 转换类型
|
// Sids functionList = currentProject.functions;
|
// List<Sid> tmpFunction = new List<Sid> ();
|
|
// //step 2 转换类型
|
// Oids tmp = ConvertToOidListToIotCloud (onlineDevices, ref tmpFunction);
|
// if (currentProject.modules == null || currentProject.modules.devices == null || currentProject.modules.devices.Count == 0) currentProject.modules = tmp;
|
// else {
|
// foreach (Oid tmpModule in tmp.devices) {
|
// Oid tmpFind = currentProject.modules.devices.Find (P => P.mac.Equals (tmpModule.mac));
|
// if (tmpFind == null) currentProject.modules.devices.Add (tmpModule);
|
// }
|
// }
|
// tmp.homeId = homeId;
|
|
// //上传功能列表
|
// #region
|
// //if (functionList == null)
|
// //{
|
// functionList = new Sids ();
|
// functionList.devices = new List<Sid> ();
|
// functionList.devices = tmpFunction;
|
// //}
|
// functionList.homeId = homeId;
|
// functionList.gatewayId = gatewayId;
|
// currentProject.modules = tmp;
|
// currentProject.functions = functionList;
|
// #endregion
|
|
// } catch (Exception ex) {
|
// //MessageBox.Show (ex.Tostring ());
|
// //throw;
|
// }
|
// }
|
|
// /// <summary>
|
// /// 生成设备Oid
|
// /// </summary>
|
// /// <param name="iDeviceType"></param>
|
// /// <returns></returns>
|
// public string FormingNewOid (int iDeviceType)
|
// {
|
// string sOid = "";
|
// try {
|
// string sOidBeginsWith = "000101";//厂商 + 通讯方式
|
|
// long sTimeSp = HDLSysPF.ConvertDateTimeLong ();
|
// string sTimeSpan = "";
|
// GateWay.ConvertIntToByteArray (sTimeSp, ref sTimeSpan);
|
|
// if (sTimeSpan.Length != 8) return sOid;
|
// HDLUDP.TimeBetwnNext (10);
|
// sOid = sOidBeginsWith + sTimeSpan;
|
// if (iDeviceType == 00
|
// || DimmerDeviceTypeList.HDLDimmerDeviceTypeList.Contains (iDeviceType)
|
// || DMXDeviceTypeList.HDLDMXDeviceTypeList.Contains (iDeviceType))//调光器 20200730类
|
// {
|
// sOid += "01";
|
// } else if (RelayDeviceTypeList.HDLRelayDeviceTypeList.Contains (iDeviceType))//继电器类
|
// {
|
// sOid += "02";
|
// } else if (CurtainDeviceType.HDLCurtainModuleDeviceType.Contains (iDeviceType))//遮阳类(窗帘)
|
// {
|
// sOid += "03";
|
// } else if (HVACModuleDeviceTypeList.HDLHVACModuleDeviceTypeLists.Contains (iDeviceType) || FloorheatingDeviceTypeList.HDLFloorHeatingDeviceType.Contains (iDeviceType))//恒温器(空调)
|
// {
|
// sOid += "12";
|
// } else if (AudioDeviceTypeList.AudioBoxDeviceTypeList.Contains (iDeviceType)) {
|
// sOid += "10";
|
// } else if (Eightin1DeviceTypeList.HDL8in1DeviceType.Contains (iDeviceType)
|
// || Sevenin1DeviceTypeList.HDL7in1DeviceType.Contains (iDeviceType)
|
// || Twelvein1DeviceTypeList.HDL12in1DeviceType.Contains (iDeviceType))//传感器类
|
// {
|
// sOid += "04";
|
// } else {
|
// sOid += "07"; //网关产品
|
// }
|
|
|
// return sOid;
|
// } catch {
|
// return sOid;
|
// }
|
// }
|
|
// /// <summary>
|
// /// 生成功能设备Sid
|
// /// </summary>
|
// /// <param name="iDeviceType"></param>
|
// /// <param name="sOid"></param>
|
// /// <param name="iChnId"></param>
|
// /// <param name="isUseE548ReturnBigSmallType"></param>
|
// /// <param name="BigType"></param>
|
// /// <param name="SmallType"></param>
|
// /// <returns></returns>
|
// public string FormingNewSid (int iDeviceType, string sOid, int iChnId, bool isUseE548ReturnBigSmallType, byte BigType, byte SmallType)
|
// {
|
// if (sOid == null || sOid == "") return "";
|
// try {
|
// string sSid = "";
|
// if (DimmerDeviceTypeList.HDLDimmerDeviceTypeList.Contains (iDeviceType)) {
|
// if (DimmerDeviceTypeList.DALIDimmerDeviceTypeLists.Contains (iDeviceType)) {
|
// BigType = 1;
|
// SmallType = 7;
|
// sSid += "0203";
|
// } else {
|
// sSid += "0202";
|
// }
|
// } else if (RelayDeviceTypeList.HDLRelayDeviceTypeList.Contains (iDeviceType)) {
|
// sSid += "0201";
|
// } else if (CurtainDeviceType.HDLCurtainModuleDeviceType.Contains (iDeviceType)) {
|
|
// if (CurtainDeviceType.NormalMotorCurtainDeviceType.Contains (iDeviceType) || (iDeviceType == 9700)) //所有开合帘 //0 2020 05 24创明开合帘
|
// {
|
// sSid += "0303";
|
// } else if (CurtainDeviceType.RollerCurtainDeviceType.Contains (iDeviceType)
|
// || (iDeviceType == 9701))//所有 卷帘控制器
|
// {
|
// sSid += "0304";
|
// } else {
|
// sSid += "0301";
|
// }
|
// } else if (HVACModuleDeviceTypeList.HDLHVACModuleDeviceTypeLists.Contains (iDeviceType)) {
|
// sSid += "0401";
|
// } else if (Eightin1DeviceTypeList.HDL8in1DeviceType.Contains (iDeviceType)
|
// || Sevenin1DeviceTypeList.HDL7in1DeviceType.Contains (iDeviceType)
|
// || HaikeSensorDeviceTypeList.HaikeSensorDeviceType.Contains (iDeviceType)
|
// || Twelvein1DeviceTypeList.HDL12in1DeviceType.Contains (iDeviceType)
|
// || Rs232DeviceTypeList.HDLRs232DeviceType.Contains (iDeviceType)) {
|
// if (BigType == 19 && SmallType == 0) {
|
// sSid += "1301";
|
// } else if (BigType == 5 && SmallType == 0) {
|
// sSid += "0519";
|
// } else {
|
// sSid += BigType.Tostring ("X2") + SmallType.Tostring ("X2");
|
// }
|
// } else if (FloorheatingDeviceTypeList.HDLFloorHeatingDeviceType.Contains (iDeviceType)) {
|
// sSid += "0402";
|
// } else if (DMXDeviceTypeList.HDLDMXDeviceTypeList.Contains (iDeviceType)) {
|
// sSid += "0204";
|
// } else if (DimmerDeviceTypeList.DALIDimmerDeviceTypeLists.Contains (iDeviceType)) {
|
// sSid += "0203";
|
// } else if (AudioDeviceTypeList.AudioBoxDeviceTypeList.Contains (iDeviceType)) {
|
// sSid += "0901";
|
// }
|
// string sTmpWithE548 = sSid;
|
// sSid = sOid + sSid + iChnId.Tostring ("X4");
|
// if (isUseE548ReturnBigSmallType) {
|
// sSid += BigType.Tostring ("X2") + SmallType.Tostring ("X2");
|
// } else {
|
// sSid += sTmpWithE548;
|
// }
|
|
// return sSid;
|
// } catch {
|
// return "";
|
// }
|
// }
|
|
// }
|
|
|
// [Serializable]
|
// public class Sids : BaseCloudFeedback
|
// {
|
// public string homeId { get; set; }
|
// public string gatewayId { get; set; }
|
// public List<Sid> devices { get; set; }
|
// }
|
|
// [Serializable]
|
// public class BaseCloudFeedback
|
// {
|
// public int code { get; set; }
|
// public string timestamp { get; set; }
|
// public bool isSuccess { get; set; }
|
// public string message { get; set; }
|
// }
|
|
|
// [Serializable]
|
// public class Oids : BaseCloudFeedback
|
// {
|
// public string homeId { get; set; }
|
// public string gatewayId { get; set; }
|
// public List<Oid> devices { get; set; }
|
// }
|
|
// [Serializable]
|
// public class Oid
|
// {
|
// public string protocolType { get; set; }
|
// public string device_name { get; set; }
|
// public string oid { get; set; }
|
// public string addresses { get; set; }
|
// public string device_model { get; set; }
|
|
// public string fw_version { get; set; }
|
// public string hw_info { get; set; }
|
// public string mac { get; set; }
|
// public string deviceType { get; set; }
|
// }
|
|
// [Serializable]
|
// public class Sid
|
// {
|
// public string sid { get; set; }
|
// public string name { get; set; }
|
// public string[] uids { get; set; }
|
// public string spk { get; set; }
|
|
// public string oid { get; set; } //设备模块地址
|
// public string omodel { get; set; } //型号
|
// public List<Function> attributes { get; set; } //属性列表
|
// }
|
|
|
// [Serializable]
|
// public class Function
|
// {
|
// //public string name { get; set; }
|
// public string key { get; set; }
|
// public List<string> value { get; set; }
|
// public int max { get; set; }
|
// public int min { get; set; }
|
// public string data_type { get; set; }
|
// }
|
|
//}
|