kopia lustrzana https://github.com/rs1729/RS
C34,C50: info update
rodzic
3290ef6952
commit
cc914216ae
|
@ -7,7 +7,8 @@ Modulation AFSK 2400 baud
|
||||||
bits : little endian -> byte
|
bits : little endian -> byte
|
||||||
bytes: big endian -> int-value
|
bytes: big endian -> int-value
|
||||||
|
|
||||||
bytes getrennt durch 4 bit 1110
|
bytes getrennt durch 4 bit 1110:
|
||||||
|
8N1: 0 bbbbbbbb 1(11)0 bb... , (11)-idle
|
||||||
|
|
||||||
Datenpaket besteht aus 8 byte:
|
Datenpaket besteht aus 8 byte:
|
||||||
header 2 byte 00FF
|
header 2 byte 00FF
|
||||||
|
|
|
@ -109,7 +109,7 @@ int read_signed_sample(FILE *fp) { // int = i32_t
|
||||||
byte = fgetc(fp);
|
byte = fgetc(fp);
|
||||||
if (byte == EOF) return EOF_INT;
|
if (byte == EOF) return EOF_INT;
|
||||||
if (i == 0) ret = byte;
|
if (i == 0) ret = byte;
|
||||||
|
|
||||||
if (bits_sample == 16) {
|
if (bits_sample == 16) {
|
||||||
byte = fgetc(fp);
|
byte = fgetc(fp);
|
||||||
if (byte == EOF) return EOF_INT;
|
if (byte == EOF) return EOF_INT;
|
||||||
|
@ -131,7 +131,7 @@ int read_signed_sample(FILE *fp) { // int = i32_t
|
||||||
#define N 64 // 128 Vielfaches von 22 oder 10 unten
|
#define N 64 // 128 Vielfaches von 22 oder 10 unten
|
||||||
#define WLEN 40 // (2*(48000/BAUDRATE))
|
#define WLEN 40 // (2*(48000/BAUDRATE))
|
||||||
|
|
||||||
#define BITS (4+8) // 1110 bbbbbbbb (oder: 10 bbbbbbbb 11)
|
#define BITS (4+8) // 1110 bbbbbbbb (oder: 0 bbbbbbbb 1 11) (8N1, 11-idle)
|
||||||
#define LEN_BITFRAME 84 // 7*(4+8)
|
#define LEN_BITFRAME 84 // 7*(4+8)
|
||||||
#define HEADLEN 28
|
#define HEADLEN 28
|
||||||
|
|
||||||
|
@ -281,7 +281,7 @@ int bits2bytes(ui8_t bits[], ui8_t bytes[]) {
|
||||||
/* for (i = 7; i >= 0; i--) { // big endian */
|
/* for (i = 7; i >= 0; i--) { // big endian */
|
||||||
if (bits[BITS*j+i] == 1) byteval += d;
|
if (bits[BITS*j+i] == 1) byteval += d;
|
||||||
else /*(bits[BITS*j+i] == 0)*/ byteval += 0;
|
else /*(bits[BITS*j+i] == 0)*/ byteval += 0;
|
||||||
d <<= 1;
|
d <<= 1;
|
||||||
}
|
}
|
||||||
bytes[j] = byteval;
|
bytes[j] = byteval;
|
||||||
}
|
}
|
||||||
|
@ -480,7 +480,7 @@ int main(int argc, char *argv[]) {
|
||||||
ptr = -1; sample_count = -1;
|
ptr = -1; sample_count = -1;
|
||||||
while ((sample=read_signed_sample(fp)) < EOF_INT) {
|
while ((sample=read_signed_sample(fp)) < EOF_INT) {
|
||||||
|
|
||||||
ptr++;
|
ptr++;
|
||||||
sample_count++;
|
sample_count++;
|
||||||
if (ptr == N) ptr = 0;
|
if (ptr == N) ptr = 0;
|
||||||
buffer[ptr] = sample / (double)(1<<bits_sample);
|
buffer[ptr] = sample / (double)(1<<bits_sample);
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
Modulation AFSK 2400 baud
|
||||||
|
3000 Hz : bit 1
|
||||||
|
4800 Hz : bit 0
|
||||||
|
|
||||||
|
|
||||||
|
bits : little endian -> byte
|
||||||
|
bytes: big endian -> int-value
|
||||||
|
|
||||||
|
8N1: 0 bbbbbbbb 1
|
||||||
|
|
||||||
|
Datenpaket besteht aus 8 byte:
|
||||||
|
header 2 byte 00FF
|
||||||
|
pck_id 1 byte N
|
||||||
|
data 4 byte val (big endian)
|
||||||
|
chksum 2 byte Fletcher16 (hier: byte2 1's-complement am Ende)
|
||||||
|
|
||||||
|
|
||||||
|
Telemetrie pck_id N:
|
||||||
|
0x14: date: 0x0003F815 = 260117 -> 2017-01-26
|
||||||
|
0x15: time: 0x0001C41D = 124735 -> 11:57:41
|
||||||
|
0x16: lat : 0x1BC1678B = 465659787 -> 46+5659787/6000000=46.943298°
|
||||||
|
0x17: lon : 0x03D54F9F = 64311199 -> 6+4311199/6000000=6.7185332°
|
||||||
|
0x18: alt : 0x0003252E = 206126 -> 206126/10 = 20612.6m
|
||||||
|
|
||||||
|
|
||||||
|
GPS-lat/lon wie NMEA mit Faktor 1e5
|
||||||
|
|
||||||
|
|
||||||
|
Checksum: Fletcher16
|
||||||
|
|
||||||
|
PTU-Data: float32?
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue