using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FangYar.IOT_DH_Plugin { public class TCPHelper { public static void cmd() { } public static TCP_Data_Model Analysis(byte[] data) { TCP_Data_Model tcp_data_model = new TCP_Data_Model(); //业务流水号 byte[] dataNo = CommonHelper.SplitArray(data, 2, 3); tcp_data_model.dataNo = CommonHelper.bytesToInt(dataNo); //协议版本号 byte[] versionNo = CommonHelper.SplitArray(data, 4, 5); tcp_data_model.versionNo = CommonHelper.bytesToInt(versionNo); //时间标签 byte[] time = CommonHelper.SplitArray(data, 6, 11); tcp_data_model.time = CommonHelper.BytestoDateTime(time); //源地址 byte[] ydz = CommonHelper.SplitArray(data, 12, 17); tcp_data_model.ydz = CommonHelper.byteToHexStr(ydz); //目的地址 byte[] mddz = CommonHelper.SplitArray(data, 18, 23); tcp_data_model.mddz = CommonHelper.byteToHexStr(mddz); //应用数据单元长度 byte[] datalength = CommonHelper.SplitArray(data, 24, 25); tcp_data_model.datalength = CommonHelper.bytesToInt(datalength); //命令字节 byte[] mlzj = CommonHelper.SplitArray(data, 26, 26); tcp_data_model.mlzj = CommonHelper.bytesToInt(mlzj); //应用数据单元 byte[] yydata = CommonHelper.SplitArray(data, 27, data.Length - 3); tcp_data_model.data = yydata; //校验和 datanum byte[] datanum = CommonHelper.SplitArray(data, data.Length - 2, data.Length - 1); tcp_data_model.datanum = CommonHelper.bytesToInt(datanum); return tcp_data_model; } //注册 public static TCP_Register_Model BytestorRegisterData(byte[] data) { TCP_Register_Model tcp_register_model = new TCP_Register_Model(); //类型标志 byte[] type = CommonHelper.SplitArray(data, 0, 0); tcp_register_model.type = CommonHelper.bytesToInt(type); //类型标志 byte[] objectNo = CommonHelper.SplitArray(data, 1, 1); tcp_register_model.objectNo = CommonHelper.bytesToInt(objectNo); //应用数据单元 byte[] yydata = CommonHelper.SplitArray(data, 2, 79); tcp_register_model.data = yydata; return tcp_register_model; } //注册数据包 public static TCP_RegisterPK_Model BytestoRegisterPKData(byte[] data) { TCP_RegisterPK_Model tcp_registerpk_model = new TCP_RegisterPK_Model(); //协议版本号 byte[] VERSION = CommonHelper.SplitArray(data, 0, 1); tcp_registerpk_model.VERSION = CommonHelper.bytesToInt(VERSION); //BCD码ID编号 byte[] ID = CommonHelper.SplitArray(data, 2, 9); tcp_registerpk_model.ID = CommonHelper.bytesToInt(ID); //保留 byte[] Reserve = CommonHelper.SplitArray(data, 10, 17); tcp_registerpk_model.Reserve = CommonHelper.byteToHexStr(Reserve); //ASCII码 byte[] SN = CommonHelper.SplitArray(data, 18, 33); tcp_registerpk_model.SN = CommonHelper.byteToHexStr(SN); //BCD码ID编号 byte[] CCID = CommonHelper.SplitArray(data, 34, 43); tcp_registerpk_model.CCID = CommonHelper.bytesToInt(CCID); //保留 byte[] Reserve2 = CommonHelper.SplitArray(data, 44, 75); tcp_registerpk_model.Reserve2 = CommonHelper.byteToHexStr(Reserve2); //系统类型 byte[] dvcType = CommonHelper.SplitArray(data, 76, 76); tcp_registerpk_model.dvcType = CommonHelper.byteToHexStr(dvcType); //重连接扩展标志 byte[] Ext = CommonHelper.SplitArray(data, 77, 77); tcp_registerpk_model.Ext = CommonHelper.bytesToInt(Ext); return tcp_registerpk_model; } //系统状态 public static TCP_Sysstate_Model BytestoSysstateData(byte[] data) { TCP_Sysstate_Model tcp_sysstate_model = new TCP_Sysstate_Model(); //类型标志 byte[] typesign = CommonHelper.SplitArray(data, 0, 0); tcp_sysstate_model.typesign = CommonHelper.byteToHexStr(typesign); //信息对象数目 byte[] dataNo = CommonHelper.SplitArray(data, 1, 1); tcp_sysstate_model.dataNo = CommonHelper.bytesToInt(dataNo); //系统类型 byte[] sysType = CommonHelper.SplitArray(data, 2, 2); tcp_sysstate_model.sysType = CommonHelper.byteToHexStr(sysType); //系统地址 byte[] sysAddr = CommonHelper.SplitArray(data, 3, 3); tcp_sysstate_model.sysAddr = CommonHelper.byteToHexStr(sysAddr); //系统状态 byte[] status = CommonHelper.SplitArray(data, 4, 5); tcp_sysstate_model.sysState = new BitArray(status); //时间标签 byte[] time = CommonHelper.SplitArray(data, 6, 11); tcp_sysstate_model.time = CommonHelper.BytestoDateTime(time); return tcp_sysstate_model; } //部件状态 public static TCP_Dvcstate_Model BytestoDvcstateData(byte[] data) { TCP_Dvcstate_Model tcp_dvcstate_model = new TCP_Dvcstate_Model(); //类型标志 byte[] typesign = CommonHelper.SplitArray(data, 0, 0); tcp_dvcstate_model.typesign = CommonHelper.byteToHexStr(typesign); //信息对象数目 byte[] dataNo = CommonHelper.SplitArray(data, 1, 1); tcp_dvcstate_model.dataNo = CommonHelper.bytesToInt(dataNo); //信息对象 byte[] dvcObject = CommonHelper.SplitArray(data, 2, data.Length - 3); tcp_dvcstate_model.dvcObject = dvcObject; return tcp_dvcstate_model; } //部件状态信息对象 public static TCP_Dvcobject_Model BytestoDvcobjectData(byte[] data) { TCP_Dvcobject_Model tcp_dvcobject_model = new TCP_Dvcobject_Model(); //系统类型 byte[] sysType = CommonHelper.SplitArray(data, 0, 0); tcp_dvcobject_model.sysType = CommonHelper.byteToHexStr(sysType); //系统地址 byte[] sysAddr = CommonHelper.SplitArray(data, 1, 1); tcp_dvcobject_model.sysAddr = CommonHelper.byteToHexStr(sysAddr); //部件类型 byte[] dvcType = CommonHelper.SplitArray(data, 2, 2); tcp_dvcobject_model.dvcType = CommonHelper.bytesToInt(dvcType); //部件地址 byte[] dvcAddr = CommonHelper.SplitArray(data, 3, 7); tcp_dvcobject_model.dvcAddr = CommonHelper.byteToHexStr(dvcAddr); //部件状态 byte[] status = CommonHelper.SplitArray(data, 8, 9); tcp_dvcobject_model.dvcState = new BitArray(status); //部件说明 byte[] dvcExplain = CommonHelper.SplitArray(data, 10, 40); tcp_dvcobject_model.dvcExplain = CommonHelper.byteToHexStr(sysAddr); //时间标签 byte[] DateTime = CommonHelper.SplitArray(data, 41, 45); tcp_dvcobject_model.time = CommonHelper.BytestoDateTime(sysAddr); return tcp_dvcobject_model; } //模拟量 public static TCP_Dvcnum_Model BytestoDvcnumData(byte[] data) { TCP_Dvcnum_Model tcp_dvcnum_model = new TCP_Dvcnum_Model(); //类型标志 byte[] typesign = CommonHelper.SplitArray(data, 0, 0); tcp_dvcnum_model.typesign = CommonHelper.byteToHexStr(typesign); //信息对象数目 byte[] dataNo = CommonHelper.SplitArray(data, 1, 1); tcp_dvcnum_model.dataNo = CommonHelper.bytesToInt(dataNo); //信息对象 byte[] dvcObject = CommonHelper.SplitArray(data, 2, data.Length - 3); tcp_dvcnum_model.dvcObject = dvcObject; return tcp_dvcnum_model; } //模拟量信息对象 public static TCP_Dvcnumobject_Model BytestoDvcnumobjectData(byte[] data) { TCP_Dvcnumobject_Model tcp_dvcnumobject_model = new TCP_Dvcnumobject_Model(); //系统类型 byte[] sysType = CommonHelper.SplitArray(data, 0, 0); tcp_dvcnumobject_model.sysType = CommonHelper.byteToHexStr(sysType); //系统地址 byte[] sysAddr = CommonHelper.SplitArray(data, 1, 1); tcp_dvcnumobject_model.sysAddr = CommonHelper.byteToHexStr(sysAddr); //部件类型 byte[] dvcType = CommonHelper.SplitArray(data, 2, 2); tcp_dvcnumobject_model.dvcType = CommonHelper.bytesToInt(dvcType); //部件地址 byte[] dvcAddr = CommonHelper.SplitArray(data, 3, 7); tcp_dvcnumobject_model.dvcAddr = CommonHelper.byteToHexStr(dvcAddr); //模拟量类型 byte[] numState = CommonHelper.SplitArray(data, 8, 9); tcp_dvcnumobject_model.numState = CommonHelper.byteToHexStr(numState); //部件说明 byte[] numdata = CommonHelper.SplitArray(data, 10, 11); tcp_dvcnumobject_model.numValue = CommonHelper.byteToHexStr(numdata); //时间标签 byte[] DateTime = CommonHelper.SplitArray(data, 11, 15); tcp_dvcnumobject_model.time = CommonHelper.BytestoDateTime(sysAddr); return tcp_dvcnumobject_model; } //部件模拟量扩展包 public static TCP_Dvcnumext_Model BytestoDvcnumextData(byte[] data) { TCP_Dvcnumext_Model tcp_dvcnumext_model = new TCP_Dvcnumext_Model(); //类型标志 byte[] typesign = CommonHelper.SplitArray(data, 0, 0); tcp_dvcnumext_model.typesign = CommonHelper.byteToHexStr(typesign); //信息对象数目 byte[] dataNo = CommonHelper.SplitArray(data, 1, 1); tcp_dvcnumext_model.dataNo = CommonHelper.bytesToInt(dataNo); //系统类型 byte[] sysType = CommonHelper.SplitArray(data, 2, 2); tcp_dvcnumext_model.sysType = CommonHelper.byteToHexStr(sysType); //系统地址 byte[] sysAddr = CommonHelper.SplitArray(data, 3, 3); tcp_dvcnumext_model.sysAddr = CommonHelper.byteToHexStr(sysAddr); //部件类型 byte[] dvcType = CommonHelper.SplitArray(data, 4, 4); tcp_dvcnumext_model.dvcType = CommonHelper.bytesToInt(dvcType); //部件地址 byte[] dvcAddr = CommonHelper.SplitArray(data, 5, 8); tcp_dvcnumext_model.dvcAddr = CommonHelper.byteToHexStr(dvcAddr); //模拟量数目 byte[] numdata = CommonHelper.SplitArray(data, 9, 9); tcp_dvcnumext_model.numdata = CommonHelper.bytesToInt(numdata); //模拟量 byte[] numvalue = CommonHelper.SplitArray(data, 10, data.Length - 7); tcp_dvcnumext_model.numvalue = numvalue; //时间标签 byte[] time = CommonHelper.SplitArray(data, data.Length - 6, data.Length - 1); tcp_dvcnumext_model.time = CommonHelper.BytestoDateTime(time); return tcp_dvcnumext_model; } //部件模拟量扩展包模拟量 public static TCP_Dvcnumextobject_Model BytestoDvcnumextobjectData(byte[] data) { TCP_Dvcnumextobject_Model tcp_dvcnumextobject_model = new TCP_Dvcnumextobject_Model(); //模拟量类型 byte[] numType = CommonHelper.SplitArray(data, 0, 1); tcp_dvcnumextobject_model.numType = CommonHelper.byteToHexStr(numType); //模拟量值 byte[] numValue = CommonHelper.SplitArray(data, 2, 3); tcp_dvcnumextobject_model.numValue = CommonHelper.bytesToInt(numValue); return tcp_dvcnumextobject_model; } //命令 public static TCP_Order_Model BytestoOrdermData(byte[] data) { TCP_Order_Model tcp_order_model = new TCP_Order_Model(); //类型标志 byte[] typesign = CommonHelper.SplitArray(data, 0, 0); tcp_order_model.typesign = CommonHelper.byteToHexStr(typesign); //信息对象数目 byte[] dataNo = CommonHelper.SplitArray(data, 1, 1); tcp_order_model.dataNo = CommonHelper.bytesToInt(dataNo); //信息对象 byte[] orderObject = CommonHelper.SplitArray(data, 2, data.Length - 1); tcp_order_model.orderObject = orderObject; return tcp_order_model; } //命令信息对象 public static TCP_Orderobject_Model BytestoOrderobjectData(byte[] data) { TCP_Orderobject_Model tcp_orderobject_model = new TCP_Orderobject_Model(); //系统类型 byte[] sysType = CommonHelper.SplitArray(data, 0, 0); tcp_orderobject_model.sysType = CommonHelper.byteToHexStr(sysType); //系统地址 byte[] sysAddr = CommonHelper.SplitArray(data, 1, 1); tcp_orderobject_model.sysAddr = CommonHelper.byteToHexStr(sysAddr); //部件类型 byte[] dvcType = CommonHelper.SplitArray(data, 2, 2); tcp_orderobject_model.dvcType = CommonHelper.bytesToInt(dvcType); //部件地址 byte[] dvcAddr = CommonHelper.SplitArray(data, 3, 7); tcp_orderobject_model.dvcAddr = CommonHelper.byteToHexStr(dvcAddr); //参数类型 byte[] parmType = CommonHelper.SplitArray(data, 8, 8); tcp_orderobject_model.parmType = CommonHelper.byteToHexStr(parmType); //参数值 byte[] parmValue = CommonHelper.SplitArray(data, 9, 12); tcp_orderobject_model.parmValue = CommonHelper.byteToHexStr(parmValue); return tcp_orderobject_model; } //请求固件升级 public static void BytestoUpdateData(byte[] data) { TCP_Update_Model tcp_update_model = new TCP_Update_Model(); //类型标志 byte[] typesign = CommonHelper.SplitArray(data, 0, 0); tcp_update_model.typesign = CommonHelper.byteToHexStr(typesign); //信息对象数目 byte[] dataNum = CommonHelper.SplitArray(data, 1, 1); tcp_update_model.dataNum = CommonHelper.bytesToInt(dataNum); //系统类型 byte[] sysType = CommonHelper.SplitArray(data, 2, 2); tcp_update_model.sysType = CommonHelper.byteToHexStr(sysType); //系统地址 byte[] sysAddr = CommonHelper.SplitArray(data, 3, 3); tcp_update_model.sysAddr = CommonHelper.byteToHexStr(sysAddr); //部件类型 byte[] dvcType = CommonHelper.SplitArray(data, 4, 4); tcp_update_model.dvcType = CommonHelper.byteToHexStr(dvcType); //部件地址 byte[] dvcAddr = CommonHelper.SplitArray(data, 5, 36); tcp_update_model.dvcAddr = CommonHelper.byteToHexStr(dvcAddr); //软件类型 byte[] softType = CommonHelper.SplitArray(data, 37, 37); tcp_update_model.softType = CommonHelper.byteToHexStr(softType); //软件版本 byte[] softVersion = CommonHelper.SplitArray(data, 38, 41); tcp_update_model.softVersion = CommonHelper.byteToHexStr(softVersion); //地址类型 byte[] addrType = CommonHelper.SplitArray(data, 42, 42); tcp_update_model.addrType = CommonHelper.byteToHexStr(addrType); //升级文件地址长度 byte[] addrLength = CommonHelper.SplitArray(data, 43, 46); tcp_update_model.addrLength = CommonHelper.byteToHexStr(addrLength); //升级文件地址长度 byte[] fileAddr = CommonHelper.SplitArray(data, 46, data.Length - 1); tcp_update_model.fileAddr = CommonHelper.byteToHexStr(fileAddr); } //请求固件升级 public static void BytestoUpdatebeginData(byte[] data) { TCP_Updatebegin_Model tcp_updatebegin_model = new TCP_Updatebegin_Model(); //类型标志 byte[] typesign = CommonHelper.SplitArray(data, 0, 0); tcp_updatebegin_model.typesign = CommonHelper.byteToHexStr(typesign); //信息对象数目 byte[] dataNum = CommonHelper.SplitArray(data, 1, 1); tcp_updatebegin_model.dataNum = CommonHelper.bytesToInt(dataNum); //系统类型 byte[] sysType = CommonHelper.SplitArray(data, 2, 2); tcp_updatebegin_model.sysType = CommonHelper.byteToHexStr(sysType); //系统地址 byte[] sysAddr = CommonHelper.SplitArray(data, 3, 3); tcp_updatebegin_model.sysAddr = CommonHelper.byteToHexStr(sysAddr); //部件类型 byte[] dvcType = CommonHelper.SplitArray(data, 4, 4); tcp_updatebegin_model.dvcType = CommonHelper.byteToHexStr(dvcType); //部件地址 byte[] dvcAddr = CommonHelper.SplitArray(data, 5, 36); tcp_updatebegin_model.dvcAddr = CommonHelper.byteToHexStr(dvcAddr); //软件类型 byte[] softType = CommonHelper.SplitArray(data, 37, 37); tcp_updatebegin_model.softType = CommonHelper.byteToHexStr(softType); //软件版本 byte[] state = CommonHelper.SplitArray(data, 38, 38); tcp_updatebegin_model.state = CommonHelper.byteToHexStr(state); } //请求固件升级 public static void BytestoUpdaterequestData(byte[] data) { TCP_Updaterequest_Model tcp_updaterequest_model = new TCP_Updaterequest_Model(); //类型标志 byte[] typesign = CommonHelper.SplitArray(data, 0, 0); tcp_updaterequest_model.typesign = CommonHelper.byteToHexStr(typesign); //信息对象数目 byte[] dataNum = CommonHelper.SplitArray(data, 1, 1); tcp_updaterequest_model.dataNum = CommonHelper.bytesToInt(dataNum); //系统类型 byte[] sysType = CommonHelper.SplitArray(data, 2, 2); tcp_updaterequest_model.sysType = CommonHelper.byteToHexStr(sysType); //系统地址 byte[] sysAddr = CommonHelper.SplitArray(data, 3, 3); tcp_updaterequest_model.sysAddr = CommonHelper.byteToHexStr(sysAddr); //部件类型 byte[] dvcType = CommonHelper.SplitArray(data, 4, 4); tcp_updaterequest_model.dvcType = CommonHelper.byteToHexStr(dvcType); //部件地址 byte[] dvcAddr = CommonHelper.SplitArray(data, 5, 36); tcp_updaterequest_model.dvcAddr = CommonHelper.byteToHexStr(dvcAddr); //软件类型 byte[] softType = CommonHelper.SplitArray(data, 37, 37); tcp_updaterequest_model.softType = CommonHelper.byteToHexStr(softType); } //部件模拟量值定义表 public static TCP_Numtype_Model Numtype(int data) { TCP_Numtype_Model tcp_numtype_model = new TCP_Numtype_Model(); switch (data) { case 0: tcp_numtype_model.numType = 0; tcp_numtype_model.explain = "未用"; tcp_numtype_model.unit = "/"; tcp_numtype_model.valueRange = "/"; tcp_numtype_model.minunit = "/"; break; case 2: tcp_numtype_model.numType = 2; tcp_numtype_model.explain = "高度"; tcp_numtype_model.unit = "m"; tcp_numtype_model.valueRange = "0~320"; tcp_numtype_model.minunit = "0.01m"; break; case 3: tcp_numtype_model.numType = 3; tcp_numtype_model.explain = "温度"; tcp_numtype_model.unit = "℃"; tcp_numtype_model.valueRange = "-273~+3200"; tcp_numtype_model.minunit = "0.1℃"; break; case 4: tcp_numtype_model.numType = 4; tcp_numtype_model.explain = "压力"; tcp_numtype_model.unit = "Mpa(兆帕)"; tcp_numtype_model.valueRange = "0~3200"; tcp_numtype_model.minunit = "0.1Mpa"; break; case 5: tcp_numtype_model.numType = 5; tcp_numtype_model.explain = "压力"; tcp_numtype_model.unit = "Kpa(千帕)"; tcp_numtype_model.valueRange = "0~3200"; tcp_numtype_model.minunit = "0.1Kpa"; break; case 8: tcp_numtype_model.numType = 8; tcp_numtype_model.explain = "电压"; tcp_numtype_model.unit = "V"; tcp_numtype_model.valueRange = "0~3200"; tcp_numtype_model.minunit = "0.1V"; break; case 9: tcp_numtype_model.numType = 9; tcp_numtype_model.explain = "电流"; tcp_numtype_model.unit = "A"; tcp_numtype_model.valueRange = "0~3200"; tcp_numtype_model.minunit = "0.1A"; break; case 129: tcp_numtype_model.numType = 129; tcp_numtype_model.explain = "湿度"; tcp_numtype_model.unit = "%RH"; tcp_numtype_model.valueRange = "0~100"; tcp_numtype_model.minunit = "0.1%RH"; break; } return tcp_numtype_model; } //部件模拟量值定义表 public static string Dvctype(int data) { string result = ""; switch (data) { case 128: result = "压力传感器"; break; case 131: result = "液位传感器"; break; case 132: result = "湿度传感器"; break; case 133: result = "温度传感器"; break; } return result; } //系统类型定义表 public static string Systype(int data) { string result = ""; switch (data) { case 133: result = "物联网数据采集终端"; break; case 135: result = "组合式探测器"; break; } return result; } public static TCP_Paratype_Model Paramtype(int data) { TCP_Paratype_Model result = new TCP_Paratype_Model (); switch (data) { case 201: result.paramValue = 201; result.paramType = "上报间隔"; result.paramFormat = "Hex"; result.paramR_W = "r/w"; result.paramLength = "4B"; result.paramUnit = "s"; result.paramDimension = "/"; result.paramRange = "全F不上报"; break; case 203: result.paramValue = 203; result.paramType = "心跳时间间隔"; result.paramFormat = "Hex"; result.paramR_W = "r/w"; result.paramLength = "4B"; result.paramUnit = "s"; result.paramDimension = "/"; result.paramRange = "/"; break; case 204: result.paramValue = 204; result.paramType = "通道接口类型"; result.paramFormat = "Hex"; result.paramR_W = "r/w"; result.paramLength = "4B"; result.paramUnit = "/"; result.paramDimension = "/"; result.paramRange = "/"; break; case 205: result.paramValue = 204; result.paramType = "传感器量程设置"; result.paramFormat = "Hex"; result.paramR_W = "r/w"; result.paramLength = "4B"; result.paramUnit = "水位:m水压:Mpa"; result.paramDimension = "100"; result.paramRange = "/"; break; } return result; } //确认 public static byte[] Confirm(byte[] dataNo, byte[] versionNo, byte[] ydz, byte[] mddz, int mlzj)//确认0x03 否认0x06 注册0x00 { byte[] result = new byte[0]; byte[] byteArrayFirst = new byte[] { 40, 40 }; //业务流水号 result = CommonHelper.MergerArray(result, dataNo); //版本号 result = CommonHelper.MergerArray(result, versionNo); //时间 result = CommonHelper.MergerArray(result, DatetimeTobyte()); //源地址 result = CommonHelper.MergerArray(result, ydz); //目的地址 result = CommonHelper.MergerArray(result, mddz); //应用数据长度 2字节 result = CommonHelper.MergerArray(result, new byte[] { 0,0}); //命令字节 result = CommonHelper.MergerArray(result, new byte[] { (byte)mlzj }); //校验和 int checkNum = CommonHelper.CalcSum(result); result = CommonHelper.MergerArray(result, new byte[] { (byte)checkNum }); //结束符 result = CommonHelper.MergerArray(result, new byte[] { 23, 23 }); byteArrayFirst = CommonHelper.MergerArray(byteArrayFirst, result); return byteArrayFirst; } //确认 public static byte[] Confirm2(int dataNo,int versionNo,string ydz,string mddz,int mlzj)//确认0x03 否认0x06 注册0x00 { byte[] result = new byte[0]; byte[] byteArrayFirst =new byte[] { 40,40}; //业务流水号 byte[] byteArray = intTobyte(dataNo); result = CommonHelper.MergerArray(result, byteArray); //版本号 byteArray = intTobyte(versionNo); result = CommonHelper.MergerArray(result, byteArray); //时间 byteArray = DatetimeTobyte(); result = CommonHelper.MergerArray(result, byteArray); //源地址 byteArray = CommonHelper.HexStrTobyte(ydz); result = CommonHelper.MergerArray(result, byteArray); //目的地址 byteArray = CommonHelper.HexStrTobyte(mddz); result = CommonHelper.MergerArray(result, byteArray); //应用数据长度 2字节 byteArray = new byte[0]; result = CommonHelper.MergerArray(result, byteArray); byteArray = new byte[0]; result = CommonHelper.MergerArray(result, byteArray); //命令字节 byteArray = intTobyte(mlzj); result = CommonHelper.MergerArray(result, byteArray); //校验和 int checkNum=CommonHelper.CalcSum(result); byteArray = intTobyte(checkNum); result = CommonHelper.MergerArray(result, byteArray); //结束符 byteArray = new byte[] { 23, 23 }; result = CommonHelper.MergerArray(result, byteArray); byteArrayFirst = CommonHelper.MergerArray(byteArrayFirst, result); return byteArrayFirst; } #region 公共方法 //int 转 bite[] public static byte[] intTobyte(int num) { byte[] byteArray = new byte[] { (byte)(0XFF & num) }; // 将 int 转换成字节数组(str); return byteArray; } //将当前时间 转 bite[] public static byte[] DatetimeTobyte() { byte[] result = new byte[0]; DateTime currentTime = DateTime.Now; int year= currentTime.Year%100; int month = currentTime.Month; int day = currentTime.Day; int hour = currentTime.Hour; int minute = currentTime.Minute; int second = currentTime.Second; byte[] b = new byte[] { (byte)second, (byte)minute, (byte)hour, (byte)day, (byte)month, (byte)year }; //byte[] byteArray = intTobyte(second); //result = CommonHelper.MergerArray(result, byteArray); //byteArray = intTobyte(minute); //result = CommonHelper.MergerArray(result, byteArray); //byteArray = intTobyte(hour); //result = CommonHelper.MergerArray(result, byteArray); //byteArray = intTobyte(day); //result = CommonHelper.MergerArray(result, byteArray); //byteArray = intTobyte(month); //result = CommonHelper.MergerArray(result, byteArray); //byteArray = intTobyte(year); //result = CommonHelper.MergerArray(result, byteArray); return b; } #endregion } }