Collaboration diagram for C# Context API:
 
 | 
Modules | |
| Enumerations | |
| Events related with the context devices | |
Classes | |
| class | DeepsyContextManager | 
| Manager for access the Context functionalities and events raised  More... | |
| interface | IContext | 
| Interface for context service  More... | |
| interface | IContextDevice | 
| Interface for context device  More... | |
Detailed Description
To work with Deepsy context service it is necessary to use DeepsyContextManager located in GMV.ITS.HAL.DEEPSY.Context.Facade for getting the initial Context object.
DeepsyContextManager contextManager = new DeepsyContextManager("192.168.1.234");
 
 To obtain a list of devices objects: 
try
{
  DeepsyContextManager contextManager = new DeepsyContextManager("192.168.1.234");
  IContext context = contextManager.GetContext().First();
  IEnumerable<IContextDevice> devices = context.GetDevices();
}
catch (NotAvailableException e)
{
  Console.WriteLine(e.Message);
}
catch (LowLevelException e)
{
  Console.WriteLine(e.Message);
}
Examples
- 
Get devices parameters
Getting all the devices list and their parameters.using System;using System.Collections.Generic;using System.Linq;{class GetContextDeviceParams{static void Main(string[] args){Console.WriteLine($"Context. Get ContextDevice parameters");try{string deepsyServerIp = args.Length == 0 ? "127.0.0.1" : args[0];using (DeepsyContextManager contextManager = new DeepsyContextManager(deepsyServerIp)){IContext context = contextManager.GetContext().First();IEnumerable<IContextDevice> devices = context.GetDevices();Console.WriteLine($"There are {devices.Count()} devices");devices.ToList().ForEach(d => PrintDevicesInfo(d));}}catch (HalException deepsyEx){Console.WriteLine($"Deepsy error : {deepsyEx.ErrorCode}");}catch (Exception ex){Console.WriteLine($"Error: [{ex.Message}]");}}public static void PrintDevicesInfo(IContextDevice d){try{Console.WriteLine($"{d.Id} :");Console.WriteLine($"\t- memory type: {d.GetMemoryType()}");Console.WriteLine($"\t- context size: {d.GetContextSize()}");}catch (Exception e){Console.WriteLine("ERROR: " + e.Message);}}}}
 - 
Get and set memory values
Doing different get and set operations.using System;using System.Collections.Generic;using System.Linq;{class GetSetMemoryValues{static void Main(string[] args){Console.WriteLine($"Context. Get set memory values");try{string deepsyServerIp = args.Length == 0 ? "127.0.0.1" : args[0];string dataWrite = args.Length <= 1 ? "Test\x24" : args[1];using (DeepsyContextManager contextManager = new DeepsyContextManager(deepsyServerIp)){IContext context = contextManager.GetContext().First();IEnumerable<IContextDevice> devices = context.GetDevices();Console.WriteLine($"There are {devices.Count()} devices");IContextDevice device = devices.First();IMemoryValuesDto initValues = device.DumpContext();Console.WriteLine($"Showing values before test");Console.WriteLine($"Data: {System.Text.Encoding.UTF8.GetString(initValues.Values)}");//string dataWrite = "Test";device.SetMemoryValues(10, dataWrite);IMemoryValuesDto writtenValue = device.GetMemoryValues(10, (uint)dataWrite.Length);Console.WriteLine($"Showing data written");Console.WriteLine($"Data: {System.Text.Encoding.UTF8.GetString(writtenValue.Values)}");writtenValue = device.DumpContext();Console.WriteLine($"Showing all memory context");Console.WriteLine($"Data: {System.Text.Encoding.UTF8.GetString(writtenValue.Values)}");device.SetMemoryValues(0, System.Text.Encoding.UTF8.GetString(initValues.Values));writtenValue = device.DumpContext();Console.WriteLine($"Restoring memory context");Console.WriteLine($"Data: {System.Text.Encoding.UTF8.GetString(writtenValue.Values)}");}}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 context system:- 
DeviceListEvent : This event happens when a device is added to or removed from the system. To receive this kind of events, it is necessary to subscribe to a Context object
 
This example subscribes to every event.
using System;using System.Collections.Generic;using System.Linq;{class ContextEvents{static void Main(string[] args){Console.WriteLine($"Context. Events");try{string deepsyServerIp = args.Length == 0 ? "192.168.1.140" : args[0];using (IDeepsyContextManager contextManager = new DeepsyContextManager(deepsyServerIp)){IContext context = contextManager.GetContext().First();Console.WriteLine("Adding \"ping\" process with a preScript and post script");context.DeviceListEventRaised += Context_DeviceList;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 Context_DeviceList(object sender, HAL.DEEPSY.Context.Interface.Event.DeviceListEvent e){Console.WriteLine($"ContextDevice List event: Process {e.device.Id} {e.action}");}}}
 - 
 
          
          