Skip to content

v.0.0.20

Latest
Compare
Choose a tag to compare
@juanmf juanmf released this 10 Mar 15:49
· 4 commits to main since this release

Release Notes - Version 0.0.20 (Stable)

Overview

This release introduces several new features, enhancements, and bug fixes to improve the overall stability and functionality of the application. As well as several newly tested drivers (see doc/demo & README), and several bug fixes.

Multiprocess implemented for dedicated process driving a set of motors up to 2 child processes should be safely spawned, each driving multiple controllers, max number will depend on max PPS sent, on a RPi 4B 2 controllers can be pulsed at min period of 30uS, if no callables are provided.

New Features (from MVP v0.0.6)

  • BlockingQueueWorker:
    • Formal Job definition.
    • WorkChain (sequenced execution of Jobs). Also available in multiprocess scenario.
  • Controller:
    • signedSteps() to accept signet in number of steps. Proxy for CW vs CCW rotation (-) is CCW, (+) is CW.
    • moveTo() for absolute positioning in steps, from 0 to )SPR.
    • Stepping Event prefixes. See demo files MultiProcessPolarCoordinatesSample.
    • Support for sleep/disable mode after stepping useHoldingTorque constructor param (and inferred too from enableGpioPin & sleepGpioPin parameters).
    • Uses MultiprocessObserver to sync jobs execution to proxy BlockingQueueWorker in MainProcess. (Client code can use Driver proxies transparently and block on proxied jobs as if those were running locally.)
  • Logging:
    • tprint() function to buffer outputs in a Thread Local fashion.
    • flush_streams() function to dump logs from all threads when convenient. (Avoiding using print at critical times!)
    • more handy functions, check ThreadOrderedPrint
  • Exit handlers to kill lingering threads and processes. see atexit_handlers
  • Changed Timing to monotonic_ns
  • EventDispatcher
    • can now reguster multiple events to same handler in one register(eventName=[eName1,...,eNameN], callee) call
    • Event propagation from child process to MainProcess.
  • Multiprocess: sets of Controllers can be initiated in dedicated process. see demo MultiProcessPolarCoordinatesSample
  • StepperMotor:
    • Added Builder to GenericStepper to make it easy to configure custom stepper definitions.

New implementations

Added implementations for best seller motors and drivers. see README and demo files.