cameraMovement method
Implementation
@override
Map<String, dynamic> cameraMovement(double x, double y) {
if (initializedCamera.isEmpty) {
return {"isError": true, "message": "Invalid camera operation!"};
}
if (x == 0 && y == 0) {
sendPTZControlCmd(1, true, initializedCamera);
return {"isError": false};
}
double angle = atan2(y, x);
double degrees = angle * (180 / pi);
if (degrees >= -22.5 && degrees < 22.5) {
sendPTZControlCmd(PTZConstants.panLeft, false, initializedCamera);
} else if (degrees >= 22.5 && degrees < 67.5) {
sendPTZControlCmd(PTZConstants.panLeftDown, false, initializedCamera);
} else if (degrees >= 67.5 && degrees < 112.5) {
sendPTZControlCmd(PTZConstants.tiltDown, false, initializedCamera);
} else if (degrees >= 112.5 && degrees < 157.5) {
sendPTZControlCmd(PTZConstants.panRightDown, false, initializedCamera);
} else if (degrees >= 157.5 || degrees < -157.5) {
sendPTZControlCmd(PTZConstants.panRight, false, initializedCamera);
} else if (degrees >= -157.5 && degrees < -112.5) {
sendPTZControlCmd(PTZConstants.panRightTop, false, initializedCamera);
} else if (degrees >= -112.5 && degrees < -67.5) {
sendPTZControlCmd(PTZConstants.tiltUp, false, initializedCamera);
} else if (degrees >= -67.5 && degrees < -22.5) {
sendPTZControlCmd(PTZConstants.panLeftTop, false, initializedCamera);
} else {
sendPTZControlCmd(1, true, initializedCamera);
return {"isError": false};
}
return {"isError": false};
}