package com.multictrl.modules.business.service;

import cn.hutool.json.JSONObject;
import com.multictrl.modules.business.dto.camera.*;

import java.util.List;

/**
 * 云台相机控制
 *
 * @author Sdy
 * @since 1.0.0 2026/4/28
 */
public interface CameraService {

    //框选变焦
    String frameZoom(String dockSn, FrameZoom frameZoom);

    //切换相机模式
    String modeSwitch(String dockSn, Integer mode);

    //拍照录像
    String photoVideo(String dockSn, String method);

    //画面拖动控制
    String screenDrag(String dockSn, ScreenDrag screenDrag);

    //双击成为AIM
    String aim(String dockSn, AimParam aimParam);

    //变焦
    String focalLengthSet(String dockSn, FocalLengthSet focalLengthSet);

    //重置云台
    String gimbalReset(String dockSn, Integer mode);

    //Look At
    String lookAt(String dockSn, LookAt lookAt);

    //分屏
    String screenSplit(String dockSn, Integer enable);

    //照片、视频存储设置
    String storageSet(String dockSn, StorageSet storageSet);

    //相机曝光模式设置
    String exposureModeSet(String dockSn, Integer mode);

    //相机曝光值调节
    String exposureSet(String dockSn, String value);

    //相机对焦模式设置
    String focusModeSet(String dockSn, Integer mode);

    //相机对焦值设置
    String focusSet(String dockSn, Integer value);

    //点对焦
    String pointFocusAction(String dockSn, PointFocusAction pointFocusAction);

    //红外测温点设置
    String irMeteringPointSet(String dockSn, IrMeteringPointSet irMeteringPointSet);

    //红外测温区域设置
    String irMeteringAreaSet(String dockSn, IrMeteringAreaSet irMeteringAreaSet);

    //相机曝光值调节
    List<JSONObject> getExposureValue();
}
