private void SendSerialData() { ushort Rx_SData = 0; // 应该是发下来的 0x20 0x30 之类的命令头 byte uartCmd = 0; int value = 0; Rx_SData = serialDataHelper.SendComdFlag; Rx_SData |= sendDataManager.GetSendCmdFlag(); serialDataHelper.SendComdFlag = Rx_SData; for (int i = 0; i < 16; i++) { value = (Rx_SData >> i) & 0x01; if (value != 0) { uartCmd = (byte)(0x21 + i); break; } else { uartCmd = 0x20; } } byte[] serialDatas = sendDataManager.GetSerialSendData(uartCmd); //key 2 获得串口数据 if (serialDatas != null) { if (uartCmd != oldComd || uartCmd != 0x20) //当前指令和原先的指令不同 或者 当前指令不为0x20 { haveSendData = true; oldComd = uartCmd; serialDataModelCollect.Add(new SerialDataModel(SerialDataType.SendData, uartCmd, serialDatas)); //??新建了一条指令? } //应该有一个指令池 serialPortEx.SendSerialData(serialDatas, uartCmd); } }