def query_wan1_ip(db_sql):
     db_ip = db_ip_text.get()
     db_name = db_logname_text.get()
     db_pass = db_logpasswd_text.get()
     db_port = int(db_port_text.get())
     db_tunnel_ip = db_tunnel_ip_text.get()
     db_tunnel_logname = db_tunnel_logname_text.get()
     db_tunnel_pass = db_tunnel_logpasswd_text.get()
     db_tunnel_port = int(db_tunnel_port_text.get())
     if db_tunnel_flag == 0:  #db_tunnel_flag默认值0,若为0则不使用tunnel
         interface_query_value = utils.mysql_connect(
             db_ip, db_name, db_pass, MY_GUI.log_data_Text, db_sql)
     if db_tunnel_flag == 1:  #db_tunnel_flag默认值0,若为1则使用tunnel
         interface_query_value = utils.mysql_tunnel_connet(
             db_tunnel_ip, db_tunnel_logname, db_tunnel_pass,
             db_tunnel_port, db_ip, db_name, db_pass, MY_GUI.log_data_Text,
             db_sql)
     if interface_query_value:  #判断查询结果是否为空,若不为空则对结果进行处理
         result_value = interface_query_value[0]  # 从查询结果列表中取出第一个值,结果为一个元组
         MY_GUI.result_data_Text.delete(1.0, END)
         for i in range(0, len(result_value)):  # 从设备元组中取出每个设备
             if isinstance(result_value[i][3], str):
                 MY_GUI.init_data_Text.insert(tkinter.INSERT,
                                              result_value[i][3] +
                                              '\n')  # 数据录入框框输出结果
                 MY_GUI.init_data_Text.update()
             i = i + 1
         utils.write_log_to_Text(MY_GUI.log_data_Text, '数据库数据查询完成')  # 打印日志
 def query_phy_interface(db_sql):  #物理接口查询函数
     db_ip = db_ip_text.get()
     db_name = db_logname_text.get()
     db_pass = db_logpasswd_text.get()
     db_port = int(db_port_text.get())
     db_tunnel_ip = db_tunnel_ip_text.get()
     db_tunnel_logname = db_tunnel_logname_text.get()
     db_tunnel_pass = db_tunnel_logpasswd_text.get()
     db_tunnel_port = int(db_tunnel_port_text.get())
     if db_tunnel_flag == 0:  #db_tunnel_flag默认值0,若为0则不使用tunnel
         interface_query_value = utils.mysql_connect(
             db_ip, db_name, db_pass, MY_GUI.log_data_Text, db_sql)
     if db_tunnel_flag == 1:  #db_tunnel_flag默认值0,若为1则使用tunnel
         interface_query_value = utils.mysql_tunnel_connet(
             db_tunnel_ip, db_tunnel_logname, db_tunnel_pass,
             db_tunnel_port, db_ip, db_name, db_pass, MY_GUI.log_data_Text,
             db_sql)
     if interface_query_value:  #判断查询结果是否为空,若不为空则对结果进行处理
         result_value = interface_query_value[0]  # 从查询结果列表中取出第一个值,结果为一个元组
         MY_GUI.result_data_Text.delete(1.0, END)
         for i in range(0, len(result_value)):  # 从设备元组中取出每个设备
             result = ''
             for j in range(0, len(
                     result_value[i])):  # 从每个设备元组中取出每个数值,转换成字符串并进行拼接
                 result = result + str(result_value[i][j]) + ' '
                 j = j + 1
             # print(result)
             MY_GUI.result_data_Text.insert(tkinter.INSERT,
                                            result + '\n')  # 输出框输出结果
             MY_GUI.result_data_Text.update()
             i = i + 1
         utils.write_log_to_Text(MY_GUI.log_data_Text, '数据库数据查询完成')  # 打印日志
Exemple #3
0
    def file_trans_put():
        remote_ip_list = MY_GUI.init_data_Text.get(1.0, END).strip().split('\n')    #远端ip 地址列表
        localfile_list = local_flile_Text.get(1.0, END).strip().split('\n')     #待上传文件列表
        ssh_port = int(ssh_port_text.get())
        ssh_name = ssh_logname_text.get()
        ssh_password = ssh_logpasswd_text.get()
        remote_path=remote_flilepath_text.get()
        #本地文件列表文件字符串相加,判断本地文件列表是否为空
        check_localfile_list=''
        for i in range(0, len(localfile_list)):
            check_localfile_list = check_localfile_list + localfile_list[i]
            i = i + 1

        count_ip=0
        for ip in remote_ip_list:  # 从地址列表取ip执行查询命令
            global def_start
            global current_ip
            global current_file_name
            current_ip=ip
            #在窗口输出当前传输设备ip
            device_TexT.delete(1.0, END)
            device_TexT.insert(tkinter.INSERT, ip)
            device_TexT.update()
            #在窗口输出ip传输进度
            count_ip=count_ip+1
            device_rate= str(count_ip)+"/"+str(len(remote_ip_list))
            device_rate_TexT.delete(1.0, END)
            device_rate_TexT.insert(tkinter.INSERT, str(device_rate))
            device_rate_TexT.update()

            if def_start == 1:  # 若def_start值为1则执行查询
                if check_localfile_list:    #判断本地文件是否为空,不为空则执行
                    for localfile in localfile_list:    #取一个本地文件
                        localfile_dir_list=localfile.split('/') #以“/”分割成列表,取最后一个元素
                        remotefile=remote_path+localfile_dir_list[-1]   #远端目录+本地文件名作为远端文件
                        # 在窗口输出当前传输文件名称
                        current_file_name=localfile_dir_list[-1]
                        file_TexT.delete(1.0, END)
                        file_TexT.insert(tkinter.INSERT,current_file_name)
                        file_TexT.update()

                        if radio_value==1:  #文件传输协议,1为SFTP,2为SCP
                            utils.ssh_sftp_put(ip, ssh_name, ssh_password,ssh_port,localfile,remotefile,
                                               MY_GUI.log_data_Text,remote_path)
                        elif radio_value==2:    #文件传输协议,1为SFTP,2为SCP
                            ssh_scp_put(ip, ssh_name, ssh_password, ssh_port, localfile,remotefile,
                                              MY_GUI.log_data_Text,remote_path)
                else:   #判断本地文件是否为空,为空则输出log
                    utils.write_log_to_Text(MY_GUI.log_data_Text, "本地文件不能为空")
                    break
            elif def_start == 0:  # 若def_start值为0则终止查询并输出log
                utils.write_log_to_Text(MY_GUI.log_data_Text, "文件传输终止")
                break
            elif def_start == 2:  # 若def_start值为2则暂停查询并弹出提示框
                mes = messagebox.askyesno('提示', '是否继续执行')
                if mes is True:  # 点击提示框‘YES’,继续执行查询
                    def_start = 1
                else:
                    def_start = 0  # 点击提示框‘NO’,停止查询
 def get_cmdfile_path():  #从本地系统打开文件并获取文件内容
     filepath = filedialog.askopenfilename()
     try:
         f = open(str(filepath), encoding='utf-8', errors='ignore')
         if f:
             readlines = f.readlines()
             f.close()
             for line in readlines:
                 cmd_Text.insert(tkinter.INSERT, line)
             return readlines
     except Exception as e:
         utils.write_log_to_Text(MY_GUI.log_data_Text, e)
 def device_query_start():  #开始查询函数,判断是否需要tunnel,如果需要tunnel则判断tunnel地址是否可达
     global def_start
     global radio_value
     def_start = 1  #执行查询标志,0:停止 1:开始 3:暂停
     ssh_tunnel_ip = tunnel_ip_text.get()  #获取tunnel ip
     os_cmd = 'ping -c 5' + ' ' + ssh_tunnel_ip  #ping 检测命令
     if ssh_tunnel_flag == 1:  #ssh_tunnel_flag 默认为0,不使用tunnel,若tunnel为1则使用tunnel
         tunnel_check_result = ping_check(
             os_cmd)  #检测tunnel地址是否可达,可达则返回值0,否则为其他值
         if tunnel_check_result == 0:
             device_tunnel_query_button()  #若tunnel地址可达执行该函数
         else:
             utils.write_log_to_Text(MY_GUI.log_data_Text,
                                     ssh_tunnel_ip + "地址不可达")
     else:
         device_query_button()
Exemple #6
0
 def ssh_scp_get(ip, user, password, port, local_file, remote_file, log_data_Text, remote_path):
     try:
         ssh_client = paramiko.SSHClient()
         ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
         ssh_client.connect(ip, port, user, password, timeout=5)
         scpclient = SCPClient(ssh_client.get_transport(), progress=progress, socket_timeout=15.0)
     except Exception as e:
         utils.write_log_to_Text(log_data_Text, e)
     try:
         scpclient.get(remote_file, local_file)
         ssh_client.close()
     except FileNotFoundError:
         utils.write_log_to_Text(log_data_Text, "本地找不到指定文件" + local_file)
     except Exception as e:
         if "No such file or directory" in str(e):
             utils.write_log_to_Text(log_data_Text, ip + remote_file + "目录不存在")
         else:
             utils.write_log_to_Text(log_data_Text, e)
     else:
         utils.write_log_to_Text(log_data_Text, ip + remote_file + "文件下载成功")
 def output_result_file(self):
     file_path = filedialog.asksaveasfilename(title=u'保存文件')
     #print('保存文件:', file_path)
     file_text = self.result_data_Text.get(1.0, END)
     if file_path is not None:
         try:
             with open(file=file_path, mode='w', encoding='utf-8') as file:
                 file.write(file_text)
             self.result_data_Text.delete(1.0, END)
             dialog.Dialog(
                 None, {
                     'title': 'File Modified',
                     'text': '保存完成',
                     'bitmap': 'warning',
                     'default': 0,
                     'strings': ('OK', 'Cancle')
                 })
             utils.write_log_to_Text(self.log_data_Text,
                                     '保存完成,文件路径:' + file_path)
         except Exception as e:
             utils.write_log_to_Text(self.log_data_Text, e)
 def thin_interface(dev_sn):
     try:
         cmd = "cat /etc/config/network"
         result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
         r1 = result.strip().split('\n')
         #print(r1)
         result_list = []
         for i in range(
                 len(r1)):  #遍历查询结果的每一个元素,查找包含字符interface和ifname的元素,并加入新的列表
             r2 = str(r1[i].strip())  #去掉每一个元素的前后空格
             #print(r2)
             r4 = r2.find("interface")  #查找包含interface的元素,不包含返回值为-1
             r5 = r2.find("ifname")  #查找包含ifname的元素,不包含返回值为-1
             r6 = r2.find("pppoe")
             #print("r4=",r4)
             if r4 != -1:  #如果interface包含在该元素中,则以‘分割,取第二个元素加入新列表
                 r3 = r2.split("\'")
                 #print(r3[1])
                 result_list.append(r3[1])
                 #print(result_list)
                 continue
             if r6 != -1:
                 r3 = r2.split("\'")
                 # print(r3[1])
                 result_list.append(r3[1])
                 continue
             if r5 != -1:  #如果ifname包含在该元素中,则以‘分割,取第二个元素加入新列表
                 r3 = r2.split("\'")
                 #print(r3[1])
                 result_list.append(r3[1])
                 continue
         #print(result_list)
         return result_list
     except Exception as e:
         utils.write_log_to_Text(MY_GUI.log_data_Text,
                                 dev_sn + " " + str(e))
 def date_query():
     global def_start
     dev_sn_list = MY_GUI.init_data_Text.get(1.0, END).strip().split(
         '\n')  # 从页面获取sn列表
     # print(dev_sn_list)
     count_sn = 0
     for dev_sn in dev_sn_list:
         # 在窗口输出当前传输设备ip
         dev_TexT.delete(1.0, END)
         dev_TexT.insert(tkinter.INSERT, dev_sn)
         dev_TexT.update()
         # 在窗口输出ip传输进度
         count_sn = count_sn + 1
         dev_rate = str(count_sn) + "/" + str(len(dev_sn_list))
         dev_rate_TexT.delete(1.0, END)
         dev_rate_TexT.insert(tkinter.INSERT, str(dev_rate))
         dev_rate_TexT.update()
         if def_start == 1:  # 若def_start值为1则开始查询
             if dev_sn:  #判断dev_sn 是否为空
                 MY_GUI.result_data_Text.insert(
                     tkinter.INSERT,
                     ("=") * 15 + dev_sn + ("=") * 15 + '\n')  # 输出结果到页面
                 MY_GUI.result_data_Text.update()
                 check = dev_model(dev_sn)  # 通过查询设备类型是返回值是否为None判断是否可达
                 # print(check)
                 if check is not None:
                     flexthinedge_query(dev_sn)
                 else:
                     utils.write_log_to_Text(MY_GUI.log_data_Text,
                                             dev_sn + "不可达!")
                     continue
             else:
                 utils.write_log_to_Text(MY_GUI.log_data_Text,
                                         dev_sn + "设备sn不能为空!")
         elif def_start == 0:  # 若def_start值为0则终止查询并输出log
             utils.write_log_to_Text(MY_GUI.log_data_Text, "查询终止")
             break
         elif def_start == 2:  # 若def_start值为2则暂停查询并弹出提示框
             mes = messagebox.askyesno('提示', '是否继续执行')
             if mes is True:  # 点击提示框‘YES’,继续执行查询
                 def_start = 1
             else:
                 def_start = 0  # 点击提示框‘NO’,停止查询
 def data_process(dev_sn, result, identifier, split_flag, out_name):
     if result == "":
         MY_GUI.result_data_Text.insert(tkinter.INSERT,
                                        out_name + "\n")  # 输出结果到页面
         MY_GUI.result_data_Text.update()
         MY_GUI.result_data_Text.see(END)
         utils.write_log_to_Text(MY_GUI.log_data_Text,
                                 dev_sn + " " + out_name + " 未查询到")
     elif result == None:
         MY_GUI.result_data_Text.insert(tkinter.INSERT,
                                        out_name + "\n")  # 输出结果到页面
         MY_GUI.result_data_Text.update()
         MY_GUI.result_data_Text.see(END)
         utils.write_log_to_Text(MY_GUI.log_data_Text,
                                 dev_sn + " " + out_name + " 未查询到")
     else:
         if identifier in str(result):
             r1 = result.split('\n')  # 以换行符将原始结果分隔成列表
             for i in range(len(r1)):  # 取r1列表包含"dev_model"的元素
                 if identifier in r1[i]:
                     r2 = r1[i]
                     r3 = r2.split(split_flag)  # 以'为分隔符分隔列表r3
                     result_out = r3[1]  # 取列表r3第2个元素
                     MY_GUI.result_data_Text.insert(tkinter.INSERT,
                                                    out_name + result_out +
                                                    "\n")  # 输出结果到页面
                     MY_GUI.result_data_Text.update()
                     MY_GUI.result_data_Text.see(END)
                     break
         else:
             MY_GUI.result_data_Text.insert(tkinter.INSERT,
                                            out_name + "\n")  # 输出结果到页面
             MY_GUI.result_data_Text.update()
             MY_GUI.result_data_Text.see(END)
             utils.write_log_to_Text(MY_GUI.log_data_Text,
                                     dev_sn + " " + out_name + " 未查询到")
 def device_query_button():  #设备查询按钮函数,不使用tunnel
     ssh_port = int(ssh_port_text.get())
     ssh_name = ssh_logname_text.get()
     ssh_password = ssh_logpasswd_text.get()
     ip_list = MY_GUI.init_data_Text.get(1.0, END).strip().split(
         '\n')  #从页面获取IP地址列表
     # print(ip_list)
     cmd_list = cmd_Text.get(1.0, END).strip().split('\n')  #从页面获取命令列表
     MY_GUI.result_data_Text.delete(1.0, END)  #清空结果输出框
     #检查命令框是否为空,若命令列表为空,则命令列表左右字符串相加也为空
     check_cmd = ''
     for i in range(0, len(cmd_list)):
         check_cmd = check_cmd + cmd_list[i]
         i = i + 1
     count_ip = 0
     for ip in ip_list:  #从地址列表取ip执行查询命令
         global def_start
         #在窗口输出当前传输设备ip
         device_TexT.delete(1.0, END)
         device_TexT.insert(tkinter.INSERT, ip)
         device_TexT.update()
         count_ip = count_ip + 1
         #在窗口输出ip传输进度
         device_rate = str(count_ip) + "/" + str(len(ip_list))
         device_rate_TexT.delete(1.0, END)
         device_rate_TexT.insert(tkinter.INSERT, str(device_rate))
         device_rate_TexT.update()
         if def_start == 1:  #若def_start值为1则执行查询
             if check_cmd:
                 if ip:  # 判断设备ip是否为空
                     device_result = utils.sshlogin(ssh_name, ssh_password,
                                                    ssh_port, ip,
                                                    MY_GUI.log_data_Text,
                                                    cmd_list)
                 else:
                     utils.write_log_to_Text(MY_GUI.log_data_Text,
                                             "设备ip不能为空")
                     continue
             else:
                 utils.write_log_to_Text(MY_GUI.log_data_Text, "命令不能为空")
                 break
         elif def_start == 0:  #若def_start值为0则终止查询并输出log
             utils.write_log_to_Text(MY_GUI.log_data_Text, "查询运行终止")
             break
         elif def_start == 2:  #若def_start值为2则暂停查询并弹出提示框
             mes = messagebox.askyesno('提示', '是否继续执行')
             if mes is True:  #点击提示框‘YES’,继续执行查询
                 def_start = 1
             else:
                 def_start = 0  #点击提示框‘NO’,停止查询
         result = ''
         if device_result == ['']:
             utils.write_log_to_Text(MY_GUI.log_data_Text,
                                     ip + " " + "未查询到数据")
         elif device_result == None:
             utils.write_log_to_Text(MY_GUI.log_data_Text,
                                     ip + " " + "未查询到数据")
         else:  # 对查询原始结果进行处理,原始数据为列表
             if radio_value == 1:  # 单选框返回值为1则结果逐条输出
                 for i in range(0, len(device_result)):
                     result = str(device_result[i])
                     i = i + 1
                     MY_GUI.result_data_Text.insert(
                         tkinter.INSERT, "*" * 20 + ip + "*" * 20 + "\n" +
                         result + '\n' * 2)
                     MY_GUI.result_data_Text.update()
                     MY_GUI.result_data_Text.see(END)
             elif radio_value == 2:  # 单选框返回值为2则结果合并为一条输出
                 for i in range(0, len(device_result)):
                     result = result + str(device_result[i]) + ' '
                     i = i + 1
                 MY_GUI.result_data_Text.insert(tkinter.INSERT,
                                                result + '\n')
                 MY_GUI.result_data_Text.update()
                 MY_GUI.result_data_Text.see(END)
             # print(result)
             utils.write_log_to_Text(MY_GUI.log_data_Text,
                                     ip + " " + "设备数据查询完成")
    def flexthinedge_query(dev_sn):
        #设备名称查询
        if name_select.get() == 1:
            cmd = "uci show rtty"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "description"
            out_name = "设备名称:"
            split_flag = "\'"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #设备型号查询
        if model_select.get() == 1:
            result_out = dev_model(dev_sn)
            MY_GUI.result_data_Text.insert(tkinter.INSERT, "设备型号:" +
                                           result_out + "\n")  # 输出结果到页面
            MY_GUI.result_data_Text.update()
            MY_GUI.result_data_Text.see(END)
        #设备版本查询
        if dev_version_select.get() == 1:
            cmd = "uci show ovslan"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "dev_version="
            out_name = "设备版本:"
            split_flag = "\'"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #设备运行模式查询
        if dev_mode_select.get() == 1:
            cmd = "uci show ovslan"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "dev_mode="
            out_name = "运行模式:"
            split_flag = "\'"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #WAN1接口地址查询
        if wan1_select.get() == 1:
            port_list = thin_interface(dev_sn)
            for i in range(len(port_list)):
                if port_list[i] == "WAN":
                    if port_list[i + 2] == "pppoe":
                        wan_port = "pppoe-WAN"
                    else:
                        wan_port = port_list[i + 1]
                    cmd = "ifconfig " + wan_port
                    result = rtty_query(cmd, dev_sn)  #获取查询原始结果
                    identifier = "inet addr"
                    out_name = "WAN:"
                    split_flag = ":"
                    data_process(dev_sn, result, identifier, split_flag,
                                 out_name)
                    break

        #WAN2接口地址查询
        if wan2_select.get() == 1:
            port_list = thin_interface(dev_sn)
            for i in range(len(port_list)):
                if port_list[i] == "WAN2":
                    if port_list[i + 2] == "pppoe":
                        wan_port = "pppoe-WAN"
                    else:
                        wan_port = port_list[i + 1]
                    cmd = "ifconfig " + wan_port
                    result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
                    identifier = "inet addr"
                    out_name = "WAN2:"
                    split_flag = ":"
                    data_process(dev_sn, result, identifier, split_flag,
                                 out_name)
                    break

        #WAN3接口地址查询
        if wan3_select.get() == 1:
            port_list = thin_interface(dev_sn)
            for i in range(len(port_list)):
                if port_list[i] == "WAN3":
                    if port_list[i + 2] == "pppoe":
                        wan_port = "pppoe-WAN"
                    else:
                        wan_port = port_list[i + 1]
                    cmd = "ifconfig " + wan_port
                    result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
                    identifier = "inet addr"
                    out_name = "WAN3:"
                    split_flag = ":"
                    data_process(dev_sn, result, identifier, split_flag,
                                 out_name)
                    break
        #LAN口地址查询
        if lan_select.get() == 1:
            cmd = "ifconfig br-LAN"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "inet addr"
            out_name = "LAN:"
            split_flag = ":"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #设备VLAN查询
        if vlan_select.get() == 1:
            cmd = "uci show vlan"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "tag"
            out_name = "VLAN:"
            split_flag = "\'"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #模组厂商查询
        if lte_Manufacturer_select.get() == 1:
            cmd = "comtool -e -d /dev/ttyUSB2 -c ATI"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            if "Quectel" in str(result):  #Quectel模组
                MY_GUI.result_data_Text.insert(tkinter.INSERT, "模组厂商:" +
                                               "Quectel" + "\n")  # 输出结果到页面
                MY_GUI.result_data_Text.update()
                MY_GUI.result_data_Text.see(END)
            else:  #高新兴 广和通模组
                identifier = "Manufacturer"
                out_name = "模组厂商:"
                split_flag = ":"
                data_process(dev_sn, result, identifier, split_flag, out_name)
        #模组型号
        if lte_model_select.get() == 1:
            cmd = "comtool -e -d /dev/ttyUSB2 -c ATI"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "Model"
            out_name = "模组型号:"
            split_flag = ":"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #模组版本
        if lte_version_select.get() == 1:
            cmd = "comtool -e -d /dev/ttyUSB2 -c ATI"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "Revision"
            out_name = "模组版本:"
            split_flag = ":"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #模组IMEI
        if lte_imei_select.get() == 1:
            cmd = "comtool -e -d /dev/ttyUSB2 -c ATI"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "IMEI"
            out_name = "模组IMEI:"
            split_flag = ":"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #SIM 是否插卡
        if lte_sim_select.get() == 1:
            cmd = "comtool -e -d /dev/ttyUSB2 -c AT+CPIN?"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "+CPIN:"
            out_name = "SIM状态:"
            split_flag = ":"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #SIM 卡号
        if lte_ccid_select.get() == 1:
            cmd1 = "comtool -e -d /dev/ttyUSB2 -c AT+CCID?"
            cmd2 = "comtool -e -d /dev/ttyUSB2 -c AT+ZGETICCID"
            result1 = rtty_query(cmd1, dev_sn)  # 获取查询原始结果
            result2 = rtty_query(cmd2, dev_sn)  # 获取查询原始结果
            if "+CCID:" in str(result1):
                identifier = "+CCID:"
                out_name = "SIM卡号:"
                split_flag = ":"
                data_process(dev_sn, result1, identifier, split_flag, out_name)
            else:
                identifier = "+ZGETICCID:"
                out_name = "SIM卡号:"
                split_flag = ":"
                data_process(dev_sn, result2, identifier, split_flag, out_name)
        #SIM 驻网状态
        if lte_crge_select.get() == 1:
            cmd = "comtool -e -d /dev/ttyUSB2 -c AT+CREG?"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "+CREG:"
            out_name = "驻网状态:"
            split_flag = ":"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #LTE信号强度查询
        if cqs_select.get() == 1:
            cmd = "comtool -e -d /dev/ttyUSB1 -c AT+CSQ"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "+CSQ:"
            out_name = "信号强度:"
            split_flag = ":"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #频段
        if lte_zcellinfo_select.get() == 1:
            cmd = "comtool -e -d /dev/ttyUSB2 -c at+zcellinfo?"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            identifier = "+ZCELLINFO:"
            out_name = "频段:"
            split_flag = ":"
            data_process(dev_sn, result, identifier, split_flag, out_name)
        #运营商
        if lte_operator_select.get() == 1:
            cmd = "comtool -e -d /dev/ttyUSB2 -c at+cops?"
            result = rtty_query(cmd, dev_sn)  # 获取查询原始结果
            if result == "":
                MY_GUI.result_data_Text.insert(tkinter.INSERT,
                                               "运营商:" + "\n")  # 输出结果到页面
                MY_GUI.result_data_Text.update()
                MY_GUI.result_data_Text.see(END)
                utils.write_log_to_Text(MY_GUI.log_data_Text,
                                        dev_sn + "运营商:" + " 未查询到")
            elif result == None:
                MY_GUI.result_data_Text.insert(tkinter.INSERT,
                                               "运营商:" + "\n")  # 输出结果到页面
                MY_GUI.result_data_Text.update()
                MY_GUI.result_data_Text.see(END)
                utils.write_log_to_Text(MY_GUI.log_data_Text,
                                        dev_sn + "运营商:" + " 未查询到")
            else:
                MY_GUI.result_data_Text.insert(tkinter.INSERT, "运营商:" +
                                               result + "\n")  # 输出结果到页面
                MY_GUI.result_data_Text.update()
                MY_GUI.result_data_Text.see(END)