2using System.Collections.Generic;
21 if (controls ==
null)
throw new ArgumentNullException(nameof(controls));
27 throw new Exception(
"Requires at least one output control");
34 public IEnumerable<OutputControl>
Controls {
get; }
48 var data =
new List<byte>();
49 foreach (var outputControl
in Controls)
51 data.AddRange(outputControl.BuildData());
54 return data.ToArray();
68 var sb =
new StringBuilder();
69 sb.AppendLine($
"Output Count: {Controls.Count()}");
72 sb.AppendLine($
" Output #: {control.OutputNumber}");
73 sb.AppendLine($
" Code: {control.OutputControlCode}");
74 sb.AppendLine($
" Time: {control.Timer} (100ms units)");
Contains standard Security Control Block data that can be used when building messages.
Base class representing a payload of a PD command message.
Contains data to control a single output on a PD.
static OutputControl ParseData(ReadOnlySpan< byte > data)
Parses the message payload bytes.
override CommandType CommandType
override string ToString()
OutputControls(IEnumerable< OutputControl > controls)
Initializes a new instance of the OutputControls class.
override byte[] BuildData()
override ReadOnlySpan< byte > SecurityControlBlock()
IEnumerable< OutputControl > Controls
One or more commands to control the outputs of a PD.
static OutputControls ParseData(ReadOnlySpan< byte > payloadData)
Parses the message payload bytes.