adds new ctor to add post activation action

for ComPortController
This commit is contained in:
Andrew Welker
2020-04-27 18:21:55 -06:00
parent 5608721e3d
commit 282ea62f83

View File

@@ -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;
} }