oresat-olaf

A pythonic CANopen application framework for all OreSat Linux boards

GPL-3.0 License

Downloads
508
Stars
3
Committers
3

Bot releases are hidden (Show)

oresat-olaf - v3.6.0 Latest Release

Published by ryanpdx 5 months ago

Changes

  • Remove natsort dependency with custom function
  • OD webpage now stores index and subindex selections
  • New od_* methods in Node class to read/write values to the OD
  • Replace sdo_* methods and added more in MasterNode class for sending SDOs
oresat-olaf - v3.5.0

Published by ryanpdx 6 months ago

Changes

  • Reorganized repo.
    • All CAN / CANopen code was moved to the new canopen dir.
    • All hardware related code was move the new board dir.
  • All CAN bus / network code was moved out of the Node class to the new CanNetwork class.
  • Replace internal of all CAN sending message method from Node/MasterNode to make use of changes from the new CanNetwork class.

Fixes

  • Fixed CAN bus recovery.
  • Remove over logging from send_tpdo() errors.
oresat-olaf - v3.4.0

Published by ryanpdx 8 months ago

Enhancements

  • Added argument to set the CAN bus type. The "virtual" bus type is upper useful for Mac users and for unit tests. The "socketcand" bus type can be use to remotely connect to FlatSat. Default is still "socketcan".
  • Removed repeated argument parsing code between olaf/__init__.py and run.py, both still have the same functionality.
  • Added time_since_boot value to heartbeat data for MasterNode. Useful for the C3, as it wont be effect by time changes.
  • Added aEeprom class to get hardware info from the Octavo A8's EEPROM. The class is used to try to get the hardware version inolaf_setup(); the value can be overwritten with the -w/--hardware-version runtime flag.

Changes

  • Package version is set using setuptools-scm, which will use git tag (not a manually updated __version__ variable in __init__.py) for versioning. If the package is built of off non-tagged commit, it will include a partial commit hash, and date in the version; e.g.: 0.3.2.dev9+g9afbd58.d20240224.
  • Removed CAN/CANopen docs. See the new CAN/CANopen primers at https://oresat-software.readthedocs.io/en/latest/index.html
  • To support the bus type change, the args for Node and MasterNode did change, but these are generally abstracted away from apps with olaf_setup().
oresat-olaf - v3.3.1

Published by ryanpdx 9 months ago

Fixes

  • Add missing system unix time and uptime sdo callbacks
oresat-olaf - v3.3.0

Published by ryanpdx 9 months ago

Enhancements

  • Add hardware version runtime flag

Changes

  • Add Updater and UpdaterState to main init imports
  • REST API can read writeonly values

Fixes

  • Fix sdo read / writes for MaserNode
  • Fix Updater not adding updates to cache correctly
  • Fix spelling errors in cpufreq functions
oresat-olaf - v3.2.0

Published by ryanpdx 10 months ago

Enhancements

  • TimerLoop now loops at a constant rate
  • Add a reset/ web page
  • cpufreq functions no longer raise error, they just log warnings

Changes

  • Remove values from the /od-all endpoint json message
  • Move the signal catch callback out of App constructor to run method

Fixes

  • Fix adding updates to updater issue
oresat-olaf - v3.1.0

Published by ryanpdx 10 months ago

Enhancements

  • Add isort and black configs, auto-formatted code
  • Add pylama configs and fixed all lint issues
  • Add cancel method to Service, so a service cancel/stop itself on major errors
  • Add status property to Service
  • Add -n/-number run time arg (only used by nodes with number; e.g.: star_tracker_1)
  • Add flag App to disable auto-adding all core services/resources

Fixes

  • Add remote nodes to networks so sdo_read and sdo_write work again

Changes

  • olaf_setup now uses the node name defined by oresat-configs (it still supports NodeId, but NodeId is being deprecated)
oresat-olaf - v3.0.0

Published by ryanpdx 12 months ago

Enhancements

  • Requires oresat-configs now, not eds / dcf files. It is a centralized definition for all CAN messages, C3 beacons. This greatly helps in synchronizing CAN messages between different software / firmware projects.
  • The Gpio class now supports using the label from the card's device tree
oresat-olaf -

Published by ryanpdx about 1 year ago

Enhancements

  • Re-added PRU class to control PRUs
  • Added ADC class to get the values from the Octavo A8 ADCs
  • Added Service class, basically a Resource with a dedicated thread
  • Added Systemd Daemon monitoring/control, useful when another OreSat daemon is on the card
  • Better custom GPIO class (most GPIO libs fail due device tree configurations). It can now handle inputs
  • A master node can now do a SDO read to get a JSON list of the files in fread and fwrite caches
  • OreSat file format datetime is now in milliseconds (was seconds)
  • OD template page now has dropdown for selecting index and subindex
  • Removed setup.cfg in favor of only pyproject.toml

Fixes

  • OD endpoints have better error handling now
  • Fixed app name being None in logs
  • Fixed PDO errors when fread and/or fwrite cache has more than 255 files
oresat-olaf - v2.1.2

Published by ryanpdx over 1 year ago

Hotfix

SDOs actually read and write to the OD now

oresat-olaf - v2.1.1

Published by ryanpdx over 1 year ago

Hotfix

OLAF will set CAN bus bitrate on bus resets. The bitrate must be set before the CAN bus is set to up.

oresat-olaf - v2.1.0

Published by ryanpdx over 1 year ago

Enhancements

  • Better logging of exceptions, the traceback gets logged
  • Remove werkzeug (a Flask dependency) info-level logging
  • REST API unit tests

Fixes

  • OLAF can reset CAN bus when it is in weird states and will now resume sending message out on CAN bus after reset
  • Fixed the default state values of nodes monitored by master node
oresat-olaf - v2.0.1

Published by ryanpdx over 1 year ago

Hotfix

  • Fix logic error when writing a value to OD with no subindex using REST API
  • Added missing NodeStop import to __init__.py
oresat-olaf - v2.0.0

Published by ryanpdx over 1 year ago

What's Changed

  • Overhauled OLAF for master node support
  • Split App into App and Node, where Node is accessible by all resources.

Enhancements

  • App supports master node functionality (send SDOs, monitoring CAN bus, monitoring EMCY messages)
  • SYNC-based TPDOs work
  • RPDOs work
  • Add Logs page to REST API
  • Node has power control options (power off, soft reset, hard reset, and factory reset)
  • Add power control REST API
  • Nodes can send EMCY messages
  • Add basic GPIO class
  • Add home link to all pages
  • Add common CPU frequency functions
  • Add the "Store EDS" standard object (allow the master node to read EDS files over the CAN bus)

Fixes

  • OLAF can handle stopping when there is no CAN bus
oresat-olaf - v1.0.0

Published by ryanpdx over 1 year ago

What's Changed

  • Added a TimerLoop class loop specific periodically. Reworked all core resources to use the TimerLoop class.
  • Reworked starting and stop resources.
  • Added a REST API for insight into the OLAF app. App can add templates to display info and/or control the app.
  • app and new rest_api object are globals included with the library.
  • Running an OLAF app is easier now.

Enhancements

  • A bunch of little bug fixes.
  • Better EDS file.
  • A new_eds script for creacting new EDS file for OLAF apps.
oresat-olaf - v0.3.0

Published by ryanpdx over 2 years ago

What's Changed

  • Rework resource constructor to standardize args.
    • All resource now have access to fread and fwrite cache, the ability to send TPDOs, and a mock hardware flag from runtime args.
  • OLAF scripts are now in package
  • Replaced setup.py with pyproject.toml
  • Added some comments to EDS file
  • Add bus recovery. OLAF can try to restart the CAN bus if needed.

Enhancements

  • PRU unit tests and bug fixes
  • File transfer over CAN unit tests and bug fixes
  • System Info unit tests and bug fixes
  • Clean up of all core resources
oresat-olaf - v0.2.2

Published by ryanpdx over 2 years ago

Hot Fix

Fix long_description to use README.rst

oresat-olaf - v0.2.1

Published by ryanpdx over 2 years ago

Hot Fix

Fix the PDO mapping for PDOs with variables at indexes.

oresat-olaf - v0.2.0

Published by ryanpdx over 2 years ago

What's Changed

  • rename project to OLAF (OreSat Linux App Framework).
  • pypi packge is now called oresat-olaf
  • package is import by just import olaf after install with pip

Enhancements

  • Updater unit tests and bug fixes
  • OreSatFileCache unit tests and bug fixes
oresat-olaf - v0.1.0

Published by ryanpdx almost 3 years ago

Initial release for OreSat Linux App. 🎉