run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
void run() async {
  await initializeOnvif();
  try {
    final profileToken = argResults!['profile-token'];
    await ptz.gotoPreset(
      profileToken,
      presetToken: argResults!['preset-token'],
      speed:
          argResults?['pan-tilt-x'] != null &&
                  argResults?['pan-tilt-y'] != null
              ? PtzSpeed(
                panTilt: Vector2D.fromString(
                  x: argResults!['pan-tilt-x'],
                  y: argResults!['pan-tilt-y'],
                ),
                zoom:
                    argResults?['zoom'] != null
                        ? Vector1D.fromString(x: argResults!['zoom'])
                        : null,
              )
              : null,
    );
  } on DioException catch (err) {
    throw UsageException('API usage error:', err.usage);
  }
}