]> git.neil.brown.name Git - plato.git/commitdiff
gsmd2: handle request to select a specific carrier.
authorNeilBrown <neilb@suse.com>
Sun, 11 Oct 2015 07:55:50 +0000 (18:55 +1100)
committerNeilBrown <neilb@suse.com>
Sun, 11 Oct 2015 07:55:50 +0000 (18:55 +1100)
These are written to /run/gsm-state/request_carrier

Signed-off-by: NeilBrown <neil@brown.name>
gsm/gsmd2.py

index 6f624767c9643cee41c83ba270aec13c3a5ad191..c38b4acb5d319c1a637f207fe1c7dbb8cd15c286 100644 (file)
@@ -1113,10 +1113,24 @@ add_engine(data())
 class config(Engine):
     def __init__(self):
         Engine.__init__(self)
+        watch('/run/gsm-state','request_carrier', self.check_carrier)
     def set_service(self, state):
         if state:
             at_queue('+CLIP=1', None)
             at_queue('+CNMI=1,1,2,0,0', None)
+            self.check_carrier()
+
+    def check_carrier(self, f = None):
+        self.block()
+        l = safe_read('/run/gsm-state/request_carrier')
+        if l == '':
+            at_queue('+COPS=0', self.got_cops, 10000)
+        else:
+            at_queue('+COPS=4,2,'+l, self.got_cops, 10000)
+
+    def got_cops(self, line):
+        self.unblock()
+        return False
 
 add_engine(config())