NRF BLE Sniffer + Python - different behaviour/missing parameter

Hello,

I am using NRF BLE sniffer with Wireshark on Linux and MakerDiary NRF52840 USB dongle. The firmware version is reported as "3.6" (ttyACM0-3.6) and software is 4.1.1.

With Wireshark everything works great - but when I wrote small application for a cusom analysis (based on the provided example_linux.py) things went a bit not as expected. 

My BLE devices send "extended advertising" packets (PDU type=7 or AUX_ADV_IND in WireShark) - containing "short name" and "manufacturer data" fields. These packets appear as expected in Wireshark - but in my progtram they are completely missed by the sniffer. Moreover - when I kiled Wireshark and launched my program w/o pulling out the stick - suddenly the packets appeared in a log, causing me to think that I miss some configuration WoreShark does to the sniffer. 

Please advise

    ports = UART.find_sniffer()
    
    if len(ports) > 0:
        # Initialize the sniffer on the first port found with baudrate 1000000.
        # If you are using an old firmware version <= 2.0.0, simply remove the baudrate parameter here.
        sniffer = Sniffer.Sniffer(portnum=ports[0], baudrate=1000000)
        sniffer.setAdvHopSequence([37, 38, 39])
        sniffer.setSupportedProtocolVersion(3)
    
    else:
        print("No sniffers found!")
        return
    
    # Start the sniffer module. This call is mandatory.
    sniffer.start()

    while True:
        time.sleep(0.1)

        packets   = sniffer.getPackets()

        for p in packets:
            if p.blePacket != None:
                if p.blePacket.name != "\"\"": 
                    print (p.blePacket.name)

Related