def OnSkConnections(self, e): if self.platform.skPort: selected = self.listConnections.GetFirstSelected() if selected == -1: return port = self.listConnections.GetItemText(selected, 1) from openplotterSignalkInstaller import editSettings skSettings = editSettings.EditSettings() ID = 'I2C' c = 0 while True: if skSettings.connectionIdExists(ID): ID = ID + str(c) c = c + 1 else: break if skSettings.setNetworkConnection(ID, 'SignalK', 'UDP', 'localhost', port): self.restart_SK(0) self.readSensors() else: self.ShowStatusBarRED( _('Failed. Error creating connection in Signal K')) else: self.ShowStatusBarRED( _('Please install "Signal K Installer" OpenPlotter app')) self.OnToolSettings()
def addSKconnection(port, platform, id): if platform.skDir: from openplotterSignalkInstaller import editSettings skSettings = editSettings.EditSettings() ID = id if 'pipedProviders' in skSettings.data: for i in skSettings.data['pipedProviders']: try: if ID in i['id']: skSettings.removeConnection(i['id']) elif port: if i['pipeElements'][0]['options'][ 'type'] == 'NMEA0183': if i['pipeElements'][0]['options']['subOptions'][ 'type'] == 'tcp': if i['pipeElements'][0]['options'][ 'subOptions']['host'] == 'localhost': if i['pipeElements'][0]['options'][ 'subOptions']['port'] == str(port): ID = i['id'] except Exception as e: print(str(e)) if ID == id: if port: skSettings.setNetworkConnection(ID, 'NMEA0183', 'TCP', 'localhost', str(port))
def OnSkConnections(self, e): if self.platform.skPort: selected = self.listConnections.GetFirstSelected() if selected == -1: return connType = self.listConnections.GetItemText(selected, 1) from openplotterSignalkInstaller import editSettings skSettings = editSettings.EditSettings() if connType == 'UDP': ID = 'Pypilot Signal K' data = 'SignalK' elif connType == 'TCP': ID = 'Pypilot NMEA 0183' data = 'NMEA0183' c = 0 while True: if skSettings.connectionIdExists(ID): ID = ID + str(c) c = c + 1 else: break if skSettings.setNetworkConnection(ID, data, connType, 'localhost', '20220'): self.restart_SK(0) self.onRead() else: self.ShowStatusBarRED( _('Failed. Error creating connection in Signal K')) else: self.ShowStatusBarRED( _('Please install "Signal K Installer" OpenPlotter app')) self.OnToolSettings()
def OnRemoveConnButton(self, e): selected = self.listConnections.GetFirstSelected() if selected == -1: return skId = self.listConnections.GetItemText(selected, 3) from openplotterSignalkInstaller import editSettings skSettings = editSettings.EditSettings() if skSettings.removeConnection(skId): self.restart_SK(0) self.onRead() else: self.ShowStatusBarRED( _('Failed. Error removing connection in Signal K'))
def main(): conf2 = conf.Conf() currentdir = os.path.dirname(os.path.abspath(__file__)) currentLanguage = conf2.get('GENERAL', 'lang') package = 'openplotter-avnav' language.Language(currentdir, package, currentLanguage) print(_('Removing avnav service...')) try: subprocess.call(['systemctl', 'disable', 'avnav']) subprocess.call(['systemctl', 'stop', 'avnav']) if os.path.isfile( '/usr/lib/systemd/system/avnav.service.d/avnav.conf'): os.remove('/usr/lib/systemd/system/avnav.service.d/avnav.conf') if os.path.isfile('/etc/avahi/services/avnav-avahi.service'): os.remove('/etc/avahi/services/avnav-avahi.service') print(_('DONE')) except Exception as e: print(_('FAILED: ') + str(e)) print(_('Removing SignalK avnav connection...')) try: skSettings = editSettings.EditSettings() if skSettings.connectionIdExists('fromAvnav'): skSettings.removeConnection('fromAvnav') print(_('DONE')) except Exception as e: print(_('FAILED: ') + str(e)) print(_('Removing avnav...')) try: subprocess.call([ 'apt', '-y', 'autoremove', 'avnav', 'avnav-ocharts-plugin', 'avnav-oesenc', 'avnav-history-plugin', 'avnav-update-plugin', 'avnav-mapproxy-plugin' ]) print(_('DONE')) except Exception as e: print(_('FAILED: ') + str(e)) print(_('Removing version...')) try: conf2.set('APPS', 'avnav', '') print(_('DONE')) except Exception as e: print(_('FAILED: ') + str(e))
def manageSKconnection(self,port): if self.platform.skDir: from openplotterSignalkInstaller import editSettings skSettings = editSettings.EditSettings() ID = 'OpenPlotter SDR AIS' if 'pipedProviders' in skSettings.data: for i in skSettings.data['pipedProviders']: try: if ID in i['id']: skSettings.removeConnection(i['id']) elif port: if i['pipeElements'][0]['options']['type']=='NMEA0183': if i['pipeElements'][0]['options']['subOptions']['type']=='udp': if i['pipeElements'][0]['options']['subOptions']['port']==str(port): ID = i['id'] except Exception as e: print(str(e)) if ID == 'OpenPlotter SDR AIS': if port: skSettings.setNetworkConnection(ID, 'NMEA0183', 'UDP', 'localhost', str(port))
def readSensors(self): self.listSensors.DeleteAllItems() self.listConnections.DeleteAllItems() self.onListSensorsDeselected() self.onlistConnectionsDeselected() data = self.conf.get('I2C', 'sensors') try: self.i2c_sensors = eval(data) except: self.i2c_sensors = {} for name in self.i2c_sensors: if name in self.i2c_sensors_def: sensor = name else: x = name.split('-') sensor = x[0] address = self.i2c_sensors[name]['address'] port = self.i2c_sensors[name]['port'] magnitudes = [] for i in self.i2c_sensors_def: if sensor in i: magnitudes = self.i2c_sensors_def[i]['magnitudes'] c = 0 for index, magnitude in enumerate(magnitudes): nameMagnitude = magnitude SKkey = self.i2c_sensors[name]['data'][index]['SKkey'] rate = self.i2c_sensors[name]['data'][index]['rate'] offset = self.i2c_sensors[name]['data'][index]['offset'] if 'raw' in self.i2c_sensors[name]['data'][index]: raw = self.i2c_sensors[name]['data'][index]['raw'] else: raw = False if raw: raw2 = _('yes') else: raw2 = _('no') if 'sensorSettings' in self.i2c_sensors[name]: sensorSettings = self.i2c_sensors[name]['sensorSettings'] else: sensorSettings = '' if 'magnitudeSettings' in self.i2c_sensors[name]['data'][ index]: magnitudeSettings = self.i2c_sensors[name]['data'][index][ 'magnitudeSettings'] else: magnitudeSettings = '' self.listSensors.Append([ str(c), name, address, nameMagnitude, SKkey, str(rate), str(offset), raw2, sensorSettings, magnitudeSettings ]) c = c + 1 if SKkey: self.listSensors.SetItemBackgroundColour( self.listSensors.GetItemCount() - 1, (255, 215, 0)) self.listConnections.Append([name, str(port), '']) sklist = [] if self.platform.skDir: from openplotterSignalkInstaller import editSettings skSettings = editSettings.EditSettings() if 'pipedProviders' in skSettings.data: for i in skSettings.data['pipedProviders']: try: if i['pipeElements'][0]['options'][ 'type'] == 'SignalK': if i['pipeElements'][0]['options']['subOptions'][ 'type'] == 'udp': sklist.append([ i['id'], i['enabled'], i['pipeElements'][0] ['options']['subOptions']['port'] ]) except Exception as e: print(str(e)) for i in sklist: exists = False for ii in range(self.listConnections.GetItemCount()): if i[2] == self.listConnections.GetItemText(ii, 1): exists = True self.listConnections.SetItem(ii, 2, i[0]) if not exists: self.listConnections.Append(['', i[2], i[0]]) for i in range(self.listConnections.GetItemCount()): if self.listConnections.GetItemText( i, 0) and self.listConnections.GetItemText( i, 1) and self.listConnections.GetItemText(i, 2): for ii in sklist: if self.listConnections.GetItemText(i, 2) == ii[0] and ii[1]: self.listConnections.SetItemBackgroundColour( i, (255, 215, 0))
# it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # any later version. # Openplotter is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Openplotter. If not, see <http://www.gnu.org/licenses/>. import sys, subprocess from openplotterSignalkInstaller import editSettings from openplotterSettings import platform skSettings = editSettings.EditSettings() platform2 = platform.Platform() if sys.argv[1] == 'add': device = sys.argv[2] with open('/etc/default/gpsd', 'r') as f: for line in f: if 'DEVICES=' in line: line = line.replace('\n', '') line = line.strip() items = line.split('=') item1 = items[1].replace('"', '') item1 = item1.strip() devList = item1.split(' ') devList.append(device) final0 = ' '.join(devList)
def readSensors(self): self.listSensors.DeleteAllItems() self.listConnections.DeleteAllItems() self.onListSensorsDeselected() self.onlistConnectionsDeselected() self.i2c_sensors_def = {} self.i2c_sensors_def['BME280'] = { 'address': '0x76', 'magnitudes': [_('pressure'), _('temperature'), _('humidity')], 'SKkeys': [ 'environment.outside.pressure', '', 'environment.inside.humidity' ] } self.i2c_sensors_def['MS5607-02BA03'] = { 'address': '0x77', 'magnitudes': [_('pressure'), _('temperature')], 'SKkeys': ['environment.outside.pressure', ''] } data = self.conf.get('I2C', 'sensors') try: self.i2c_sensors = eval(data) except: self.i2c_sensors = {} for sensor in self.i2c_sensors: name = sensor address = self.i2c_sensors[sensor]['address'] port = self.i2c_sensors[sensor]['port'] c = 0 for index, magnitude in enumerate( self.i2c_sensors_def[sensor]['magnitudes']): nameMagnitude = magnitude SKkey = self.i2c_sensors[sensor]['data'][index]['SKkey'] rate = self.i2c_sensors[sensor]['data'][index]['rate'] offset = self.i2c_sensors[sensor]['data'][index]['offset'] self.listSensors.Append([ str(c), name, address, nameMagnitude, SKkey, str(rate), str(offset) ]) c = c + 1 if SKkey: self.listSensors.SetItemBackgroundColour( self.listSensors.GetItemCount() - 1, (255, 215, 0)) self.listConnections.Append([name, str(port), '']) sklist = [] if self.platform.skDir: from openplotterSignalkInstaller import editSettings skSettings = editSettings.EditSettings() if 'pipedProviders' in skSettings.data: for i in skSettings.data['pipedProviders']: if i['pipeElements'][0]['options']['type'] == 'SignalK': if i['pipeElements'][0]['options']['subOptions'][ 'type'] == 'udp': sklist.append([ i['id'], i['enabled'], i['pipeElements'][0] ['options']['subOptions']['port'] ]) for i in sklist: exists = False for ii in range(self.listConnections.GetItemCount()): if i[2] == self.listConnections.GetItemText(ii, 1): exists = True self.listConnections.SetItem(ii, 2, i[0]) if not exists: self.listConnections.Append(['', i[2], i[0]]) for i in range(self.listConnections.GetItemCount()): if self.listConnections.GetItemText( i, 0) and self.listConnections.GetItemText( i, 1) and self.listConnections.GetItemText(i, 2): for ii in sklist: if self.listConnections.GetItemText(i, 2) == ii[0] and ii[1]: self.listConnections.SetItemBackgroundColour( i, (255, 215, 0))