Exemple #1
0
        public bool CommsTryConnect(tclsUDSComms clsUDSComms, string szIniFilePath, int iReceiveMaxLength)
        {
            tclsIniParser mclsIniParser;
            string        szDLL;
            string        szBaud;
            int           iBaud = 0;
            string        szDeviceSerial;
            string        szConnectionType;
            string        szCommPort;
            string        szDiagRXID;
            string        szDiagTXID;
            UInt32        u32DiagRXID = 0;
            UInt32        u32DiagTXID = 0;

            mclsUDSComms = clsUDSComms;

            mclsIniParser = new tclsIniParser(szIniFilePath);

            try
            {
                szConnectionType = mclsIniParser.GetSetting("Program", "ConnectionType");

                if (0 == String.Compare(szConnectionType, "CANAL"))
                {
                    menCommsType = tenCommsType.enCANAL;
                }
                if (0 == String.Compare(szConnectionType, "CANRP1210"))
                {
                    menCommsType = tenCommsType.enCANRP1210;
                }
                if (0 == String.Compare(szConnectionType, "USBCDC"))
                {
                    menCommsType = tenCommsType.enUSBCDC;
                }
                if (0 == String.Compare(szConnectionType, "Serial"))
                {
                    menCommsType = tenCommsType.enSerial;
                }
                if (0 == String.Compare(szConnectionType, "CANLIBKVASER"))
                {
                    menCommsType = tenCommsType.enCANLIBKVASER;
                }
            }
            catch
            {
                szConnectionType = null;
            }

            try
            {
                szBaud = mclsIniParser.GetSetting("Devices", "ComsBaud");
                iBaud  = Convert.ToInt16(szBaud);
            }
            catch
            {
                szBaud = null;
            }

            try
            {
                szDeviceSerial = mclsIniParser.GetSetting("Devices", "ComsDeviceSerial");
            }
            catch
            {
                szDeviceSerial = null;
            }

            try
            {
                szDLL = mclsIniParser.GetSetting("Devices", "RP1210Lib");
            }
            catch
            {
                szDLL = "Unknown";
            }

            try
            {
                szDiagRXID = mclsIniParser.GetSetting("Devices", "ComsDiagIDRX");

                u32DiagRXID = Convert.ToUInt32(szDiagRXID);
            }
            catch
            {
                szDiagRXID = null;
            }

            try
            {
                szDiagTXID = mclsIniParser.GetSetting("Devices", "ComsDiagIDTX");

                u32DiagTXID = Convert.ToUInt32(szDiagTXID);
            }
            catch
            {
                szDiagTXID = null;
            }

            try
            {
                szCommPort = mclsIniParser.GetSetting("Devices", "ComsPort");
            }
            catch
            {
                szCommPort = null;
            }

            switch (menCommsType)
            {
            case tenCommsType.enCANAL:
            {
                if ((null != szDeviceSerial) && (null != szBaud) && (null != szDiagRXID))
                {
                    try
                    {
                        mclsUSB2CAN64Interface = new MDACUSB2CAN64Interface.tclsMDACUSB2CAN64Interface(szDeviceSerial, szBaud);
                        mclsUSB2CAN64Interface.DataReceived +=
                            new MDACUSB2CAN64Interface.tclsMDACUSB2CAN64Interface.DataReceivedEventHandler(vRXCallBackUDSOverCAN2USB);
                        mclsUSB2CAN64Interface.SetHeaderSize(10);
                        mboChannelActive = mclsUSB2CAN64Interface.Connect(iBaud, (int)u32DiagRXID, (int)u32DiagTXID);
                    }
                    catch
                    {
                        mboChannelActive = false;
                    }
                }

                break;
            }

            case tenCommsType.enCANLIBKVASER:
            {
                if ((null != szDeviceSerial) && (null != szBaud) && (null != szDiagRXID))
                {
                    try
                    {
                        mclsUDSDotNet64Interface = new MDACUDSDotNet64Interface.tclsMDACUDSDotNet64Interface();
                        mclsUDSDotNet64Interface.DataReceived +=
                            new MDACUDSDotNet64Interface.tclsMDACUDSDotNet64Interface.DataReceivedEventHandler(vRXCallBackUDSOverCANLIBKVASER);
                        mclsUDSDotNet64Interface.SetHeaderSize(10);
                        mboChannelActive = mclsUDSDotNet64Interface.Connect(iBaud, szDLL, u32DiagRXID);
                    }
                    catch
                    {
                        mboChannelActive = false;
                    }
                }

                break;
            }

            case tenCommsType.enUSBCDC:
            {
                if ((null != szBaud) && (null != szCommPort))
                {
                    try
                    {
                        mclsUSBInterface = new MDACUSBInterface.MDACUSBInterface();
                        mclsUSBInterface.DataReceived +=
                            new MDACUSBInterface.MDACUSBInterface.DataReceivedEventHandler(vRXCallBackUDSOverUSB);
                        mclsUSBInterface.SetHeaderSize(10);
                        mboChannelActive = mclsUSBInterface.Connect(MDACUSBInterface.MDACUSBInterface.tenClassType.enUSBVirtualComm,
                                                                    0, 0, 0, 0, szCommPort, 1000 * iBaud);

                        if (true == mboChannelActive)
                        {
                            mUSBCDCSubscribed = true;
                        }
                    }
                    catch
                    {
                    }
                }

                break;
            }
            }

            return(mboChannelActive);
        }
Exemple #2
0
 public tclsCommsInterface(IntPtr MDIFormHandle)
 {
     menCommsType = tenCommsType.enUnknown;
     tclsRegisterUSBDeviceNotification.RegisterUsbDeviceNotification(MDIFormHandle);
 }