Conditional imports for serial-based interfaces

This commit is contained in:
Mark Qvist 2021-12-01 13:39:51 +01:00
parent 10854bfdbc
commit 259c2aa397
5 changed files with 29 additions and 5 deletions

View File

@ -2,7 +2,6 @@
from .Interface import Interface
from time import sleep
import sys
import serial
import threading
import time
import RNS
@ -48,6 +47,13 @@ class AX25KISSInterface(Interface):
serial = None
def __init__(self, owner, name, callsign, ssid, port, speed, databits, parity, stopbits, preamble, txtail, persistence, slottime, flow_control):
if importlib.util.find_spec('serial') != None:
import serial
else:
RNS.log("Using the AX.25 KISS interface requires a serial communication module to be installed.", RNS.LOG_CRITICAL)
RNS.log("You can install one with the command: python3 -m pip install pyserial", RNS.LOG_CRITICAL)
RNS.panic()
self.rxb = 0
self.txb = 0

View File

@ -1,7 +1,6 @@
from .Interface import Interface
from time import sleep
import sys
import serial
import threading
import time
import RNS
@ -40,6 +39,13 @@ class KISSInterface(Interface):
serial = None
def __init__(self, owner, name, port, speed, databits, parity, stopbits, preamble, txtail, persistence, slottime, flow_control, beacon_interval, beacon_data):
if importlib.util.find_spec('serial') != None:
import serial
else:
RNS.log("Using the KISS interface requires a serial communication module to be installed.", RNS.LOG_CRITICAL)
RNS.log("You can install one with the command: python3 -m pip install pyserial", RNS.LOG_CRITICAL)
RNS.panic()
self.rxb = 0
self.txb = 0

View File

@ -2,7 +2,6 @@
from .Interface import Interface
from time import sleep
import sys
import serial
import threading
import time
import math
@ -72,6 +71,13 @@ class RNodeInterface(Interface):
CALLSIGN_MAX_LEN = 32
def __init__(self, owner, name, port, frequency = None, bandwidth = None, txpower = None, sf = None, cr = None, flow_control = False, id_interval = None, id_callsign = None):
if importlib.util.find_spec('serial') != None:
import serial
else:
RNS.log("Using the RNode interface requires a serial communication module to be installed.", RNS.LOG_CRITICAL)
RNS.log("You can install one with the command: python3 -m pip install pyserial", RNS.LOG_CRITICAL)
RNS.panic()
self.rxb = 0
self.txb = 0

View File

@ -1,7 +1,6 @@
from .Interface import Interface
from time import sleep
import sys
import serial
import threading
import time
import RNS
@ -31,6 +30,13 @@ class SerialInterface(Interface):
serial = None
def __init__(self, owner, name, port, speed, databits, parity, stopbits):
if importlib.util.find_spec('serial') != None:
import serial
else:
RNS.log("Using the Serial interface requires a serial communication module to be installed.", RNS.LOG_CRITICAL)
RNS.log("You can install one with the command: python3 -m pip install pyserial", RNS.LOG_CRITICAL)
RNS.panic()
self.rxb = 0
self.txb = 0

View File

@ -29,6 +29,6 @@ setuptools.setup(
]
},
install_requires=['cryptography>=3.4.7', 'pyserial', 'netifaces>=0.10.4'],
install_requires=['cryptography>=3.4.7', 'pyserial'],
python_requires='>=3.6',
)