# Camera

## CameraInterface service

The SceneController module is able to acquire images by calling the Camera-Interface-Service, that runs as a systemd service on the Linux host.\
When installing the Camera-Interface-Service, it is configured to connect to the desired camera type.

![CameraSetup](https://dev.azure.com/triclouddk/41425339-6cb1-4d0f-8e6c-5514158775a1/_apis/git/repositories/6b6b8a13-5559-495c-bccd-1fa3b670ab26/Items?path=/Documentation/Edge-Module-Documentation/modules/SceneControllerModule/camera.png\&download=false\&resolveLfs=true&%24format=octetStream\&api-version=5.0-preview.1\&sanitize=true\&versionDescriptor.version=wikiMaster)

Currently the Camera-Interface-Service is able to connect and acquire images from the following camera vendors:

* SICK: Supports all MidiCam, MidiCam2, PicoCam and PicoCam2 family cameras
* WebCam: Supports standard web cameras / IP cameras (primarily for testing)

The Camera-Interface-Service is installed on the host by running the following:\
`sudo apt-get install sick-camera-interface`

This will install and run the service and ensure that it restarts if it fails.\
To check the status of the systemd service you can run this command:

`sudo systemctl status cameraInterface.service`

and if you want to see the logs from the systemd service you can use this command:

`sudo journalctl -e -u cameraInterface.service`

The -e paramter will scroll to the end of the journalctl log file, since it can get quite long.

### Manual start

The CameraInterface is installed in the /Tricloud folder of the Linux host.\
It is possible to run the CameraInterface service manually, by running the following command in the /Tricloud folder.

`open_camera <camera type> <options>`

where supported camera types are:\
sick - SICK Camera (Midi / Pico)\
webcam - Generic web camera (default resolution: width = 640, height = 480)

and possible options are:\
-w \<image width in pixels> (default is 640)\
-h \<image height in pixels> (default is 480)\
-c continuous frame mode (default is single frame mode)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tricloudnexus.io/edge/nexus-modules/data-connector-modules/scenecontrollermodule/camera.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
