cameraMovement method

  1. @override
Map<String, dynamic> cameraMovement(
  1. double x,
  2. double y
)
override

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};
}