mirror of
https://github.com/espressif/openthread.git
synced 2026-07-09 22:00:19 +00:00
3ea74a1977
* ncp: Added sniffer host tool.
Split spinel-cli out into a general spinel python library module.
Added sniffer.py tool that leverages the spinel library module.
Added some initial unit tests of spinel.py module using MockStream.
From openthread root:
./tools/spinel-cli/sniffer.py -c 11 -n 1 -u /dev/ttyUSB0 | wireshark -k -i -
49 lines
2.1 KiB
Python
49 lines
2.1 KiB
Python
#!/usr/bin/python
|
|
#
|
|
# Copyright (c) 2016, The OpenThread Authors.
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are met:
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# 2. Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
# 3. Neither the name of the copyright holder nor the
|
|
# names of its contributors may be used to endorse or promote products
|
|
# derived from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
|
|
def hexify_chr(s): return "%02X" % ord(s)
|
|
def hexify_int(i): return "%02X" % i
|
|
def hexify_bytes(data): return str(map(hexify_chr,data))
|
|
def hexify_str(s,delim=':'):
|
|
return delim.join(x.encode('hex') for x in s)
|
|
|
|
def pack_bytes(packet): return pack("%dB" % len(packet), *packet)
|
|
def packed_to_array(packet): return map(ord, packet)
|
|
|
|
def asciify_int(i): return "%c" % (i)
|
|
|
|
def hex_to_bytes(s):
|
|
result = ''
|
|
for i in xrange(0, len(s), 2):
|
|
(b1, b2) = s[i:i+2]
|
|
hex = b1+b2
|
|
v = int(hex, 16)
|
|
result += chr(v)
|
|
return result
|