The purpose of this page is to layout exactly what elements of SIC are being run and where, why, and how, to gain more insight into the design of the framework. It is not to analyze how face detection works.
...
Code Block | ||
---|---|---|
| ||
run-face-detection |
within a shell
This runs the main() function of face_detection.py, which starts a ComponentManager
assigned to the FaceDetectionComponent
. In this example, this script is ran on the same computer as the rest of the application, although it may be ran on another computer.
...
Code Block | ||
---|---|---|
| ||
# Connect to the services desktop = Desktop(camera_conf=conf) |
within desktop_camera_facedetection.py
Rather than running a ComponentManager
in a separate terminal, the Desktop class (inherits from Device) creates a new thread where its ComponentManager
runs.
...
Same as above, except rather than being its own process this ComponentManager is in a thread belonging to the main application process. Moreover, it also manages a different set of components (microphone, camera, speakers, TTS) than the FaceDetection ComponentManager.
Each component is not really a component, but a connector.
FaceDetection is connected to
...
Initially tries to ping the actual component. Since the actual component has not been started yet, it sends publishes a message over on Redis which is then picked up by its ComponentManager. The associated ComponentManager then starts the actual component.
...