/// <summary> /// 查询对应通道的负载状态。 /// </summary> /// <param name="ch">要查询的通道</param> /// <param name="targetId"></param> /// <returns></returns> public byte[] SingleQuiryLoad(LoadChannel ch, int targetId = 0) { byte[] ar = null; UInt16 crc; SingleQuiryLoadCurrentCmd sqlc = new SingleQuiryLoadCurrentCmd(); InitHeader(typeof(SingleQuiryLoadCurrentCmd), (CmdHeader)sqlc, 0x02, TYPE_LOAD, (UInt16)targetId); sqlc.channel = (byte)ch; ar = Struct2Array <SingleQuiryLoadCurrentCmd>(sqlc); crc = CalcCRC16(0, ar, ar.Length - 2); ar[ar.Length - 2] = (byte)(crc >> 8); ar[ar.Length - 1] = (byte)(crc & 0xff); return(ar); }
/// <summary> /// 配置负载对应通道的电流值 /// </summary> /// <param name="ch">配置的通道</param> /// <param name="curr">配置的电流值,单位mA</param> /// <param name="targetId"></param> /// <returns></returns> public byte[] ConfigLoadCurrent(LoadChannel ch, int curr, int targetId = 0) { byte[] ar = null; UInt16 crc; ConfigLoadCurrentCmd clcc = new ConfigLoadCurrentCmd(); InitHeader(typeof(ConfigLoadCurrentCmd), (CmdHeader)clcc, 0x01, TYPE_LOAD, (UInt16)targetId); clcc.channel = (byte)ch; clcc.curr_h = (byte)(curr >> 8); clcc.curr_l = (byte)(curr & 0xff); ar = Struct2Array <ConfigLoadCurrentCmd>(clcc); crc = CalcCRC16(0x0000, ar, ar.Length - 2); ar[ar.Length - 2] = (byte)(crc >> 8); ar[ar.Length - 1] = (byte)(crc & 0xff); return(ar); }