This repository was archived by the owner on May 3, 2024. It is now read-only.
Scarlet 0.4.0
It's finally here!
There are a ton of changes in this release. Lots of new functionality, lots of bug fixes, and quite a few general changes. There are a few potentially breaking changes, but they shouldn't affect too much.
We do apologize for the long delay between releases, we'll try to release much more frequently from here out.
BREAKING CHANGES:
IDigitalIn
no longer requires anything interrupt-related, so that future non-interrupt-capable digital inputs can be implemented.- Use
IInterruptSource
instead (all previous functionality moved here). Current code for adding interrupts will need to do something like this instead:((IInterruptSource)YourDigitalInput).RegisterInterruptHandler(...)
- Use
- Sensors now have a new required method,
public DataUnit GetData()
, and string property,System
, which are used by the new DataLog system. This only affects those of you who have custom sensors that have not yet been integrated into Scarlet (get on that!)- As a result, some methods have been renamed to make space for this new standardized one:
MPU6050
:MPUData GetData()
->GetReading()
VEML6070
:int GetData()
->GetReading()
- As a result, some methods have been renamed to make space for this new standardized one:
Components.Sensors.Encoder
removed. It wasn't functional anyways.
Features:
- New DataLog system allows for easier logging of sensor and other telemetry data to CSV.
- Added
RGBLED
component - Added
PCA9685
16-ch PWM output component - Added
INA226
current sensor component - Added TestSuite, for testing various functionality on real hardware
- Added
VH400
soil moisture sensor component - Added 16b I2C methods to
I2CBusPi
- Added
UtilData.SwapBytes()
(useful for 16b I2C) - Added
VESC
motor controller component - Working CAN implementation
- Also supports Extended CAN
- Added
UARTFileBusBBB
IO system - Added CRC16 calculator to
UtilData
- Added
LS7366R
encoder counter component beta implementation - Implemented
ByteParser
Bug Fixes:
StateStore
can now handle post-save-crash operations, and will warn the user if there was an issue saving last time, then automatically recover the past data.- Fixed
TalonMC
output math - Fixed crash if
Server.Stop()
is called beforeServer.Start()
- Fixed operation order for motor controller shutdown
- Made I2C register reads on Pi actually happen (nothing was being done before, doh)
- Fixed long startup time on dynamic filters
- Fixes issue preventing Cytron motor controller working properly
- "Fixed" MTK3339 GPS issues
Other:
IPWMOutput.SetFrequency()
now takes a float instead of int, but only some platforms/devices will support decimals. Other platforms will simply round.IMotor
,ISensor
,IServo
,ISubsystem
no longer requireEventTriggered
method implementation. These methods have been removed from almost all components.