package com.cmvr.edge.client.service;

import cmvr.api.CameraCommand;
import com.cmvr.edge.client.model.EdgeCommonVO;
import io.grpc.stub.StreamObserver;

/**
 * 边缘系统摄像头服务
 */
public interface EdgeCameraService {

    /**
     * 获取相机状态
     */
    public CameraCommand.CameraState status(EdgeCommonVO edgeCommonVO);

    /**
     * 校验相机状态
     */
    public boolean checkStatus(EdgeCommonVO edgeCommonVO);

    /**
     * 开始相机服务
     */
    public String start(EdgeCommonVO edgeCommonVO);

    /**
     * 结束相机服务
     */
    public String stop(EdgeCommonVO edgeCommonVO);

    /**
     * 获取相机图片
     */
    public String getRGBImage(EdgeCommonVO edgeCommonVO);

    /**
     * 开始录制视频
     */
    public String startRecording(EdgeCommonVO edgeCommonVO);

    /**
     * 停止录制视频
     */
    public String stopRecording(EdgeCommonVO edgeCommonVO);

    /**
     * 获取相机图片组
     */
    public String getRGBDImages(EdgeCommonVO edgeCommonVO);

    StreamObserver<CameraCommand.GetRGBImageStreamCommand.Request> getRGBImageStream(EdgeCommonVO edgeCommonVO);

    void getDepthImageStream(EdgeCommonVO edgeCommonVO);
    void getRGBDImagesStream(EdgeCommonVO edgeCommonVO);



}
