2020-06-30 23:14:04 +02:00
|
|
|
# This like many, are ideas. There may or may not be progress as inspiration and time allows.
|
|
|
|
|
|
2019-03-06 15:57:01 +01:00
|
|
|
# SharpCAT
|
2019-03-06 17:38:11 +01:00
|
|
|
C#, .NET Standard based CAT control library.
|
2019-03-06 16:14:08 +01:00
|
|
|
|
2019-03-06 16:12:40 +01:00
|
|
|
I am targeting .Net Standard so that the assembly may be used with .Net Core or the .Net framework.
|
2019-03-06 15:57:01 +01:00
|
|
|
|
2025-08-06 23:31:09 +02:00
|
|
|
## Development Setup
|
|
|
|
|
|
|
|
|
|
### Prerequisites
|
|
|
|
|
- [.NET 8.0 SDK](https://dotnet.microsoft.com/download) or later
|
|
|
|
|
- [Visual Studio Code](https://code.visualstudio.com/)
|
|
|
|
|
- [C# Extension for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)
|
|
|
|
|
|
|
|
|
|
### Building and Running
|
|
|
|
|
|
|
|
|
|
This project is configured for development in Visual Studio Code with the .NET CLI.
|
|
|
|
|
|
|
|
|
|
**To build the project:**
|
|
|
|
|
```bash
|
|
|
|
|
dotnet build SharpCAT/SharpCATLib.csproj
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**To clean the project:**
|
|
|
|
|
```bash
|
|
|
|
|
dotnet clean SharpCAT/SharpCATLib.csproj
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**To restore packages:**
|
|
|
|
|
```bash
|
|
|
|
|
dotnet restore SharpCAT/SharpCATLib.csproj
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**VS Code Tasks:**
|
|
|
|
|
The repository includes pre-configured VS Code tasks (`Ctrl+Shift+P` → "Tasks: Run Task"):
|
|
|
|
|
- **build** - Builds the project (default build task: `Ctrl+Shift+B`)
|
|
|
|
|
- **clean** - Cleans build outputs
|
|
|
|
|
- **restore** - Restores NuGet packages
|
|
|
|
|
- **publish** - Publishes the library
|
|
|
|
|
- **watch** - Watches for changes and rebuilds automatically
|
|
|
|
|
|
2019-03-06 15:57:01 +01:00
|
|
|
I'm starting with the FT818, I then plan on adding my ID-4100a, and TH-D74A.
|
|
|
|
|
|
2019-03-07 14:49:12 +01:00
|
|
|
If you wish to help let me know, or create a pull request. I'm not a pro developer, just a hack
|
|
|
|
|
that normally builds small tools for himself.
|
|
|
|
|
|
|
|
|
|
Ideas on how to do this are appreciated!
|
2019-03-06 16:12:40 +01:00
|
|
|
|
|
|
|
|
# Why?
|
2019-03-06 16:13:44 +01:00
|
|
|
Yes, there's Hamlib, and yes there's HamLibSharp.
|
2019-03-06 16:14:08 +01:00
|
|
|
|
2019-03-06 16:13:44 +01:00
|
|
|
https://github.com/N0NB/hamlib
|
2019-03-06 16:14:08 +01:00
|
|
|
|
2019-03-06 16:13:44 +01:00
|
|
|
https://github.com/k5jae/HamLibSharp
|
2019-03-06 16:14:08 +01:00
|
|
|
|
2019-03-06 16:13:44 +01:00
|
|
|
I don't speak C++ and PInvoke is nasty.
|
2019-03-06 16:14:08 +01:00
|
|
|
|
2019-03-06 16:12:40 +01:00
|
|
|
That being said, there's also not a pure .Net (C#) CAT control lib out there that I know of.
|
2019-03-07 01:50:26 +01:00
|
|
|
|
|
|
|
|
# What needs done?
|
2019-03-12 18:21:25 +01:00
|
|
|
The project is in an early very phase. The following is in no particular order, except the IRadio bit.
|
2019-03-12 18:19:32 +01:00
|
|
|
|
2019-03-12 18:21:25 +01:00
|
|
|
1. Implement an IRadio interface.
|
2019-03-12 18:19:32 +01:00
|
|
|
|
2019-03-12 18:21:25 +01:00
|
|
|
2. Settle on how the radios and commands are defined.
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-03-07 14:31:29 +01:00
|
|
|
JSON?
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-03-07 14:31:29 +01:00
|
|
|
Or just use a .cs file (current)?
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-03-12 18:21:25 +01:00
|
|
|
3. Need to support opening / using an arbitrary number of radios.
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-03-07 14:31:29 +01:00
|
|
|
RigControl can do 2.
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-03-12 18:21:25 +01:00
|
|
|
4. Fully support asynchronous operations.
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-03-07 14:31:29 +01:00
|
|
|
There's some handy events exposed by .net for data received on the Serial Port.
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-03-12 18:21:25 +01:00
|
|
|
5. Add support for remote sharing of serial ports.
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-03-12 18:21:25 +01:00
|
|
|
6. Implemtment the flrig control protocol.
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-03-07 14:31:29 +01:00
|
|
|
Use this in place of flrig if desired.
|
2019-03-07 14:30:44 +01:00
|
|
|
|
2019-08-14 01:27:10 +02:00
|
|
|
7. Maybe implement AGWPE?
|
2019-03-12 18:19:32 +01:00
|
|
|
|
2019-08-14 01:27:10 +02:00
|
|
|
8. Implement the ability to run as a service.
|
|
|
|
|
|
|
|
|
|
9. Implement CAT and CIV control.
|
2019-03-12 18:19:32 +01:00
|
|
|
|
|
|
|
|
This will come with the first Icom radio implemented I figure.
|
|
|
|
|
|
2019-08-14 01:27:10 +02:00
|
|
|
I've switched radios, so I have a Yaesu FT991a, Baofeng BF-T1, WLN KD-C1, Baofeng UV-5x3, TH-D72a, FT-2DR and an D878UV.
|