[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gpsd-commit-watch
Subject:    [Gpsd-commit-watch] r6876 - trunk
From:       esr at BerliOS <esr () mail ! berlios ! de>
Date:       2009-12-20 14:06:49
Message-ID: 200912201406.nBKE6npL014965 () sheep ! berlios ! de
[Download RAW message or body]

Author: esr
Date: 2009-12-20 15:06:49 +0100 (Sun, 20 Dec 2009)
New Revision: 6876

Modified:
   trunk/xgps
Log:
Add more message types to the AIS display.


Modified: trunk/xgps
===================================================================
--- trunk/xgps	2009-12-20 12:58:39 UTC (rev 6875)
+++ trunk/xgps	2009-12-20 14:06:49 UTC (rev 6876)
@@ -165,14 +165,14 @@
         "Initialize the store and view."
         self.name_to_mmsi = {}
         self.named = {}
-        self.store = gtk.ListStore(str,str,str)
+        self.store = gtk.ListStore(str, str,str,str)
         self.widget = gtk.ScrolledWindow()
         self.widget.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
         self.view = gtk.TreeView(model=self.store)
         self.widget.set_size_request(-1, 300)
         self.widget.add_with_viewport(self.view)
 
-        for (i, label) in enumerate(('Name:','Sign:','Dest:')):
+        for (i, label) in enumerate(('#', 'Name:','Callsign:','Destination:')):
             column = gtk.TreeViewColumn(label)
             renderer = gtk.CellRendererText()
             column.pack_start(renderer)
@@ -184,10 +184,10 @@
         ais.entry_time = time.time()
         self.named[ais.mmsi] = ais
         self.name_to_mmsi[name] = ais.mmsi
-        # Garbage-gollect old entries
+        # Garbage-collect old entries
         for i in range(len(self.store)):
             here = self.store.get_iter(i)
-            name = self.store.get_value(here, 0)
+            name = self.store.get_value(here, 1)
             mmsi = self.name_to_mmsi[name]
             if self.named[mmsi].entry_time < time.time() - AISView.DWELLTIME:
                 del self.named[mmsi]
@@ -195,11 +195,19 @@
 
     def update(self, ais):
         "Update the AIS data fields."
-        if ais.type == 5:
-            if ais.mmsi not in self.named:
+        if ais.mmsi not in self.named:
+            if ais.type == 5:
                 self.enter(ais, ais.shipname)
                 self.store.prepend(
-                    (ais.shipname, ais.callsign, ais.destination))
+                    (ais.type, ais.shipname, ais.callsign, ais.destination))
+            elif ais.type in (19, 24):
+                self.enter(ais, ais.shipname)
+                self.store.prepend(
+                    (ais.type, ais.shipname, "(class B)", ""))
+            elif ais.type == 21:
+                self.enter(ais, ais.name)
+                self.store.prepend(
+                    (ais.type, ais.name, "(navaid)", ""))
                     
 class Base:
     gpsfields = (

_______________________________________________
Gpsd-commit-watch mailing list
Gpsd-commit-watch@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/gpsd-commit-watch
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic