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); }
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(); } }
/// <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(); }