support multi-modem pools
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ from dotenv import load_dotenv
|
|||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
LOG_SOURCE = os.getenv("LOG_SOURCE")
|
LOG_SOURCE = os.getenv("LOG_SOURCE")
|
||||||
SMS_TIMEOUT = 60
|
SMS_TIMEOUT = 120
|
||||||
BAUDRATE = 115200
|
BAUDRATE = 115200
|
||||||
|
|
||||||
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
|
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|||||||
@@ -60,9 +60,7 @@ def init_modems() -> list:
|
|||||||
return modems
|
return modems
|
||||||
|
|
||||||
|
|
||||||
def start_book():
|
def start_book(start_slot_number, end_slot_number):
|
||||||
start_slot_number = 14
|
|
||||||
end_slot_number = 15
|
|
||||||
slot_list = list(range(start_slot_number, end_slot_number + 1))
|
slot_list = list(range(start_slot_number, end_slot_number + 1))
|
||||||
random.shuffle(slot_list)
|
random.shuffle(slot_list)
|
||||||
for i in slot_list:
|
for i in slot_list:
|
||||||
@@ -124,4 +122,4 @@ def get_proxy(phone_number):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
start_book()
|
start_book(25, 28)
|
||||||
|
|||||||
+17
-10
@@ -10,36 +10,43 @@ BAUDRATE = 115200
|
|||||||
|
|
||||||
class CardPool:
|
class CardPool:
|
||||||
|
|
||||||
def __init__(self, port):
|
def __init__(self, port_list):
|
||||||
self.logger = logging.getLogger("CardPool")
|
self.logger = logging.getLogger("CardPool")
|
||||||
self._serial = serial.Serial(port, BAUDRATE, timeout=1)
|
self._serial_list = []
|
||||||
|
for port in port_list:
|
||||||
|
self._serial_list.append(serial.Serial(port, BAUDRATE, timeout=1))
|
||||||
|
|
||||||
def _send_command(self, cmd: str) -> bytes:
|
def _send_command(self, serial, cmd: str) -> bytes:
|
||||||
print("send command {}".format(cmd))
|
print("send command {}".format(cmd))
|
||||||
self._serial.write(cmd.encode())
|
serial.write(cmd.encode())
|
||||||
msg = self._serial.read(100)
|
msg = serial.read(100)
|
||||||
self.logger.info(msg)
|
self.logger.info(msg)
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
# info: after reset, we need to restart modem pool
|
# info: after reset, we need to restart modem pool
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self._send_command("AT+NEXT00\r")
|
for serial in self._serial_list:
|
||||||
|
self._send_command(serial, "AT+NEXT00\r")
|
||||||
|
|
||||||
def switch_to_next(self):
|
def switch_to_next(self):
|
||||||
self._send_command("AT+NEXT11\r")
|
for serial in self._serial_list:
|
||||||
|
self._send_command(serial, "AT+NEXT11\r")
|
||||||
|
|
||||||
def switch_to_slot(self, slot_number: int):
|
def switch_to_slot(self, slot_number: int):
|
||||||
params.oracle_log_sender.send_log(msg="换到" + str(slot_number) + "行", source=LOG_SUBJECT_EVENT,
|
params.oracle_log_sender.send_log(msg="换到" + str(slot_number) + "行", source=LOG_SUBJECT_EVENT,
|
||||||
subject=LOG_SUBJECT_EVENT,
|
subject=LOG_SUBJECT_EVENT,
|
||||||
type=TYPE_EVENT_CHANGE_SLOT)
|
type=TYPE_EVENT_CHANGE_SLOT)
|
||||||
if slot_number < 10:
|
if slot_number < 10:
|
||||||
self._send_command("AT+SWIT00-000{}\r".format(slot_number))
|
for serial in self._serial_list:
|
||||||
|
self._send_command(serial, "AT+SWIT00-000{}\r".format(slot_number))
|
||||||
else:
|
else:
|
||||||
self._send_command("AT+SWIT00-00{}\r".format(slot_number))
|
for serial in self._serial_list:
|
||||||
|
self._send_command(serial, "AT+SWIT00-00{}\r".format(slot_number))
|
||||||
|
|
||||||
# not work for the pool
|
# not work for the pool
|
||||||
def find_current_slot(self):
|
def find_current_slot(self):
|
||||||
self._send_command("AT+USIM\r")
|
for serial in self._serial_list:
|
||||||
|
self._send_command(serial, "AT+USIM\r")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -4,24 +4,32 @@ from db.DbManager import DataManager
|
|||||||
from logs.LogSender import LogSender
|
from logs.LogSender import LogSender
|
||||||
|
|
||||||
MODEM_POOL_PORTS = [
|
MODEM_POOL_PORTS = [
|
||||||
"/dev/tty.usbmodem1431101",
|
# "/dev/tty.usbmodem1431101",
|
||||||
"/dev/tty.usbmodem1431103",
|
# "/dev/tty.usbmodem1431103",
|
||||||
"/dev/tty.usbmodem1431105",
|
# "/dev/tty.usbmodem1431105",
|
||||||
"/dev/tty.usbmodem1431107",
|
# "/dev/tty.usbmodem1431107",
|
||||||
"/dev/tty.usbmodem1431201",
|
# "/dev/tty.usbmodem1431201",
|
||||||
"/dev/tty.usbmodem1431203",
|
# "/dev/tty.usbmodem1431203",
|
||||||
"/dev/tty.usbmodem1431205",
|
# "/dev/tty.usbmodem1431205",
|
||||||
"/dev/tty.usbmodem1431207",
|
# "/dev/tty.usbmodem1431207",
|
||||||
"/dev/tty.usbmodem1431301",
|
# "/dev/tty.usbmodem1431301",
|
||||||
## "/dev/tty.usbmodem1431303",
|
# ## "/dev/tty.usbmodem1431303",
|
||||||
"/dev/tty.usbmodem1431305",
|
# "/dev/tty.usbmodem1431305",
|
||||||
"/dev/tty.usbmodem1431307",
|
# "/dev/tty.usbmodem1431307",
|
||||||
"/dev/tty.usbmodem1431401",
|
# "/dev/tty.usbmodem1431401",
|
||||||
"/dev/tty.usbmodem1431403",
|
# "/dev/tty.usbmodem1431403",
|
||||||
"/dev/tty.usbmodem1431405",
|
# "/dev/tty.usbmodem1431405",
|
||||||
"/dev/tty.usbmodem1431407"
|
# "/dev/tty.usbmodem1431407",
|
||||||
|
"/dev/tty.usbmodem1434101",
|
||||||
|
"/dev/tty.usbmodem1434103",
|
||||||
|
"/dev/tty.usbmodem1434105",
|
||||||
|
"/dev/tty.usbmodem1434107",
|
||||||
|
"/dev/tty.usbmodem1434201",
|
||||||
|
"/dev/tty.usbmodem1434203",
|
||||||
|
"/dev/tty.usbmodem1434205",
|
||||||
|
"/dev/tty.usbmodem1434207"
|
||||||
]
|
]
|
||||||
CARD_POOL_PORT = "/dev/tty.usbmodem1432101"
|
CARD_POOL_PORT = ["/dev/tty.usbmodem1432101","/dev/tty.usbmodem1434601"]
|
||||||
firebase_store_manager = DataManager()
|
firebase_store_manager = DataManager()
|
||||||
oracle_log_sender = LogSender()
|
oracle_log_sender = LogSender()
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -54,9 +54,9 @@ def init_modems() -> list:
|
|||||||
|
|
||||||
def start_waiting_sms():
|
def start_waiting_sms():
|
||||||
params.oracle_log_sender.send_wait_sms_log()
|
params.oracle_log_sender.send_wait_sms_log()
|
||||||
slot_number = 21
|
start_slot_number = 1
|
||||||
slot_sum = 31
|
end_slot_sum = 2
|
||||||
slot_list = list(range(slot_number, slot_sum + 1))
|
slot_list = list(range(start_slot_number, end_slot_sum + 1))
|
||||||
for i in reversed(slot_list):
|
for i in reversed(slot_list):
|
||||||
card_pool.reset()
|
card_pool.reset()
|
||||||
logger.info("will switch to " + str(i))
|
logger.info("will switch to " + str(i))
|
||||||
@@ -89,7 +89,7 @@ def start_waiting_sms():
|
|||||||
now = time.time()
|
now = time.time()
|
||||||
while (listen_at + SMS_TIMEOUT + 5) > now:
|
while (listen_at + SMS_TIMEOUT + 5) > now:
|
||||||
now = time.time()
|
now = time.time()
|
||||||
print("sleep for 2 s")
|
# print("sleep for 2 s")
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
print("will call continue")
|
print("will call continue")
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ class CommandorPage:
|
|||||||
self.logger.info(result)
|
self.logger.info(result)
|
||||||
params.firebase_store_manager.save(result)
|
params.firebase_store_manager.save(result)
|
||||||
params.oracle_log_sender.send_appoint_result(result)
|
params.oracle_log_sender.send_appoint_result(result)
|
||||||
|
self.current_gsm_modem.modem.close()
|
||||||
self.is_finished = True
|
self.is_finished = True
|
||||||
|
|
||||||
def handle_sms(self, sms):
|
def handle_sms(self, sms):
|
||||||
@@ -70,7 +71,7 @@ class CommandorPage:
|
|||||||
u'== SMS message received ==\nFrom: {0}\nTime: {1}\nMessage:\n{2}\n'.format(sms.number, sms.time, sms.text))
|
u'== SMS message received ==\nFrom: {0}\nTime: {1}\nMessage:\n{2}\n'.format(sms.number, sms.time, sms.text))
|
||||||
# extract the otp number
|
# extract the otp number
|
||||||
date = str(sms.time)[0:10]
|
date = str(sms.time)[0:10]
|
||||||
params.oracle_log_sender.send_sms_reception_log(sms.number, sms.text)
|
params.oracle_log_sender.send_sms_reception_log(sms.number, sms.text,self.current_gsm_modem.ccid)
|
||||||
if date == str(datetime.date.today()):
|
if date == str(datetime.date.today()):
|
||||||
self.logger.info("this sms is for today")
|
self.logger.info("this sms is for today")
|
||||||
if "rendez-vous" in sms.text or "appointment" in sms.text:
|
if "rendez-vous" in sms.text or "appointment" in sms.text:
|
||||||
@@ -87,9 +88,9 @@ class CommandorPage:
|
|||||||
# while not self.is_finished:
|
# while not self.is_finished:
|
||||||
# time.sleep(2)
|
# time.sleep(2)
|
||||||
self.is_finished = True
|
self.is_finished = True
|
||||||
if self.current_gsm_modem:
|
# if self.current_gsm_modem:
|
||||||
self.logger.info("will close used modem")
|
# self.logger.info("will close used modem")
|
||||||
self.current_gsm_modem.modem.close()
|
# self.current_gsm_modem.modem.close()
|
||||||
else:
|
else:
|
||||||
self.logger.info("The sms is not for RDV")
|
self.logger.info("The sms is not for RDV")
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user