mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 12:44:58 +00:00
adds new ctor to add post activation action
for ComPortController
This commit is contained in:
@@ -21,6 +21,19 @@ namespace PepperDash.Essentials.Core
|
|||||||
ComPort Port;
|
ComPort Port;
|
||||||
ComPort.ComPortSpec Spec;
|
ComPort.ComPortSpec Spec;
|
||||||
|
|
||||||
|
public ComPortController(string key, Func<EssentialsControlPropertiesConfig, ComPort> postActivationFunc,
|
||||||
|
ComPort.ComPortSpec spec, EssentialsControlPropertiesConfig config) : base(key)
|
||||||
|
{
|
||||||
|
Spec = spec;
|
||||||
|
|
||||||
|
AddPostActivationAction(() =>
|
||||||
|
{
|
||||||
|
Port = postActivationFunc(config);
|
||||||
|
|
||||||
|
ConfigureComPort();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public ComPortController(string key, ComPort port, ComPort.ComPortSpec spec)
|
public ComPortController(string key, ComPort port, ComPort.ComPortSpec spec)
|
||||||
: base(key)
|
: base(key)
|
||||||
{
|
{
|
||||||
@@ -45,16 +58,21 @@ namespace PepperDash.Essentials.Core
|
|||||||
return; // false
|
return; // false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var specResult = Port.SetComPortSpec(Spec);
|
ConfigureComPort();
|
||||||
if (specResult != 0)
|
|
||||||
{
|
|
||||||
Debug.Console(0, this, "WARNING: Cannot set comspec");
|
|
||||||
return; // false
|
|
||||||
}
|
|
||||||
Port.SerialDataReceived += new ComPortDataReceivedEvent(Port_SerialDataReceived);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
~ComPortController()
|
private void ConfigureComPort()
|
||||||
|
{
|
||||||
|
var specResult = Port.SetComPortSpec(Spec);
|
||||||
|
if (specResult != 0)
|
||||||
|
{
|
||||||
|
Debug.Console(0, this, "WARNING: Cannot set comspec");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Port.SerialDataReceived += Port_SerialDataReceived;
|
||||||
|
}
|
||||||
|
|
||||||
|
~ComPortController()
|
||||||
{
|
{
|
||||||
Port.SerialDataReceived -= Port_SerialDataReceived;
|
Port.SerialDataReceived -= Port_SerialDataReceived;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user