Example #1
0
    def process_cmd(self, cmd, cmd_info):
        if "RPL" == cmd:
            if self.process_state == kProccessState.kNeedFileHash:
                self.check_upload_existed(cmd_info, self.recv_file_arg)
            elif self.process_state == kProccessState.kNeedFileInfo:
                self.send_upload_num(cmd_info, self.recv_file_arg)
        # 远程控制执行成功,更新状态位
        elif RemoteControl.CTL_RPL_OK == cmd or RemoteControl.CTL_RPL_FAILED == cmd:
            self.update_task_state(cmd, cmd_info)
        elif "ATH" == cmd:
            if self.process_state == kProccessState.kNeedRegister:
                # 注册成功
                self.register(cmd_info)
            else:
                self.auth(cmd_info)
        elif "DNF" == cmd:
            self.send_keywords_file(cmd_info)
        elif "END" == cmd:
            self.client_offline()
        # 记录异常
        elif "LOG" == cmd:
            curt_time = get_curtime()
            record_warnings(cmd_info, self.__user_no, curt_time)
            log(cmd_info, self.__user_no, curt_time)
            self.__response = kOK
        # 接受用户报警文件
        elif "UPD" == cmd:
            self.recv_file_arg = None
            self.current_time = get_curtime()
            self.recv_file(cmd_info)
            # self.__user_socket.end_connection(self.__user_no)
            # 接收用户全盘扫描需要上传的文件
        elif "UPF" == cmd:
            self.recv_file_arg = FIRST_UPLOAD
            self.current_time = get_curtime()
            self.recv_file(cmd_info)

        # 接收用户快速扫描需要上传文件
        elif "UPS" == cmd:
            self.recv_file_arg = SECOND_UPLOAD
            self.current_time = get_curtime()
            self.recv_file(cmd_info)
        elif "INF" == cmd:
            if self.__ctl_status == RemoteControl.CTL_UPLOAD_FIRST:
                self.__response = get_first_upload_file_info(self.__ctl_args)
            elif self.__ctl_status == RemoteControl.CTL_UPLOAD_SECOND:

                self.__response = get_second_upload_file_info(self.__ctl_args)
            self.process_state = kProccessState.kUploadFile
        # 询问服务器时间和服务器过期时间
        elif "TIM" == cmd:
            if "CTM" == cmd_info:
                self.__response = get_curtime()
            elif "EPT" == cmd_info:
                self.__response = get_expired_time()
        # 与客户端保持心跳
        elif "HBT" == cmd:
            self.hbt()
        return self.process_state
Example #2
0
 def __init__(self, sock_fd, clnt):
     super().__init__()
     self.local_time = get_curtime()
     self.sock = sock_fd
     self.hostIP = clnt
     self.disconnected = False
     self.user_no = None
Example #3
0
def com_change_repair_status(info):
    repairId = info.split('\n')[0]
    repairdDate = get_curtime()
    ret = change_repair_status(repairId, repairdDate)
    if ret > 0:
        return True
    else:
        return False
Example #4
0
def com_add_car_part(info):
    partName, partNumber, partPrice = info.split('\n')
    partDate = get_curtime()
    set_result = add_car_part(partName, partNumber, partPrice, partDate)
    if set_result > 0:
        return True
    else:
        return False
Example #5
0
def com_add_repair_info(info, user_no):
    repair_carName, repair_carPhone, partDetails, repair_fault, repairDetails, repairMask = info.split(
        '\n')
    repairingDate = get_curtime()
    user_id = get_user_id(user_no)[0][0]
    set_result = add_repair_info(user_id, repair_carName, repair_carPhone,
                                 partDetails, repair_fault, repairDetails,
                                 repairMask, repairingDate)
    if set_result > 0:
        return True
    else:
        return False
Example #6
0
 def __init__(self, addr):
     self.__user_no = None
     self.__response = ""
     self.__ctl_status = RemoteControl.CTL_NO_TASK
     self.user_addr = None
     self.process_state = kProccessState.kAuthing
     self.__kw_file = None
     self.recv_file_name = None
     self.recv_file_type = None
     self.recv_file_path = None
     self.recv_file_hash = None
     self.recv_file_arg = None
     self.__ctl_args = None
     self.current_time = get_curtime()
     self.__is_login = False