summaryrefslogtreecommitdiff
path: root/gpsdecode.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2009-03-14 14:25:56 +0000
committerEric S. Raymond <esr@thyrsus.com>2009-03-14 14:25:56 +0000
commit4ca780c3718e2f69436f6e1ed0cc002a4be9b67b (patch)
treed8b2c6224d267dffd30e8e6ec8aff817a79a5c34 /gpsdecode.c
parentf91403e499e276720f8527f6a4bfce011465e36f (diff)
downloadgpsd-4ca780c3718e2f69436f6e1ed0cc002a4be9b67b.tar.gz
Dump ship type in text.
Diffstat (limited to 'gpsdecode.c')
-rw-r--r--gpsdecode.c109
1 files changed, 106 insertions, 3 deletions
diff --git a/gpsdecode.c b/gpsdecode.c
index 6986855a..523490d5 100644
--- a/gpsdecode.c
+++ b/gpsdecode.c
@@ -59,6 +59,109 @@ static void aivdm_dump(struct ais_t *ais, FILE *fp)
"Galileo",
};
+ static char *type_legends[100] = {
+ "Not available",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Reserved for future use",
+ "Wing in ground (WIG), all ships of this type",
+ "Wing in ground (WIG), Hazardous category A",
+ "Wing in ground (WIG), Hazardous category B",
+ "Wing in ground (WIG), Hazardous category C",
+ "Wing in ground (WIG), Hazardous category D",
+ "Wing in ground (WIG), Reserved for future use",
+ "Wing in ground (WIG), Reserved for future use",
+ "Wing in ground (WIG), Reserved for future use",
+ "Wing in ground (WIG), Reserved for future use",
+ "Wing in ground (WIG), Reserved for future use",
+ "Fishing",
+ "Towing",
+ "Towing: length exceeds 200m or breadth exceeds 25m",
+ "Dredging or underwater ops",
+ "Diving ops",
+ "Military ops",
+ "Sailing",
+ "Pleasure Craft",
+ "Reserved",
+ "Reserved",
+ "High speed craft (HSC), all ships of this type",
+ "High speed craft (HSC), Hazardous category A",
+ "High speed craft (HSC), Hazardous category B",
+ "High speed craft (HSC), Hazardous category C",
+ "High speed craft (HSC), Hazardous category D",
+ "High speed craft (HSC), Reserved for future use",
+ "High speed craft (HSC), Reserved for future use",
+ "High speed craft (HSC), Reserved for future use",
+ "High speed craft (HSC), Reserved for future use",
+ "High speed craft (HSC), No additional information",
+ "Pilot Vessel",
+ "Search and Rescue vessel",
+ "Tug",
+ "Port Tender",
+ "Anti-pollution equipment",
+ "Law Enforcement",
+ "Spare - Local Vessel",
+ "Spare - Local Vessel",
+ "Medical Transport",
+ "Ship according to RR Resolution No. 18",
+ "Passenger, all ships of this type",
+ "Passenger, Hazardous category A",
+ "Passenger, Hazardous category B",
+ "Passenger, Hazardous category C",
+ "Passenger, Hazardous category D",
+ "Passenger, Reserved for future use",
+ "Passenger, Reserved for future use",
+ "Passenger, Reserved for future use",
+ "Passenger, Reserved for future use",
+ "Passenger, No additional information",
+ "Cargo, all ships of this type",
+ "Cargo, Hazardous category A",
+ "Cargo, Hazardous category B",
+ "Cargo, Hazardous category C",
+ "Cargo, Hazardous category D",
+ "Cargo, Reserved for future use",
+ "Cargo, Reserved for future use",
+ "Cargo, Reserved for future use",
+ "Cargo, Reserved for future use",
+ "Cargo, No additional information",
+ "Tanker, all ships of this type",
+ "Tanker, Hazardous category A",
+ "Tanker, Hazardous category B",
+ "Tanker, Hazardous category C",
+ "Tanker, Hazardous category D",
+ "Tanker, Reserved for future use",
+ "Tanker, Reserved for future use",
+ "Tanker, Reserved for future use",
+ "Tanker, Reserved for future use",
+ "Tanker, No additional information",
+ "Other Type, all ships of this type",
+ "Other Type, Hazardous category A",
+ "Other Type, Hazardous category B",
+ "Other Type, Hazardous category C",
+ "Other Type, Hazardous category D",
+ "Other Type, Reserved for future use",
+ "Other Type, Reserved for future use",
+ "Other Type, Reserved for future use",
+ "Other Type, Reserved for future use",
+ "Other Type, no additional information",
+ };
+
if (labeled)
(void)fprintf(fp, "type=%d,ri=%d,MMSI=%09d,", ais->id, ais->ri, ais->mmsi);
else
@@ -176,8 +279,8 @@ static void aivdm_dump(struct ais_t *ais, FILE *fp)
case 5: /* Ship static and voyage related data */
#define TYPE5_UNSCALED_LABELED "ID=%u,AIS=%u,callsign=%s,name=%s,type=%u,bow=%u,stern=%u,port=%u,starboard=%u,epsd=%u,eta=%u:%uT%u:%uZ,draught=%u,dest=%s,dte=%u,sp=%u\n"
#define TYPE5_UNSCALED_UNLABELED "%u,%u,%s,%s,%u,%u,%u,%u,%u,%u,%u:%uT%u:%uZ,%u,%s,%u,%u\n"
-#define TYPE5_SCALED_LABELED "ID=%u,AIS=%u,callsign=%s,name=%s,type=%u,bow=%u,stern=%u,port=%u,starboard=%u,epsd=%s:%u,eta=%u:%uT%u:%uZ,dest=%s,dte=%u,sp=%u\n"
-#define TYPE5_SCALED_UNLABELED "%u,%u,%s,%s,%u,%u,%u,%u,%u,%s,%u:%uT%u:%uZ,%u,%s,%u,%u\n"
+#define TYPE5_SCALED_LABELED "ID=%u,AIS=%u,callsign=%s,name=%s,type=%s,bow=%u,stern=%u,port=%u,starboard=%u,epsd=%s:%u,eta=%u:%uT%u:%uZ,dest=%s,dte=%u,sp=%u\n"
+#define TYPE5_SCALED_UNLABELED "%u,%u,%s,%s,%s,%u,%u,%u,%u,%s,%u:%uT%u:%uZ,%u,%s,%u,%u\n"
if (scaled) {
(void)fprintf(fp,
(labeled ? TYPE5_SCALED_LABELED : TYPE5_SCALED_UNLABELED),
@@ -185,7 +288,7 @@ static void aivdm_dump(struct ais_t *ais, FILE *fp)
ais->type5.ais_version,
ais->type5.callsign,
ais->type5.vessel_name,
- ais->type5.ship_type,
+ type_legends[ais->type5.ship_type],
ais->type5.to_bow,
ais->type5.to_stern,
ais->type5.to_port,