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
}
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
PUT /Main/Wavelength
Set new wavelength in nanometers. GDD value will be selected by default logic. Interaction is optional.
Request body
Response 200 OK
PUT /Main/WavelengthAndGDDByPreset
Set new wavelength in nanometers. GDD value will be calculated from the supplied GDD preset curve. Interaction is optional.
Request body
Response 200 OK
PUT /Main/WavelengthAndGDD
Set new wavelength in nanometers. GDD value will be calculated from the supplied GDD preset curve. Interaction is optional.
Request body
Schema of the request body
Response 200 OK
PUT /Main/GDD
Set new GDD for currently set wavelength in fs^2.
Request body
Response 200 OK
PUT /Main/GDDByPreset
Set new GDD for currently set wavelength using supplied GDD preset curve.
Request body
Response 200 OK
PUT /Main/OpenShutters
Open all shutters required for output to leave device.
Response 200 OK
PUT /Main/CloseShutters
Closes all shutters.
Response 200 OK
GET /Main/CurrentGDDRange
Returns calibrated GDD range for currently set wavelength.
Response 200 OK
GET /Main/WavelengthRange
Returns calibrated wavelength range. This value won't change in day-to-day operation.
Response 200 OK
PUT /Main/GDDRange
Returns calibrated GDD range for specific wavelength.
Request body
Response 200 OK
GET /Main/CenterBeam
Starts beam centering procedure.
Response 200 OK
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
Response 200 OK
PUT /Beam/CenterBeam
Starts beam centering procedure.
Response 200 OK
PUT /Beam/MoveBeam/1
Moves first beam control mirror to specified positions. Use /Main/Status .BeamMirrorPositions[0] to get current positions.
Request body
Response 200 OK
PUT /Beam/MoveBeam/2
Moves second beam control mirror to specified positions. Use /Main/Status .BeamMirrorPositions[1] to get current positions.
Request body
Response 200 OK
PUT /Beam/DisableAutoBeamCentering
Disables automatic beam centering after setting wavelength or GDD.
Response 200 OK
PUT /Beam/EnableAutoBeamCentering
Enables automatic beam centering after setting wavelength or GDD.
Response 200 OK
Pump laser
GET /PumpLaser/Status
Returns basic information about pump laser state.
Response 200 OK
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
PUT /PumpLaser/Standby
Pump laser goes to standby state.
Response 200 OK
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
Response 200 OK
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. |