Ejemplo n.º 1
0
        public bool openDevice()
        {
            bool opened = true;

            CastInfoEvent("Open called in Trionic7", ActivityType.ConvertingFile);
            MM_BeginPeriod(1);

            if (canUsbDevice is LPCCANDevice && m_UseFlasherOnDevice)
            {
                // connect to adapter
                LPCCANDevice lpc = (LPCCANDevice)canUsbDevice;

                if (lpc.connect())
                {
                    // get flasher object
                    flash = lpc.createFlasher();
                    logger.Debug("T7CombiFlasher object created");
                    CastInfoEvent("CombiAdapter ready", ActivityType.ConvertingFile);
                }
                else
                {
                    opened = false;
                }
            }
            else
            {
                if (kwpHandler.openDevice())
                {
                    CastInfoEvent("Canbus channel opened", ActivityType.ConvertingFile);

                    if (kwpHandler.startSession())
                    {
                        CastInfoEvent("Session started", ActivityType.ConvertingFile);
                    }
                    else
                    {
                        CastInfoEvent("Unable to start session. Wait for previous session to timeout (10 seconds) and try again!", ActivityType.ConvertingFile);
                        kwpHandler.closeDevice();
                        opened = false;
                    }
                }
                else
                {
                    CastInfoEvent("Unable to open canbus channel", ActivityType.ConvertingFile);
                    kwpHandler.closeDevice();
                    opened = false;
                }
            }

            if (!opened)
            {
                CastInfoEvent("Open failed in Trionic7", ActivityType.ConvertingFile);
                if (canUsbDevice != null)
                {
                    canUsbDevice.close();
                }
                MM_EndPeriod(1);
            }
            return(opened);
        }
Ejemplo n.º 2
0
        override public void setCANDevice(CANBusAdapter adapterType)
        {
            if (adapterType == CANBusAdapter.LAWICEL)
            {
                canUsbDevice = new CANUSBDevice();
            }
            else if (adapterType == CANBusAdapter.ELM327 && !m_ELM327Kline)
            {
                Sleeptime    = SleepTime.ELM327;
                canUsbDevice = new CANELM327Device()
                {
                    ForcedBaudrate = m_forcedBaudrate
                };
            }
            else if (adapterType == CANBusAdapter.JUST4TRIONIC)
            {
                canUsbDevice = new Just4TrionicDevice()
                {
                    ForcedBaudrate = m_forcedBaudrate
                };
            }
            else if (adapterType == CANBusAdapter.COMBI)
            {
                canUsbDevice = new LPCCANDevice();
            }
            else if (adapterType == CANBusAdapter.KVASER)
            {
                canUsbDevice = new KvaserCANDevice();
            }

            if (canUsbDevice != null)
            {
                canUsbDevice.UseOnlyPBus = m_OnlyPBus;
                canUsbDevice.TrionicECU  = ECU.TRIONIC7;
                canUsbDevice.onReceivedAdditionalInformation      += new ICANDevice.ReceivedAdditionalInformation(canUsbDevice_onReceivedAdditionalInformation);
                canUsbDevice.onReceivedAdditionalInformationFrame += new ICANDevice.ReceivedAdditionalInformationFrame(canUsbDevice_onReceivedAdditionalInformationFrame);
                canUsbDevice.AcceptOnlyMessageIds = new List <uint> {
                    0x258, 0x238
                };                                                                  //t7suite
            }

            if (adapterType == CANBusAdapter.ELM327 && m_ELM327Kline)
            {
                kwpDevice = new ELM327Device()
                {
                    ForcedBaudrate = m_forcedBaudrate
                };
                setFlasher();
            }
            else if (adapterType != CANBusAdapter.COMBI || !m_UseFlasherOnDevice)
            {
                kwpDevice = new KWPCANDevice()
                {
                    Latency = m_Latency
                };
                kwpDevice.setCANDevice(canUsbDevice);
                setFlasher();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Cleans up connections and resources
        /// </summary>
        override public void Cleanup()
        {
            try
            {
                MM_EndPeriod(1);
                logger.Debug("Cleanup called in Trionic7");
                if (flash != null)
                {
                    flash.onStatusChanged -= flash_onStatusChanged;
                    flash.stopFlasher();
                    flash.cleanup();
                    flash = null;
                }
                if (kwpHandler != null)
                {
                    kwpHandler.EnableLog = false;
                    kwpHandler.closeDevice();
                }
                if (canUsbDevice != null)
                {
                    if (canUsbDevice is LPCCANDevice)
                    {
                        LPCCANDevice lpc = (LPCCANDevice)canUsbDevice;
                        lpc.disconnect();
                        canUsbDevice.close();
                        canUsbDevice = null;
                        logger.Debug("Closed LPCCANDevice in Trionic7");
                    }
                    else
                    {
                        canUsbDevice.close();
                        canUsbDevice = null;
                    }
                }
            }
            catch (Exception e)
            {
                logger.Debug(e.Message);
            }

            LogManager.Flush();
        }