spdxl/src/aprspos.h

85 wiersze
1.6 KiB
C

/*
* dxlAPRS toolchain
*
* Copyright (C) Christian Rabler <oe5dxl@oevsv.at>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef aprspos_H_
#define aprspos_H_
#ifndef X2C_H_
#include "X2C.h"
#endif
/* get aprs position by OE5DXL */
#define aprspos_PI2 6.283185307
#define aprspos_RAD 1.7453292519444E-2
#define aprspos_FEET 0.3048
#define aprspos_KNOTS 1.852
/* nautic miles */
#define aprspos_WKNOTS 1.609
/* wx knots */
#define aprspos_SKNOTS 1.609
/* stormdata knots */
#define aprspos_ENCODEGPS "g"
#define aprspos_ENCODEMICE "m"
#define aprspos_ENCODECOMP "c"
#define aprspos_ENCODEGPSDAO "G"
#define aprspos_ENCODEMICEDAO "M"
#define aprspos_ENCODEAREA "A"
#define aprspos_ENCODEMULTILINE "L"
#define aprspos_EARTH 6370.0
#define aprspos_AREASYMT "\\"
/* area object symbol table */
#define aprspos_AREASYM "l"
/* area object symbol */
struct aprspos_POSITION;
struct aprspos_POSITION {
float long0;
float lat;
};
extern float aprspos_rad0(float);
extern char aprspos_posvalid(struct aprspos_POSITION);
extern float aprspos_distance(struct aprspos_POSITION,
struct aprspos_POSITION);
extern float aprspos_azimuth(struct aprspos_POSITION,
struct aprspos_POSITION);
extern void aprspos_GetPos(struct aprspos_POSITION *, uint32_t *,
uint32_t *, int32_t *, char *, char *,
char [], uint32_t, uint32_t, uint32_t, char [],
uint32_t, char *);
extern void aprspos_GetSym(char [], uint32_t, char *, char *);
/* symbol out of destination call */
extern void aprspos_BEGIN(void);
#endif /* aprspos_H_ */