summaryrefslogtreecommitdiffstats
path: root/Src/PyCatcher/src/driverConnector.py
diff options
context:
space:
mode:
Diffstat (limited to 'Src/PyCatcher/src/driverConnector.py')
-rw-r--r--Src/PyCatcher/src/driverConnector.py118
1 files changed, 0 insertions, 118 deletions
diff --git a/Src/PyCatcher/src/driverConnector.py b/Src/PyCatcher/src/driverConnector.py
deleted file mode 100644
index 2167219..0000000
--- a/Src/PyCatcher/src/driverConnector.py
+++ /dev/null
@@ -1,118 +0,0 @@
-from pyCatcherModel import BaseStationInformation
-import subprocess
-import threading
-import re
-from pyCatcherSettings import Commands
-import time
-import gtk
-
-class DriverConnector:
- def __init__ (self):
- self._scan_thread_break = False
- self._firmware_thread_break = False
- self._firmware_waiting_callback = None
- self._firmware_loaded_callback = None
- self._base_station_found_callback = None
- self._firmware_thread = None
- self._scan_thread = None
-
- def start_scanning (self, base_station_found_callback):
- self._base_station_found_callback = base_station_found_callback
- self._scan_thread = ScanThread(self._base_station_found_callback)
- self._scan_thread.start()
-
- def start_firmware(self, firmware_waiting_callback, firmware_loaded_callback):
- self._firmware_waiting_callback = firmware_waiting_callback
- self._firmware_loaded_callback = firmware_loaded_callback
- self._firmware_thread = FirmwareThread(self._firmware_waiting_callback, self._firmware_loaded_callback)
- self._firmware_thread.start()
-
- def stop_scanning (self):
- self._scan_thread.terminate()
-
- def stop_firmware(self):
- self._firmware_thread_break = True
-
- def shutdown(self):
- if self._firmware_thread:
- self._firmware_thread.join(3)
- if self._scan_thread:
- self._scan_thread.join(3)
-
-class FirmwareThread(threading.Thread):
- def __init__(self, firmware_waiting_callback, firmware_loaded_callback):
- gtk.gdk.threads_init()
- threading.Thread.__init__(self)
- self._firmware_waiting_callback = firmware_waiting_callback
- self._firmware_loaded_callback = firmware_loaded_callback
- self._thread_break = False
-
- def terminate(self):
- self._thread_break = True
-
- def run(self):
- loader_process_object = subprocess.Popen(Commands['osmocon_command'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- time.sleep(3)
- self._firmware_waiting_callback()
- while not self._thread_break:
- line = loader_process_object.stdout.readline()
- #if line:
- # print line
- if line.strip() == 'Finishing download phase':
- self._firmware_loaded_callback()
- #time.sleep(0.5)
- print 'killing firmware'
- loader_process_object.terminate()
-
-class ScanThread(threading.Thread):
- def __init__(self, base_station_found_callback):
- gtk.gdk.threads_init()
- threading.Thread.__init__(self)
- self._base_station_found_callback = base_station_found_callback
- self._thread_break = False
-
- def terminate(self):
- self._thread_break = True
-
- def run(self):
- scan_process = subprocess.Popen(Commands['scan_command'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- time.sleep(2)
- while not self._thread_break:
- line = scan_process.stdout.readline()
- if line:
- #print line
- #sys.stdout.flush()
- if re.search('SysInfo', line):
- base_station = BaseStationInformation()
- #get country
- line = line = scan_process.stdout.readline()
- match = re.search(r'country\s(\w+)',line)
- if match:
- base_station.country = match.group(1)
- #get provider
- line = line = scan_process.stdout.readline()
- match = re.search(r'provider\s(.+)',line)
- if match:
- base_station.provider = match.group(1)
- #get arfcn
- line = line = scan_process.stdout.readline()
- match = re.search(r'arfcn\s(\d+)',line)
- if match:
- base_station.arfcn = int(match.group(1))
- #get rxlev
- line = line = scan_process.stdout.readline()
- match = re.search(r'rxlev\s(.\d+)',line)
- if match:
- base_station.rxlev = match.group(1)
- #get neighbours
- line = line = scan_process.stdout.readline()
- match = re.search(r'si2\s(.+)',line)
- if match:
- base_station.system_info_t2 = match.group(1).split(' ')
- #endinfo
- line = line = scan_process.stdout.readline()
-
- self._base_station_found_callback(base_station)
- print 'killing scan'
- scan_process.terminate()
- \ No newline at end of file