OSDP.Net 5.2.1
A .NET library for implementing the Open Supervised Device Protocol (OSDP)
Loading...
Searching...
No Matches
OutputControl.cs
1using System;
2using System.Collections.Generic;
3using System.Text;
5
7{
11 public class OutputControl
12 {
19 public OutputControl(byte outputNumber, OutputControlCode outputControlCode, ushort timer)
20 {
21 OutputNumber = outputNumber;
22 OutputControlCode = outputControlCode;
23 Timer = timer;
24 }
25
29 public byte OutputNumber { get; }
30
35
39 public ushort Timer { get; }
40
45 public IEnumerable<byte> BuildData()
46 {
47 var timerBytes = Message.ConvertShortToBytes(Timer);
48
49 return new[] {OutputNumber, (byte) OutputControlCode, timerBytes[0], timerBytes[1]};
50 }
51
55 public static OutputControl ParseData(ReadOnlySpan<byte> data)
56 {
57 return new OutputControl(
58 data[0], (OutputControlCode)data[1],
59 Message.ConvertBytesToUnsignedShort(data.Slice(2)));
60 }
61
63 public override string ToString()
64 {
65 var sb = new StringBuilder();
66 sb.AppendLine($" Output #: {OutputNumber}");
67 sb.AppendLine($"Ctrl Code: {OutputControlCode}");
68 sb.AppendLine($" Timer: {Timer}");
69 return sb.ToString();
70 }
71 }
72}
A base message class for sending or replying.
Definition Message.cs:12
static OutputControl ParseData(ReadOnlySpan< byte > data)
Parses the message payload bytes.
OutputControl(byte outputNumber, OutputControlCode outputControlCode, ushort timer)
Initializes a new instance of the OutputControl class.
ushort Timer
Gets the timer in units of 100ms.
byte OutputNumber
Gets the output number.
IEnumerable< byte > BuildData()
Builds the payload data array.
OutputControlCode OutputControlCode
Gets the output control code.