Commit Graph

463 Commits

Author SHA1 Message Date
James Devine 732971e758 microbit-dal: Added events to MicroBitPin
Added rise, fall, pulse HI and LO events.

The pulse Hi and LO event timestamp given in the MicroBitEvent is the
duration for which the input was HI or LO for.

eventOn(int eventType) is used to configure the events generated
from the pin instance.
2016-04-27 13:59:11 +01:00
James Devine 3923dffffc microbit-dal: increase granularity of the system wide timer
Added an mbed Timer instance to maintain a microsecond level timestamp.

Added a function system_timer_current_time_us() which now returns the
time since power on in microseconds.

MicroBitEvents now call system_timer_current_time_us() giving
microsecond level timestamps.
2016-04-25 11:30:28 +01:00
James Devine 0048a9ac8e microbit-dal: fixed UART service buffer sizing, and re-enabled config options for default services
There was a perspective mismatch with the UART service, where the
actual buffer size given in the constructor, did not reflect the size
of the user buffer that was available to the application. This was not
documented, and hence cause confusion. The patch applied in this
commit, increments the given buffer sizes by one, so that the
application buffer has the available size given in the constructor.

Additionally, some configuration options were lost during the component
refactor, these have now been restored.
2016-04-19 15:41:51 +01:00
James Devine 6a78463791 microbit-dal: bumped to version number to RC2. 2016-04-19 15:12:33 +01:00
James Devine 8875dc35d2 microbit-dal: added yotta configuration mappings to DAL specific configuration options.
Yotta can now be used to configure the configuration options for the
dal.

An full config.json looks like:

{
    "microbit-dal":{
        "bluetooth":{
            "enabled": 1,
            "pairing_mode": 0,
            "private_addressing": 0,
            "open": 0,
            "whitelist": 1,
            "advertising_timeout": 0,
            "tx_power": 0,
            "dfu_service": 1,
            "event_service": 1,
            "device_info_service": 1
        },
        "reuse_sd": 1,
        "gatt_table_size": "0x300",
        "heap_allocator": 1,
        "nested_heap_proportion": 0.75,
        "system_tick_period": 6,
        "system_components": 10,
        "idle_components": 6,
        "use_accel_lsb": 0,
        "min_display_brightness": 1,
        "max_display_brightness": 255,
        "display_scroll_speed": 120,
        "display_scroll_stride": -1,
        "display_print_speed": 400,
        "panic_on_heap_full": 1,
        "debug": 0,
        "heap_debug": 0,
        "stack_size":2048,
        "sram_base":"0x20000008",
        "sram_end":"0x20004000",
        "sd_limit":"0x20002000",
        "gatt_table_start":"0x20001900"
    }
}
2016-04-19 15:02:28 +01:00
James Devine c844e6104a microbit-dal: fixed a warning in MicroBitBLEManager.cpp 2016-04-18 15:25:30 +01:00
James Devine 44b3daeca2 microbit-dal: modified duplicate conflicting ID for MICROBIT_ID_BLE_UART 2016-04-15 14:16:31 +01:00
James Devine 9914a98050 Merge pull request #120 from bluetooth-mdw/master
Added BLE connect/disconnect events and fixed bug in MagnetometerService.cpp

Possible fix for #114
2016-04-15 14:12:19 +01:00
Martin Woolley ae2c351d56 Fixed dodgy comment 2016-04-15 14:00:27 +01:00
Martin Woolley 051abec174 Changed BLE connection event constant names to match LU groovy naming convention 2016-04-15 13:56:23 +01:00
James Devine 7cf98c2290 microbit-dal: patch for fiber_wake_on_event
fiber_wake_on_event used to crash after forking a FOB fiber.

It would attempt to obtain a new fiber context, and would place it on the wait queue.
Then when that fiber was paged in, the context of that fiber would not have been
initialised, as the function presumed schedule would be called immediately after
fiber initialisation.

This patch catches that edge case.
2016-04-15 13:40:41 +01:00
Martin Woolley 87f7233a84 Added BLE connect/disconnect events and fixed bug in MagnetometerService re: bearing characteristic 2016-04-15 13:38:24 +01:00
Joe Finney 94e2c66185 microbit: Additional optional autoClear parameter to MicroBitDisplay::animate
The MicroBitDisplay::animate() and MicroBitDisplayAnimateAsync() function both
assumed that the display should be cleared once the requested animation was
complete.

This patch allows the user to control this funcitonality through an
addiitonal, optional boolean parameter to the animate() and animateAsync()
functions.
2016-04-15 12:37:09 +01:00
Joe Finney 82ed22d1b2 microbit: MicroBitRadio group ID now persists enable/disable operations
MicroBitradio::enable() would reset the group ID of the radio to the default
value on each call. Updated to do this only once at object initialisation time.
2016-04-15 11:33:53 +01:00
Joe Finney a82254b9e2 microbit: MicroBitRadio support for multiple enable/disable operations
MicroBitRadio::disable neglected to reset the internal status flag indicating
that the radio has bene initialised, which prevent subsequent enable()
operations completing properly.
2016-04-15 10:47:40 +01:00
Tom Ball 0639d7df6a Update README.md 2016-04-08 17:29:40 -04:00
James Devine c064eee3e7 microbit-dal: updated module.json to get the latest dependencies from support libs. 2016-04-08 11:45:15 +01:00
James Devine c39a6b3b36 microbit-dal: added default assembler file for armcc for mbed 2.0 compatability 2016-04-08 11:43:30 +01:00
Joe Finney 4159eb0665 microbit: Update to module dependency to include bugfix in ble-nrf51822 2016-04-08 00:06:23 +01:00
Joe Finney 3e72d679c1 microbit: Updated dependencies to use bugfixed Ticker implementation in mbed 2016-04-07 18:01:50 +01:00
James Devine 6702a5f51a microbit-dal: Zero initialised C99 compatible buffers 2016-04-07 17:45:32 +01:00
Joe Finney b5193dbcb7 microbit: BUGFIX - missing NULL initialisation in templated MicroBitListener 2016-04-07 17:41:21 +01:00
James Devine cdeabd26c6 microbit-dal: patched armcc incompatibilities. 2016-04-07 16:57:16 +01:00
Joe Finney 72d2d2b10a microbit: MessageBus now treats all listeners as MESSAGE_BUS_LISTENER_IMMEDIATE if no scheduler is present
The default THREADING_MODE for event handlers is typically set to run through
the scheduler. However, it is possible to create and operate a MessageBus without the scheduler being initialised.

This patch changes the behaviour of the MessageBus to treat all registered
listeners as MESSAGE_BUS_LISTENER_IMMEDIATE (i.e. directly called) if no
scheduler is present. This default allows for a more user friendly experience
in this case.
2016-04-07 11:55:31 +01:00
James Devine 63a8ae81ec microbit-dal: Fixed multiline note which had artefacts in microbit-docs. 2016-04-07 11:32:13 +01:00
James Devine 387c4f18e4 microbit-dal: fixed C99 incompatible array initialisation.
Removed { 0 }; from all buffer initialisations.

Also replaced all uses of Serial::IrqType:: with IrqType::
2016-04-07 11:31:33 +01:00
James Devine 55cb919987 microbit-dal: Added MIT license information. 2016-04-06 17:07:03 +01:00
James Devine 69ae9469bd microbit-dal: removed docs folder in favour of using the new runtime documentation 2016-04-06 15:32:21 +01:00
James Devine e62d99146d microbit-dal: Added AUTHORS, and removed unused CHANGES.md file 2016-04-06 15:08:37 +01:00
James Devine 456b41eed7 microbit-dal: futher updates to readme.md 2016-04-06 14:58:34 +01:00
James Devine d80da8ccce microbit-dal: updated readme.md 2016-04-06 14:54:19 +01:00
Joe Finney fb3e86b67b microbit: Update yotta module.json to reflect release candidate version and MIT license 2016-04-06 10:50:53 +01:00
James Devine ea91e0281a microbit-dal: more doxygen documentation updates. 2016-04-05 23:41:32 +01:00
James Devine d6310db9aa microbit-dal: further updates to doxygen style comments used for documentation 2016-04-04 02:01:15 +01:00
James Devine 2f7d361ed5 microbit-dal: updates to doxygen style comments used for documentation generation. 2016-03-29 08:02:57 +01:00
James Devine 942e6bc0a3 Merge pull request #111 from matthewelse/component-refactor
Fix debugging in UART service
2016-03-27 10:54:08 +01:00
Matthew Else 2664003d23 Fix debugging in UART service 2016-03-27 10:41:47 +01:00
Joe Finney 058a7b0475 microbit: Update to use version of mbed-classic including PortOut bugfix. 2016-03-26 20:31:31 +00:00
Joe Finney d6079d45d2 microbit: Updated SERIAL_DEBUG symbol to a pointer
Moved the global SERIAL_DEBUG symbol from a reference to a pointer. This is to
enable late binding of a debug channel.
2016-03-26 20:31:29 +00:00
James Devine b5c8714ea3 microbit: added BLE UART service
Added a serial implementation for bluetooth, needs a review at a later date.
2016-03-26 19:53:28 +00:00
James Devine 728604423f microbit: refactored event codes used by a shared listener "MICROBIT_ID_NOTIFY"
There was no common place to track event codes used in Events intended
for the shared channel using the ID MICROBIT_ID_NOTIFY. This commit
adds a common place for these Event codes.
2016-03-26 19:39:05 +00:00
James Devine 776131e4cb microbit: BUGFIX for MicroBitStorage
There was a bug with Bluetooth pairing. If a user were to bond with the
micro:bit, and the KeyValueStore region had not been configured, the
class would attempt to write to flash in interrupt context, which
conflicted with soft device.

The fix is to do this initialisation in the constructor for
MicroBitStorage.
2016-03-26 14:06:14 +00:00
Joe Finney 3efd76e9d4 microbit: Update to MicroBitMultiButton contructor signature
Changed ordering of parameters to promote consistency with other components.
2016-03-26 11:58:36 +00:00
Joe Finney 4f31ffa9d4 microbit; Added default case in MessageBus.cpp when scheduler is inactive
Added condition into MicroBitMessageBus::process(), such that all event
listeners are diretly invoked if no scheduler is present.

This provides a best effort base case for builds running without a scheduler.
2016-03-24 23:46:17 +00:00
Joe Finney 0a1a9c7865 microbit: Consistency change in scheduler_init()
Updated parameter of scheduler_init() to accpet a reference to an EventModel,
rather than a pointer. This is simply to promote consistency with the other
components.
2016-03-24 23:30:17 +00:00
James Devine 03a542e684 microbit: updated module.json to point to changes in our mbed-classic repo
module.json has now been updated to include changes to the interrupt
priority of the system ticker, as there were some interoperability
issues with the nordic softdevice stack.
2016-03-24 16:14:02 +00:00
James Devine f35c4b359e microbit: MicroBitLightSensor startSensing is now public! 2016-03-24 16:05:11 +00:00
Joe Finney 06c3c95609 microbit: Restructure of repo
- Introduction of core, drivers, types and bluetooth folders in source and inc
- Added all inc subfolfers to the search path
- Removed MicroBit.cpp and MicroBit.h (yay!)
2016-03-24 14:00:11 +00:00
Joe Finney 2b684c6204 microbit: Added default parameter values to common case operations
MicroBitImage::paste() now assumes the image to be pasted should be positioned
at the top left of the image by default, with no transparency.

MicroBitImage::print() now assumes the char to be printed should be positioned
at the top left of the image by default.
2016-03-24 11:40:20 +00:00
Joe Finney f5f983dbdd microbit: Added explicit support for printing characters in MicroBitDisplay
The C type system connaot easily distinguish integer literals from character
literals. To promote a simpler API, the print() overload for numeric values
has been replaced with an explicit printChar() method.

Print operation on single byte strings have been ammended to act consistently
with printing a single digit.
2016-03-24 11:40:18 +00:00