A collection of tools for amateur radio operators to look up and display calsign and callbook return information in a standardized manner
Option 1
using CallsignToolkit;
BaseLookup lookup = new HamCallDevLookup("w1aw");
lookup.PerformLookup();
Console.WriteLine(lookup.Serialize());
Option 2:
using CallsignToolkit;
BaseLookup lookup = new HamCallDevLookup();
(HamCallDevLookup)lookup.PerformLookup("w1aw");
Console.WriteLine(lookup.Serialize());
Option 3:
using CallsignToolkit;
HamCallDevLookup lookup = new("w1aw");
lookup.PerformLookup();
Console.WriteLine(lookup.Serialize());
Option 4:
using CallsignToolkit;
HamCallDevLookup lookup = new();
lookup.PerformLookup("w1aw");
Console.WriteLine(lookup.Serialize());
Example output:
{
"License": {
"DMRID": [
3109478,
310938
],
"FRN": 4511143,
"FileNumber": 9324023,
"LicenseKey": 780866,
"GrantDate": "2020-12-08T00:00:00",
"EffectiveDate": "2020-12-08T00:00:00",
"ExpirationDate": "2031-02-26T00:00:00",
"Callsign": "w1aw",
"LicenseClass": ""
},
"AmateurName": {
"FullName": "ARRL HQ OPERATORS CLUB",
"FirstName": "ARRL HQ OPERATORS CLUB",
"MiddleInitial": "",
"LastName": null,
"FullNameReverse": ""
},
"QSLMethods": {
"LastLOTWUpload": "0001-01-01T00:00:00",
"QSLManager": "",
"UseEQSL": false,
"UseLOTW": false,
"UsePaperQSL": false
},
"Address": {
"Address1": "225 MAIN ST",
"Address2": "",
"POBoxNumber": "",
"City": "NEWINGTON",
"State": "CT",
"PostalCode": "06111"
}
}
The base class is CallSignToolkit.LookupDetails. It is not intended to be used directly, as it does not have any lookup methods built in.
- License : CallsignToolkit.License
- AmateurName : CallsignToolkit.Utilities.Name
- Address : CallsignToolkit.Utilities.Address
- Serialize() : string - returns a JSON formatted serialization of all public properties on the object
- PerformLookup() : Task - Performs a lookup on the callsign and populates the object with the results
- PerformLookup(string callsign) : Task - Clears the existing object, then performs a lookup on the passed callsign and populates the object with the results
- ClearResults() : void - Clears all results from the object and resets the callsign
The base helper classes are objects to support serialization and standardization of the lookup properties. They are contained as objects on the base class, but could be used seperately if needed or desired.
- Callsign : string
- LicenseClass : string
- License() : constructor
- License(string callsign) : constructor
- License(string callsign, string LicenseClass) : constructor
- IsValidUSCall() : bool - Uses a regex to validate the callsign is potentially a valid US callsign. Does not validate against any authoritative database
- Address1 : string
- Address2 : string
- POBoxNumber : string
- City : string
- State : string
- PostalCode : string
- Country : string
- Coordinates : CallsignToolkit.Utilities.LatLong
- Address() : constructor
- Address(string address1, string city, string state, string postalCode, string country) : constructor
- GetCoordinates() : CallsignToolkit.Utilities.LatLong - uses the API provided by maps.co to convert an address to latitude and longitude.
- Latitude : double
- Longitude : double
- LatLong() : constructor
- LatLong(double latitude, double longitude) : constructor
- LatLong(string latitude, string longitude) : constructor
- GeoCoordinates : CallsignToolkit.Utilities.LatLong
- GridSquare : string
None yet.
- FirstName : string
- LastName : string
- FullName : string - If not set directly, returns concatenation of "FirstName LastName"
- FullNameReverse : string - readonly; returns concatenation of "LastName, FirstName"
None yet.
Extends the base lookup class to provide a lookup method for the API provided by HamCall.dev. This API is free and loads quickly, but currently provides only US based callsign lookups.
- DMRID : List - List of DMR ID's associated with the callsign
- FRN : int - The FCC FRN associated with the callsign
- FileNumber : int - The ULS File number associated with the callsign
- LicenseKey : int - The ULS License Key associated with the callsign
- GrantDate : DateTime - The date the license was granted
- EffectiveDate : DateTime - The date the last change to the license was effective
- ExpirationDate : DateTime - The date the license expires
- FullName : string - The full name of the licensee, including middle initial (if available)
- MiddleInitial : string - The middle initial of the licensee (if available)
- LastLOTWUpload : DateTime - The date of the last upload to LoTW
- HamCallDevLoookup() : constructor
- HamCallDevLookup(string callsign) : constructor
Extends the base lookup class to provide a lookup method for the API provided by QRZ. This is a paid service, and provides callbook details for most countries offering amateur radio licenses.
- Aliases : List - List of other callsigns associated with the licensee.
- ImageURL : Uri - URL to the QRZ.com image of the licensee
- Attention : string - Attention to line
- County : string - County
- Country : string - Full country name
- EmailAddress : MailAddress - Email address object. Sets email and display name.
- WebAddress : Uri - Web address object.
- GrantDate : DateTime - The date the license was granted
- ExpirationDate : DateTime - The date the license expires
- ServiceCodes : string - The FCC service codes associated with the license grant
- FIPSCode : string - The FIPS code associated with the county of the callsign address
- DXCC : string - The DXCC entity associated with the callsign address
- TeleAreaCode : string - The telephone area code associated with the callsign address
- CQZone : string - The CQ Zone associated with the callsign address
- IOTA : string - The IOTA code associated with the callsign address
- Nickname : string - The nickname of the licensee shown on QRZ
Not yet implemented.
Not yet implemented.
Not yet implemented.
This work is licensed under the RPL v. 1.5, and welcomes use and upstream fixes.
Thank you to the following for their contributions to this project.
- Nick Booth (N1CCK)