dao extension, aprs symbol

This commit is contained in:
Hans P. Reiser 2019-04-16 16:52:16 +02:00
parent cd30b6ce94
commit 63abbe9a2c
4 changed files with 42 additions and 1 deletions

View File

@ -339,6 +339,7 @@ static void posrs41(const byte b[], uint32_t b_len, uint32_t p)
long0)+vz*(double)sin((float)lat); long0)+vz*(double)sin((float)lat);
dir = X2C_DIVL(atang2(vn, ve),1.7453292519943E-2); dir = X2C_DIVL(atang2(vn, ve),1.7453292519943E-2);
if (dir<0.0) dir = 360.0+dir; if (dir<0.0) dir = 360.0+dir;
sonde.si()->dir = dir;
Serial.print(" "); Serial.print(" ");
sonde.si()->hs = sqrt((float)(vn*vn+ve*ve))*3.6f; sonde.si()->hs = sqrt((float)(vn*vn+ve*ve))*3.6f;
Serial.print(sonde.si()->hs); Serial.print(sonde.si()->hs);

View File

@ -54,12 +54,14 @@ Sonde::Sonde() {
config.udpfeed.active = 1; config.udpfeed.active = 1;
config.udpfeed.type = 0; config.udpfeed.type = 0;
strcpy(config.udpfeed.host, "192.168.42.20"); strcpy(config.udpfeed.host, "192.168.42.20");
strcpy(config.udpfeed.symbol, "/O");
config.udpfeed.port = 9002; config.udpfeed.port = 9002;
config.udpfeed.highrate = 1; config.udpfeed.highrate = 1;
config.udpfeed.idformat = ID_DFMGRAW; config.udpfeed.idformat = ID_DFMGRAW;
config.tcpfeed.active = 0; config.tcpfeed.active = 0;
config.tcpfeed.type = 1; config.tcpfeed.type = 1;
strcpy(config.tcpfeed.host, "radiosondy.info"); strcpy(config.tcpfeed.host, "radiosondy.info");
strcpy(config.tcpfeed.symbol, "/O");
config.tcpfeed.port = 12345; config.tcpfeed.port = 12345;
config.tcpfeed.highrate = 10; config.tcpfeed.highrate = 10;
config.tcpfeed.idformat = ID_DFMDXL; config.tcpfeed.idformat = ID_DFMDXL;

View File

@ -211,6 +211,43 @@ extern int aprsstr_mon2raw(const char *mon, char raw[], int raw_len)
#define FEET (1.0/0.3048) #define FEET (1.0/0.3048)
#define KNOTS (1.851984) #define KNOTS (1.851984)
#define X2C_max_longcard 0xFFFFFFFFUL
static uint32_t X2C_TRUNCC(double x, uint32_t min0, uint32_t max0)
{
uint32_t i;
if (x < (double)min0)
i = (uint32_t)min0;
if (x > (double)max0)
i = (uint32_t)max0;
i = (uint32_t)x;
if ((double)i > x)
--i;
return i;
}
static uint32_t truncc(double r)
{
if (r<=0.0) return 0UL;
else if (r>=2.E+9) return 2000000000UL;
else return (uint32_t)X2C_TRUNCC(r,0UL,X2C_max_longcard);
return 0;
} /* end truncc() */
static uint32_t dao91(double x)
/* radix91(xx/1.1) of dddmm.mmxx */
{
double a;
a = fabs(x);
return ((truncc((a-(double)(float)truncc(a))*6.E+5)%100UL)
*20UL+11UL)/22UL;
} /* end dao91() */
char b[201]; char b[201];
char raw[201]; char raw[201];
@ -248,7 +285,7 @@ char * aprs_senddata(float lat, float lon, float hei, float speed, float dir, fl
i=strlen(b); i=strlen(b);
snprintf(b+i, APRS_MAXLEN-i, "/A=%06d", realcard(hei*FEET+0.5)); snprintf(b+i, APRS_MAXLEN-i, "/A=%06d", realcard(hei*FEET+0.5));
} }
#if 0 #if 1
int dao=1; int dao=1;
if(dao) { if(dao) {
i=strlen(b); i=strlen(b);

View File

@ -9,6 +9,7 @@ typedef struct st_feedinfo {
int type; // 0:UDP(axudp), 1:TCP(aprs.fi) int type; // 0:UDP(axudp), 1:TCP(aprs.fi)
char host[64]; char host[64];
int port; int port;
char symbol[3];
int lowrate; int lowrate;
int highrate; int highrate;
int lowlimit; int lowlimit;