kopia lustrzana https://github.com/rs1729/RS
weathex: decimal SN
rodzic
bbc82cb14d
commit
91a8ca9fb5
|
@ -327,18 +327,35 @@ int print_frame() {
|
|||
ui32_t cnt;
|
||||
int val;
|
||||
|
||||
// SN ?
|
||||
// SN
|
||||
sn = xframe[OFS+2] | (xframe[OFS+3]<<8) | ((xframe[OFS+4])<<16) | ((xframe[OFS+5])<<24);
|
||||
printf(" (0x%08X) ", sn);
|
||||
|
||||
// counter ?
|
||||
// counter
|
||||
cnt = xframe[OFS+6] | (xframe[OFS+7]<<8);
|
||||
printf(" [%5d] ", cnt);
|
||||
|
||||
ui8_t frid = xframe[OFS+8];
|
||||
|
||||
if (frid == 2)
|
||||
if (frid == 1)
|
||||
{
|
||||
if (option_verbose) {
|
||||
|
||||
printf(" (%u) ", sn); //printf(" (0x%08X) ", sn);
|
||||
printf(" [%5d] ", cnt);
|
||||
|
||||
printf(" %s", chk_ok ? "[OK]" : "[NO]");
|
||||
if (option_verbose) printf(" # [%04X:%04X]", chkdat, chkval);
|
||||
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
else if (frid == 2)
|
||||
{
|
||||
// SN
|
||||
printf(" (%u) ", sn); //printf(" (0x%08X) ", sn);
|
||||
|
||||
// counter
|
||||
printf(" [%5d] ", cnt);
|
||||
|
||||
// time/UTC
|
||||
int hms;
|
||||
hms = xframe[OFS+9] | (xframe[OFS+10]<<8) | ((xframe[OFS+11])<<16);
|
||||
|
@ -351,17 +368,17 @@ int print_frame() {
|
|||
|
||||
// alt
|
||||
val = xframe[OFS+15] | (xframe[OFS+16]<<8) | ((xframe[OFS+17])<<16);
|
||||
val &= 0x7FFFFF; // int23 ?
|
||||
val >>= 4;
|
||||
//if (val & 0x3FFFFF) val -= 0x400000;
|
||||
val &= 0x7FFFF; // int19 ?
|
||||
//if (val & 0x40000) val -= 0x80000;
|
||||
float alt = val / 10.0f;
|
||||
printf(" alt: %.1f ", alt); // MSL
|
||||
|
||||
// lat
|
||||
val = xframe[OFS+17] | (xframe[OFS+18]<<8) | ((xframe[OFS+19])<<16) | ((xframe[OFS+20])<<24);
|
||||
val >>= 7;
|
||||
val &= 0x3FFFFFF; // int26 ?
|
||||
if (val & 0x2000000) val -= 0x4000000; // sign ?
|
||||
val &= 0x1FFFFFF; // int25 ?
|
||||
if (val & 0x1000000) val -= 0x2000000; // sign ? (or 90 -> -90 wrap ?)
|
||||
float lat = val / 1e5f;
|
||||
printf(" lat: %.4f ", lat);
|
||||
|
||||
|
@ -372,13 +389,13 @@ int print_frame() {
|
|||
float lon = val / 1e5f;
|
||||
printf(" lon: %.4f ", lon);
|
||||
|
||||
// checksum
|
||||
printf(" %s", chk_ok ? "[OK]" : "[NO]");
|
||||
if (option_verbose) printf(" # [%04X:%04X]", chkdat, chkval);
|
||||
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
// checksum
|
||||
printf(" %s", chk_ok ? "[OK]" : "[NO]");
|
||||
if (option_verbose) printf(" # [%04X:%04X]", chkdat, chkval);
|
||||
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -334,6 +334,7 @@ int print_frame() {
|
|||
ui32_t cnt;
|
||||
int val;
|
||||
|
||||
// SN
|
||||
sn = xframe[OFS] | (xframe[OFS+1]<<8) | (xframe[OFS+2]<<16) | (xframe[OFS+3]<<24);
|
||||
|
||||
// counter
|
||||
|
@ -343,7 +344,7 @@ int print_frame() {
|
|||
|
||||
if (frid == 2)
|
||||
{
|
||||
// SN ?
|
||||
// SN
|
||||
printf(" (0x%08X) ", sn);
|
||||
|
||||
// counter
|
||||
|
@ -361,24 +362,24 @@ int print_frame() {
|
|||
|
||||
// alt
|
||||
val = xframe[OFS+13] | (xframe[OFS+14]<<8) | (xframe[OFS+15]<<16);
|
||||
val &= 0x7FFFFF; // int23 ?
|
||||
val >>= 4;
|
||||
//if (val & 0x3FFFFF) val -= 0x400000;
|
||||
val &= 0x7FFFF; // int19 ?
|
||||
//if (val & 0x40000) val -= 0x80000;
|
||||
float alt = val / 10.0f;
|
||||
printf(" alt: %.1f ", alt); // MSL
|
||||
|
||||
// lat
|
||||
val = xframe[OFS+15] | (xframe[OFS+16]<<8) | (xframe[OFS+17]<<16) | (xframe[OFS+18]<<24);
|
||||
val >>= 7;
|
||||
val &= 0x3FFFFFF; // int26 ?
|
||||
if (val & 0x2000000) val -= 0x4000000; // sign ?
|
||||
val &= 0x1FFFFFF; // int25 ?
|
||||
if (val & 0x1000000) val -= 0x2000000; // sign ? (or 90 -> -90 wrap ?)
|
||||
float lat = val / 1e5f;
|
||||
printf(" lat: %.4f ", lat);
|
||||
|
||||
// lon
|
||||
val = xframe[OFS+19] | (xframe[OFS+20]<<8) | (xframe[OFS+21]<<16)| (xframe[OFS+22]<<24);
|
||||
val &= 0x3FFFFFF; // int26 ?
|
||||
if (val & 0x2000000) val -= 0x4000000; // sign ?
|
||||
if (val & 0x2000000) val -= 0x4000000; // sign ? (or 180 -> -180 wrap ?)
|
||||
float lon = val / 1e5f;
|
||||
printf(" lon: %.4f ", lon);
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue