Repository navigation
REST API
The PrintWatch AI plugin provides a REST API for the DWC to interact with.
Description:
Update a setting on the backend
Inputs:
Request Body:
Type: application/json
{
[Optional] api_key : string,
[Optional] printer_id : string,
[Optional] duet_ip : string,
[Optional] camera_ip : string,
[Optional] email_addr : string,
[Optional] test_mode : bool,
[Optional] monitoring_on: bool,
[Optional] notication_threshold : float,
[Optional] action_threshold : float,
[Optional] buffer_length : int,
[Optional] buffer_percent : int,
[Optional] notify_action : bool,
[Optional] pause_action : bool,
}
Output:
Type: application/json
{
status : int = 8000 | 8001
}
Possible values of status are:
8000: Request successful.
8001: Request Error
Description:
Retrieve settings stored in the backend
Inputs: None
Output:
Type: application/json
{
status : int = 8000,
settings : dict = {
"api_key" : "",
"printer_id" : "",
"duet_ip" : "",
"camera_ip" : "",
"email_addr" : "",
"test_mode" : False,
"monitoring_on" : False,
"thresholds" : {
"notification" : 0.3,
"action" : 0.6,
"display" : 0.6
},
"buffer_length" : 16,
"buffer_percent" : 60,
"actions": {
"pause" : False,
"cancel" : False,
"notify" : False,
"extruder_off" : False,
"macro" : False
}
}
}
Possible values of status are:
8000: Request successful.
Description:
Retrieves tracking variables for the active AI loop.
Inputs: None
Output:
Type: application/json
{
status : int = 8000 | 8001,
items : dict = {
status : dict = {
scores : list = [0, 0, 0, ..., 0],
levels : list = [false, false],
buffer : list = [[0, 0, 0], ..., [0, 0, 0]]
}
}
}
Possible values of status are:
8000: Request successful.
8001: Request Error
The scores and buffer responses correspond to the circular buffers used for tracking the defectiveness score. To obtain the most recent value for either list, retrieve the last entry of the list:
most_recent_score = scores[-1]
most_recent_sma = buffer[-1][0] # buffer contains a list of length 3 at each index.
Description:
Retrieves the latest detection preview with bounding boxes drawn.
Inputs: None
Output:
Type: application/json
{
status : int = 8000 | 8001,
items : dict = {
status : dict = {
preview : string = ''
}
}
}
Possible values of status are:
8000: Request successful.
8001: Request Error
The preview output is a base64 encoded image string.
Description:
Force initialize the monitor. This starts the monitoring loop on the backend.
Inputs: None
Output:
Type: application/json
{
status : int = 8000 | 8001,
}
Possible values of status are:
8000: Request successful.
8001: Request Error - the monitor loop already exists
Description:
Force initialize the monitor. This starts the monitoring loop on the backend.
Inputs: None
Output:
Type: application/json
{
status : int = 8000 | 8001,
}
Possible values of status are:
8000: Request successful.
8001: Request Error