* Fix scanning behavior with default channel. Change logic around otPlatRadioGetTransmitBuffer so that the buffer becomes the property of OT post call. The MAC will keep a pointer to the tx buffer and pass it into otPlatRadioTransmit. This change should make the notion of retrying the transmit operation with the same buffer more intuitive.
* Clean up and move project files to universal platform. Adds arm to appveyor
* A couple of project file fixes
* Use props file for common configuration
* Add Coap Resources ACTIVE_GET and PENDING_GET to all devices
* Add 'address' parameter to dataset mgmtgetcommand CLI
* Use the specified destination address when sending MGMT_ACTIVR_GET.req and
MGMT_PENDING_GET.req, default to use Leader ALOC if the destination is not specified
* THCI update to take the destination address as a parameter in mgmtget API
Currently mbedtls has been integrated into openthread. However, this
package could be already present in the system so add a flag to enable
or disable the builtin version of mbedtls. By default, the builtin
version is enabled to keep the current behaviour.
Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com>
This is the first of the Windows implementation code that will be merged. This is only the driver code.
Also note the updates to the appveyor configuration. It now builds, installs and queries the status of driver directly on the build machine. Then it builds an 'artifact' which is essentially the binaries packaged up.
* Store active dataset and pending dataset in non-volatile memory.
* Retrieve active dataset and pending dataset from non-volatile memory after each reboot.
* Leader will generate the active dataset if it is not initialized.
* Clear pending dataset after it replaces active dataset.
* Create different pseudo flash files for posix nodes.
This change is attempting to address two issues:
1. Returning `kThreadError_Busy`, when `kThreadError_Already`,
`kThreadError_InvalidState`, or even the lazy
`kThreadError_Failed` would be more-appropriate/less-misleading.
2. Setters returning an error when the value to be changed is already
set to the requested value.
Number one hurts debuggability. Number two makes the code more fragile.
The cases where both intersect can be maddening.
This change replaces cases inappropriately returning
`kThreadError_Busy` with a better, more specific error code. It also
makes some "setter" functions (Including `otInterfaceUp()` and
`otThreadStart()`) return success if the value is already set.
- Call otPlatRadioReceive() on SetChannel().
- Only call NextOperation() in the idle state.
- Call otPlatRadioReceive() with the proper channel in HandleBeginTransmit().
- Remove unnecessary mBeginTransmit tasklet.
These changes address various issues found in the POSIX platform UART
driver which lead to the process not terminating properly when the
parent dies or closes `stdin`/`stdout`. Some of the errors could even
lead to unexpected program termination.
Among the various errors corrected are:
* Using `assert()` to terminate under normal operating conditions.
* `posixUartProcess()` only checked `s_in_fd` for readability and
did not check `s_out_fd` for writability. It also caused data
corruption if `write()` ever returned less than all of the bytes
sent.
* `ISIG` was being set on the termios flags. This can cause problems
when the serial API is used for binary data (Like when used with
the NCP app). (This requires the CLI be explicitly able to be able
to handle CTRL-C when built for POSIX)
* Socket errors weren't being tracked on `select()`.
* The platform main loop would (possibly) terminate if `select()`
failed with `EINTR`, which makes it difficult to attach to the
process with a debugger.
This commit changes the `NcpSpi` class implementation such that SPI
tx frame preparation always happens from the same task `mPrepareTxFrameTask`
This ensures that the callbacks to base class `Ncp` are also invoked from the
the same task (and not from the the task calling `OutboundFrameEnd()`).