v0.0.15-Unstable
Pre-release
Pre-release
Multiprocessing fixes for values sync from child to parent process
This release fixes EventDispatcher level Event propagation from child (motor drivers) to parent (your app) process.
Pendings from release v0.0.13:
- micro-stepping modes (always used full step mode) (no change)
- EventDispatcher cross-proccess event propagation from child to parent. Needs testing, probably a few tweaks.
- Check that update position on child process' Controller is visible on Parent Process' Proxy Controller:
Pendings from this release:
- micro-stepping modes (always used full step mode)
- No known major bug. Todo List:
## Todo List
- **EventDispatcher.py**
- Should I add eventId to callee parameters?
- **Navigation.py**
- Find out if -1 works as LOW (normally set to 0) for direction pin.
- GPIO.LOW is not controller specific. Fix with `controller.setDirection(controller.defaultDirection)` or similar.
- This will be called from multiple threads, one per driver. Handle synchronization accordingly. Waits to get all Synchronized controllers to go then coordinates their steps so that all sleep and step at once.
- **Benchmark.py**
- 'u': lambda: self.undoSpeedBoost(controller, speedBoosts)
- Test after library extraction.
- **Controller.py**
- Migrate to [python-periphery](https://pypi.org/project/python-periphery/).
- If `libc.usleep` works, use active wait under 300uS.
- `libc.usleep` fails on my RPI. See `self.usleep()`.
- Check that "-s" still applies. Think it was important for `PWM()`, not used now.
- Client knows targetPosition, would only need currentPosition and realDirection, but not every step. Update sharedMemory.
- **StepperMotor.py**
- Assess removal. (Remove `self.settingsLock = threading.Lock()`.)
- Remove this one.
- **BlockingQueueWorker.py**
- Sync completion. (Return job. Never complete. The child process might end, we don't have visibility. We could use this thread.)
- **AccelerationStrategy.py**
- Find midpoint when steps < 2 * rampSteps.
- PendingSteps == 0 and PPS == minPPS we should be able to stop without rampDown.