Skip to content
This repository was archived by the owner on May 3, 2024. It is now read-only.

Scarlet 0.4.0

Compare
Choose a tag to compare
@CaiB CaiB released this 06 Jun 19:50
· 175 commits to master since this release

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(...)
  • 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()
  • 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 before Server.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 require EventTriggered method implementation. These methods have been removed from almost all components.