OSDP.Net 5.2.1
A .NET library for implementing the Open Supervised Device Protocol (OSDP)
Loading...
Searching...
No Matches
DataFragmentResponse.cs
1using System;
2using System.Linq;
3using System.Text;
5
7{
11 public class DataFragmentResponse
12 {
13 private DataFragmentResponse()
14 {
15 }
16
20 public ushort WholeMessageLength { get; private set; }
21
25 public ushort Offset { get; private set; }
26
30 public ushort LengthOfFragment { get; private set; }
31
35 public byte[] Data { get; private set; }
36
40 public static DataFragmentResponse ParseData(ReadOnlySpan<byte> data)
41 {
42 if (data.Length < 6)
43 {
44 // throw new Exception("Invalid size for the data");
45 return new DataFragmentResponse {Data = new byte[] { }};
46 }
47
48 var fragmentResponse = new DataFragmentResponse
49 {
50 WholeMessageLength = Message.ConvertBytesToUnsignedShort(data.Slice(0, 2)),
51 Offset = Message.ConvertBytesToUnsignedShort(data.Slice(2, 2)),
52 LengthOfFragment = Message.ConvertBytesToUnsignedShort(data.Slice(4, 2)),
53 Data = data.Slice(6, data.Length - 6).ToArray()
54 };
55
56 return fragmentResponse;
57 }
58
60 public override string ToString()
61 {
62 var build = new StringBuilder();
63 build.AppendLine($"Whole Message Length: {WholeMessageLength}");
64 build.AppendLine($" Offset: {Offset}");
65 build.AppendLine($" Length of Fragment: {LengthOfFragment}");
66 build.AppendLine($" Data: {BitConverter.ToString(Data.ToArray())}");
67 return build.ToString();
68 }
69 }
70}
A base message class for sending or replying.
Definition Message.cs:12
static DataFragmentResponse ParseData(ReadOnlySpan< byte > data)
Parses the message payload bytes.
ushort WholeMessageLength
The length of the whole message.