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,8 +104,11 @@ export default {
"camera_stage_mapping", "camera_stage_mapping",
"image_to_stage_displacement_matrix", "image_to_stage_displacement_matrix",
); );
this.csmResolution = await this.readThingProperty("camera_stage_mapping", "image_resolution"); if (csmMatrix) {
let streamResolution = await this.readThingProperty("camera", "stream_resolution"); this.csmResolution = await this.readThingProperty(
"camera_stage_mapping",
"image_resolution",
);
csmMatrix[0][0] = Number(csmMatrix[0][0].toFixed(3)); csmMatrix[0][0] = Number(csmMatrix[0][0].toFixed(3));
csmMatrix[0][1] = Number(csmMatrix[0][1].toFixed(3)); csmMatrix[0][1] = Number(csmMatrix[0][1].toFixed(3));
csmMatrix[1][0] = Number(csmMatrix[1][0].toFixed(3)); csmMatrix[1][0] = Number(csmMatrix[1][0].toFixed(3));
@ -114,10 +117,12 @@ export default {
this.csmRatio = Number((Math.abs(csmMatrix[1][0]) + Math.abs(csmMatrix[0][1])) / 2).toFixed( this.csmRatio = Number((Math.abs(csmMatrix[1][0]) + Math.abs(csmMatrix[0][1])) / 2).toFixed(
3, 3,
); );
// Note [1] then [0] as CSM reports resolution as (y, x)
this.csmFOV = [ this.csmFOV = [
Number(((streamResolution[0] ** 2 * this.csmRatio) / this.csmResolution[1]).toFixed(0)), Number((this.csmResolution[1] * this.csmRatio).toFixed(0)),
Number(((streamResolution[1] ** 2 * this.csmRatio) / this.csmResolution[0]).toFixed(0)), Number((this.csmResolution[0] * this.csmRatio).toFixed(0)),
]; ];
}
}, },
onRecalibrateResponse: function () { onRecalibrateResponse: function () {
this.modalNotify("Finished stage-to-camera calibration."); this.modalNotify("Finished stage-to-camera calibration.");