Skip to content

Swagger version

LightComposer - OpenAPI 3.0 1.0.0

API control is provided via a REST interface. API calls between the client and the LightComposer application are sessionless, i.e., there are no handles, control locks or opening/closing of devices. Multiple clients can use the REST service at the same time, and the LightComposer GUI can be used at the same time as well. The remote application sends API commands as HTTP REST requests to the LightComposer application. A response is sent back to the remote application as part of an HTTP exchange. The contents of the REST messages are serialized using JSON. Since REST commands are sessionless they are non-blocking. As a result, commands that take some time to finish (e.g. set wavelength, set GDD, open shutter) are only initiated by the REST command. You can track the progress of these actions by repeatedly polling their status.|-


Servers

Description URL
http://127.0.0.1:35120/YourDeviceSerialNumber/v0 http://127.0.0.1:35120/YourDeviceSerialNumber/v0

Main control


GET /Main/Status

Returns device output status.

Response 200 OK

{
    "Wavelength": 1300,
    "IsWavelengthSet": true,
    "IsPumpLaserReady": true,
    "GDD": 12123,
    "WavelengthSettingState": "Success",
    "PulsePickerDivider": 2,
    "Shutters": {
        "IsShutterOpen": true,
        "Shutters": [
            {
                "Index": 0,
                "IsClosedUntilNotice": false,
                "IsShutterOpen": true,
                "IsHidden": false,
                "Name": "",
                "SharedControlIDs": [],
                "StateExceptUntilNotice": true,
                "UntilNoticeCloseIDs": []
            },
            {
                "Index": 1,
                "IsClosedUntilNotice": false,
                "IsShutterOpen": true,
                "IsHidden": false,
                "Name": "Output",
                "SharedControlIDs": [],
                "StateExceptUntilNotice": true,
                "UntilNoticeCloseIDs": [
                    "SettingWavelength"
                ]
            }
        ]
    },
    "IsBeamSteeringActive": false,
    "BeamPositions": [
        {
            "Distance": 0.7097936629967352,
            "Intensity": 0.6476301843056596,
            "X": 0.6097263240300708,
            "Y": -0.36337426135473616
        },
        {
            "Distance": 0.7097936629967352,
            "Intensity": 0.6476301843056596,
            "X": 0.6097263240300708,
            "Y": -0.36337426135473616
        }
    ],
    "BeamMirrorActualPositions": [
        {
            "X": 0.6097263240300708,
            "Y": -0.36337426135473616
        },
        {
            "X": 0.6097263240300708,
            "Y": -0.36337426135473616
        }
    ],
    "BeamMirrorTargetPositions": [
        {
            "X": 0.6097263240300708,
            "Y": -0.36337426135473616
        },
        {
            "X": 0.6097263240300708,
            "Y": -0.36337426135473616
        }
    ],
    "MeasuredWavelength": 1301.2,
    "PulseDuration": 112.5,
    "Power": 1.45
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "Wavelength": {
            "type": "integer"
        },
        "IsWavelengthSet": {
            "type": "boolean"
        },
        "IsPumpLaserReady": {
            "type": "boolean"
        },
        "GDD": {
            "type": "integer"
        },
        "WavelengthSettingState": {
            "type": "string"
        },
        "PulsePickerDivider": {
            "type": "integer"
        },
        "Shutters": {
            "type": "object",
            "properties": {
                "IsShutterOpen": {
                    "type": "boolean"
                },
                "Shutters": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "Index": {
                                "type": "integer"
                            },
                            "IsClosedUntilNotice": {
                                "type": "boolean"
                            },
                            "IsShutterOpen": {
                                "type": "boolean"
                            },
                            "IsHidden": {
                                "type": "boolean"
                            },
                            "Name": {
                                "type": "string"
                            },
                            "SharedControlIDs": {
                                "type": "array"
                            },
                            "StateExceptUntilNotice": {
                                "type": "boolean"
                            },
                            "UntilNoticeCloseIDs": {
                                "type": "array"
                            }
                        }
                    }
                }
            }
        },
        "IsBeamSteeringActive": {
            "type": "boolean"
        },
        "BeamPositions": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "Distance": {
                        "type": "integer"
                    },
                    "Intensity": {
                        "type": "integer"
                    },
                    "X": {
                        "type": "integer"
                    },
                    "Y": {
                        "type": "integer"
                    }
                }
            }
        },
        "BeamMirrorActualPositions": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "X": {
                        "type": "integer"
                    },
                    "Y": {
                        "type": "integer"
                    }
                }
            }
        },
        "BeamMirrorTargetPositions": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "X": {
                        "type": "integer"
                    },
                    "Y": {
                        "type": "integer"
                    }
                }
            }
        },
        "MeasuredWavelength": {
            "type": "integer"
        },
        "PulseDuration": {
            "type": "integer"
        },
        "Power": {
            "type": "integer"
        }
    },
    "example": {
        "Wavelength": 1300,
        "IsWavelengthSet": true,
        "IsPumpLaserReady": true,
        "GDD": 12123,
        "WavelengthSettingState": "Success",
        "PulsePickerDivider": 2,
        "Shutters": {
            "IsShutterOpen": true,
            "Shutters": [
                {
                    "Index": 0,
                    "IsClosedUntilNotice": false,
                    "IsShutterOpen": true,
                    "IsHidden": false,
                    "Name": "",
                    "SharedControlIDs": [],
                    "StateExceptUntilNotice": true,
                    "UntilNoticeCloseIDs": []
                },
                {
                    "Index": 1,
                    "IsClosedUntilNotice": false,
                    "IsShutterOpen": true,
                    "IsHidden": false,
                    "Name": "Output",
                    "SharedControlIDs": [],
                    "StateExceptUntilNotice": true,
                    "UntilNoticeCloseIDs": [
                        "SettingWavelength"
                    ]
                }
            ]
        },
        "IsBeamSteeringActive": false,
        "BeamPositions": [
            {
                "Distance": 0.7097936629967352,
                "Intensity": 0.6476301843056596,
                "X": 0.6097263240300708,
                "Y": -0.36337426135473616
            },
            {
                "Distance": 0.7097936629967352,
                "Intensity": 0.6476301843056596,
                "X": 0.6097263240300708,
                "Y": -0.36337426135473616
            }
        ],
        "BeamMirrorActualPositions": [
            {
                "X": 0.6097263240300708,
                "Y": -0.36337426135473616
            },
            {
                "X": 0.6097263240300708,
                "Y": -0.36337426135473616
            }
        ],
        "BeamMirrorTargetPositions": [
            {
                "X": 0.6097263240300708,
                "Y": -0.36337426135473616
            },
            {
                "X": 0.6097263240300708,
                "Y": -0.36337426135473616
            }
        ],
        "MeasuredWavelength": 1301.2,
        "PulseDuration": 112.5,
        "Power": 1.45
    }
}

GET /Main/Info

Returns general information about device - SN, application version, etc.

Response 200 OK

{
    "ApplicationVersion": "1.7.0",
    "HasOutputBeamStabilization": true,
    "SN": "CTP19362"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ApplicationVersion": {
            "type": "string",
            "example": "1.7.0"
        },
        "HasOutputBeamStabilization": {
            "type": "boolean",
            "example": true
        },
        "SN": {
            "type": "string",
            "example": "CTP19362"
        }
    }
}

PUT /Main/Wavelength

Set new wavelength in nanometers. GDD value will be selected by default logic. Interaction is optional.

Request body

{
    "Interaction": "IDL",
    "Wavelength": 1301.5
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "Interaction": {
            "type": "string",
            "example": "IDL"
        },
        "Wavelength": {
            "type": "number",
            "format": "double",
            "example": 1301.5
        }
    }
}

Response 200 OK

{
    "CanSet": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "CanSet": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Main/WavelengthAndGDDByPreset

Set new wavelength in nanometers. GDD value will be calculated from the supplied GDD preset curve. Interaction is optional.

Request body

{
    "GDDPresetCuve": "40X OBJECTIVE",
    "Interaction": "",
    "Wavelength": 1700
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "GDDPresetCuve": {
            "type": "string",
            "example": "40X OBJECTIVE"
        },
        "Interaction": {
            "type": "string",
            "example": ""
        },
        "Wavelength": {
            "type": "integer",
            "example": 1700
        }
    }
}

Response 200 OK

{
    "CanSet": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "CanSet": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Main/WavelengthAndGDD

Set new wavelength in nanometers. GDD value will be calculated from the supplied GDD preset curve. Interaction is optional.

Request body

{
    "GDD": -12000,
    "Interaction": "IDL",
    "SpecificGDDOffset": "",
    "Wavelength": 1301.5
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "GDD": {
            "type": "integer",
            "example": -12000
        },
        "Interaction": {
            "type": "string",
            "example": "IDL"
        },
        "SpecificGDDOffset": {
            "type": "string",
            "example": ""
        },
        "Wavelength": {
            "type": "integer",
            "format": "double",
            "example": 1301.5
        }
    }
}

Response 200 OK

{
    "CanSet": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "CanSet": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Main/GDD

Set new GDD for currently set wavelength in fs^2.

Request body

{
    "GDD": -12000
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "GDD": {
            "type": "integer",
            "example": -12000
        }
    }
}

Response 200 OK

{
    "CanSet": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "CanSet": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Main/GDDByPreset

Set new GDD for currently set wavelength using supplied GDD preset curve.

Request body

{
    "GDDPresetCuve": "40X OBJECTIVE"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "GDDPresetCuve": {
            "type": "string",
            "example": "40X OBJECTIVE"
        }
    }
}

Response 200 OK

{
    "CanSet": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "CanSet": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Main/OpenShutters

Open all shutters required for output to leave device.

Response 200 OK

{
    "OK": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "OK": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Main/CloseShutters

Closes all shutters.

Response 200 OK

{
    "OK": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "OK": {
            "type": "boolean",
            "example": true
        }
    }
}

GET /Main/CurrentGDDRange

Returns calibrated GDD range for currently set wavelength.

Response 200 OK

{
    "IsEmpty": false,
    "Max": 1750,
    "Min": 1120
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "IsEmpty": {
            "type": "boolean",
            "example": false
        },
        "Max": {
            "type": "integer",
            "example": 1750
        },
        "Min": {
            "type": "integer",
            "example": 1120
        }
    }
}

GET /Main/WavelengthRange

Returns calibrated wavelength range. This value won't change in day-to-day operation.

Response 200 OK

{
    "IsEmpty": false,
    "Max": 1750,
    "Min": 1120
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "IsEmpty": {
            "type": "boolean",
            "example": false
        },
        "Max": {
            "type": "integer",
            "example": 1750
        },
        "Min": {
            "type": "integer",
            "example": 1120
        }
    }
}

PUT /Main/GDDRange

Returns calibrated GDD range for specific wavelength.

Request body

{
    "Interaction": "IDL",
    "Wavelength": 1301.5
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "Interaction": {
            "type": "string",
            "example": "IDL"
        },
        "Wavelength": {
            "type": "number",
            "format": "double",
            "example": 1301.5
        }
    }
}

Response 200 OK

{
    "IsEmpty": false,
    "Max": 1750,
    "Min": 1120
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "IsEmpty": {
            "type": "boolean",
            "example": false
        },
        "Max": {
            "type": "integer",
            "example": 1750
        },
        "Min": {
            "type": "integer",
            "example": 1120
        }
    }
}

GET /Main/CenterBeam

Starts beam centering procedure.

Response 200 OK

{
    "OK": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "OK": {
            "type": "boolean",
            "example": true
        }
    }
}

Output beem steering


PUT /Beam/QuadrantsExternalTriggerDelay

Set trigger delay for quadrants in microseconds, valid range is 0.01-300 us. Internal use only.

Request body

463.57839157040155
Schema of the request body
{
    "type": "number",
    "format": "double"
}

Response 200 OK

{
    "CanSet": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "CanSet": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Beam/CenterBeam

Starts beam centering procedure.

Response 200 OK

{
    "OK": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "OK": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Beam/MoveBeam/1

Moves first beam control mirror to specified positions. Use /Main/Status .BeamMirrorPositions[0] to get current positions.

Request body

{
    "X": 0.6587631314335219,
    "Y": -0.41866829079513823
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "X": {
            "type": "number",
            "format": "double",
            "example": 0.6587631314335219
        },
        "Y": {
            "type": "number",
            "format": "double",
            "example": -0.41866829079513823
        }
    }
}

Response 200 OK

{
    "CanSet": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "CanSet": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Beam/MoveBeam/2

Moves second beam control mirror to specified positions. Use /Main/Status .BeamMirrorPositions[1] to get current positions.

Request body

{
    "X": 0.017568158459648563,
    "Y": -0.26601723151561674
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "X": {
            "type": "number",
            "format": "double",
            "example": 0.017568158459648563
        },
        "Y": {
            "type": "number",
            "format": "double",
            "example": -0.26601723151561674
        }
    }
}

Response 200 OK

{
    "CanSet": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "CanSet": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Beam/DisableAutoBeamCentering

Disables automatic beam centering after setting wavelength or GDD.

Response 200 OK

{
    "OK": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "OK": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /Beam/EnableAutoBeamCentering

Enables automatic beam centering after setting wavelength or GDD.

Response 200 OK

{
    "OK": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "OK": {
            "type": "boolean",
            "example": true
        }
    }
}

Pump laser


GET /PumpLaser/Status

Returns basic information about pump laser state.

Response 200 OK

{
    "IsPumpLaserReady": true,
    "IsInTransitionalState": false,
    "State": "",
    "PulsePickerDivider": 10
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "IsPumpLaserReady": {
            "type": "boolean",
            "example": true
        },
        "IsInTransitionalState": {
            "type": "boolean",
            "example": false
        },
        "State": {
            "type": "string",
            "example": ""
        },
        "PulsePickerDivider": {
            "type": "integer",
            "example": 10
        }
    }
}

PUT /PumpLaser/TurnOn

Turns on pump laser with required preset. If pump laser is already operational with correct preset this command takes no effect.

Response 200 OK

{
    "OK": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "OK": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /PumpLaser/Standby

Pump laser goes to standby state.

Response 200 OK

{
    "OK": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "OK": {
            "type": "boolean",
            "example": true
        }
    }
}

PUT /PumpLaser/PulsePickerDivider

Set pulse picker divider for pump laser. This will affect OPA output too. Valid values are integers. Set to 1 to emit every pulse, 2 to emit every second one, etc.

Request body

298
Schema of the request body
{
    "type": "integer"
}

Response 200 OK

{
    "OK": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "OK": {
            "type": "boolean",
            "example": true
        }
    }
}

Schemas

CenterBeamBeamSteetingResponsesSchema

Name Type
OK boolean

CenterBeamResponsesSchema

Name Type
OK boolean

CloseShuttersResponsesSchema

Name Type
OK boolean

CurrentGDDRangeResponsesSchema

Name Type
IsEmpty boolean
Max integer
Min integer

DisableAutoBeamCenteringResponsesSchema

Name Type
OK boolean

EnableAutoBeamCenteringResponsesSchema

Name Type
OK boolean

GDDByPresetResponsesSchema

Name Type
CanSet boolean

GDDByPresetSchema

Name Type
GDDPresetCuve string

GDDRangeResponsesSchema

Name Type
IsEmpty boolean
Max integer
Min integer

GDDRangeSchema

Name Type
Interaction string
Wavelength number(double)

GDDResponsesSchema

Name Type
CanSet boolean

GDDSchema

Name Type
GDD integer

InfoResponseSchema

Name Type
ApplicationVersion string
HasOutputBeamStabilization boolean
SN string

MoveBeam1ResponsesSchema

Name Type
CanSet boolean

MoveBeam1Schema

Name Type
X number(double)
Y number(double)

MoveBeam2ResponsesSchema

Name Type
CanSet boolean

MoveBeam2Schema

Name Type
X number(double)
Y number(double)

OpenShuttersResponsesSchema

Name Type
OK boolean

QuadrantsExternalTriggerDelayResponsesSchema

Name Type
CanSet boolean

StandbyResponsesSchema

Name Type
OK boolean

StatusResponseSchema

Name Type
BeamMirrorActualPositions Array<Properties: X, Y>
BeamMirrorTargetPositions Array<Properties: X, Y>
BeamPositions Array<Properties: Distance, Intensity, X, Y>
GDD integer
IsBeamSteeringActive boolean
IsPumpLaserReady boolean
IsWavelengthSet boolean
MeasuredWavelength integer
Power integer
PulseDuration integer
PulsePickerDivider integer
Shutters Properties: IsShutterOpen, Shutters
Wavelength integer
WavelengthSettingState string

StatusResponsesSchema

Name Type
IsInTransitionalState boolean
IsPumpLaserReady boolean
PulsePickerDivider integer
State string

TurnOnResponsesSchema

Name Type
OK boolean

WavelengthAndGDDByPresetResponsesSchema

Name Type
CanSet boolean

WavelengthAndGDDByPresetSchema

Name Type
GDDPresetCuve string
Interaction string
Wavelength integer

WavelengthAndGDDResponsesSchema

Name Type
CanSet boolean

WavelengthAndGDDSchema

Name Type
GDD integer
Interaction string
SpecificGDDOffset string
Wavelength integer(double)

WavelengthRangeResponsesSchema

Name Type
IsEmpty boolean
Max integer
Min integer

WavelengthResponsesSchema

Name Type
CanSet boolean

WavelengthSchema

Name Type
Interaction string
Wavelength number(double)

Tags

Name Description
Main control Set wavelength and GDD, open and close shutters, and get the current device status.
Output beam steering Configure automated output beam steering or perform direct beam steering by controlling the mirror positions directly.
Pump laser Turn the pump laser on and off, set pulse picker and check the laser state.