Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
11 years, 11 months ago.
mbed callbacks and C#
Hi,
I have a small program in mbed running nice.
I would like to connect to the mbed device through a C# based application and register/hook to a function so I would be able to execute callbacks in C# when an event/function is called on the mbed application.
I'm sure there is a way to do this, I just couldn't find a decent example.
Anyone?
Gilad
3 Answers
11 years, 11 months ago.
Probably easiest is to just use the virtual COM-port of the mbed (so the USB connector), when something needs to happen in your C# application the mbed sends a serial message which your program receives and acts on. Never used C#, but I expect that to be fairly straightforward. Instead of the virtual COM-port you can also use the LPC's USB pins, either also as serial connection or as USB HID connection.
9 years, 10 months ago.
Yes in C# you can keep listening to the serial port with a loop (but be aware is resource consuming). Then you serial facade can easily fire events that you will subscribe to in C#.
Dummy serial class
class SerialReader{ event EventArgs<MyEventArg> MessageReceived; public SerialReader(){ // init your com communication SerialPort mySerialPort = new SerialPort("COM1"); // later an event callback mySerialPort.DataReceived += (sender, args) => { // if somebody subscribed if(MessageReceived != null){ // read the serial output SerialPort sp = (SerialPort)sender; string indata = sp.ReadExisting(); // raise an event MessageReceived( new MyEventArgs { Message = data }); } } } }
9 years, 10 months ago.
Just to add to what Erik and Raffaele have said already, you could use the HidLibrary which wraps around the Windows USB HID calls https://github.com/mikeobrien/HidLibrary or if you want to put yourself into a little more trouble, you could use LibUsbDotNet which is actually wrapping around the LibUSB library. http://libusbdotnet.sourceforge.net/V2/Index.html I have successfully used LibUsbDotNet in the past and all I had was to follow. Note that LibUsbDotNet can be used with the Mono Framework in Linux too (or Windows)