|   | 
| Modules | |
| Enumerations | |
| Events related with the Ecu alarms | |
| Classes | |
| class | DeepsyEcuManager | 
| Manager for access the Ecu functionalities and events raised  More... | |
| interface | IEcu | 
| Interface for Ecu service  More... | |
Detailed Description
To work with Deepsy Ecu service it is necessary to use DeepsyEcuManager located in GMV.ITS.HAL.DEEPSY.Ecu.Facade for getting the initial Ecu object.
 
 To obtain a list of devices objects: 
Examples
- 
Get available EPIDs 
 Getting all available EPIDs.using System;using System.Collections.Generic;using System.Linq;namespace GMV.ITS.HAL.DEEPSY.Examples.Ecu{class GetAvailableEPIDs{static void Main(string[] args){Console.WriteLine($"Ecu. Get available EPIDs");try{string deepsyServerIp = args.Length == 0 ? "127.0.0.1" : args[0];using (DeepsyEcuManager ccuManager = new DeepsyEcuManager(deepsyServerIp)){IEcu ecu = ccuManager.GetEcu().First();List<string> epids = ecu.GetAvailableEPIDs().ToList();Console.WriteLine($"There are {epids.Count()} EPIDs");foreach (var e in epids){Console.WriteLine($"\t- {e}");}}}catch (HalException deepsyEx){Console.WriteLine($"Deepsy error : {deepsyEx.ErrorCode}");}catch (Exception ex){Console.WriteLine($"Error: [{ex.Message}]");}}}}
 
- 
Get EPIDs parameters 
 Getting EPIDs parameters.using System;using System.Collections.Generic;using System.Linq;namespace GMV.ITS.HAL.DEEPSY.Examples.Ecu{class GetEPIDs{static void Main(string[] args){Console.WriteLine($"Ecu. Get EPIDs");try{string deepsyServerIp = args.Length == 0 ? "127.0.0.1" : args[0];using (DeepsyEcuManager ccuManager = new DeepsyEcuManager(deepsyServerIp)){IEcu ecu = ccuManager.GetEcu().First();List<string> epids = new List<string>() { "Engine_Temp" };List<IParameterDto> parameters = ecu.GetParameter(epids).ToList();parameters.ToList().ForEach(p => PrintParametersInfo(p));}}catch (HalException deepsyEx){Console.WriteLine($"Deepsy error : {deepsyEx.ErrorCode}");}catch (Exception ex){Console.WriteLine($"Error: [{ex.Message}]");}}public static void PrintParametersInfo(IParameterDto p){try{Console.WriteLine($"Timestamp: {p.Timestamp}");Console.WriteLine($"Id: {p.Id}");Console.WriteLine($"Value: {p.Value}");Console.WriteLine($"Units: {p.Units}");}catch (Exception e){Console.WriteLine("ERROR: " + e.Message);}}}}
 
- 
Get Protocol in use 
 Getting Protocol in use.using System;using System.Collections.Generic;using System.Linq;namespace GMV.ITS.HAL.DEEPSY.Examples.Ecu{class GetProtocol{static void Main(string[] args){Console.WriteLine($"Ecu. Get protocol");try{string deepsyServerIp = args.Length == 0 ? "127.0.0.1" : args[0];using (DeepsyEcuManager ccuManager = new DeepsyEcuManager(deepsyServerIp)){IEcu ecu = ccuManager.GetEcu().First();IProtocolDto protocol = ecu.GetCurrentProtocol();Console.WriteLine($"Current Protocol: {protocol.Name}");}}catch (HalException deepsyEx){Console.WriteLine($"Deepsy error : {deepsyEx.ErrorCode}");}catch (Exception ex){Console.WriteLine($"Error: [{ex.Message}]");}}}}
 
- 
Subscribe to events 
 There are 1 type of events in the Ecu system:- 
CanMessageEvent : This event happens when can message is received. To receive this kind of events, it is necessary to subscribe to a Ecu object 
 This example subscribes to every event. using System;using System.Collections.Generic;using System.Linq;namespace GMV.ITS.HAL.DEEPSY.Examples.Ecu{class EcuEvents{static void Main(string[] args){Console.WriteLine($"Ecu. Events");try{string deepsyServerIp = args.Length == 0 ? "192.168.0.125" : args[0];using (IDeepsyEcuManager EcuManager = new DeepsyEcuManager(deepsyServerIp)){IEcu Ecu = EcuManager.GetEcu().First();Console.WriteLine("Subscribing to ECU events.");Ecu.CanMessageEventRaised += Ecu_CanMessageEventRaised;Console.WriteLine("Press ESC for exit");while (Console.ReadKey().Key != ConsoleKey.Escape){}}}catch (HalException deepsyEx){Console.WriteLine($"Deepsy error : {deepsyEx.ErrorCode}");}catch (Exception ex){Console.WriteLine($"Error: [{ex.Message}]");}}private static void Ecu_CanMessageEventRaised(object sender, CanMessageEvent e){Console.WriteLine($"Ecu CanMessage event: 0x{e.Id.ToString("X")} [{e.DataSize}] {BitConverter.ToString(e.Data).Replace('-', ' ')}");}}}
 
- 
- 
CAN BUS Filter/B> 
 Apply CAN BUS filters and subscribe to see the difference in the incoming messages.using System;using System.Collections.Generic;using System.Linq;namespace GMV.ITS.HAL.DEEPSY.Examples.Ecu{class CanBusFilters{static void Main(string[] args){Console.WriteLine($"Ecu. CanBusFilters");try{string deepsyServerIp = args.Length == 0 ? "192.168.0.125" : args[0];using (IDeepsyEcuManager EcuManager = new DeepsyEcuManager(deepsyServerIp)){IEcu Ecu = EcuManager.GetEcu().First();Console.WriteLine("Subscribing to CanMessage events.");Ecu.CanMessageEventRaised += Ecu_CanMessageEventRaised;System.Threading.Thread.Sleep(1000);Console.WriteLine("Adding Standard Can filter. Only ID=0x233 will be received.");Ecu.AddStandardCanFilter(0x233);System.Threading.Thread.Sleep(1000);Console.WriteLine("Adding Extended Can filter. ID=0x18FDA521 will also be received.");Ecu.AddExtendedCanFilter(0x18FDA521);System.Threading.Thread.Sleep(1000);Console.WriteLine("Adding J1939 Can filter. PGN=0xFFA0 will also be received.");Ecu.AddJ1939CanFilter(0xFFA0);System.Threading.Thread.Sleep(1000);Console.WriteLine("Removing Extended Can filter. ID=0x18FDA521 will stop being received.");Ecu.RemoveExtendedCanFilter(0x18FDA521);System.Threading.Thread.Sleep(1000);Console.WriteLine("Removing all Can filter. All Can IDs will be received.");Ecu.ResetCanFilter();System.Threading.Thread.Sleep(1000);Console.WriteLine("Finished.");}}catch (HalException deepsyEx){Console.WriteLine($"Deepsy error : {deepsyEx.ErrorCode}");}catch (Exception ex){Console.WriteLine($"Error: [{ex.Message}]");}}private static void Ecu_CanMessageEventRaised(object sender, CanMessageEvent e){Console.WriteLine($"Ecu CanMessage event: 0x{e.Id.ToString("X")} [{e.DataSize}] {BitConverter.ToString(e.Data).Replace('-', ' ')}");}}}
 
- 
Set CAN BUS Configuration/B> 
 Apply CAN BUS configuration.using System;using System.Collections.Generic;using System.Linq;using System.Threading;namespace GMV.ITS.HAL.DEEPSY.Examples.Ecu{class SetCanBusConfiguration{static void Main(string[] args){Console.WriteLine($"Ecu. SetCanBusConfiguration");try{string deepsyServerIp = args.Length == 0 ? "192.168.1.140" : args[0];using (IDeepsyEcuManager EcuManager = new DeepsyEcuManager(deepsyServerIp)){IEcu Ecu = EcuManager.GetEcu().First();uint BaudRate = 500000;if (args.Length > 1 && !UInt32.TryParse(args[1], out BaudRate)){Console.WriteLine("Error converting BaudRate to UInt.");return;}Console.WriteLine($"Setting CAN BUS Baud rate to {BaudRate} and disabling CAN terminator resistance.");ICanBusConfigurationDto config = new CanBusConfigurationDto(){BaudRate = BaudRate,CanBusResistor = CANBusResistor.DISABLED};Ecu.SetCanBusConfiguration(config);Thread.Sleep(1000);ICanBusConfigurationDto currentConfig = Ecu.GetCanBusConfiguration();PrintCanBusConfig(currentConfig);Console.WriteLine("Enabling CAN terminator resistance.");ICanBusConfigurationDto config2 = new CanBusConfigurationDto(){CanBusResistor = CANBusResistor.ENABLED};Ecu.SetCanBusConfiguration(config2);Thread.Sleep(1000);currentConfig = Ecu.GetCanBusConfiguration();PrintCanBusConfig(currentConfig);Console.WriteLine("Finished.");}}catch (HalException deepsyEx){Console.WriteLine($"Deepsy error : {deepsyEx.ErrorCode}");}catch (Exception ex){Console.WriteLine($"Error: [{ex.Message}]");}}private static void Ecu_CanMessageEventRaised(object sender, CanMessageEvent e){Console.WriteLine($"Ecu CanMessage event: 0x{e.Id.ToString("X")} [{e.DataSize}] {BitConverter.ToString(e.Data).Replace('-', ' ')}");}private static void PrintCanBusConfig(ICanBusConfigurationDto canBusConfiguration){Console.WriteLine("CAN Configuration: ");Console.WriteLine($"\tBaud Rate: {canBusConfiguration.BaudRate}");Console.WriteLine($"\tTerminator Resistance: {canBusConfiguration.CanBusResistor}");}}}
 
 
          
          
