⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gnome-pygarmin

📁 gps pygarmin-0[1].6.tgz
💻
字号:
#!/usr/bin/env python"""   gnome-pygarmin   This is a GNOME user application for communicating with Garmin   GPS receivers.   To use it you will need the gnome-python package installed, which   can be found at ftp://ftp.daa.com.au/pub/james/python/      This is released under the Gnu General Public Licence. A copy of   this can be found at http://www.opensource.org/licenses/gpl-license.html   For the latest information about PyGarmin, please see   http://pygarmin.sourceforge.net/   (c) 2000 James A. H. Skillen <jahs@skillen.org.uk>   """import sys, garmin, libgladefrom gtk import *from gnome.ui import *from gnome import configclass GnomePygarmin:    def __init__(self):        self.widgets = libglade.GladeXML("gnome-pygarmin.glade",                                         "gnome_pygarmin")        signals = {            "on_gnome_pygarmin_destroy"    : self.exit,            # File            "on_menu_new_activate"         : self.new,            "on_menu_open_activate"        : self.open,            "on_menu_save_activate"        : self.save,            "on_menu_save_as_activate"     : self.save_as,            "on_menu_exit_activate"        : self.exit,            # Edit            "on_menu_cut_activate"         : self.cut,            "on_menu_copy_activate"        : self.copy,            "on_menu_paste_activate"       : self.paste,            "on_menu_clear_activate"       : self.clear,            "on_menu_properties_activate"  : self.properties,            # GPS            "on_menu_download_activate"    : self.download,            "on_menu_info_activate"        : self.info,            # Settings            "on_menu_preferences_activate" : self.prefs,            # Help            "on_menu_about_activate"       : self.about,            # Toolbar            "on_toolbar_open_clicked"      : self.open,            "on_toolbar_save_clicked"      : self.save,            "on_toolbar_download_clicked"  : self.download,            "on_toolbar_info_clicked"      : self.info            }        self.widgets.signal_autoconnect(signals)        self.gps = None        device = config.get_string("/gnome-pygarmin/Preferences/serial_device")        self._init_gps(device)    def _init_gps(self, device = None):        if device == None:            self.prefs(None)            GnomeErrorDialog("Please enter the serial device to which your GPS is connected.",                             self.widgets.get_widget("gnome_pygarmin")).set_modal(TRUE)        else:            try:                phys = garmin.UnixSerialLink(device)                self.gps = garmin.Garmin(phys)            except:                msg = str(sys.exc_info()[1])                if msg:                    self.prefs(None)                    GnomeErrorDialog(str(sys.exc_info()[1]),                                     self.widgets.get_widget("gnome_pygarmin")).set_modal(TRUE)    def _not_done(self):        e = GnomeErrorDialog("Not yet implemented!",                             self.widgets.get_widget("gnome_pygarmin"))        e.set_modal(TRUE)            # File    def new(self, widget):        self._not_done()    def open(self, widget):        self._not_done()            def save(self, widget):        self._not_done()    def save_as(self, widget):        self._not_done()    def exit(self, widget):        config.sync()        mainquit()    # Edit    def cut(self, widget):        self._not_done()    def copy(self, widget):        self._not_done()    def paste(self, widget):        self._not_done()    def clear(self, widget):        self._not_done()    def properties(self, widget):        self._not_done()    # GPS    def download(self, widget):        Download(self)    def info(self, widget):        self._not_done()    # Settings    def prefs(self, widget):        Preferences(self)    # Help    def about(self, widget):        About(self)class Preferences:    def __init__(self, pygarmin):        self.pygarmin = pygarmin        self.widgets = libglade.GladeXML("gnome-pygarmin.glade",                                         "preferences")        signals = {            "on_prefs_ok_clicked"     : self.ok,            "on_prefs_apply_clicked"  : self.apply,            "on_prefs_cancel_clicked" : self.cancel            }        self.widgets.signal_autoconnect(signals)        window = self.widgets.get_widget("preferences")        window.set_parent(self.pygarmin.widgets.get_widget("gnome_pygarmin"))        text_entry = self.widgets.get_widget("device")        device = config.get_string("/gnome-pygarmin/Preferences/serial_device")        if device == None:            device = ""        text_entry.set_text(device)        window.show()    def ok(self, widget):        text_entry = self.widgets.get_widget("device")        device = text_entry.get_text()        self.pygarmin._init_gps(device)        config.set_string("/gnome-pygarmin/Preferences/serial_device", device)        self.cancel(None)    def apply(self, widget):        text_entry = self.widgets.get_widget("device")        device = text_entry.get_text()        self.pygarmin._init_gps(device)        self.cancel(None)    def cancel(self, widget):        window = self.widgets.get_widget("preferences")        window.close()class Download:    def __init__(self, pygarmin):        self.pygarmin = pygarmin        self.widgets = libglade.GladeXML("gnome-pygarmin.glade",                                         "download")        signals = {            "on_download_ok_clicked"     : self.ok,            "on_download_cancel_clicked" : self.cancel            }        self.widgets.signal_autoconnect(signals)        window = self.widgets.get_widget("download")        window.set_parent(self.pygarmin.widgets.get_widget("gnome_pygarmin"))        window.show()    def _waypoints(self):        if not self.pygarmin.gps:            self.pygarmin._init_gps()            return        wpts = self.pygarmin.gps.getWaypoints()        wpt_list = self.pygarmin.widgets.get_widget("wpt_list")        wpt_list.clear()        for w in wpts:            wpt_list.append((w.ident,                             str(garmin.degrees(w.slat)),                             str(garmin.degrees(w.slon))))    def ok(self, widget):        w = self.widgets.get_widget("download_waypoints")        r = self.widgets.get_widget("download_routes")        t = self.widgets.get_widget("download_tracks")        get_w = w.get_active()        self.cancel(None)        if get_w:            w = GnomeMessageBox("Downloading waypoints")            self._waypoints()            w.close()    def cancel(self, widget):        window = self.widgets.get_widget("download")        window.close()class About:    def __init__(self, pygarmin):        self.pygarmin = pygarmin        self.widgets = libglade.GladeXML("gnome-pygarmin.glade",                                         "about")        window = self.widgets.get_widget("about")        window.set_parent(self.pygarmin.widgets.get_widget("gnome_pygarmin"))        window.show()def main():    app = GnomePygarmin()    mainloop()if __name__ == "__main__":    main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -