move method
Implementation
Future<void> move(String profileToken, Vector2D direction,
[Vector1D? zoom]) async {
loggy.debug('move');
Vector1D zoomAdjust = zoom ?? Vector1D(x: 0);
try {
await relativeMove(
profileToken,
PtzVector(panTilt: direction, zoom: zoomAdjust),
null,
);
} catch (err) {
Vector2D? panTilt;
loggy.error('Relative move failed');
loggy.error(err);
loggy.error('Attempting workaround with AbsoluteMove');
final ptzStatus = await getStatus(profileToken);
if (ptzStatus.position.panTilt != null) {
panTilt = Vector2D(
x: ptzStatus.position.panTilt!.x + direction.x,
y: ptzStatus.position.panTilt!.y + direction.y);
} else {
panTilt = Vector2D(x: 0, y: 0);
}
if (ptzStatus.position.zoom != null) {
zoomAdjust = Vector1D(x: ptzStatus.position.zoom!.x + zoomAdjust.x);
}
await absoluteMove(
profileToken, PtzVector(panTilt: panTilt, zoom: zoomAdjust));
}
}