Add AIS Class B Decoding

This commit is contained in:
Arne Luehrs 2022-08-14 23:48:04 +08:00
parent f5a604a0a5
commit 5096f91986

View File

@ -195,6 +195,15 @@ void AISRecentEntry::update(const ais::Packet& packet) {
destination = packet.text(302, 20); destination = packet.text(302, 20);
break; break;
case 18:
last_position.timestamp = packet.received_at();
last_position.speed_over_ground = packet.read(46, 10);
last_position.latitude = packet.latitude(85);
last_position.longitude = packet.longitude(57);
last_position.course_over_ground = packet.read(112, 12);
last_position.true_heading = packet.read(124, 9);
break;
case 21: case 21:
name = packet.text(43, 20); name = packet.text(43, 20);
last_position.timestamp = packet.received_at(); last_position.timestamp = packet.received_at();
@ -202,6 +211,23 @@ void AISRecentEntry::update(const ais::Packet& packet) {
last_position.longitude = packet.longitude(164); last_position.longitude = packet.longitude(164);
break; break;
case 24:
switch (packet.read(38, 2))
{
case 0:
name = packet.text(40, 20);
break;
case 1:
call_sign = packet.text(90, 7);
break;
default:
break;
}
break;
default: default:
break; break;
} }