Most of the implementation is now in pxt-common-packages. The packet format has changed is now more structured. There is also a few additional protocol-level features (broadcast commands, optional ACKs, and packing of multiple packets into a single frame).
Also adds the following APIs:
* `buffer.hash()` using FNV-1 hash
* `buffer.equals()`
* `buffer.chunked()` which splits buffer into pieces of given size
* `buffer.isReadOnly()`
* `Buffer. chunkedFromUTF8()` which takes strings and returns a list of buffers up to max given size (it respects character boundaries)
Also adds support for jacdac-over-SPI screens.
* pulling in jacdac-ts
* updated instructions
* fix path
* adding dummy c++
* adding function get/set for bytes
* account for file rename
* almost compiling..
* updated signature
* override jacdac options correctly
* Now building... on samd21
* updated getpacket layer
* Update c++, add jacdactimer and add console service to pxt.json
* add start call
* add nullptr check
* jacdac-ts working with makecode
* adding bus stop, isRunning, state
* Jacdac ts migrated (#783)
* mostly moved everntying into jacdac
* more build issues
* inheriting
* sim support
* remove invalid enum
* removing battery
* more refactoring
* a bunch of updates
* more fixes
* bump jacdac-ts
* raise event when jacdac incoming
* bump minor
* 6.6.1
* adding link script
* missing pixel
* c++ fix
* fix lcd
* sketch of console service
* adding mode
* fixing more console things
* cleanuip
* fixing debugg
* removed getState
* fix signature
* protect log
* start jacdac on start
* typo
* adding stop
* fix .ctor
* more logging
* missing addAvertisementData
* fixed auto-stop, missing define name
* support for debbuger usb
* adding callback for JD
* added comment
* console.warning -> console.warn
* use jacdac console service
* enable logging in debugger
* fix arcade build
* use new send method
* set physical layer on the usb driver (there's no common singleton anymore...)
* tweaks
* Add optional pin configurations to pins (like active lo)
* update ctor to account for active lo pins
* typos
* inline constant
* fixing arcade debugger
* fixing controller build
* adding keyvalue store impl
* save/load name
* handle name
* add missing shims
* fixing sim
* add a bit of logging
* adding light color jacdac service
* fix keyboard client
* updated links
* moving out debug views
* updated jacdac dependency number
* reduce default brightness
* adding color detection
* KeyValueStorage: store length alongside string
* Add identification functionality
* adding light sensor
* refactor
* adding leveldetector
* added level detector
* Add servo advertisement data to servo jacdac
* Fix tsl2591
* adding proxmity driver
* adding events
* patches to prox sensor. Trying to debounce it because we're getting some junk
* add one register for high precision mode (future work)
* adding light spectrum client
* fix event id
* cleanup identification service
* slow down streaming
* clean color sensor
* do HSV in a neopixel compatible way
* clean
* cleanup
* fix rainbow
* updated default value
* adding multibuttons
* optimize setbrightness
* fix
* support more events
* request update before accessing acceleraomter data
* support for custom gestures
* handle missing context
* guard webusb jacdac
* enable custom gestures
* update custom event id
* Lightransitions (#810)
* adding transition player
* update transitions
* removing logging
* onidle context fix
* fix transitions
* fix transitions
* use start stop brightness
* add yoyo
* added repeat
* support all button events on tattoo
* adding multi-servo support
* fix events
* specify required devince name
* requiredDevicename
* fixing servo
* export SparkleAnimation construcotr
* support for sensor calibration
* expose more animations
* add api to stop brightness transition
* send byte aligned buffers in jacdac
* fixing build
* remove extra logging
* copyright notice
* Fix compile for arcade
* adding lienear gradient api
* NVM Controller does not work on samd51
* updated pxt version
* update debugger.ts to new consoleService apis
* Begin work on debugger interface, start with diagnostics...
* adding sim support
* fix i2creadreg
* create a blank JDDiagnostics if no bus exists
* use internalOnEvent for jacdac-ts
* fix build
* add jacdac timer to samd51
* Fix endless spin due to competition over Sercoms
SPI neopixel would compete with i2c over the same sercoms. The correct patch here would be to use SERCOM4 for neopixel, but for now just use the .h version of the neopixel driver.
The minimum size required to use spi neopixel has increased to 24 bytes, which is 8 rgb values.
* bump arcade
* restore ifdefs in light.cpp (didn't realise it would affect all platforms)
* fixup bad change to light.cpp
* start bus before the control layer
* comment out controller service
* WIP: debugger.ts
Also:
* fix CFG_ keys for BTNMX; change encoding there of buttons
* shut down neopixels on pybadge on startup (using SPI)
* try to limit heap fragmentation more (at some runtime cost)
* rework getting bootloader config data (for newer bootloaders)
* use the new codal timers
* `config.ts` now overrides bootloader settings, not the other way around
* adding client suffix
* refactored iterval
* renaming enums
* adding help to bind button to controller
* fix number of pins
* updated namespaces
* pop game when connecting
* formatting
* collect player index
* auto-start service
* cleaner add remove of drivers
* handling server timeout
* better restart logic
* udpated text
* longer period
This is in support of PXT GC
Also:
* add `control.dmesgValue()`
* add `control.gc()`
* add `control.profilingEnabled()`
* add `control.dumpPerfCounters()`
* add pseudo-API `control.enablePerfCounter()` (enables profiling for function if present; handled by compiler)
* add `JSON.parse` and `JSON.stringify` (in TS)
* adjust to codal `master`
* synchronous handlers for collisions (this will need to be changed to drop-when-running) CC @riknoll
* frowny face on panic on hardware
Adds support for STM32F401 (from maker), also:
add support for ST7735 screens (moved from maker)
support getting settings from bootloader area
add config-indirect versions of getPin and getButton functions
minor fixes to dialogs to align color and mono versions
* Start on pinouts in TS
* Define pins in TS
* Add BOARD_LAYOUT and friends
* Remove board layout - probably won't be needed
* Converting to const format
* Zero config moved to metro-express/device.d.ts
* Hack in touch; CPX config moved
* Move touch pin config to board package
* Add dal.d.ts config
* Use pin names
* Buttons now allocated dynamically
* Add CFG_PIN_A**
* Align buttons with simulator
* Button simplification
* New syntax for board configs
* Trinket moved out
* Allow getting buttons attached to pin instances
* New codal fixes
* SWD debugging fixes
* Avoid button crash
* Bump to 0.11.0
* 0.11.1
* Great renaming
* More renamings and fixes
* mbed::Pin...
* Fix i2c
* Additional checks on ref-counts
* Disable dbg output
* Fix include file name
* Start split of core into base and core
* Move more stuff over
* Change ref-tags
* Define own buffer and string
* First draft builds
* Add remiaining files
* Move stuff to core/control.cpp
* Rebuild shims
* Rebuild .d.ts again
* Use new Buffer apis
* Fix dep
* List all target functions in one place
* Move AnimationQueue from base to core
* Do not rely on the C++ map<> class in event handlers
* Do not rely on C++ vector
* Fix refmap destroy code
* Simplification
* Limit std C++ includes
* Implement swap()
* Move AnimationQ back to base
* Refactor number read/write methods for buffers so they can be used on other pointers
* Add Buffer.toHex()
* Change sim file paths to reflect the split of files into core and base
* Update the major version
* Depend on the latest pxt-core version
* 0.9.1