#!/usr/bin/python # # Copyright (c) 2019 Clementine Computing LLC. # # This file is part of PopuFare. # # PopuFare is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # PopuFare 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 Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with PopuFare. If not, see . # import serial import sys import re import time import os from os import listdir from os.path import isfile, join from os import system DEBUG = True VERBOSE = True ret = system("rm -f /dev/ttyPIU /dev/ttyGPRS /dev/ttyDIU /dev/ttyGPS") DEVDIR = "/dev" ################### ## setup GPRS modem from FONA ## system("ln -s /dev/ttyAMA0 /dev/ttyGPRS") ################### ttyfn = [f for f in listdir(DEVDIR) if re.match(r'^ttyUSB', f)] # sniff for GPRS and PIU # for devfn in ttyfn: if DEBUG: print devfn fqdevfn = join(DEVDIR,devfn) info = os.popen("udevadm info " + str(fqdevfn)).read() m = re.search(r'ID_MODEL=FT232R_USB_UART', info) if m: if VERBOSE: print "found rs232 device, assuming PIU" src_tty = join(DEVDIR,devfn) dst_tty = join(DEVDIR,"ttyPIU") system("ln -sf " + src_tty + " " + dst_tty) continue m = re.search(r'ID_MODEL_ID=2303', info) if m: if VERBOSE: print "found pl2303 device, assuming PIU" src_tty = join(DEVDIR,devfn) dst_tty = join(DEVDIR,"ttyPIU") system("ln -sf " + src_tty + " " + dst_tty) continue m = re.search(r'SimTech_SIM5320', info) if m: if VERBOSE: print "found sim5320 device" m_ifacenum = re.search(r'ID_USB_INTERFACE_NUM=(.*)', info) if m_ifacenum: num = int(m_ifacenum.group(1)) if num == 3: if VERBOSE: print "tying sim5320 interface num 3 to GPS" src_tty = join(DEVDIR,devfn) dst_tty = join(DEVDIR,"ttyGPS") system("ln -s " + src_tty + " " + dst_tty) continue