public bool IsConnectDevice = false; //用于表示是否成功连接一个设备 public retstate connectToDevice(int DeviceSelect, string RequestID, string ResponseID, BaudRate baudRate) { retstate ret = retstate.OK; if (!IsConnectDevice) { passThru.LoadLibrary(availableJ2534Devices[DeviceSelect]); J2534ErrStatus = passThru.Open(ref deviceId); if ((J2534ErrStatus == J2534Err.STATUS_NOERROR)) { // OpenADevice = connectCAN(); IsConnectDevice = ConnectIso15765(RequestID, ResponseID, baudRate); if (!IsConnectDevice) { ret = retstate.NOT_OK; } } else { ret = retstate.NOT_OK; } } return(ret); }
/*Run before display*/ private void DiagUserControlLoad(object sender, EventArgs e) { this.TestPresentComboBox.SelectedIndex = 0; this.SecurityAccessComboBox.SelectedIndex = 0; this.DeviceConnectButton.Image = Image.FromFile("stop.png"); DTCANRxScroll.Columns.Add("Sum", typeof(int)); DTCANRxScroll.Columns.Add("Type"); DTCANRxScroll.Columns.Add("ArbID"); DTCANRxScroll.Columns.Add("Length", typeof(int)); DTCANRxScroll.Columns.Add("Data"); DTCANRxScroll.Columns.Add("TimeStamp"); this.TxRxDataGridView.DataSource = DTCANRxScroll; this.TxRxDataGridView.Columns[0].Width = 50; this.TxRxDataGridView.Columns[1].Width = 40; this.TxRxDataGridView.Columns[2].Width = 50; this.TxRxDataGridView.Columns[3].Width = 50; this.TxRxDataGridView.Columns[4].Width = 400; this.TxRxDataGridView.Columns[5].Width = 200; this.TxRxDataGridView.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //this.TxRxDataGridView.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; // ALL this.TxRxDataGridView.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; this.TxRxDataGridView.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; this.TxRxDataGridView.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; this.TxRxDataGridView.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; retVal = DeviceConnectInit(Global.passThruWrapper.availableJ2534Devices, DeviceConnectInitCallback); if (retVal == retstate.NOT_OK) { MessageBox.Show("请检查设备驱动哦!"); } }
/*DeviceConnectInit init*/ public retstate DeviceConnectInit(List <J2534Device> availableJ2534Devices, Action <List <J2534Device> > Callback) { retstate ret = retstate.NOT_OK; if (availableJ2534Devices.Count != 0) { Callback(availableJ2534Devices); ret = retstate.OK; } return(ret); }
/*Click DeviceConnectButton*/ private void DeviceConnectButton_Click(object sender, EventArgs e) { retstate retVal = retstate.NOT_OK; BaudRate baudRate = BaudRate.ISO15765_500000; if (!Global.passThruWrapper.IsConnectDevice) { /* Use selected baudrate in setup */ switch (Convert.ToInt32(Global.setupForm.BaudRateComboBox_Text.Substring(0, 3))) { case 125: baudRate = BaudRate.ISO15765_125000; break; case 250: baudRate = BaudRate.ISO15765_250000; break; case 500: baudRate = BaudRate.ISO15765_500000; break; default: baudRate = BaudRate.ISO15765_500000; break; } retVal = Global.passThruWrapper.connectToDevice(this.DeviceSelectComboBox.SelectedIndex, Global.diagUsercontrol.ReqIDTextBox_Text, Global.diagUsercontrol.ResIDTextBox_Text, baudRate); if (retVal == retstate.NOT_OK) { MessageBox.Show("请检查设备连接!", "Error"); } else if (retVal == retstate.OK) { this.RxMsgTimer.Start(); this.TestPresentTimer.Start(); Global.txPanelForm.TxMsgTimerStart(); //Global.mmTimer.Start(2, true); // TxPanel timer. this.DeviceConnectButton.Image = Image.FromFile("run.png"); } } else { this.RxMsgTimer.Stop(); this.TestPresentTimer.Stop(); Global.txPanelForm.TxMsgTimerStop(); //Global.mmTimer.Stop(); // TxPanel timer. Global.passThruWrapper.deviceClose(); this.DeviceConnectButton.Image = Image.FromFile("stop.png"); } }