SharpCAT/README.md

94 lines
2.6 KiB
Markdown
Raw Normal View History

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
## 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.