#ifndef  __EV_PTZ_H__
#define __EV_PTZ_H__

#pragma once

#include <maque_motor.h>
#include <string.h>

/// PTZ
#define EV_PTZ_X_DEGREE 355
// N/A for xiongmai camera
#define EV_PTZ_Y_DEGREE 355
// N/A for xiongmai camera
#define EV_PTZ_Z_DEGREE -1


typedef struct ptz_param_position {
    int min_x;     // steps
    int max_x;
    int min_y;
    int max_y;     // steps
    float step_x;  // steps per degree
    float step_y;  // steps per degree
    float current_x_deg; // in number of steps, not degree
    int current_x_steps;
    float current_y_deg;
    int current_y_steps; //
}ptz_param_position;

std::string ptz_service_start();
std::string ptz_service_stop();
std::string ptz_relocate(int x = -1, int y = -1);
std::string ptz_move(std::string dire, float degree);
std::string ptz_get_params(ptz_param_position & param);
std::string ptz_load();
std::string ptz_save();

#endif