public static byte[] ZigBee_Write64Bytes(uint OnlyAddr, byte[] DataI, byte PageIndex) { byte[] Buf = new byte[1500]; byte[] Data = new byte[65]; Data[0] = PageIndex; for (int i = 0; i < 64; i++) { Data[1 + i] = DataI[i]; } int Length = ZigBeeBus.ZigBee_SendMsg(ref Buf, OnlyAddr, (byte)ACFF.SCFF_Write64Byte, Data, (byte)Data.Length); ZigBeeBus.ZigBee_CheckCrc(Buf); return(Buf); }
private void timer1_Tick(object sender, EventArgs e) { if (RxTimeOutCount-- == 0) { if (SB.Length > 5) { this.textBox1.Text = (SB.ToString()); } byte[] RxBuffer = Tools.StringToHex(SB.ToString()); if (ZigBeeBus.ZigBee_CheckCrc(RxBuffer)) { CanRxMsg Msg = CAN.CAN_Export(RxBuffer, 4); bool Ok = true; for (int i = 0; i < comboBox4.Items.Count; i++) { if (comboBox4.Items[i].ToString() == "0x" + Msg.StdId.ToString("x8")) { Ok = false; } } if (Ok) { comboBox4.Items.Add("0x" + Msg.StdId.ToString("x8")); } if (comboBox4.Text == "") { UpdateList(Msg); } if (comboBox4.Text == "0x" + Msg.StdId.ToString("x8")) { UpdateList(Msg); label3.Text = (Msg.Data[0] * 0xff + Msg.Data[1]).ToString(); label4.Text = (Msg.Data[3] * 0xff + Msg.Data[2]).ToString(); label5.Text = (Msg.Data[5] * 0xff + Msg.Data[4]).ToString(); label6.Text = Tools.ByteToFloat(Msg.Data, 0, 0).ToString(); } } SB.Clear(); try { serialPort1.DiscardInBuffer(); } catch { } } }
public int SendData(byte[] TxBuffer, int TxLength, ref byte[] RxBuffer, int RxLength) { int Length = 0; for (int n = 0; n < RxLength; n++) { RxBuffer[n] = 0; } if (!SP.IsOpen) { return(0); } for (int i = 0; i < 10; i++) { Length = SendDataOne(TxBuffer, TxLength, ref RxBuffer, RxLength); if (ZigBeeBus.ZigBee_CheckCrc(RxBuffer)) { return(Length); } } MessageBox.Show("重试次数过多"); return(Length); }