From 4f78c794639e44b0c91f8eac11862fd16cbf8792 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Fri, 25 Feb 2022 09:50:57 +0100 Subject: [PATCH] can detected disabled sim card --- ModemPool.py | 33 +++++++++++++++++++++++++-------- SIMError.py | 3 +++ card_pool.py | 2 +- contact.xlsx | Bin 33638 -> 33909 bytes main.py | 18 ++++++++---------- 5 files changed, 37 insertions(+), 19 deletions(-) diff --git a/ModemPool.py b/ModemPool.py index 0dcdcd3..b1ae317 100644 --- a/ModemPool.py +++ b/ModemPool.py @@ -4,6 +4,7 @@ import time import serial from serial import Serial +from SIMError import SIMError from utils.excel_reader import ExcelHelper @@ -27,14 +28,26 @@ class ModemPool: # wait for 20 second, so that the modem can init all the sims time.sleep(20) + def _generate_error_msg(self, slot_position, index, error: SIMError): + return "error for slot({}) SIM({}), error:{}".format(slot_position, index + 1, + error.value) + def get_raw_phone_number(self, slot_position): for index, ser in enumerate(self._serial_list): print("will get phone number for slot({}) SIM({}), port:{}".format(slot_position, index + 1, ser.port)) - self._select_sim_storage(ser) + if not self._select_sim_storage(ser): + print(self._generate_error_msg(slot_position, index, SIMError.STORAGE_ERROR)) + continue msg = self._execut_USSD_cmd("AT+CUSD=1, *132#\r", ser) if "Unfortunately" in str(msg): - print("error for for slot({}) SIM({}), port:{}".format(slot_position, index + 1, ser.port)) - return + print(self._generate_error_msg(slot_position, index, SIMError.SIM_DISABLED)) + continue + elif "CME ERROR" in str(msg): + print(self._generate_error_msg(slot_position, index, SIMError.CME_ERROR)) + continue + elif len(msg) == 0: + print(self._generate_error_msg(slot_position, index, SIMError.TIMEOUT)) + continue # find phone number match = re.search(r'33\d{9}', str(msg)) phone_number = match.group(0) @@ -49,13 +62,17 @@ class ModemPool: def get_own_number(self, ser: Serial): print("saved phone number: " + str(self._send_command(f'AT+CPBR={self.phone_number_position}\r', ser))) - def _select_sim_storage(self, ser): + def _select_sim_storage(self, ser) -> bool: # use SIM Card storage cmd_sm = "AT+CPBS=\"SM\"\r" - self._send_command(cmd_sm, ser) + result = self._send_command(cmd_sm, ser) + if "ERROR" in str(result): + return False + else: + return True def _send_command(self, cmd: str, ser, wait_time_in_s: int = 0) -> bytes: - print("send command {}".format(cmd)) + # print("send command {}".format(cmd)) ser.write(cmd.encode()) msg = ser.read(100) count = 0 @@ -67,6 +84,6 @@ class ModemPool: print(msg) return msg - def _execut_USSD_cmd(self, cmd, ser) -> str: + def _execut_USSD_cmd(self, cmd, ser) -> bytes: # the timeout for ussd command can be 120 s in mac - return str(self._send_command(cmd, ser, 120)) + return self._send_command(cmd, ser, 120) diff --git a/SIMError.py b/SIMError.py index 64f0f60..8ff2721 100644 --- a/SIMError.py +++ b/SIMError.py @@ -3,3 +3,6 @@ from enum import Enum class SIMError(Enum): SIM_DISABLED = "SIM_DISABLED" + CME_ERROR = "CME_ERROR" + STORAGE_ERROR = "STORAGE_ERROR" + TIMEOUT = "TIMEOUT" diff --git a/card_pool.py b/card_pool.py index b42428c..2b0dd29 100644 --- a/card_pool.py +++ b/card_pool.py @@ -31,7 +31,7 @@ class CardPool: if slot_number < 10: self._send_command("AT+SWIT00-000{}\r".format(slot_number)) else: - self._send_command("AT+SWIT00-0{}\r".format(slot_number)) + self._send_command("AT+SWIT00-00{}\r".format(slot_number)) # not work for the pool def find_current_slot(self): diff --git a/contact.xlsx b/contact.xlsx index 83ac84285785df25e84b1a426979b71fca9bf896..8f29640248ae03b4234e66f329a040192fa13012 100644 GIT binary patch literal 33909 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 literal 33638 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≺%e?fMd$~ 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 diff --git a/main.py b/main.py index 03a86eb..559a929 100644 --- a/main.py +++ b/main.py @@ -164,9 +164,6 @@ def on_message_received(ch, method, properties, body): is_finished = True -# save the result to db - - def start_listen(): logger.info("start to listen to message queue") receiver = MessageReceiver() @@ -177,14 +174,15 @@ def read_all_the_phone_number(): card_pool = CardPool("/dev/tty.usbmodem11301") slot_number = 1 slot_sum = 32 - card_pool.reset() + card_pool.switch_to_slot(15) - for i in range(2, slot_sum + 1): - # i = 2 - card_pool.switch_to_slot(i) - modem_pool = ModemPool(get_devices_ports()) - modem_pool.reset_all_modems() - modem_pool.get_raw_phone_number(i) + # for i in range(10, slot_sum + 1): + # card_pool.reset() + # print("will switch to " + str(i)) + # card_pool.switch_to_slot(i) + # modem_pool = ModemPool(get_devices_ports()) + # modem_pool.reset_all_modems() + # modem_pool.get_raw_phone_number(i) if __name__ == '__main__':