protected static void ParseCommandResult(byte[] resultData, out TagCommandResult commandResult) { var resultDataQueue = new Queue(); foreach (var t in resultData) { resultDataQueue.Enqueue(t); } //Obtain command result var crTmp = new TagCommandResult { u8_is_ok = (byte)resultDataQueue.Dequeue(), u8_result1 = (byte)resultDataQueue.Dequeue(), u16_result2 = new byte[2] }; for (var i = 0; i < 2; i++) { crTmp.u16_result2[i] = (byte)resultDataQueue.Dequeue(); } crTmp.u32_append_data_size = new byte[4]; for (var i = 0; i < 4; i++) { crTmp.u32_append_data_size[i] = (byte)resultDataQueue.Dequeue(); } commandResult = crTmp; }
public static void SearchPointParse(byte[] resultData, out List <string> pointList) { TagCommandResult commandResult = null; TagShortCircuitInfo shortCircuitInfo = null; ParseCommandResult(resultData.Take(8).ToArray(), out commandResult); ParseShortCircuitInfo(resultData.Skip(8).ToArray(), out shortCircuitInfo); FormatPointCircuitInfo(shortCircuitInfo, out pointList); }
public static void SelfCheckParse(byte[] resultData, out List <List <string> > shortCircuitInfoResult, out int pointNo, out int circuitNo) { TagCommandResult commandResult = null; TagShortCircuitInfo shortCircuitInfo = null; shortCircuitInfoResult = new List <List <string> >(); ParseCommandResult(resultData.Take(8).ToArray(), out commandResult); ParseShortCircuitInfo(resultData.Skip(8).ToArray(), out shortCircuitInfo); circuitNo = U8ToU16(shortCircuitInfo.u16_short_circuit_group_count[1], shortCircuitInfo.u16_short_circuit_group_count[0]); pointNo = U8ToU16(shortCircuitInfo.u16_short_lines_count[1], shortCircuitInfo.u16_short_lines_count[0]); FormatShortCircuitInfo(shortCircuitInfo, out shortCircuitInfoResult); }