Commit Graph

21 Commits

Author SHA1 Message Date
Buke Po a7ed23c16c support Thread Harness 1.1 R19 (#520) 2016-09-06 09:33:19 -07:00
Martin Turon 73060ae8e1 spinel-cli: Add NCP build to TravisCI (#364)
* ncp: Added spinel-cli and initial travis CI test suite integration.

This PR adds a command line tool, named spinel-cli, that converts ot-cli shell commands (as documented in https://github.com/openthread/openthread/blob/master/src/cli/README.md) to spinel NCP commands (as documented in https://github.com/openthread/openthread/blob/master/src/ncp/PROTOCOL.md).

Also added is a patch to node.py that provides a way to run the existing continuous integration certification test suite against an NCP build rather than a CLI build (by prefacing the command to start the test with the environment variable setting NODE_TYPE=ncp-sim):

cd tests/scripts/thread-cert
NODE_TYPE=ncp-sim top_builddir=../../.. python Cert_5_1_02_ChildAddressTimeout.py
The power of this tool is three fold:

1) As a path to add testing of the NCP in simulation to continuous integration
2) As a path to automated testing of testbeds running NCP firmware on hardware
3) As a simple debugging tool for NCP builds of OpenThread

openthread$ cd tools/spinel-cli/
spinel-cli$ ./spinel-cli.py
Opening pipe to ../../examples/apps/ncp/ot-ncp 1
spinel-cli > help

Available commands (type help <name> for more information):
============================================================
channel            extaddr       mode              route
child              extpanid      netdataregister   router
childtimeout       h             networkidtimeout  routerupgradethreshold
clear              help          networkname       scan
contextreusedelay  history       panid             state
counter            ifconfig      ping              thread
debug              ipaddr        prefix            v
debug-term         keysequence   q                 version
eidcache           leaderdata    quit              whitelist
enabled            leaderweight  releaserouterid
exit               masterkey     rloc16

spinel-cli > version
OPENTHREAD/gd4d4e9d-dirty; Aug 11 2016 14:40:44
Done
spinel-cli > thread start
Done
spinel-cli > state
leader
Done
spinel-cli >

The tool provides three ways to connect to an NCP image:

1) pipe to stdin/stdout of a command line tool (default): -p ./ot-ncp
2) serial connection to a hardware device: -u /dev/ttyUSB0
3) socket connection to the port of a helper tool such as ncp-spi-driver: -s 1234

spinel-cli$ ./spinel-cli.py --help
Options:
  -h, --help            show this help message and exit
  -u UART, --uart=UART
  -p PIPE, --pipe=PIPE
  -s SOCKET, --socket=SOCKET
  -n NODEID, --nodeid=NODEID
  -q, --quiet
  -v, --verbose
2016-09-02 15:32:17 -07:00
Xiao Ma 69eb23cd0c THCI: update thci with bug fix and enhancement. (#513)
* update poll data period to 15s to keep consistent with other vendors.
* fix return value of isOpenThreadRunning().
* set ROUTER_UPGRADE_THRESHOLD to 32 for Leader/Router to support maximum active routers in network.
* do not send server data ntf proactively if prefx configured before starting openthread stack.
2016-09-02 09:08:39 -07:00
Xiao Ma 8beb042328 THCI: Update thci to keep the consistency with Harness V1.1-R16 and bug fix. (#482)
* Add new commissionerUnregsiter() method to ensure compile pass temporarily.
* Return None instead of first configured global IPv6 unicast address if
  parameter 'filterPrefix' does not match with any of GUAs on thread interface.
2016-08-29 09:32:15 -07:00
Xiao Ma a2580e8346 THCI: update openthread thci with new fix and support. (#427)
* Add new Device Role MED/FED support in joinNetwork()
* Set default data poll rate for sleepy end device to 10s
* Add forceSetSlaac() method support
* Add 'int' type parameter support in removeRouter() for AUTO DUT
* Update README.md with 'pexpect' dependency module
2016-08-19 10:13:45 -07:00
Xiao Ma 35afd8f4b5 Add OpenThread THCI python script for Thread Certification testing. (#374) 2016-08-14 08:54:02 -07:00
Jonathan Hui 4050c68577 Enable -Wconversion on clang and fix all warnings. (#358) 2016-08-10 11:52:22 -07:00
Buke Po ba813c2ac3 create harness automation (#355) 2016-08-10 10:02:42 -07:00
Robert Quattlebaum c1917179f7 ncp(spinel/SPI): Various additions and documentation updates (#342)
This commit includes some revisions to the spinel protocol, including
the addition of several new properties. It also includes some minor
updates to the SPI protocol, which should reduce ambiguity.

The new properties haven't been implemented in `ncp_base.cpp` yet,
but that will be comming soon.
2016-08-08 15:19:46 -07:00
Robert Quattlebaum 6587132ff2 spi-hdlc-adapter: Don't call syslog() or fprintf() from signal handlers. (#339)
`syslog()` and `fprintf()` are not async-signal-safe. They can (and
do) cause deadlocks under various circumstances.

This change replaces the calls to these functions with calls to
`write()`. It also adds a watchdog of sorts to the `signal_critical()`
handler to make sure that even if we call some functions that
are not async-signal-safe that we will at least terminate eventually.
2016-08-04 18:14:05 -07:00
Robert Quattlebaum 3a694016a1 spi-hdlc-adapter: Fixes for C̅S̅ delay (#338)
This commit makes sure that the specified delay period between
the assertion of C̅S̅ and the start of the SPI clock is enforced.
In order for this to work, both the delay part and the data part
must be in the same `ioctl()` call. The previous code (which used
two `ioctl()` calls) was entirely broken.

The trick is that not all Linux SPI drivers support multi-part
SPI transactions. When `spi-hdlc-adapter` is used with such
devices, the `--spi-cs-delay=0` argument must be added. This causes
the delay part of the transaction to be omitted entirely.
2016-08-04 18:12:45 -07:00
Robert Quattlebaum 3f67c16faf spi-hdlc-adapter: Added better debugging capabilities. (#337) 2016-08-04 16:31:41 -07:00
Robert Quattlebaum 1613de62c4 spi-hdlc-adapter: Fix for HDLC parser state machine. (#335)
We were forgetting to turn off the `unescape_next_byte` flag.

Also changes the default log level from `LOG_WARNING` to
`LOG_NOTICE`.
2016-08-04 13:40:59 -07:00
Robert Quattlebaum fd00339d68 ncp_spi: Updates and fixes (#328)
This change contains changes to both `ncp_spi.*` and
`spi-hdlc-adapter.c`, based on experience with using both on actual
hardware. These changes fix a handful of critical bugs and also adds a
work-around (`--spi-align-allowance`) for naughty SPI-slave hardware.
2016-08-03 18:24:08 -07:00
Robert Quattlebaum 2e31f499d6 spi-hdlc-adapter: Variable naming changes to adhere to style guide (#302) 2016-07-29 17:51:22 -07:00
Robert Quattlebaum 8f8273273d ncp-spi: Add padding byte to SPI header. (#300)
Also fixex HDLC decoding in `spi-hdlc-adapter`.
2016-07-28 21:34:32 -07:00
Robert Quattlebaum 9c0ddf8dda spi-hdlc-adapter: Make interrupt pin active low and add additional logging. (#293) 2016-07-27 23:26:55 -07:00
Marcin K Szczodrak 318fe4b415 turn on warnings and errors (#280) 2016-07-25 21:19:07 -07:00
Robert Quattlebaum c70a3c37ab spi-hdlc-adapter: Bug fixes and updates (#274)
Fixes issues with parsing command line arguments and
also makes the reset pin behavior work properly.
2016-07-22 08:45:54 -07:00
Robert Quattlebaum a36aea4935 spi-hdlc-adapter: Various fixes. (#261)
A more through code review with @abtink revealed several bugs
in the previous implementation. This commit addresses these issues.

Additional changes will likely be necessary once we are able to test.
2016-07-11 19:31:35 -07:00
Robert Quattlebaum 862edfb1de spi-hdlc-adapter: New Linux userspace SPI-HDLC adapter (#232)
`spi-hdlc-adapter` is an adapter tool for using a SPI interface as if
it were an HDLC-lite encoded bidirectional asynchronous serial stream.
It uses the SPI protocol outlined in [Appendix A.2][1] of the Spinel
protocol document.

Note that since we don't have a slave implementation of this protocol,
this adapter hasn't been well tested yet. You have to start somewhere.

[1]: https://goo.gl/bwHt5r
2016-07-06 18:53:33 -07:00