Compare commits
2 Commits
91e98bc524
...
2239911bc0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2239911bc0 | ||
|
|
ccfd3c3d06 |
@@ -28,6 +28,9 @@ CMD_TIME_EPOCH = "date +%s"
|
|||||||
TIMEOUT_OFFSET = 10.0
|
TIMEOUT_OFFSET = 10.0
|
||||||
WAIT_AFTER_IPERF = 5.0
|
WAIT_AFTER_IPERF = 5.0
|
||||||
|
|
||||||
|
modem_serial_obj = None
|
||||||
|
gps_serial_obj = None
|
||||||
|
|
||||||
|
|
||||||
class ProcessHandler:
|
class ProcessHandler:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@@ -243,6 +246,53 @@ def monitor_serial(ser, output_file):
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
def start_serial_monitoring(serial, baudrate, folder, prefix):
|
||||||
|
global modem_serial_obj
|
||||||
|
|
||||||
|
print_message("Opening serial port for {}".format(serial))
|
||||||
|
modem_serial_obj = serial.Serial(
|
||||||
|
port=serial,
|
||||||
|
baudrate=baudrate,
|
||||||
|
)
|
||||||
|
modem_serial_obj.isOpen()
|
||||||
|
ser_filepath = "{}{}_serial_monitor_output.txt".format(
|
||||||
|
folder, prefix
|
||||||
|
)
|
||||||
|
ser_thread = Thread(
|
||||||
|
target=monitor_serial,
|
||||||
|
args=(
|
||||||
|
modem_serial_obj,
|
||||||
|
ser_filepath,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
ser_thread.start()
|
||||||
|
|
||||||
|
|
||||||
|
def is_serial_monitoring_running():
|
||||||
|
return modem_serial_obj.is_open
|
||||||
|
|
||||||
|
|
||||||
|
def start_gps_monitoring(gps, baudrate, folder, prefix):
|
||||||
|
global gps_serial_obj
|
||||||
|
|
||||||
|
print_message("Opening GPS serial port for {}".format(gps))
|
||||||
|
gps_serial_obj = serial.Serial(
|
||||||
|
gps,
|
||||||
|
baudrate=baudrate,
|
||||||
|
)
|
||||||
|
gps_ser_filepath = "{}{}_gps.nmea".format(
|
||||||
|
folder, prefix
|
||||||
|
)
|
||||||
|
gps_ser_thread = Thread(
|
||||||
|
target=monitor_gps,
|
||||||
|
args=(
|
||||||
|
gps_serial_obj,
|
||||||
|
gps_ser_filepath,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
gps_ser_thread.start()
|
||||||
|
|
||||||
|
|
||||||
def monitor_gps(ser, output_file):
|
def monitor_gps(ser, output_file):
|
||||||
ser.flushInput()
|
ser.flushInput()
|
||||||
ser.flushOutput()
|
ser.flushOutput()
|
||||||
@@ -270,8 +320,16 @@ def connect_moden(provider="telekom"):
|
|||||||
print_message("...done")
|
print_message("...done")
|
||||||
|
|
||||||
|
|
||||||
def reconnect_modem(provider="telekom"):
|
def reconnect_modem(provider="telekom", hard=False):
|
||||||
|
global modem_serial_obj
|
||||||
print_message("Reonnect modem with provider {} ...".format(provider))
|
print_message("Reonnect modem with provider {} ...".format(provider))
|
||||||
|
if hard:
|
||||||
|
if modem_serial_obj.is_open:
|
||||||
|
modem_serial_obj.write(b'at+COPS?\r\n')
|
||||||
|
sleep(NR_SERIAL_RESPOND_TIME)
|
||||||
|
modem_serial_obj.write(b'AT+QENG="servingcell"\r\n')
|
||||||
|
sleep(NR_SERIAL_RESPOND_TIME)
|
||||||
|
else:
|
||||||
os.system("/root/connect-modem.py -s")
|
os.system("/root/connect-modem.py -s")
|
||||||
sleep(5)
|
sleep(5)
|
||||||
os.system("/root/connect-modem.py -l {}".format(provider))
|
os.system("/root/connect-modem.py -l {}".format(provider))
|
||||||
@@ -538,46 +596,11 @@ class Client:
|
|||||||
sleep(1)
|
sleep(1)
|
||||||
print_message("Start measurement")
|
print_message("Start measurement")
|
||||||
|
|
||||||
ser = None
|
|
||||||
|
|
||||||
if self.config["serial"] is not None:
|
if self.config["serial"] is not None:
|
||||||
print_message("Opening serial port for {}".format(self.config["serial"]))
|
start_serial_monitoring(self.config["serial"], self.config["baudrate"], self.config["folder"], self.config["prefix"])
|
||||||
ser = serial.Serial(
|
|
||||||
port=self.config["serial"],
|
|
||||||
baudrate=self.config["baudrate"],
|
|
||||||
)
|
|
||||||
ser.isOpen()
|
|
||||||
ser_filepath = "{}{}_serial_monitor_output.txt".format(
|
|
||||||
self.config["folder"], self.config["prefix"]
|
|
||||||
)
|
|
||||||
ser_thread = Thread(
|
|
||||||
target=monitor_serial,
|
|
||||||
args=(
|
|
||||||
ser,
|
|
||||||
ser_filepath,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
ser_thread.start()
|
|
||||||
|
|
||||||
gps_ser = None
|
|
||||||
|
|
||||||
if self.config["gps"] is not None:
|
if self.config["gps"] is not None:
|
||||||
print_message("Opening GPS serial port for {}".format(self.config["gps"]))
|
start_gps_monitoring(self.config["gps"], self.config["gps_baudrate"], self.config["folder"], self.config["prefix"])
|
||||||
gps_ser = serial.Serial(
|
|
||||||
self.config["gps"],
|
|
||||||
baudrate=self.config["gps_baudrate"],
|
|
||||||
)
|
|
||||||
gps_ser_filepath = "{}{}_gps.nmea".format(
|
|
||||||
self.config["folder"], self.config["prefix"]
|
|
||||||
)
|
|
||||||
gps_ser_thread = Thread(
|
|
||||||
target=monitor_gps,
|
|
||||||
args=(
|
|
||||||
gps_ser,
|
|
||||||
gps_ser_filepath,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
gps_ser_thread.start()
|
|
||||||
|
|
||||||
if self.config["bandwidth"]:
|
if self.config["bandwidth"]:
|
||||||
self.bandwidth()
|
self.bandwidth()
|
||||||
@@ -592,14 +615,14 @@ class Client:
|
|||||||
elif self.config["ping"]:
|
elif self.config["ping"]:
|
||||||
self.ping()
|
self.ping()
|
||||||
|
|
||||||
if ser is not None:
|
if modem_serial_obj is not None:
|
||||||
print_message("Closing serial port...")
|
print_message("Closing serial port...")
|
||||||
ser.close()
|
modem_serial_obj.close()
|
||||||
sleep(2)
|
sleep(2)
|
||||||
print_message("done...")
|
print_message("done...")
|
||||||
if gps_ser is not None:
|
if gps_serial_obj is not None:
|
||||||
print_message("Closing GPS serial port...")
|
print_message("Closing GPS serial port...")
|
||||||
gps_ser.close()
|
gps_serial_obj.close()
|
||||||
sleep(2)
|
sleep(2)
|
||||||
print_message("done...")
|
print_message("done...")
|
||||||
|
|
||||||
@@ -767,6 +790,7 @@ class Client:
|
|||||||
ws_filter = "{} and port {}".format("tcp", self.config["port"])
|
ws_filter = "{} and port {}".format("tcp", self.config["port"])
|
||||||
print_message("Use ws filter: {}".format(ws_filter))
|
print_message("Use ws filter: {}".format(ws_filter))
|
||||||
for n in range(1, self.config["number_of_measurements"] + 1):
|
for n in range(1, self.config["number_of_measurements"] + 1):
|
||||||
|
reconnect_count = 0
|
||||||
if not is_modem_connected():
|
if not is_modem_connected():
|
||||||
background_write_to_file(
|
background_write_to_file(
|
||||||
filepath="{}{}_reconnect.log".format(
|
filepath="{}{}_reconnect.log".format(
|
||||||
@@ -775,6 +799,9 @@ class Client:
|
|||||||
content='{}\n'.format(datetime.timestamp(datetime.now())),
|
content='{}\n'.format(datetime.timestamp(datetime.now())),
|
||||||
)
|
)
|
||||||
reconnect_modem()
|
reconnect_modem()
|
||||||
|
sleep(2)
|
||||||
|
if not is_serial_monitoring_running():
|
||||||
|
start_serial_monitoring()
|
||||||
print_message(
|
print_message(
|
||||||
"{} of {}".format(n, self.config["number_of_measurements"])
|
"{} of {}".format(n, self.config["number_of_measurements"])
|
||||||
)
|
)
|
||||||
@@ -824,7 +851,11 @@ class Client:
|
|||||||
),
|
),
|
||||||
content='{}\n'.format(datetime.timestamp(datetime.now())),
|
content='{}\n'.format(datetime.timestamp(datetime.now())),
|
||||||
)
|
)
|
||||||
reconnect_modem()
|
reconnect_modem(hard=reconnect_count > 5)
|
||||||
|
reconnect_count += 1
|
||||||
|
sleep(2)
|
||||||
|
if not is_serial_monitoring_running():
|
||||||
|
start_serial_monitoring()
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
iperf_return = subprocess.call(
|
iperf_return = subprocess.call(
|
||||||
@@ -856,6 +887,7 @@ class Client:
|
|||||||
enable_tcp_probe()
|
enable_tcp_probe()
|
||||||
print_message("tcp probe is now enabled")
|
print_message("tcp probe is now enabled")
|
||||||
for n in range(1, self.config["number_of_measurements"] + 1):
|
for n in range(1, self.config["number_of_measurements"] + 1):
|
||||||
|
reconnect_count = 0
|
||||||
if not is_modem_connected():
|
if not is_modem_connected():
|
||||||
background_write_to_file(
|
background_write_to_file(
|
||||||
filepath="{}{}_reconnect.log".format(
|
filepath="{}{}_reconnect.log".format(
|
||||||
@@ -864,6 +896,9 @@ class Client:
|
|||||||
content='{}\n'.format(datetime.timestamp(datetime.now())),
|
content='{}\n'.format(datetime.timestamp(datetime.now())),
|
||||||
)
|
)
|
||||||
reconnect_modem()
|
reconnect_modem()
|
||||||
|
sleep(2)
|
||||||
|
if not is_serial_monitoring_running():
|
||||||
|
start_serial_monitoring()
|
||||||
print_message(
|
print_message(
|
||||||
"{} of {}".format(n, self.config["number_of_measurements"])
|
"{} of {}".format(n, self.config["number_of_measurements"])
|
||||||
)
|
)
|
||||||
@@ -912,7 +947,11 @@ class Client:
|
|||||||
),
|
),
|
||||||
content='{}\n'.format(datetime.timestamp(datetime.now())),
|
content='{}\n'.format(datetime.timestamp(datetime.now())),
|
||||||
)
|
)
|
||||||
reconnect_modem()
|
reconnect_modem(hard=reconnect_count > 5)
|
||||||
|
reconnect_count += 1
|
||||||
|
sleep(2)
|
||||||
|
if not is_serial_monitoring_running():
|
||||||
|
start_serial_monitoring()
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
iperf_return = subprocess.call(
|
iperf_return = subprocess.call(
|
||||||
|
|||||||
0
plot_transmission_timeline.py
Normal file
0
plot_transmission_timeline.py
Normal file
Reference in New Issue
Block a user