Defines |
#define | TQSL_LOCATION_FIELD_TEXT 1 |
#define | TQSL_LOCATION_FIELD_DDLIST 2 |
#define | TQSL_LOCATION_FIELD_LIST 3 |
#define | TQSL_LOCATION_FIELD_CHAR 1 |
#define | TQSL_LOCATION_FIELD_INT 2 |
Functions |
int | tqsl_initStationLocationCapture (tQSL_Location *locp) |
int | tqsl_endStationLocationCapture (tQSL_Location *locp) |
int | tqsl_updateStationLocationCapture (tQSL_Location loc) |
int | tqsl_getStationLocationCapturePage (tQSL_Location loc, int *page) |
int | tqsl_setStationLocationCapturePage (tQSL_Location loc, int page) |
int | tqsl_nextStationLocationCapture (tQSL_Location loc) |
int | tqsl_prevStationLocationCapture (tQSL_Location loc) |
int | tqsl_hasNextStationLocationCapture (tQSL_Location loc, int *rval) |
int | tqsl_hasPrevStationLocationCapture (tQSL_Location loc, int *rval) |
int | tqsl_saveStationLocationCapture (tQSL_Location loc, int overwrite) |
int | tqsl_getStationLocationCaptureName (tQSL_Location loc, char *namebuf, int bufsiz) |
int | tqsl_setStationLocationCaptureName (tQSL_Location loc, const char *name) |
int | tqsl_getNumStationLocations (tQSL_Location loc, int *nloc) |
int | tqsl_getStationLocationName (tQSL_Location loc, int idx, char *buf, int bufsiz) |
int | tqsl_getStationLocationCallSign (tQSL_Location loc, int idx, char *buf, int bufsiz) |
int | tqsl_getStationLocation (tQSL_Location *loc, const char *name) |
int | tqsl_deleteStationLocation (const char *name) |
int | tqsl_getNumLocationField (tQSL_Location loc, int *numf) |
int | tqsl_getLocationFieldDataLabelSize (tQSL_Location loc, int field_num, int *rval) |
int | tqsl_getLocationFieldDataLabel (tQSL_Location loc, int field_num, char *buf, int bufsiz) |
int | tqsl_getLocationFieldDataGABBISize (tQSL_Location loc, int field_num, int *rval) |
int | tqsl_getLocationFieldDataGABBI (tQSL_Location loc, int field_num, char *buf, int bufsiz) |
int | tqsl_getLocationFieldInputType (tQSL_Location loc, int field_num, int *type) |
int | tqsl_getLocationFieldDataType (tQSL_Location loc, int field_num, int *type) |
int | tqsl_getLocationFieldDataLength (tQSL_Location loc, int field_num, int *rval) |
int | tqsl_getLocationFieldCharData (tQSL_Location loc, int field_num, char *buf, int bufsiz) |
int | tqsl_getLocationFieldIntData (tQSL_Location loc, int field_num, int *dat) |
int | tqsl_getLocationFieldIndex (tQSL_Location loc, int field_num, int *dat) |
int | tqsl_getNumLocationFieldListItems (tQSL_Location loc, int field_num, int *rval) |
int | tqsl_getLocationFieldListItem (tQSL_Location loc, int field_num, int item_idx, char *buf, int bufsiz) |
int | tqsl_setLocationFieldCharData (tQSL_Location loc, int field_num, const char *buf) |
int | tqsl_setLocationFieldIntData (tQSL_Location loc, int field_num, int dat) |
int | tqsl_setLocationFieldIndex (tQSL_Location loc, int field_num, int dat) |
int | tqsl_getLocationFieldChanged (tQSL_Location loc, int field_num, int *changed) |
int | tqsl_getLocationCallSign (tQSL_Location loc, char *buf, int bufsiz) |
int | tqsl_getLocationDXCCEntity (tQSL_Location loc, int *dxcc) |
int | tqsl_getNumDXCCEntity (int *number) |
int | tqsl_getDXCCEntity (int index, int *number, const char **name) |
int | tqsl_getDXCCEntityName (int number, const char **name) |
int | tqsl_getNumBand (int *number) |
int | tqsl_getBand (int index, const char **name, const char **spectrum, int *low, int *high) |
int | tqsl_getNumMode (int *number) |
int | tqsl_getMode (int index, const char **mode, const char **group) |
int | tqsl_getNumPropagationMode (int *number) |
int | tqsl_getPropagationMode (int index, const char **name, const char **descrip) |
int | tqsl_getNumSatellite (int *number) |
int | tqsl_getSatellite (int index, const char **name, const char **descrip, tQSL_Date *start, tQSL_Date *end) |
int | tqsl_clearCabrilloMap () |
int | tqsl_setCabrilloMapEntry (const char *contest, int field, int contest_type) |
int | tqsl_getCabrilloMapEntry (const char *contest, int *fieldnum, int *contest_type) |
int | tqsl_clearADIFModes () |
int | tqsl_setADIFMode (const char *adif_item, const char *mode) |
int | tqsl_getADIFMode (const char *adif_item, char *mode, int nmode) |
const char* | tqsl_getGABBItCERT (tQSL_Cert cert, int uid) |
const char* | tqsl_getGABBItSTATION (tQSL_Location loc, int uid, int certuid) |
const char* | tqsl_getGABBItCONTACT (tQSL_Cert cert, tQSL_Location loc, TQSL_QSO_RECORD *qso, int stationuid) |
The station record contains the callsign and geographic location of the station submitting the QSO record. The library manages the station records. The tqsl_xxxStationLocationCapture functions are used to generate and save a station record. The intent is to provide an interface that makes a step-by-step system (such as a GUI "wizard") easily implemented.
With the necessary station location available, a signed GABBI output file can be generated using the tqsl_getGABBIxxxxx functions:
The station-location generation process involves determining the values for a number of station-location parameters. Normally this will be done by prompting the user for the values. The responses given by the user may determine which later fields are required. For example, if the user indicates that the DXCC entity is UNITED STATES, a later field would ask for the US state. This field would not be required if the DXCC entity were not in the US.
To accommodate the dynamic nature of the field requirements, the fields are ordered such that dependent fields are queried after the field(s) on which they depend. To make this process acceptable in a GUI system, the fields are grouped into pages, where multiple fields may be displayed on the same page. The grouping is such that which fields are within the page is not dependent on any of the values of the fields within the page. That is, a page of fields contains the same fields no matter what value any of the fields contains. (However, the values of fields within the page can depend on the values of fields that precede them in the page.)
Here is a brief overview of the sequence of events involved in generating a station location interactively, one field at a time:
In the case of a GUI system, you'll probably want to display the fields in pages. The sequence of events is a bit different:
N.B. The first two fields in the station-location capture process are always call sign and DXCC entity, in that order. As a practical matter, these two fields must match the corresponding fields in the available certificates. The library will therefore constrain the values of these fields to match what's available in the certificate store. See Certificate Handling API.