Exemple #1
0
def parseConnForConnStatusList(connFile):
    count = 0
    with open(connFile, 'r') as f:
        connList = f.read()
        connList = connList.split('||')
        for conn in connList:
            try:
                #####################################################
                # 从文件中提取数据,赋值变量
                time = float(re.findall('(?<=time\": ).*?(?=,)', conn)[0])
                apMac = re.findall('(?<=Access ).*?(?= )', conn)[0]
                # Quality=100/100 level=78/100 level=0/100}"}||
                # Quality=33/70 level=-77 }"}||
                # Access Not-Associated dBm}"}||
                # Access Not-Associated Quality:0 level:0 level:0}"}||
                if re.findall('Not-Associated', conn):
                    apMac = 'Not-Associated'
                    level = 0
                    channel = 0.0
                elif len(re.findall('level', conn)) == 1:
                    level = int(re.findall('(?<=level=).*?(?= )', conn)[0])
                    channel = float(re.findall('(?<=Frequency:).*?(?= )', conn)[0])
                else:
                    # 根据公式quality = (level + 110) / 70 * 100还原level为接收信号强度
                    tmp = int(re.findall('(?<=level=).*?(?=/\d+ )', conn)[0])
                    level = int(tmp * 70 / 100 - 110)
                    channel = float(re.findall('(?<=Frequency:).*?(?= )', conn)[0])
                #####################################################
                #####################################################
                # 解析数据写入ConnStatusList
                connStatus = Status.ConnStatus()

                connStatus.timestamp = int(time * 1e6)

                if re.findall('(?<=dev\": \").*?(?=\")', conn)[0] == 'wlan0':
                    connStatus.W0APMac = apMac
                    connStatus.W0level = level
                    connStatus.W0channel = channel
                elif re.findall('(?<=dev\": \").*?(?=\")', conn)[0] == 'wlan1':
                    connStatus.W1APMac = apMac
                    connStatus.W1level = level
                    connStatus.W1channel = channel
                else:
                    pass

                Status.ConnStatusList.append(connStatus)
                #####################################################
            except:
                    count += 1
    print("try-except错误次数:{}".format(count))