Ejemplo n.º 1
0
def AtherosMPDU2(csifile, index=0):
    """Parse payload without scapy"""
    csidata = csiread.Atheros(csifile, Nrxnum=3, Ntxnum=2, pl_size=40, Tones=56, if_report=False)
    csidata.read()
    print("=" * 20 + "Atheros MPDU2" + "=" * 20)
    m = MPDU(csidata.payload[index].tobytes())
    m.show()
Ejemplo n.º 2
0
def seekAtheros(csifile, num=36):
    positions_all = getPos(csifile)
    positions = positions_all[::num][:-1]
    random.shuffle(positions)
    print("-" * 40, "[Atheros]")

    last = default_timer()
    csidata = csiread.Atheros(csifile, 3, 2, 0, 56, False)
    csidata.read()
    cost_time = default_timer() - last
    print("%-18s: %18fs" % ("read()", cost_time))

    last = default_timer()
    csidata = csiread.Atheros(None, 3, 2, 0, 56, False, bufsize=num)
    for pos in positions:
        csidata.seek(csifile, pos, num)
    cost_time = (default_timer() -
                 last) * len(positions_all) / (len(positions) * num)
    print("%-18s: %18fs" % ("seek(num=%d)" % (num), cost_time))
Ejemplo n.º 3
0
def atheros():
    """
    atheros
    """
    print("="*40)
    print("atheros")

    csifile = "../material/atheros/dataset/ath_csi_1.dat"
    csidata = csiread.Atheros(csifile, Nrxnum=3, Ntxnum=2, pl_size=10, Tones=56)
    last = time.time()
    csidata.read()
    now = time.time()
    print('-'*40)

    lmember = [s for s in csidata.__dir__() if s[:2] != "__"]
    print("Methods: \n", lmember[:1])
    print('Time:')
    print(" read                ", now - last, "s")
    print('-'*40)

    index = 10
    print("%dth packet: " % index)
    print(" file                ", csidata.file)
    print(" count               ", csidata.count)
    print(" timestamp           ", csidata.timestamp[index])
    print(" csi_len             ", csidata.csi_len[index])
    print(" tx_channel          ", csidata.tx_channel[index])
    print(" err_info            ", csidata.err_info[index])
    print(" noise_floor         ", csidata.noise_floor[index])
    print(" Rate                ", csidata.Rate[index])
    print(" bandWidth           ", csidata.bandWidth[index])
    print(" num_tones           ", csidata.num_tones[index])
    print(" nr                  ", csidata.nr[index])
    print(" nc                  ", csidata.nc[index])
    print(" rssi                ", csidata.rssi[index])
    print(" rssi_1              ", csidata.rssi_1[index])
    print(" rssi_2              ", csidata.rssi_2[index])
    print(" rssi_3              ", csidata.rssi_3[index])
    print(" payload_len         ", csidata.payload_len[index])
    print(" csi                 ", csidata.csi[index].shape)
    print(" payload             ", " ".join([hex(per)[2:].zfill(2) for per in csidata.payload[index]]))
    print('-'*40)
Ejemplo n.º 4
0
def atheros(csifile, index, Ntxnum=2):
    """atheros"""
    print("=" * 40 + "[atheros]")

    members = [
        s for s in dir(csiread.Atheros)
        if not s.startswith("__") and callable(getattr(csiread.Atheros, s))
    ]
    print("Methods: \n", members)

    print('Time:')
    last = default_timer()
    csidata = csiread.Atheros(csifile,
                              Ntxnum=Ntxnum,
                              pl_size=10,
                              if_report=False)
    csidata.read()
    print(" read                ", default_timer() - last, "s")

    print('-' * 40)
    print("%dth packet: " % index)
    print(" file                ", csidata.file)
    print(" count               ", csidata.count)
    print(" timestamp           ", csidata.timestamp[index])
    print(" csi_len             ", csidata.csi_len[index])
    print(" tx_channel          ", csidata.tx_channel[index])
    print(" err_info            ", csidata.err_info[index])
    print(" noise_floor         ", csidata.noise_floor[index])
    print(" Rate                ", csidata.Rate[index])
    print(" bandWidth           ", csidata.bandWidth[index])
    print(" num_tones           ", csidata.num_tones[index])
    print(" nr                  ", csidata.nr[index])
    print(" nc                  ", csidata.nc[index])
    print(" rssi                ", csidata.rssi[index])
    print(" rssi_1              ", csidata.rssi_1[index])
    print(" rssi_2              ", csidata.rssi_2[index])
    print(" rssi_3              ", csidata.rssi_3[index])
    print(" payload_len         ", csidata.payload_len[index])
    print(" csi                 ", csidata.csi[index].shape)
    print(" payload             ",
          " ".join([hex(per)[2:].zfill(2) for per in csidata.payload[index]]))
Ejemplo n.º 5
0
def atheros(csifile, index, ntxnum=2):
    """atheros"""
    print("=" * 40 + "[atheros]")

    members = [
        s for s in dir(csiread.Atheros)
        if not s.startswith("_") and callable(getattr(csiread.Atheros, s))
    ]
    print("Methods: \n ", members)

    print('Time:')
    last = default_timer()
    csidata = csiread.Atheros(csifile,
                              ntxnum=ntxnum,
                              pl_size=10,
                              if_report=False)
    csidata.read()
    print("  read                ", default_timer() - last, "s")

    print('-' * 40)
    csidata.display(index)
Ejemplo n.º 6
0
    phase = np.unwrap(np.angle(csi), axis=1)
    phase = calib(phase, s_index)
    plt.subplot(3, 1, 2)
    plt.plot(s_index, phase[200:300, :, 0, 0].T)

    # alg_3
    # csicopy = csi.copy()
    # for i in range(100, 200):
    #     csicopy[i] = alg_3(csi, i)
    # phase = np.unwrap(np.angle(csicopy), axis=1)
    # phase = calib(phase, s_index)
    # plt.subplot(3, 1, 3)
    # plt.plot(s_index, phase[100:200, :, 0, 0].T)
    plt.show()


if __name__ == "__main__":
    csidata = csiread.Intel("../material/5300/dataset/sample_0x5_64_3000.dat",
                            ntxnum=1,
                            if_report=False)
    athdata = csiread.Atheros("../material/atheros/dataset/ath_csi_1.dat",
                              if_report=False)
    csidata.read()
    csidata.get_scaled_csi(True)
    athdata.read()

    fig_2(csidata)
    fig_4(athdata)
    fig_6(csidata)
    # algshow(csidata)
Ejemplo n.º 7
0
from PyQt5.QtWidgets import QLabel, QMenuBar, QPushButton, QVBoxLayout, QWidget

os.environ['QT_SCALE_FACTOR'] = '1'

Device = 'Intel'  # Intel or Atheros

if Device == 'Intel':
    csidata = csiread.CSI(None, 3, 2)
    SUBCARRIERS_NUM = 30
    BW = 20
    NG = 2
    YRange_A = 70
    YRange_B = 70
    YRange_D = 40
elif Device == 'Atheros':
    csidata = csiread.Atheros(None, 3, 2)
    SUBCARRIERS_NUM = 56
    BW = 20
    NG = 1
    YRange_A = 300
    YRange_B = 300
    YRange_D = 200
else:
    raise ValueError("Device = 'Intel' or 'Atheros'")

cache_amptiA = np.zeros([SUBCARRIERS_NUM, 800])  # [subcarriers, packets]
cache_amptiB = np.zeros([SUBCARRIERS_NUM, 10,
                         3])  # [subcarriers, packets, Nrx]
cache_phaseC = np.zeros([SUBCARRIERS_NUM, 10,
                         3])  # [subcarriers, packets, Nrx]
cache_cirD = np.zeros([64, 10, 3])  # [time(samples), packets, Nrx]