Fix CSM settings from erroring

CSM settings was erroring due to reading properties that don't exist and calculating
using nulls.
This commit is contained in:
Julian Stirling 2025-11-04 20:05:27 +00:00
parent c2b8706fb5
commit e71a25733b

View file

@ -104,20 +104,25 @@ export default {
"camera_stage_mapping",
"image_to_stage_displacement_matrix",
);
this.csmResolution = await this.readThingProperty("camera_stage_mapping", "image_resolution");
let streamResolution = await this.readThingProperty("camera", "stream_resolution");
csmMatrix[0][0] = Number(csmMatrix[0][0].toFixed(3));
csmMatrix[0][1] = Number(csmMatrix[0][1].toFixed(3));
csmMatrix[1][0] = Number(csmMatrix[1][0].toFixed(3));
csmMatrix[1][1] = Number(csmMatrix[1][1].toFixed(3));
this.csmMatrix = csmMatrix;
this.csmRatio = Number((Math.abs(csmMatrix[1][0]) + Math.abs(csmMatrix[0][1])) / 2).toFixed(
3,
);
this.csmFOV = [
Number(((streamResolution[0] ** 2 * this.csmRatio) / this.csmResolution[1]).toFixed(0)),
Number(((streamResolution[1] ** 2 * this.csmRatio) / this.csmResolution[0]).toFixed(0)),
];
if (csmMatrix) {
this.csmResolution = await this.readThingProperty(
"camera_stage_mapping",
"image_resolution",
);
csmMatrix[0][0] = Number(csmMatrix[0][0].toFixed(3));
csmMatrix[0][1] = Number(csmMatrix[0][1].toFixed(3));
csmMatrix[1][0] = Number(csmMatrix[1][0].toFixed(3));
csmMatrix[1][1] = Number(csmMatrix[1][1].toFixed(3));
this.csmMatrix = csmMatrix;
this.csmRatio = Number((Math.abs(csmMatrix[1][0]) + Math.abs(csmMatrix[0][1])) / 2).toFixed(
3,
);
// Note [1] then [0] as CSM reports resolution as (y, x)
this.csmFOV = [
Number((this.csmResolution[1] * this.csmRatio).toFixed(0)),
Number((this.csmResolution[0] * this.csmRatio).toFixed(0)),
];
}
},
onRecalibrateResponse: function () {
this.modalNotify("Finished stage-to-camera calibration.");