Пример #1
0
        private void mBt_Connect_Click(object sender, EventArgs evargs)
        {
            mLV_Targets.Items.Clear();
            mLV_Targets.Enabled           = false;
            mBt_StartIdent.Enabled        = false;
            mBt_ConfigureVariants.Enabled = false;
            mTB_Status.Text      = "Connecting to CANoe and looking for configured diagnostics targets ...";
            mTB_Status.BackColor = Color.LightGray;

            mSysVarResult = null;
            mSysVarTarget = null;

            try
            {
                CANoe.Application      app          = new CANoe.Application();
                CANoe.Configuration    config       = (CANoe.Configuration)app.Configuration;
                CANoe.GeneralSetup     generalSetup = (CANoe.GeneralSetup)config.GeneralSetup;
                CANoe.DiagnosticsSetup diagSetup    = (CANoe.DiagnosticsSetup)generalSetup.DiagnosticsSetup;
                CANoe.DiagDescriptions descriptions = (CANoe.DiagDescriptions)diagSetup.DiagDescriptions;
                foreach (CANoe.Network netw in (CANoe.Networks)app.get_Networks(null))
                {
                    foreach (CANoe.Device dev in (CANoe.Devices)netw.Devices)
                    {
                        try
                        {
                            Diagnostic.Diagnostic diag = (Diagnostic.Diagnostic)dev.Diagnostic;
                            if (null != diag)
                            {
                                ListViewItem item = new ListViewItem();
                                item.Checked = false;
                                item.Text    = dev.Name;
                                item.SubItems.Add(netw.Name);
                                item.SubItems.Add("(unknown)");            // default for configured variant, should be overwritten
                                item.SubItems.Add("(not identified yet)"); // default for configured variant, should be overwritten
                                foreach (CANoe.DiagDescription descr in descriptions)
                                {
                                    if (descr.Qualifier == dev.Name)
                                    {
                                        item.SubItems[chConfiguredVariant.Index].Text = descr.Variant;
                                        break;
                                    }
                                }
                                mLV_Targets.Items.Add(item);
                            }
                        }
                        catch
                        {
                            // device does not have a diagnostics interface, so ignore it
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                mTB_Status.Text      = "Error: " + ex.ToString();
                mTB_Status.BackColor = Color.Red;
                return;
            }

            mTB_Status.Text = "" + mLV_Targets.Items.Count + " targets found.";

            if (mLV_Targets.Items.Count > 0)
            {
                mLV_Targets.Enabled  = true;
                mTB_Status.BackColor = Color.LightGreen;
            }
            {
                CANoe.Application app = new CANoe.Application();
                mBt_StartIdent.Enabled = !((CANoe.Measurement)app.Measurement).Running;
            }
        }