| PST SDK 6.0.0.0-272350a

Getting camera images

As with the previous example, to receive image data it is important to make sure the server is started (required only once at the start or after PSTapi/Pause has been called in the meantime). In order to get the image stream, image transfer should be enabled on the PST Tracker first by using PSTapi/EnableImageTransfer. Enabling image transfer will ensure new images are pushed to the image stream buffer.

A typical call sequence in Curl

      curl --header "Content-Type: application/json" --request POST --data "{}" http://localhost:7278/PSTapi/Start
      curl --header "Content-Type: application/json" --request POST --data "{\"Framerate\":30}"  http://localhost:7278/PSTapi/SetFramerate
      curl -X GET http://localhost:7278/PSTapi/GetExposureRange
      curl --header "Content-Type: application/json" --request POST --data "{\"Exposure\":0.0001189}"  http://localhost:7278/PSTapi/SetExposure
      curl --header "Content-Type: application/json" --request POST --data "{}" http://localhost:7278/PSTapi/EnableImageTransfer
      curl -X GET http://localhost:7278/PSTapi/StartRawImageDataStream

Note
  The last two lines should be executed within 4 seconds from each other. Otherwise, EnableImageTransfer will time out and no images will be sent by the PST Tracker.
  When too many streams are opened at the same time, PSTapi/StartRawImageDataStream returns a 429 too_many_requests status code. More information on how to handle this error can be found in the PSTapi/CloseImageStream documentation.

The output of the previous example in a Windows command prompt

Type | message
--- | ---
COMMAND | `curl --header "Content-Type: application/json" --request POST --data "{}" http://localhost:7278/PSTapi/Start`
RESPONSE | `{"message":"Server Started"}`
COMMAND | `curl --header "Content-Type: application/json" --request POST --data "{\"Framerate\":30}" http://localhost:7278/PSTapi/SetFramerate`
RESPONSE | `{"message":"Frame rate set successfully"}`
COMMAND | `curl -X GET http://localhost:7278/PSTapi/GetExposureRange`
RESPONSE | `{"ExposureRange":{"max":0.0024999999441206455,"min":9.9999997473787516e-05}}`
COMMAND | `curl --header "Content-Type: application/json" --request POST --data "{\"Exposure\":0.0001189}" http://localhost:7278/PSTapi/SetExposure`
RESPONSE | `{"message":"Exposure time set successfully"}`
COMMAND | `curl --header "Content-Type: application/json" --request POST --data "{}" http://localhost:7278/PSTapi/EnableImageTransfer`
RESPONSE | `{"message":"Image transfer enabled"}`
COMMAND | `curl -X GET http://localhost:7278/PSTapi/StartRawImageDataStream`
RESPONSE | `data: /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgH...<rest of a base64 char array of the jpeg image 1, frame 0> data: /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgH...<rest of a base64 char array of the jpeg image 2, frame 0> data: /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgH...<rest of a base64 char array of the jpeg image 1, frame 1> data: /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgH...<rest of a base64 char array of the jpeg image 2, frame 1>`