def handle_recv(self, bp, iccid, dat): parser = Parser() p_type = bp.header.cmd_type + bp.header.cmd_num success = bp.header['success'] if int(success) == 0: if p_type == "D1": lp = parser.parse_login(dat) self.login_status = lp.data['login_status'] if int(self.login_status) == 0: self.res['sessionID'] = int(lp.data['sessionID']) options.thread_lock.acquire() options.tracker[ self.sn]['sessionID'] = self.res['sessionID'] options.thread_lock.release() self.logging.info("%s, login send success!", iccid) self.send_config() if self.first_login: threading.Thread(target=self.send_heartbat).start() elif p_type == 'D3': lp = parser.parse_config(dat) print(lp.data) else: if p_type != "D1": self.logging.info("%s, status is offline!", iccid) self.login(iccid, False) else: self.logging.info("%s, login failed!", iccid)