def mgsms_get_pdus(self, properties): p = PDU() number = None if not properties.has_key("number") else properties["number"] text = None if not properties.has_key("text") else properties["text"] smsc = "" if not properties.has_key("smsc") else properties["smsc"] validity = "" if not properties.has_key("validity") else properties["validity"] sms_class = "" if not properties.has_key("class") else properties["class"] status_request = False if not properties.has_key("status_request") else properties["status_request"] if number == None or text == None : return [] return p.encode_pdu(number, text, csca=smsc, request_status=status_request)
def function(task) : self.io.com.send_query({"type" : "simple", "cmd" : "AT+CMGF=0", "task" : task}) raw_res = self.io.com.send_query({"cmd" : 'AT+CMGL=%s' % status, "task" : task}) response = [] p = PDU() if raw_res[2] == "OK" : for i in range(0, len(raw_res[1]), 2) : if raw_res[1][i].startswith("+CMGL:") : pattern = re.compile("\+CMGL:\ +(?P<index>\d*),(?P<status>\d*),") matched_res = pattern.match(raw_res[1][i]) try: sender, datestr, msg , csca, ref, cnt, seq, fmt, flash_sms = p.decode_pdu(raw_res[1][i+1]) msg = { "number" : sender, "text" : msg, "smsc" : csca, "date" : datestr, "reference" : int(ref), "concat_total" : int(cnt), "concat_number" : int(seq), "index": int(matched_res.group("index")), "status" : int(matched_res.group("status")), "notification" : flash_sms } if 'application/vnd.wap.mms-message' in msg["text"] : continue if msg["concat_total"] == 0: msg["completed"] = True else: msg["completed"] = False response.append(msg) except: pass #Check completed concatenated msgs refs = {} for m in response: if m["concat_total"] > 0: if not refs.has_key(m["reference"]): refs[m["reference"]] = [] refs[m["reference"]].append(m) for r in refs.keys(): if len(refs[r]) == refs[r][0]["concat_total"] : for m in response: if m["reference"] == r : m["completed"] = True return response
def mgsms_get_pdus(self, properties): p = PDU() number = None if not properties.has_key( "number") else properties["number"] text = None if not properties.has_key("text") else properties["text"] smsc = "" if not properties.has_key("smsc") else properties["smsc"] validity = "" if not properties.has_key( "validity") else properties["validity"] sms_class = "" if not properties.has_key( "class") else properties["class"] status_request = False if not properties.has_key( "status_request") else properties["status_request"] if number == None or text == None: return [] return p.encode_pdu(number, text, csca=smsc, request_status=status_request)
def function(task): self.io.com.send_query({ "type": "simple", "cmd": "AT+CMGF=0", "task": task }) raw_res = self.io.com.send_query({ "cmd": 'AT+CMGL=%s' % status, "task": task }) response = [] p = PDU() if raw_res[2] == "OK": for i in range(0, len(raw_res[1]), 2): if raw_res[1][i].startswith("+CMGL:"): pattern = re.compile( "\+CMGL:\ +(?P<index>\d*),(?P<status>\d*),") matched_res = pattern.match(raw_res[1][i]) try: sender, datestr, msg, csca, ref, cnt, seq, fmt, flash_sms = p.decode_pdu( raw_res[1][i + 1]) msg = { "number": sender, "text": msg, "smsc": csca, "date": datestr, "reference": int(ref), "concat_total": int(cnt), "concat_number": int(seq), "index": int(matched_res.group("index")), "status": int(matched_res.group("status")), "notification": flash_sms } if 'application/vnd.wap.mms-message' in msg[ "text"]: continue if msg["concat_total"] == 0: msg["completed"] = True else: msg["completed"] = False response.append(msg) except: pass #Check completed concatenated msgs refs = {} for m in response: if m["concat_total"] > 0: if not refs.has_key(m["reference"]): refs[m["reference"]] = [] refs[m["reference"]].append(m) for r in refs.keys(): if len(refs[r]) == refs[r][0]["concat_total"]: for m in response: if m["reference"] == r: m["completed"] = True return response