kopia lustrzana https://github.com/Hamlib/Hamlib
rodzic
3a2531ad68
commit
8b22a5a9a8
|
@ -0,0 +1,22 @@
|
||||||
|
Works on Windows and Linux
|
||||||
|
|
||||||
|
Requires you get dotnet installed of course
|
||||||
|
|
||||||
|
For Wiundows install Visual Studio or such to get dotnet
|
||||||
|
|
||||||
|
On Ubuntu 20.04 it was this
|
||||||
|
apt install snap
|
||||||
|
apt install mono-complete
|
||||||
|
snap install dotnet-sdk --classic --channel=5.0
|
||||||
|
snap alias dotnet-sdk.dotnet dotnet
|
||||||
|
snap install dotnet-runtime-50 --classic
|
||||||
|
snap alias dotnet-runtime-50.dotnet dotnet
|
||||||
|
export DOTNET_ROOT=/snap/dotnet-sdk/current
|
||||||
|
|
||||||
|
Once dotnet is OK
|
||||||
|
|
||||||
|
dotnet build
|
||||||
|
|
||||||
|
You should then be able to run
|
||||||
|
|
||||||
|
./bin/Debug/net5.0/multicast
|
|
@ -0,0 +1,68 @@
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Converters;
|
||||||
|
using Newtonsoft.Json.Serialization;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace HamlibMultiCast
|
||||||
|
{
|
||||||
|
public class HamlibMulticastClient
|
||||||
|
{
|
||||||
|
public class VFO
|
||||||
|
{
|
||||||
|
public string Name;
|
||||||
|
public ulong Freq;
|
||||||
|
public string Mode;
|
||||||
|
public int Width;
|
||||||
|
public bool RX;
|
||||||
|
public bool TX;
|
||||||
|
}
|
||||||
|
public class SpectrumClass
|
||||||
|
{
|
||||||
|
public int Length;
|
||||||
|
public string Data;
|
||||||
|
public string Type;
|
||||||
|
public int MinLevel;
|
||||||
|
public int MaxLevel;
|
||||||
|
public int MinStrength;
|
||||||
|
public int MaxStrength;
|
||||||
|
public double CenterFreq;
|
||||||
|
public int Span;
|
||||||
|
public double LowFreq;
|
||||||
|
public double HighFreq;
|
||||||
|
}
|
||||||
|
public string ID;
|
||||||
|
public List<VFO> VFOs { get; set; }
|
||||||
|
public bool Split;
|
||||||
|
public bool SatMode;
|
||||||
|
public string Rig;
|
||||||
|
public string App;
|
||||||
|
public string Version;
|
||||||
|
public UInt32 Seq;
|
||||||
|
public string CRC;
|
||||||
|
public SpectrumClass Spectrum { get; set; }
|
||||||
|
}
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
static int Main(string[] args)
|
||||||
|
{
|
||||||
|
Console.WriteLine("HamlibMultiCast Test Json Deserialize");
|
||||||
|
ITraceWriter traceWriter = new MemoryTraceWriter();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
string json = File.ReadAllText("test.json");
|
||||||
|
var client = JsonConvert.DeserializeObject<HamlibMulticastClient>(json, new JsonSerializerSettings { TraceWriter = traceWriter, Converters = { new JavaScriptDateTimeConverter() } });
|
||||||
|
Console.WriteLine(traceWriter);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine(ex.Message);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
"__comment1__": "customizable rig identification -- will allow multiple rigs to be on the multicast",
|
||||||
|
"ID": "Rig#1",
|
||||||
|
"VFOs": [
|
||||||
|
{
|
||||||
|
"Name": "VFOA",
|
||||||
|
"Freq": 14074000,
|
||||||
|
"Mode": "USB",
|
||||||
|
"Width": 5000,
|
||||||
|
"RX": true,
|
||||||
|
"TX": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "VFOB",
|
||||||
|
"Freq": 14076000,
|
||||||
|
"Mode": "USB",
|
||||||
|
"Width": 5000,
|
||||||
|
"RX": false,
|
||||||
|
"TX": false
|
||||||
|
}],
|
||||||
|
|
||||||
|
"__comment_spectrum__": "Rigs that have spectrum output may include this data",
|
||||||
|
"Spectrum": {
|
||||||
|
"Length": 475,
|
||||||
|
"__comment_spectrum_data__": "2-char hex bytes so data len=2*Length",
|
||||||
|
"Data": "00AAFF75BD2AAA...",
|
||||||
|
"Type": "FIXED|CENTER",
|
||||||
|
"MinLevel": 0,
|
||||||
|
"MaxLevel": 140,
|
||||||
|
"MinStrength": -100,
|
||||||
|
"MaxStrength": 0,
|
||||||
|
|
||||||
|
"__comment_spectrum_center__": "If Type=CENTER, the following fields will be present:",
|
||||||
|
"CenterFreq": 14267000,
|
||||||
|
"Span": 25000,
|
||||||
|
|
||||||
|
"__comment_spectrum_fixed__": "If SpectrumType=FIXED, the following fields will be present:",
|
||||||
|
"LowFreq": 14000000,
|
||||||
|
"HighFreq": 14250000
|
||||||
|
},
|
||||||
|
|
||||||
|
"Split": true,
|
||||||
|
"SatMode": false,
|
||||||
|
"Rig": "Dummy",
|
||||||
|
"App": "Hamlib",
|
||||||
|
"__comment_version__": "protocol version date YYYYMMDD",
|
||||||
|
"Version": "20210520",
|
||||||
|
"__comment_seq__": "Seq is 1-up sequence number 32-bit -- wraps around to 1 from 2^32-1",
|
||||||
|
"Seq": 1,
|
||||||
|
"__comment_crc__": "32-bit CRC of entire JSON record replacing the CRC value with 0x00000000",
|
||||||
|
"CRC": "0x00000000"
|
||||||
|
}
|
Ładowanie…
Reference in New Issue