3.9. REST API#

The GMSL2-10GbE conversion module has REST API interface. The available API are described in this section.

3.9.1. Overview#

The connection destination is described in the below.

  • protocol: http

  • hostname: assigned-ip-address or kria-gmsl.local

  • Port: 3000

Therefore, the URI for the REST API is http://kria-gmsl.local:3000/<URI-path>.

In case the parameter is needed, it must be JSON format. it must be included in content-type header.

3.9.2. Available endpoints#

3.9.2.1. Setting up the C1 camera#

Description:

Setting up the image output configurations for the C1 camera

Request:

POST /setup-cam1

Parameters:

N/A

example:

curl -X POST http://kria-gmsl.local:3000/setup-cam1

3.9.2.2. Setting up the C2 camera#

Description:

Setting up the image output configurations for the C2 camera

Request:

POST /setup-cam2

Parameters:

N/A

example:

curl -X POST http://kria-gmsl.local:3000/setup-cam2

3.9.2.3. Applying timestamp#

Description:

Configure the timestamp

Request:

POST /apply-timestamp

Parameters:
  • timestamp: Apply a custom timestamp or not.

    • 0: Not apply

    • 1: Apply

  • frame: Position of the timestamp.

    • 0: End of the frame

    • 1: Start of the frame

example:

curl -d '{"timestamp":"1","frame":"1"}' -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/apply-timestamp

3.9.2.4. Configure the frame synchronization settings (all cameras)#

Description:

Configure the frame synchronization pulse settings (frequency, duty cycle and offset). This is applied for all cameras.

Request:

POST /command

Parameters:
  • frequency: Output frequency of the pulse.

  • duty_cycle: Duty cycle of the pulse.

  • offset: Offset

    The example of the parameter is shown in the below.

    {
    "data":{
        "trigger_mode":"triggered",
        "deserializers":{
            "p1":[
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"0"
                }
            ],
            "p2":[
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"10000000"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"20000000"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"25000000"
                },
                {
                "frequency":"20",
                "duty_cycle":"20",
                "offset":"30000000"
                }
            ]
        }
    }
    }
    

    To set the cameras for free-run mode, set the following parameters.

    {
    "data":{
        "trigger_mode":"free-running",
        "deserializers":{
            "p1":[
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                }
            ],
            "p2":[
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                },
                {
                "frequency":"0",
                "duty_cycle":"20",
                "offset":"0"
                }
            ]
        }
    }
    }
    
Example:

curl -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/command -d @trigger.json

Assuming that the json above is stored as trigger.json

3.9.2.5. Configure the frame synchronization pulse for a single camera#

Description:

Configure the frame synchronization pulse settings (frequency, duty cycle and offset) for a single camera.

Request:

POST /save-single

Parameters:

{index, frequency, duty_cycle, offset, fsync_source}

Example:

3.9.2.6. Start streaming the C1 from P1#

Description:

Start image streaming of C1 camera from P1 port of the board.

Request:

POST /streaming-cam1-des1

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/streaming-cam1-des1

3.9.2.7. Start streaming the C1 from P2#

Description:

Start image streaming of C1 camera from P2 port of the board.

Request:

POST /streaming-cam1-des2

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/streaming-cam1-des2

3.9.2.8. Start streaming the C1 from both deserializer prot#

Description:

Start image streaming of C1 camera from both P1 and P2 port of the board.

Request:

POST /streaming-cam1-des12

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/streaming-cam1-des12

3.9.2.9. Start streaming the C2 from P1#

Description:

Start image streaming of C2 camera from P1 port of the board.

Request:

POST /streaming-cam1-des2

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/streaming-cam2-des1

3.9.2.10. Stop streaming#

Description:

Stop streaming the camera stream from all ports

Request:

POST /stop-streaming

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/stop-streaming

3.9.2.11. Update System Time#

Description:

Retrieves the local time via an HTTP request and updates the system time.

This is equivalent to corresponding GUI control

Request:

POST /update-time

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/update-time

3.9.2.12. Start PTP-based synchronization#

Description:

Starts the ptp4l slave (client) program on eth0.

This is equivalent to corresponding GUI control

Request:

POST /sync-ptp

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/sync-ptp

3.9.2.13. Sync System Clock to PHC#

Description:

Starts a program that updates the system clock based on the PHC time.

This is equivalent to corresponding GUI control

Request:

POST /sync-phc

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/sync-phc

3.9.2.14. Stop PTP-based Synchronization#

Description:

Stops the ptp4l slave program.

This is equivalent to corresponding GUI control

Request:

POST /stop-ptp4l

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/stop-ptp4l

3.9.2.15. Stop PHC to System#

Description:

Stops the PHC-based system.

This is equivalent to corresponding GUI control

Request:

POST /stop-phc2sys

Parameters:

N/A

Example:

curl -X POST http://kria-gmsl.local:3000/stop-phc2sys

3.9.2.16. Applying exposure settings for cameras#

Description:

Applying exposure time settings for each camera.

This is equivalent to corresponding GUI control

Request:

POST /apply-exposure-cam<X>

can be from 0 to 7.

Parameters:

expCam<X>: 0 - 33000, [usec]

Example:

curl -d '{"expCam0":11000}' -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/apply-exposure-cam0

This sets camera 0 exposure time to 10msec.

3.9.2.17. Enabling / Disabling auto exposure#

Description:

Enabling / Disabling auto exposure settings for each camera.

This is equivalent to corresponding GUI control

Request:

POST /apply-auto-exposure-cam<X>

can be from 0 to 7.

Parameters:

autoExpCam<X>:

  • 0: Disable

  • 1: Enable

Example:

curl -d '{"autoExpCam0":1}' -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/apply-auto-exposure-cam0

This enables auto exposure for camera 0

3.9.2.18. Enabling / Disabling distortion correction#

Description:

Enabling / Disabling distortion correction settings for each camera.

This is equivalent to corresponding GUI control

Request:

POST /apply-dist-corr-cam<X>

can be from 0 to 7.

Parameters:

distCorrCam<X>:

  • 0: Disable

  • 1: Enable

Example:

curl -d '{"distCorrCam0":1}' -H "Content-Type: application/json" -X POST http://kria-gmsl.local:3000/apply-dist-corr-cam0

This enables distortion correction for camera 0