GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Hamlib/HamLibSharp: Mono/.NET Binding for the Ham Radio Control Libraries

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

20 Commits
20 Commits

Folders and files

NameName
Last commit message
Last commit date
HamLibSharpTest
HamLibSharpTest
 
 
Properties
Properties
 
 
RigCaps
RigCaps
 
 
Utils
Utils
 
 
bin_libs
bin_libs
 
 
x64
x64
 
 
x86
x86
 
 
.gitignore
.gitignore
 
 
Enums.cs
Enums.cs
 
 
HamLib.cs
HamLib.cs
 
 
HamLibPortNative.cs
HamLibPortNative.cs
 
 
HamLibSharp.csproj
HamLibSharp.csproj
 
 
HamLibSharp.sln
HamLibSharp.sln
 
 
IChannelCapability.cs
IChannelCapability.cs
 
 
IChannelList.cs
IChannelList.cs
 
 
IConfigurationParameter.cs
IConfigurationParameter.cs
 
 
IModeValue.cs
IModeValue.cs
 
 
IRigCapsNative.cs
IRigCapsNative.cs
 
 
IRigStateNative.cs
IRigStateNative.cs
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
Rig.cs
Rig.cs
 
 
RigCaps.cs
RigCaps.cs
 
 
RigException.cs
RigException.cs
 
 
RigNative.cs
RigNative.cs
 
 
RigVfo.cs
RigVfo.cs
 
 
Structs.cs
Structs.cs
 
 
app.config
app.config
 
 

Repository files navigation

HamLibSharp

Mono/.NET Binding for the Ham Radio Control Libraries (https://github.com/N0NB/hamlib)

The goal of this binding is to support desktop platforms HamLib supports. Currently tested with Linux (Ubuntu 16.04) on both 64 and 32 bit architectures and Windows as a 32-bit process.

This binding is a work-in-progress. It targets HamLib 1.2, 3.0.1 and 3.1(git). Native structs are abstracted by interfaces, which allows client code to "just work"

###What has been tested

  • Rig VFO Frequency adjustments (both read and write)
  • PTT keying
  • Rig Mode adjustments (both read and write)

###How it works This binding uses .NET P/Invoke functionality to make calls into C libraries. Data structures from the C library have been recreated in the binding and data is marshaled from native memory into managed memory. The native library is not hard linked and the .so or .dll must be in the path for this binding to locate it at runtime. The project file will copy files from bin_libs into the output directory.

###What's unique

  1. Similar to the C++ binding, generally any reported errors from HamLib will be thrown as RigException to client code.
  2. The binding has its own polling loop. To use this feature, the client code must call Rig.Start() after a successful Rig.Open(...).
  • This binding will automatically poll for common values from Rig. Currently it polls for Frequency, Mode, and PTT. The polling interval is defined when the Rig class is constructed. The client application can use the Rig public properties to get current values.
  • For "set" type functions, the binding will add the call to the TaskQueue and return immediately. For GUI apps, this means that blocking is kept to a minimum. If Rig.Start() is not called, the functions will block until HamLib returns. (WORK IN PROGRESS: Not all set functions take advantage of the TaskQueue)

###Getting Started:

  1. Start by cloning the git repository to a directory of your choice
  2. Use your OS distribution of hamlib, or place the libhamlib.so.2 into the ./bin_libs or the Windows libhamlib-2.dll (and all dependancies) into the ./bin_libs/x86 directory (32-bit library)
  3. Use MonoDevelop or xbuild to build the .sln file
  4. Run the test programs which should be located in the ./build/(CONF)/ directory.

Note: You may need to rename the HamLib .so file if you copy it from HamLib build.

More description and HOWTO to follow.

About

Mono/.NET Binding for the Ham Radio Control Libraries

Resources

Readme
License
Activity
Custom properties

Stars

1 star

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.