예제 #1
0
        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);
        }
예제 #2
0
        /*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("请检查设备驱动哦!");
            }
        }
예제 #3
0
        /*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);
        }
예제 #4
0
        /*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");
            }
        }