Nuvoton M2351 was including generic core_armv8mbl.h from CMSIS - we
need it to be more specific to identify the specific core for
wait_ns. Change to core_cm23.h.
This provides the ability to generate really small delays - it's often
the case that wait_us() takes multiple microseconds to set up, so
having an alternative suitable for <10us delays is useful.
There have been a few local implementations - it makes sense to
centralise them as they need retuning for each new ARM core.
Based on the local implementation inside the Atmel 802.15.4 driver.
Due to targets enhancement some boards failed the general block device tests for flashiap component,
The fails were due to boards containing inconsistent sector sizes.
The tests were modified but should be improved to address the problem.
Rand() function issues were fixed.
Fixes to subscription patterns and filtering, also a timeout on a blocking subscription now raises a CloudTimeoutError not a Queue.empty exception.
Errors received in async-responses will now populate the exception status and reason attributes.
Stopping notifications now terminates cleanly without logging an error.
Two parameters are expected by the template:
- TPalSecurityManager a template class of the security manager of the form TPalSecurityManager<EventHandler>. The GenericSecurityManager is the event handler.
- SigningMonitor a template in the form SigningMonitor<Handler>.
GenericGattClient is parametized by two types:
- The template of the PalGattClient
- The SigningMonitorEventHandler
Note that the PalGattClient template must be of the form PalGattClient<EventHandler>. The event handler being the GenericGattClient.
Expected types are similar to the type expected by the constructor:
- PalGap
- PalSecurityManager
- ConnectionEventMonitorEventHandler
Note that for the PalGap we expect a **template** of the form PalGap<EventHandler>
The interface now lives in ::ble::interface::SecurityManager. The implementation type is expectected to exported as ble ::ble::impl::SecurityManager by the implementation.
The event handler has been extracted out of SigningEventMonitor declaration and SigningEventMonitor instantion requires the implementation and event handler type.
The event handler has been extracted out of SecurityManager declaration and instantion of the interface requires the implementation and event handler type.
The event handler has been taken out of GattClient declaration and an instantiation requires the actual implementation and the type that handle events.
The event handler has been taken out of Gap declaration and the instantiation must provide an implementation and the type that plays the event handler role.