Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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());
        }
Пример #4
0
        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());
        }
Пример #5
0
        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());
        }
Пример #6
0
        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());
        }