15-03-2024, 12:03 PM
Mensaje repetido en el siguiente.
(15-03-2024, 09:15 PM)jiauka escribió: Igual te puede interesar
https://github.com/htool/RaymarineAPtoFa...oAutoPilot
Yo tengo 1 a medio hacer en C, la idea era usarlo para tener 1 autopilot "encima de la mesa". Pero al final era más cómodo ir al barco.
Si quieres, te lo paso, pero NO es operativo y como buen WIP tiene 1 montón de basura
(15-03-2024, 12:10 AM)jiauka escribió: Lo dicho, si quieres 1 log, dime la secuencia y si lo quieres binario o ASCII, este finde estaré por el barco.
case 65305: // Simrad TP22, NAC2/NAC3 Pilot Mode, 0xFF19
if (engaged == 0x10) break; // 65340 priority
ii = Rx0Msg.Data[3];
if (ii == 0x02) {
if (Rx0Msg.Data[4] == 0x10) engaged = 1; //
else { NAVDAT.autom = 0x00; engaged = 0; } // STBY Mode TP22,NAC-2: 41,9f,64,0a,08,00,00,00 / 41,9f,ff,0a,08,00,80,00
} else if ((ii == 0x0a) && (engaged == 1)) {
value = get16(&Rx0Msg.Data[4]) & 0xfff0; // 41,9f,00,0A + ..AP24 capture / emulate.js / NAC-2 capture / TP22 capture
if (value == 0x0010) ii = 0x02; // AUTO Mode ..0x14 0x00 0x80 0x00 / ..16,00,80,00 / 41,9f,64,0a,10,00,00,00 / 41,9f,ff,0a,10,00,80,00
else if (value == 0x0410) ii = 0x04; // VANE Mode ?..0x14 0x04 0x80 0x02 / ..06,04,00,00 / 41,9f,64,0a,00,04,00,04 / 41,9f,ff,0a,10,04,80,06
else if (value == 0x0050) ii = 0x08; // TRACK Mode ..0x54 0x00 0x80 0x00 / ..f0,00,80,00 / 41,9f,ff,0a,14,00,80,00
else if (value == 0x0110) ii = 0x01; // NODRIFT M ..0x14 0x01 0x80 0x00 / ..16,01,00,00
else ii = 0x10; // NFU
NAVDAT.autom = ii;
}
break;
case 65340: // Simrad AC12/AC42 Pilot Mode, 0xFF3C
engaged = 0x10; // Disable 65305 readings
value = get16(&Rx0Msg.Data[2]);
if (value == 0x0000) ii = 0x00; // STBY Mode 0x41 0x9F 0x00 0x00 0xFE 0xF8 0x00 0x80
else if (value == 0x0110) ii = 0x02; // AUTO Mode 0x41 0x9F 0x10 0x01 0xFE 0xFA 0x00 0x80
else if (value == 0x0310) ii = 0x04; // VANE Mode 0x41 0x9F 0x10 0x03 0xFE 0xFA 0x00 0x80
else if (value == 0x0610) ii = 0x08; // TRACK Mode 0x41 0x9F 0x10 0x06 0xFE 0xFA 0x00 0x80
else if (value == 0x0410) ii = 0x01; // NODRIFT M 0x41 0x9F 0x10 0x04 0xFE 0xFA 0x00 0x80
else ii = 0x10; // NFU
NAVDAT.autom = ii;
break;
AC12 / emulate.js / NAC-2 / TP22
41,9f,00,0a,14,04,80,02 / 41,9f,00,0a,06,04,00,00 / 41,9f,64,0a,00,04,00,04 / 41,9f,ff,0a,10,04,80,06