write

Write BLE LL protocol packet data to PCAP or PCAPNG file

    Description

    write(pcapObj,packet,timestamp) writes Bluetooth® low energy (BLE) link layer (link layer) protocol packet data to the PCAP or PCAPNG file specified in the BLE PCAP file writer object, pcapObj. Input packet specifies the BLE LL protocol packet, and input timestamp specifies the packet arrival time.

    example

    write(pcapObj,packet,timestamp,Name,Value) specifies options using one or more name-value pair arguments. For example, 'PacketFormat','bits' sets the format of the BLE LL protocol packets to bits.

    Examples

    collapse all

    Create a default BLE PCAP file writer object.

    pcapObj = blePCAPWriter;

    Generate a BLE LL packet.

    cfgLLData = bleLLDataChannelPDUConfig('LLID', ...
        'Data (start fragment/complete)');
    payload = '0E00050014010A001F004000170017000000';
    llDataPDU = bleLLDataChannelPDU(cfgLLData, payload);
    connAccessAddress = de2bi(hex2dec('E213BC42'), 32)';
    llpacket = [connAccessAddress; llDataPDU];

    Write the BLE LL packet to the PCAP file.

    timestamp = 0; % Number of microseconds
    write(pcapObj,llpacket,timestamp,'PacketFormat','bits');

    Create a BLE PCAPNG file writer object, specifying the name and extension of the PCAPNG file.

    pcapObj = blePCAPWriter('FileName','sampleBLELL', ...
        'FileExtension','pcapng');

    Generate a BLE LL packet.

    cfgLLData = bleLLDataChannelPDUConfig('LLID', ...
        'Data (start fragment/complete)');
    payload = '0E00050014010A001F004000170017000000';
    llDataPDU = bleLLDataChannelPDU(cfgLLData,payload);
    connAccessAddress = de2bi(hex2dec('E213BC42'),32)';
    llpacket = [connAccessAddress; llDataPDU];

    Write the BLE LL packet to the PCAPNG file.

    timestamp = 12800000; % Number of microseconds
    write(pcapObj,llpacket,timestamp,'PacketFormat','bits');

    Input Arguments

    collapse all

    Note

    The blePCAPWriter object does not overwrite the existing PCAP or PCAPNG file. During each call of this object, specify a unique PCAP or PCAPNG file name.

    BLE PCAP file writer object, specified as a blePCAPWriter object.

    BLE LL protocol packet, specified as one of these values.

    • Binary-valued vector – This value represents bits.

    • Character vector – This value represents octets in hexadecimal format.

    • String scalar – This value represents octets in hexadecimal format.

    • Numeric vector with each element in the range [0, 255] – This value represents octets in decimal format.

    • n-by-2 character array – In this value, each row represents an octet in hexadecimal format.

    Data Types: char | string | double

    Packet arrival time since 1/1/1970, specified as a nonnegative integer. This value must be expressed in microseconds.

    Data Types: double

    Name-Value Pair Arguments

    Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

    Example: 'PacketFormat','bits' sets the format of the BLE LL protocol packets to bits.

    BLE LL protocol packet metadata, specified as the comma-separated pair consisting of PhyHeader and one of these values.

    • Binary-valued vector – This value represents bits.

    • Character vector – This value represents octets in hexadecimal format.

    • String scalar – This value represents octets in hexadecimal format.

    • Numeric vector with each element in the range [0, 255] – This value represents octets in decimal format.

    • n-by-2 character array – In this value, each row represents an octet in hexadecimal format.

    Data Types: char | string | double

    Comment for the BLE LL protocol packet, specified as the comma-separated pair consisting of PacketComment and a character vector or a string scalar.

    Data Types: char | string

    Format of the BLE LL protocol packet, specified as the comma-separated pair consisting of PacketFormat and 'octets' or 'bits'. If this value is specified as 'octets', packet is specified as one of these values.

    • Binary-valued vector – This value represents bits.

    • Character vector – This value represents octets in hexadecimal format.

    • String scalar – This value represents octets in hexadecimal format.

    • Numeric vector with each element in the range [0, 255] – This value represents octets in decimal format.

    • n-by-2 character array – In this value, each row represents an octet in hexadecimal format.

    Data Types: char | string | double

    Format of the physical layer (PHY) header, specified as the comma-separated pair consisting of PhyHeaderFormat and 'octets' or 'bits'. If this value is specified as 'octets', PhyHeader can be specified as one of these values.

    • Binary-valued vector – This value represents bits.

    • Character vector – This value represents octets in hexadecimal format.

    • String scalar – This value represents octets in hexadecimal format.

    • Numeric vector with each element in the range [0, 255] – This value represents octets in decimal format.

    • n-by-2 character array – In this value, each row represents an octet in hexadecimal format

    Data Types: char | string | double

    References

    [1] Tuexen, M. “PCAP Next Generation (Pcapng) Capture File Format.” 2020. https://www.ietf.org/.

    [2] Group, The Tcpdump. “Tcpdump/Libpcap Public Repository.” Accessed May 20, 2020. https://www.tcpdump.org.

    [3] “Development/LibpcapFileFormat - The Wireshark Wiki.” Accessed May 20, 2020. https://www.wireshark.org/.

    Extended Capabilities

    C/C++ Code Generation
    Generate C and C++ code using MATLAB® Coder™.

    See Also

    Objects

    Introduced in R2020b