//发送按钮点击事件处理函数 unsafe private void button_Send_Click(object sender, EventArgs e) { if (mIsOpen == 0) { return; } VCI_CAN_OBJ sendobj = new VCI_CAN_OBJ(); //sendobj.Init(); sendobj.SendType = (byte)comboBox_SendType.SelectedIndex; sendobj.RemoteFlag = (byte)comboBox_FrameFormat.SelectedIndex; sendobj.ExternFlag = (byte)comboBox_FrameType.SelectedIndex; sendobj.ID = System.Convert.ToUInt32("0x" + textBox_ID.Text, 16); int len = (textBox_Data.Text.Length + 1) / 3; sendobj.DataLen = System.Convert.ToByte(len); String strdata = textBox_Data.Text; for (int i = 0; i < len; i++) { if (i >= 8) { break; } sendobj.Data[i] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16); } if (DllAdapte.VCI_Transmit(mDevType, mDevInd, mCanInd, ref sendobj, 1) == 0) { MessageBox.Show("发送失败", "错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
//发送升级数据 unsafe private void SendUpData(string id, string data) { uint canId = 0; VCI_CAN_OBJ sendobj = new VCI_CAN_OBJ(); //sendobj.Init(); sendobj.SendType = (byte)comboBox_SendType.SelectedIndex; sendobj.RemoteFlag = (byte)comboBox_FrameFormat.SelectedIndex; sendobj.ExternFlag = (byte)comboBox_FrameType.SelectedIndex; sendobj.ID = System.Convert.ToUInt32("0x" + id, 16); int len = (data.Length + 1) / 3; sendobj.DataLen = System.Convert.ToByte(len); String strdata = data; Byte dat = (Byte)0; for (int i = 0; i < len; i++) { if (i >= 8) { break; } dat = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16); sendobj.Data[i] = dat; } sendListBox.Items.Add("报文ID: 0x" + id + " 发送数据: " + data + " 发送帧数: " + mSendFrameNum.ToString("X4")); sendListBox.SelectedIndex = sendListBox.Items.Count - 1; if (DllAdapte.VCI_Transmit(mDevType, mDevInd, canId, ref sendobj, 1) != 1) { sendListBox.Items.Add("发送失败"); } }