I get null on my event , and Just can get why . this is my code (shortly)
Here I subscribe to the event
class Form1
{
public Form1()
{
InitializeComponent();
_domainEventHandler = new cEventHandler();
_domainEventHandler.OnPrintToScreen +=new PrintToScreen_EventHandler(OnDataToPrint);
}
//...
}
in main Form
I initialize cEventHandler class
and subscribe to OnPrintToScreen event
, this is event fires whenever I want to print to screen ,
namespace DomainLayer
{
public delegate void PrintToScreen_EventHandler(object source, string data, string Location);
/// <summary>
/// class to handle all events
/// </summary>
public class cEventHandler
{
/// <summary>
/// event to send things back to GUI
/// </summary>
public static ScriptingSerial _infrastructureSerialAgent = new ScriptingSerial();
public cEventHandler()
{
_infrastructureSerialAgent.onDataInput += new SerialDataInput_EventHandler(OnDataInput);
}
public void OnDataInput(object source , string data , string Location)
{
//print to screen
OnPrintToScreen(this, data, Location);
}
}
}
Here I fire It
namespace InfraStructure
{
public delegate void SerialDataInput_EventHandler(object source , string data , string Location);
//send command
//wait for a return line
public class ScriptingSerial
{
public event SerialDataInput_EventHandler onDataInput;
public ScriptingSerial(/**bla bla**/)
{
//declare stuff
serialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(port_DataReceived);
}
internal void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string serialInputData = serialPort.ReadExisting();
BufferLog.Add(serialInputData);
if (onDataInput != null)
{
onDataInput(this, serialInputData, "Terminal");
}
}
}
my problem is with the onDataInput
event , I dont understand what am I missing :(
this question is not a duplicate because it tackles a more complicated scenario