Files
@ 1d1fd2ae49bf
Branch filter:
Location: OneEye/overview.md - annotation
1d1fd2ae49bf
1008 B
text/markdown
collector improved
52d1a214c032 52d1a214c032 52d1a214c032 dc1ed8ff56ef dc1ed8ff56ef dc1ed8ff56ef dc1ed8ff56ef dc1ed8ff56ef dc1ed8ff56ef dc1ed8ff56ef dc1ed8ff56ef dc1ed8ff56ef dc1ed8ff56ef 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 52d1a214c032 | Processes and threads
=====================
Processes communicate through MsgQueues (a wrapper around multiprocessing.Queue).
Each owns one incoming and holds any number of outcoming queues.
The queue runs in one thread, reads messages and calls handlers on its owner.
A shutdown is initiated by closing the GUI.
It closes its MsgQueue and exits its mainloop.
End of GUI process is waited on by the Core.
It follows by sending VideoCapture process an "shutdown" order and then waits on its end.
The VideoCapture closes its MsgQueue and sets its main loop for a break with its _shutdown attribute.
Finally the Core closes its MsgQueue and exits.
Core
----
* Main process, starts GUI and VideoCapture. Waits for them to finish.
* Runs ImageAnalyzer and StateBag.
* Messages API:
* putFrame(frame)
* setParams(params)
* fetchFrame(key)
* fetchParams(params)
GUI
---
* Presents data for the user, handles user input.
VideoCapture
------------
* Consumes a video stream, sending captured frames to Core.
|