RS41: neue FW, BK irrelevant/invers?

dump
Zilog80 2016-12-31 17:48:03 +01:00
rodzic a9db9e10a2
commit 6a40a28b65
2 zmienionych plików z 71 dodań i 6 usunięć

Wyświetl plik

@ -73,6 +73,60 @@ GPS Chip: u-blox UBX-G6010-ST
0x01: 34 30 30 31 30 f2 4e 00 00 58 02 12 05 b4 3c a4
-> 4c 31 30 34 30 30 31 30 : L1040010
0x01: nach ID, 2 byte: fw-version? 0x4ef2
M3830211, 0x4ef5: BK irrelevant oder invers?
K1930293
[ 5866] 0x00: 3e 09 00 32 03 00 00 0e 00 00 00 00 00 4b 31 39 [OK] : fq 402000
[ 5867] 0x01: 33 30 32 39 33 25 4e 00 00 2c 01 12 05 b4 3c a4 [OK] : fw 0x4e25
[ 5868] 0x02: 06 0a 87 32 00 00 00 ff ff 00 00 00 00 03 d7 22 [OK] : BK 00
K1830006
[ 4387] 0x00: 28 8b 00 32 03 00 00 0e 00 00 00 00 00 4b 31 38 [OK] : fq 402000
[ 4388] 0x01: 33 30 30 30 36 25 4e 00 00 2c 01 12 05 b4 3c a4 [OK] : fw 0x4e25
[ 4389] 0x02: 06 0a 87 32 00 00 00 ff ff 00 00 01 00 03 ac 22 [OK] : BK 01
L2830508 (mit preamble)
[ 6835] 0x00: aa 9b 00 32 03 00 00 0e 00 00 00 00 00 4c 32 38 [OK] : fq 402000
[ 6836] 0x01: 33 30 35 30 38 f2 4e 00 00 58 02 12 05 b4 3c a4 [OK] : fw 0x4ef2
[ 6837] 0x02: 06 14 87 32 00 00 00 ff ff 00 00 01 00 03 1d 23 [OK] : BK 01
L1250184 (ohne preamble)
[ 5764] 0x00: 0f 62 00 32 03 00 00 0e 00 00 00 00 00 4c 31 32 [OK] : fq 402000
[ 5765] 0x01: 35 30 31 38 34 25 4e 00 00 58 02 12 05 b4 3c a4 [OK] : fw 0x4e25
[ 5766] 0x02: 06 14 87 32 00 00 00 ff ff 00 00 01 00 03 3c 22 [OK] : BK 01
L1810272, fw: 0x4e25
[ 6376] 0x00: 78 d6 00 32 03 00 00 0e 00 00 00 00 00 4c 31 38 [OK] : fq 402000
[ 6377] 0x01: 31 30 32 37 32 25 4e 00 00 58 02 12 05 b4 3c a4 [OK] : fw 0x4e25
[ 6378] 0x02: 06 14 87 32 00 00 00 ff ff 00 00 00 00 03 c8 22 [OK] : BK 00
L2840452
[ 6274] 0x00: 2e b1 00 32 03 00 00 0e 00 00 00 00 00 4c 32 38 [OK] : fq 402000
[ 6275] 0x01: 34 30 34 35 32 f3 4e 00 00 58 02 12 05 b4 3c a4 [OK] : fw 0x4ef3
[ 6276] 0x02: 06 14 87 32 00 00 00 ff ff 00 00 00 00 03 1c 23 [OK] : BK 00
L2840165
[ 6937] 0x00: f8 da 00 32 03 00 00 0e 00 00 00 00 00 4c 32 38 [OK] : fq 402000
[ 6938] 0x01: 34 30 31 36 35 f2 4e 00 00 58 02 12 05 b4 3c a4 [OK] : fw 0x4ef2
[ 6939] 0x02: 06 14 87 32 00 00 00 ff ff 00 00 00 00 03 1a 23 [OK] : BK 00
M3550630
[ 3061] 0x00: 14 ff 00 32 03 00 00 0e 00 00 00 00 00 4d 33 35 [OK] : fq 402000
[ 3062] 0x01: 35 30 36 33 30 f3 4e 00 00 58 02 12 05 b4 3c a4 [OK] : fw 0x4ef3
[ 3063] 0x02: 06 14 87 32 00 00 00 ff ff 00 00 00 00 03 bd 22 [OK] : BK 00
M2830093
[ 7447] 0x00: d0 9f 00 73 03 00 00 0f 00 00 00 00 00 4d 32 38 [OK] : fq 404600
[ 7448] 0x01: 33 30 30 39 33 f3 4e 00 00 58 02 12 05 b4 3c a4 [OK] : fw 0x4ef3
[ 7449] 0x02: 06 14 87 32 00 00 00 ff ff 00 00 01 00 03 14 23 [OK] : BK 01
M3830211 (sendet auch beim Abstieg)
[ 7753] 0x00: dc 0f 00 64 03 00 00 0f 00 00 00 00 00 4d 33 38 [OK] : fq 404000
[ 7754] 0x01: 33 30 32 31 31 f5 4e 00 00 58 02 12 05 b4 3c a4 [OK] : fw 0x4ef5
[ 7755] 0x02: 06 14 87 32 00 00 00 ff ff 00 00 01 00 03 0b 23 [OK] : BK 01
frame 0x21: ff ff ff c6 ff ff ff c6 52 53 34 31 2d 53 47 00 : RS41-SG
ee 19 79 44 9a 39 79 44 52 53 34 31 2d 53 47 50 : RS41-SGP

Wyświetl plik

@ -25,8 +25,9 @@
#endif
typedef unsigned char ui8_t;
typedef unsigned int ui32_t;
typedef unsigned char ui8_t;
typedef unsigned short ui16_t;
typedef unsigned int ui32_t;
typedef short i16_t;
typedef int i32_t;
@ -710,7 +711,7 @@ int get_GPSkoord() {
double X[3], lat, lon, alt;
ui8_t gpsVel_bytes[2];
short vel16; // 16bit
double V[3], phi, lam, alpha, dir;
double V[3], phi, lam, dir;
int crclen;
int crcdat;
@ -762,12 +763,13 @@ int get_GPSkoord() {
// NEU -> HorDirVer
gpx.vH = sqrt(gpx.vN*gpx.vN+gpx.vE*gpx.vE);
///*
/*
double alpha;
alpha = atan2(gpx.vN, gpx.vE)*180/M_PI; // ComplexPlane (von x-Achse nach links) - GeoMeteo (von y-Achse nach rechts)
dir = 90-alpha; // z=x+iy= -> i*conj(z)=y+ix=re(i(pi/2-t)), Achsen und Drehsinn vertauscht
if (dir < 0) dir += 360; // atan2(y,x)=atan(y/x)=pi/2-atan(x/y) , atan(1/t) = pi/2 - atan(t)
gpx.vD2 = dir;
//*/
*/
dir = atan2(gpx.vE, gpx.vN) * 180 / M_PI;
if (dir < 0) dir += 360;
gpx.vD = dir;
@ -812,6 +814,7 @@ int get_Cal() {
unsigned byte;
ui8_t calfr = 0;
ui8_t burst = 0;
ui16_t fw = 0;
int freq = 0, f0 = 0, f1 = 0;
char sondetyp[9];
@ -826,11 +829,19 @@ int get_Cal() {
byte = framebyte(pos_CalData+1+i);
fprintf(stdout, "%02x ", byte);
}
if (check_CRC(pos_FRAME, pck_FRAME)>0) fprintf(stdout, "[OK]");
else fprintf(stdout, "[NO]");
fprintf(stdout, " ");
}
if (calfr == 0x01 && option_verbose /*== 2*/) {
fw = framebyte(pos_CalData+6) | (framebyte(pos_CalData+7)<<8);
fprintf(stdout, ": fw 0x%04x ", fw);
}
if (calfr == 0x02 && option_verbose /*== 2*/) {
byte = framebyte(pos_Calburst);
burst = byte;
burst = byte; // fw >= 0x4ef5, BK irrelevant oder invers?
fprintf(stdout, ": BK %02X ", burst);
}