Při kompilaci na mě vyskakuje chyba s kterou si nevím rady, protože nejsem programátor ale jen uživatel. Rozumím tomu, že je v té smyčce, ale kde? Díky za radu…
mode_s.c: In function ‘decodeBDS20’:
mode_s.c:758:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int i = 0; i < 8; ++i) {
^
mode_s.c:758:5: note: use option -std=c99 or -std=gnu99 to compile your code
Makefile:49: recipe for target ‘mode_s.o’ failed
make[3]: *** [mode_s.o] Error 1
a chyba by měla být tady:
// Decode BDS2,0 carried in Comm-B or ES
static void decodeBDS20(struct modesMessage *mm)
{
unsigned char *msg = mm->msg;
mm->callsign[0] = ais_charset[getbits(msg, 41, 46)]; mm->callsign[1] = ais_charset[getbits(msg, 47, 52)]; mm->callsign[2] = ais_charset[getbits(msg, 53, 58)]; mm->callsign[3] = ais_charset[getbits(msg, 59, 64)]; mm->callsign[4] = ais_charset[getbits(msg, 65, 70)]; mm->callsign[5] = ais_charset[getbits(msg, 71, 76)]; mm->callsign[6] = ais_charset[getbits(msg, 77, 82)]; mm->callsign[7] = ais_charset[getbits(msg, 83, 88)]; mm->callsign[8] = 0;
// Catch possible bad decodings since BDS2,0 is not // 100% reliable: accept only alphanumeric data mm->callsign_valid = 1; for (int i = 0; i < 8; ++i) { if (! ((mm->callsign[i] >= 'A' && mm->callsign[i] <= 'Z') || (mm->callsign[i] >= '0' && mm->callsign[i] <= '9') || mm->callsign[i] == ' ') ) { mm->callsign_valid = 0; break; } }
}