public stm32f4_RxPacket CommandProc(ushort command, byte[] txdata, int rxTimeOut) { byte[] txBuf = stm32f4_TxPacket.MakeCP1616Packet(command, txdata); if (!WFNetLib.WFGlobal.OpenSerialPort(ref com, "stm32f4 pc端")) { return(null); } Debug.WriteLine(WFNetLib.StringFunc.StringsFunction.byteToHexStr(txBuf, " ")); com.ReadTimeout = rxTimeOut; com.Write(txBuf, 0, txBuf.Length); stm32f4_RxPacket ret = new stm32f4_RxPacket(command); while (true) { try { if (ret.DataPacketed((byte)com.ReadByte())) { com.Close(); return(ret); } } catch// (Exception ex) { //Debug.WriteLine("血糖通信失败" + ex.Message); //MessageBox.Show("发送错误"); //textBox2.Text = "发送错误"; com.Close(); return(null); } } }
public static stm32f4_RxPacket CP1616ComProc(ref SerialPort serialPort, ushort com, int retry) { stm32f4_RxPacket ret = new stm32f4_RxPacket(com); while (retry != 0) { while (true) { try { if (ret.DataPacketed((byte)serialPort.ReadByte())) { return(ret); } } catch// (Exception ex) { //Debug.WriteLine("血糖通信失败" + ex.Message); break; } } retry--; } return(null); }
private void toolStripButton2_Click(object sender, EventArgs e) { byte[] Cmd = new byte[0x34] { 0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13, 0x20, 0x21, 0x22, 0x23, 0x30, 0x31, 0x32, 0x33, 0x40, 0x41, 0x42, 0x43, 0x50, 0x51, 0x52, 0x53, 0x60, 0x61, 0x62, 0x63, 0x70, 0x71, 0x72, 0x73, 0x80, 0x81, 0x82, 0x83, 0x90, 0x91, 0x92, 0x93, 0x94, 0xA0, 0xB0, 0xC0, 0xC2, 0xC3, 0xC5, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, }; textBox1.Clear(); stm32f4_RxPacket rx1 = MainForm.comProc.CommandProc(3, SetUartBaudRate.GetTxData(9600), 1000); if (rx1 == null) { textBox1.AppendText("接收错误\r\n"); return; } for (int i = 0; i < Cmd.Length; i++) { uartCommand.Data[2] = Cmd[i]; uartCommand.Data[10] = Verify.GetVerify_byteSum(uartCommand.Data, 0, 10); textBox1.AppendText("发送:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(uartCommand.Data, " ") + "\r\n"); stm32f4_RxPacket rx = MainForm.comProc.CommandProc(2, uartCommand.GetTxData(), 3000); if (rx == null) { textBox1.AppendText("接收错误\r\n"); } else { textBox1.AppendText("接收:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(rx.Data, " ") + "\r\n"); } } textBox1.AppendText("\r\n完成于" + DateTime.Now.ToString()); }
private void toolStripButton1_Click(object sender, EventArgs e) { byte[] Cmd = new byte[0x03] { 0x90, 0x91, 0xC7 }; textBox1.Clear(); stm32f4_RxPacket rx1 = MainForm.comProc.CommandProc(3, SetUartBaudRate.GetTxData(9600), 1000); if (rx1 == null) { textBox1.AppendText("接收错误\r\n"); return; } for (int i = 0; i < Cmd.Length; i++) { uartCommand.Data[2] = Cmd[i]; uartCommand.Data[10] = Verify.GetVerify_byteSum(uartCommand.Data, 0, 10); textBox1.AppendText("发送:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(uartCommand.Data, " ") + "\r\n"); stm32f4_RxPacket rx = MainForm.comProc.CommandProc(2, uartCommand.GetTxData(), 1000); if (rx == null) { textBox1.AppendText("接收错误\r\n"); } else { textBox1.AppendText("接收:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(rx.Data, " ") + "\r\n"); } } textBox1.AppendText("\r\n完成于" + DateTime.Now.ToString()); }
private void button1_Click(object sender, EventArgs e) { byte[] txData = WFNetLib.StringFunc.StringsFunction.strToHexByte(textBox1.Text, " "); //byte[] txBuf = stm32f4_TxPacket.MakeCP1616Packet((ushort)(cbCommand.SelectedIndex + 1), (ushort)nRetry.Value, (ushort)nTimeOut.Value, txData); stm32f4_RxPacket rx = MainForm.comProc.CommandProc((ushort)(cbCommand.SelectedIndex + 1), txData, 3000); if (rx == null) { textBox2.Text = "发送错误"; } else { textBox2.Text = WFNetLib.StringFunc.StringsFunction.byteToHexStr(rx.Data, " "); } textBox2.AppendText("\r\n完成于" + DateTime.Now.ToString()); }
private void btReadData(object sender, EventArgs e) { textBox1.Clear(); setBR(); switch (EISCombo.SelectedIndex) { case 0: // EIS_Mode1_ReadData m1ReadData = new EIS_Mode1_ReadData(); for (int i = 0; i < m1ReadData.canCommand.Length; i++) { textBox1.AppendText("指令 TX_ID=" + m1ReadData.canCommand[i].TxStdId.ToString("X04") + ",数据:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(m1ReadData.canCommand[i].TxData, " ") + "\r\n"); rxPacket = MainForm.comProc.CommandProc(101, m1ReadData.canCommand[i].GetTxData(), m1ReadData.canCommand[i].TxRetry * m1ReadData.canCommand[i].TxTimeOut + m1ReadData.canCommand[i].RxRetry * m1ReadData.canCommand[i].RxTimeOut); if (rxPacket == null) { textBox1.AppendText("接收错误\r\n"); } else if (rxPacket.Header.bError != 0) { textBox1.AppendText("通讯指令未能达到预期目的,错误代码为:" + rxPacket.Header.ErrCode.ToString("D02") + "\r\n"); } else { textBox1.AppendText("接收:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(rxPacket.Data, " ") + "\r\n"); } } break; case 1: // EIS_Mode2_ReadData m2ReadData = new EIS_Mode2_ReadData(); for (int i = 0; i < m2ReadData.canCommand.Length; i++) { textBox1.AppendText("指令 TX_ID=" + m2ReadData.canCommand[i].TxStdId.ToString("X04") + ",数据:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(m2ReadData.canCommand[i].TxData, " ") + "\r\n"); rxPacket = MainForm.comProc.CommandProc(101, m2ReadData.canCommand[i].GetTxData(), m2ReadData.canCommand[i].TxRetry * m2ReadData.canCommand[i].TxTimeOut + m2ReadData.canCommand[i].RxRetry * m2ReadData.canCommand[i].RxTimeOut); if (rxPacket == null) { textBox1.AppendText("接收错误\r\n"); } else if (rxPacket.Header.bError != 0) { textBox1.AppendText("通讯指令未能达到预期目的,错误代码为:" + rxPacket.Header.ErrCode.ToString("D02") + "\r\n"); } else { textBox1.AppendText("接收:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(rxPacket.Data, " ") + "\r\n"); } } break; case 2: // EIS_Mode3_ReadData m3ReadData = new EIS_Mode3_ReadData(); for (int i = 0; i < m3ReadData.canCommand.Length; i++) { textBox1.AppendText("指令 TX_ID=" + m3ReadData.canCommand[i].TxStdId.ToString("X04") + ",数据:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(m3ReadData.canCommand[i].TxData, " ") + "\r\n"); rxPacket = MainForm.comProc.CommandProc(101, m3ReadData.canCommand[i].GetTxData(), m3ReadData.canCommand[i].TxRetry * m3ReadData.canCommand[i].TxTimeOut + m3ReadData.canCommand[i].RxRetry * m3ReadData.canCommand[i].RxTimeOut); if (rxPacket == null) { textBox1.AppendText("接收错误\r\n"); } else if (rxPacket.Header.bError != 0) { textBox1.AppendText("通讯指令未能达到预期目的,错误代码为:" + rxPacket.Header.ErrCode.ToString("D02") + "\r\n"); } else { textBox1.AppendText("接收:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(rxPacket.Data, " ") + "\r\n"); } } break; case 3: // EIS_Mode4_ReadData m4ReadData = new EIS_Mode4_ReadData(); for (int i = 0; i < m4ReadData.canCommand.Length; i++) { textBox1.AppendText("指令 TX_ID=" + m4ReadData.canCommand[i].TxStdId.ToString("X04") + ",数据:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(m4ReadData.canCommand[i].TxData, " ") + "\r\n"); rxPacket = MainForm.comProc.CommandProc(101, m4ReadData.canCommand[i].GetTxData(), 0); if (rxPacket == null) { textBox1.AppendText("接收错误\r\n"); } else if (rxPacket.Header.bError != 0) { textBox1.AppendText("通讯指令未能达到预期目的,错误代码为:" + rxPacket.Header.ErrCode.ToString("D02") + "\r\n"); } else { textBox1.AppendText("接收:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(rxPacket.Data, " ") + "\r\n"); } } break; } textBox1.AppendText("\r\n完成于" + DateTime.Now.ToString()); }