This is the summary of relevant changes throughout different releases.
- nothing yet.
- Support of the Micropython environment
- Micropython and Sim(ulation) implementation for the
gpio
module. - Micropython implementation for
led
. - The
penum
module to provideEnum
,Flag
anddataclass
on Micropython primitives
:Percentage.checkRange()
sysfactory
: Factory classSysFactory
to create instances of system-dependent classes like serial bus and GPIO.systypes
: AddedErrorCode.errNotInited
,.errInitFailed
,.errLowLevelFail
and.errStopped
to reflect corresponding error conditions, occurring e.g. during initilization of the BMA456 sensor.- Module
test.micromenu
to provide a substitute forsimple_term_menu
on Micropython - Unit tests
utaccel
,utactuator
,utbattery
,utbma456
,utbutton
,utdictionary
,utinterruptable
,utpenum
,utpotentiometer
,utpymitter
,utthermometer
- Unit test suite
suiteNoHw
for non-hardware related tests running on any platform
bma456
:- Feature configuration data is outsourced to a corresponding file to save memory.
- Simulation is not always instantiated, but on demand from module+class name.
- Initialization returns more indicative error codes, such as
ErrorCode.errLowLevelFail
orErrorCode.errStopped
accelerometer
:AxesSign
,Tap
andEventSource
mnemonics are now auto-defined instead of hard-coded fix values.Orientation
derivesFlag
, whileTap
is inherited fromEnum
.Data.data
initializes withNone
.battery
:fromPercentage
performs type check and has doc.configurable
: AttributeConfiguration.type
renamed intoConfiguration.item
.dictionary
: Class name is now upper caseDictionary
.gpio
:- Implementation now spreads into platform-dependent sub-modules
GPIO
is a common, abstract interface class, now.- instances are created by
SysFactory.getGPIO()
.
interruptable
:Event
andEventContextControl
are notEnum
, anymore. RenamedEventContextControl
attributes.mcp40
: Implementation to fit the newPotentiometer
interface.potentiometer
: Reworked thePotentiometer
interface into dedicated[get|set][digital|resistance|percentage]()
methods.sensor
:- Renamed
Calibration.type
into.scheme
. SelfTest
is now aFlag
.Sensor
empty interface methodsgetStatus()
,getLatestData()
, andgetNextData()
returnErrorCode.errNotImplemented
now.
- Renamed
serialbus
:- Implementation now spreads into platform-dependent sub-modules
SerialBus
is a common, abstract interface class, now.- instances are created by
SysFactory.getSerialBus()
.
thermometer
:Data.temperature
is now initialized with zero by default.- Module
test.generalTestSuite
usesmicromenu
when running on Micropython
- Module
test.generalTestSuite
does not support Enum types, anymore.
- SMBUS package is no longer supported. Use SMBUS2, instead!
- BLE module was removed. As per ADR, aioble is the preferred BLE API.
- The
fastgait
module should be part of the application.
BMA456.getLatestData
andgetNextData
return aData
object, instead of a list, as defined by theSensor
interface.Dictionary.findKey
really returns a single key, instead of a list.interruptable
:Event.evt*
mnemonics are now strings, and thus, hashable. Consolidated behaviour ofInterruptable.registerInterruptHandler()
and_fire()
.simBMA456
andsimDev
: Implementation fixed and adapted to the newSerialBus
andSensor
behaviour.
- interface for digital potentiometers and implementation for MCP4017/18/19
- ST L6924 battery charger implementation
- STC3115/17 gas gauge implementation, to be completed.
- general test suite helper to ease testing driver implementations.
- convenience function ErrorCode.isOk()
- battery.Level.fromPercentage() to do the conversion
- documented design decisions on error codes vs. exceptions and the order of return values.
- GPIO configuration option to invert the interpretation of a pin-state (LOW-active)
- Button and LED now strip their configuration key prefixes before passing to GPIO.
- Bugs found, when running on a Google Coral mini board.
- change log file
- project meta data URLs
- API documentation on readthedocs.io
- structure of the doc directory
- minor changes in the readme
- Python 3.11 compatibility issues with dataclass default values in module sensor
- Initial revision of the package.