Skip to content

MQTT API🔗

Topic lists🔗

Topic details🔗

actuator🔗

actuator/pump🔗

Control the movement of the pump. The message is a JSON object:

{
  "action": "move",
  "direction": "FORWARD",
  "volume": 10,
  "flowrate": 1
}

This messages make the pump move 10mL forward at 1mL/min.

Another supported message is:

{
  "action": "stop"
}
  • Receive only

actuator/focus🔗

Control of the focus stage. The message is a JSON object, speed is optional:

{
  "action": "move",
  "direction": "UP",
  "distance": 0.26,
  "speed": 1
}

This message makes the stage move up by 10mm.

Another supported message is:

{
  "action": "stop"
}
  • Receive only

imager/image🔗

This topic controls the camera and capture. The message allowed is a JSON message:

{
  "action": "image",
  "pump_direction": "FORWARD",
  "volume": 1,
  "nb_frame": 200
}

Volume is in mL.

This topic can also receive a config update message:

{
  "action": "config",
  "config": {...}
}

A camera settings message can also be received here. The fields iso, shutter_speed, white_balance_gain, white_balance and image_gain are optionals:

{
  "action": "settings",
  "settings": {
    "iso": 100,
    "shutter_speed": 40,
    "white_balance_gain": { "red": 100, "blue": 100 },
    "white_balance": "auto",
    "image_gain": { "analog": 100, "digital": 100 }
  }
}
  • Receive only

segmenter/segment🔗

This topic controls the segmentation process. The message is a JSON object:

{
  "action": "segment",
  "path": "/path/to/segment",
  "settings": {
    "force": False,
    "recursive": True,
    "ecotaxa": True,
    "keep": True
  }
}

action can also be stop. The action element is the only element required. If no path is supplied, the whole images repository is segmented recursively (this is very long!).

force is going to overcome the presence of the file done that is here to prevent for resegmenting a folder already segmented.

recursive will force parsing all folders below path.

ecotaxa activates the export of an ecotaxa compatible archive.

keep allows to remove or keep the roi (when you do an ecotaxa export, no effects otherwise, the roi are kept).

  • Receive only

status🔗

This high-level topic is used to send information to the Node-Red process. There is no publication or receive at this level.

status/pump🔗

State of the pump. It's a JSON object with:

{
  "status": "Started",
  "duration": 25
}

Duration is a best guess estimate. It should not be used to control the other events. If you want to wait for a movement to finish, the best thing to do is to wait for the message Done.

Status can be Started, Ready, Done, Interrupted, Error, Dead.

  • Publish only

status/focus🔗

State of the focus stage. It's a JSON object with:

{
  "status": "Started",
  "duration": 25
}

Duration is a best guess estimate. It should not be used to control the other events. If you want to wait for a movement to finish, the best thing to do is to wait for the message Done.

Status is one of Started, Ready, Done, Interrupted, Error, Dead.

  • Publish only

status/imager🔗

State of the imager. It's a JSON object with:

{
  "status": "Started",
  "time_left": 25
}

Status is one of Started, Ready, Completed or 12_11_15_0.1.jpg has been imaged.

  • Publish only

status/segmenter🔗

Status of the segmentation. It's a JSON object with:

{
  "status": "Started"
}

status is one of Started, Done, Interrupted, Busy, Ready or Dead.

  • Publish only

status/segmenter/object_id🔗

{
  "object_id": "13449"
}

status/segmenter/metric🔗

{
  "name": "01_13_28_232066_0",
  "metadata": {
      "label": 0, "width": 29, "height": 80, ....
}