* ili9341-device.ads - generic driver for display
* ili9341-spi_connector.ads - the chip with SPI interface
* ili9341-device-bitmap.ads - implement Bitmap API on the ILI9341 RAM
* ili9341-rgb_spi_device.ads - display with RGB interface
* Switch to GNAT FSF 12 support
* GNAT FSF 12 in GitHub CI
* Update README.md
* Remove run-time dependency build script that is not compatible with GNAT FSF
This script is also not needed as all the BSPs are included in GNAT FSF.
* add new IO expander MCP23017 (2x8bits), copying the design of the existing MCP23008
* correct casing style issues, revert to parenthesis for array access
* correct more style issues
* new component: the old pcf8574 8bit io-expander.
* correct interface to current HAL (v0.3)
* make address and I2C_Port discriminants, so that variables cannot be declared without initialization
* cleared style issues (missing blanks) and made the type limited
* first working version of a HD44780 LCD driver, based on I2C PCF8574
* use controlling parameter directly in in out mode, not the pointer to class wide
* make the call to Output dispatching
* corrected GNAT style issues
* add support for user defined custom characters
* use standard Adacore copyright notice
* remove unneeded with clause
Uses timing/calibration parameters from github PX4/PX4-Autopilot\
/blob/master/src/drivers/optical_flow/pmw3901/PMW3901.cpp.
* components/src/motion/pmw3901/pmw3901.adb (Initialize): delays to
match PX4 code.
(Calibrate): likewise, plus calibration data.
The current implementation worked fine on the STM32F4, but it could be
because the I2C Mem_Write is not correctly implemented for this
microcontroller.
* Added PMW3901 (flow) sensor support.
Includes general-purpose check for whether this SPI port is clocked.
* components/src/motion/pmw3901/pmw3901.ads: new.
* components/src/motion/pmw3901/pmw3901.adb: new.
* components/src/motion/pmw3901/pmw3901-is_clocked.adb: new. The
check for the associated SPI port being clocked is implemented
as a separate because it really belongs in the Device package.
* PMW3901 driver no longer depends on STM32.
* components/src/motion/pmw3901/pmw3901.ads: remove dependency on
STM32, replace by HAL equivalent.
(Initialize): replace precondition using Is_Clocked to 'not
Is_Initialized'.
(Is_Clocked): removed.
* components/src/motion/pmw3901/pmw3901.adb: likewise.
* components/src/motion/pmw3901/pmw3901-is_clocked.adb: removed.
* PMW3901 copyright/clarity updates.
* components/src/motion/pmw3901/pmw3901.adb: Updated copyright
notice, as requested.
* components/src/motion/pmw3901/pmw3901.ads: Likewise.
(Motion's rep spec): moved to private part, to reduce clutter.
* components/src/range_sensor/VL53L0X/vl53l0x.ads
(Read_Range_Single_Millimeters): made into a generic requiring a
procedure Delay_Milliseconds.
* components/src/range_sensor/VL53L0X/vl53l0x.adb
(Read_Range_Single_Millimeters): calls Delay_Milliseconds rather
than an explicit 'delay until'.
Avoids endless loops waiting for measurement to be indicated.
* components/src/range_sensor/VL53L0X/vl53l0x.ads: Added
postconditions to check that GPIO Functionality has been set as
specified to Static_Init, Set_GPIO_Config.
Added preconditions to check that GPIO Functionality is
New_Sample_Ready (i.e. that there will be such an indication) to
Perform_Ref_Calibration, Start_Continuous,
Start_Range_Single_Millimeters, Range_Value_Available,
Read_Range_Single_Millimeters, Set_VCSEL_Pulse_Period_Pre_Range,
Set_VCSEL_Pulse_Period_Final_Range, Set_VCSel_Pulse_Period.
(Get_GPIO_Functionality): new.
* components/src/range_sensor/VL53L0X/vl53l0x.adb
(Get_GPIO_Functionality): new.
A translation of the Crazyflie Flow Deck (v1) support code.
* components/src/range_sensor/VL53L0X/vl53l0x.ads (Read_Revision): new.
(Start_Continuous): new.
* components/src/range_sensor/VL53L0X/vl53l0x.adb (Read_Revision): new.
(Read_Range_Single_Millimeters): use 1 ms delay in loop while waiting
for Range_Value_Available.
(Start_Continuous): new.
Instead of returning False when a configuration is not supported, users
can call a function beforehand to know if it is supported. The
capability is also now a precondition of the setup procedures.
There are two color formats in HAL.Bitmap, the Bitmap_Color (with Alpha,
Red, Green, Blue components) and the "native" raw value of the pixel.
In the current interface users select a color for each operations (Fill,
Draw_Line, Draw_Circle, etc.) which means each operation has to be
declared twice, one with a Bitmap_Color and one with native pixel value.
Inspired by the Cairo graphics library, this patch add a Set_Source
primitive which allows to specify the color that will be use. Each
drawing operation then uses this color for rendering.
This simplifies the interface since drawing operation only have to be
declared once. It may also allow for more advanced sources in the future
like gradients or textures.