From e3430717a2c628ebee14128687271e62a0c9f0c5 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sun, 11 Oct 2015 18:55:50 +1100 Subject: [PATCH] gsmd2: handle request to select a specific carrier. These are written to /run/gsm-state/request_carrier Signed-off-by: NeilBrown --- gsm/gsmd2.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gsm/gsmd2.py b/gsm/gsmd2.py index 6f62476..c38b4ac 100644 --- a/gsm/gsmd2.py +++ b/gsm/gsmd2.py @@ -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()) -- 2.39.5