-
Notifications
You must be signed in to change notification settings - Fork 2
/
WsjtxQsoParser.cs
36 lines (35 loc) · 1.13 KB
/
WsjtxQsoParser.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using WsjtxUtils.WsjtxMessages.Messages;
namespace WsjtxUtils.WsjtxMessages.QsoParsing
{
/// <summary>
/// WSJT-X decode message QSO parser
/// </summary>
public static class WsjtxQsoParser
{
/// <summary>
/// Attempt to parse as much information as possible about the OSO of a WSJT-X decode packet
/// </summary>
/// <param name="decode"></param>
/// <returns></returns>
public static WsjtxQso ParseDecode(Decode decode)
{
var mode = decode.DecodeModeNotationsToString();
switch (mode)
{
case "FST4":
case "FT4":
case "FT8":
case "MSK144":
case "Q65":
return new WsjtxQsoParser77BitModes(decode).Parse();
case "JT4":
case "JT9":
case "JT65":
//TODO: 72-bit message payloads: JT4, JT9, and JT65
default:
throw new NotImplementedException($"A QSO parser for {mode} is not implemented");
}
}
}
}