#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <hamlib/rotator.h>
Functions | |
double | dms2dec (int degrees, int minutes, double seconds, int sw) |
Convert DMS to decimal degrees. | |
double | dmmm2dec (int degrees, double minutes, int sw) |
Convert D M.MMM notation to decimal degrees. | |
int | dec2dms (double dec, int *degrees, int *minutes, double *seconds, int *sw) |
Convert decimal degrees angle into DMS notation. | |
int | dec2dmmm (double dec, int *degrees, double *minutes, int *sw) |
Convert a decimal angle into D M.MMM notation. | |
int | locator2longlat (double *longitude, double *latitude, const char *locator) |
Convert Maidenhead grid locator to Longitude/Latitude. | |
int | longlat2locator (double longitude, double latitude, char *locator, int pair_count) |
Convert longitude/latitude to Maidenhead grid locator. | |
int | qrb (double lon1, double lat1, double lon2, double lat2, double *distance, double *azimuth) |
Calculate the distance and bearing between two points. | |
double | distance_long_path (double distance) |
Calculate the long path distance between two points. | |
double | azimuth_long_path (double azimuth) |
Calculate the long path bearing between two points. |
|
Calculate the long path bearing between two points.
|
|
Convert a decimal angle into D M.MMM notation.
When passed a value < -180 or > 180, the value will be normalized within these limits and the sign set apropriately. Upon return dec2dmmm guarantees 0 >= degrees <= 180, 0.0 >= minutes < 60.0. When dec is < 0.0 sw will be set to 1. When dec is >= 0.0 sw will be set to 0. This flag allows the application to determine whether the D M.MMM angle should be treated as negative (south or west).
|
|
Convert decimal degrees angle into DMS notation.
When dec < -180 or dec > 180, the angle will be normalized within these limits and the sign set appropriately. Upon return dec2dms guarantees 0 >= degrees <= 180, 0 >= minutes < 60, and 0.0 >= seconds < 60.0. When dec is < 0.0 sw will be set to 1. When dec is >= 0.0 sw will be set to 0. This flag allows the application to determine whether the DMS angle should be treated as negative (south or west).
|
|
Calculate the long path distance between two points.
|
|
Convert D M.MMM notation to decimal degrees.
degrees > 360, minutes > 60.0 are allowed, but resulting angle won't be normalized. When the variable sw is passed a value of 1, the returned decimal degrees value will be negative (south or west). When passed a value of 0 the returned decimal degrees value will be positive (north or east).
|
|
Convert DMS to decimal degrees.
When the variable sw is passed a value of 1, the returned decimal degrees value will be negative (south or west). When passed a value of 0 the returned decimal degrees value will be positive (north or east).
|
|
Convert Maidenhead grid locator to Longitude/Latitude.
Decimal long/lat is computed to center of grid square, i.e. given EM19 will return coordinates equivalent to the southwest corner of EM19mm.
|
|
Convert longitude/latitude to Maidenhead grid locator.
|
|
Calculate the distance and bearing between two points.
This version will calculate the QRB to a precision sufficient for 12 character locators. Antipodal points, which are easily calculated, are considered equidistant and the bearing is simply resolved to be true north (0.0°).
|