Пример #1
0
 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'))
Пример #5
0
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))
Пример #7
0
    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))
Пример #8
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)
Пример #9
0
    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))