package com.genersoft.iot.vmp.gb28181.transmit.cmd; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.gb28181.bean.Device; /** * @Description:设备能力接口,用于定义设备的控制、查询能力 * @author: swwheihei * @date: 2020年5月3日 下午9:16:34 */ public interface ISIPCommander { /** * 云台方向放控制,使用配置文件中的默认镜头移动速度 * * @param device 控制设备 * @param channelId 预览通道 * @param leftRight 镜头左移右移 0:停止 1:左移 2:右移 * @param upDown 镜头上移下移 0:停止 1:上移 2:下移 * @param moveSpeed 镜头移动速度 */ public boolean ptzdirectCmd(Device device,String channelId,int leftRight, int upDown); /** * 云台方向放控制 * * @param device 控制设备 * @param channelId 预览通道 * @param leftRight 镜头左移右移 0:停止 1:左移 2:右移 * @param upDown 镜头上移下移 0:停止 1:上移 2:下移 * @param moveSpeed 镜头移动速度 */ public boolean ptzdirectCmd(Device device,String channelId,int leftRight, int upDown, int moveSpeed); /** * 云台缩放控制,使用配置文件中的默认镜头缩放速度 * * @param device 控制设备 * @param channelId 预览通道 * @param inOut 镜头放大缩小 0:停止 1:缩小 2:放大 */ public boolean ptzZoomCmd(Device device,String channelId,int inOut); /** * 云台缩放控制 * * @param device 控制设备 * @param channelId 预览通道 * @param inOut 镜头放大缩小 0:停止 1:缩小 2:放大 * @param zoomSpeed 镜头缩放速度 */ public boolean ptzZoomCmd(Device device,String channelId,int inOut, int moveSpeed); /** * 云台控制,支持方向与缩放控制 * * @param device 控制设备 * @param channelId 预览通道 * @param leftRight 镜头左移右移 0:停止 1:左移 2:右移 * @param upDown 镜头上移下移 0:停止 1:上移 2:下移 * @param inOut 镜头放大缩小 0:停止 1:缩小 2:放大 * @param moveSpeed 镜头移动速度 * @param zoomSpeed 镜头缩放速度 */ public boolean ptzCmd(Device device,String channelId,int leftRight, int upDown, int inOut, int moveSpeed, int zoomSpeed); /** * 前端控制,包括PTZ指令、FI指令、预置位指令、巡航指令、扫描指令和辅助开关指令 * * @param device 控制设备 * @param channelId 预览通道 * @param cmdCode 指令码 * @param parameter1 数据1 * @param parameter2 数据2 * @param combineCode2 组合码2 */ public boolean frontEndCmd(Device device, String channelId, int cmdCode, int parameter1, int parameter2, int combineCode2); /** * 请求预览视频流 * * @param device 视频设备 * @param channelId 预览通道 */ public StreamInfo playStreamCmd(Device device, String channelId); /** * 请求回放视频流 * * @param device 视频设备 * @param channelId 预览通道 * @param startTime 开始时间,格式要求:yyyy-MM-dd HH:mm:ss * @param endTime 结束时间,格式要求:yyyy-MM-dd HH:mm:ss */ public StreamInfo playbackStreamCmd(Device device,String channelId, String startTime, String endTime); /** * 视频流停止 * * @param ssrc ssrc */ public void streamByeCmd(String ssrc); /** * 语音广播 * * @param device 视频设备 * @param channelId 预览通道 */ public boolean audioBroadcastCmd(Device device,String channelId); /** * 音视频录像控制 * * @param device 视频设备 * @param channelId 预览通道 */ public boolean recordCmd(Device device,String channelId); /** * 报警布防/撤防命令 * * @param device 视频设备 */ public boolean guardCmd(Device device); /** * 报警复位命令 * * @param device 视频设备 */ public boolean alarmCmd(Device device); /** * 强制关键帧命令,设备收到此命令应立刻发送一个IDR帧 * * @param device 视频设备 * @param channelId 预览通道 */ public boolean iFameCmd(Device device,String channelId); /** * 看守位控制命令 * * @param device 视频设备 */ public boolean homePositionCmd(Device device); /** * 设备配置命令 * * @param device 视频设备 */ public boolean deviceConfigCmd(Device device); /** * 查询设备状态 * * @param device 视频设备 */ public boolean deviceStatusQuery(Device device); /** * 查询设备信息 * * @param device 视频设备 * @return */ public boolean deviceInfoQuery(Device device); /** * 查询目录列表 * * @param device 视频设备 */ public boolean catalogQuery(Device device); /** * 查询录像信息 * * @param device 视频设备 * @param startTime 开始时间,格式要求:yyyy-MM-dd HH:mm:ss * @param endTime 结束时间,格式要求:yyyy-MM-dd HH:mm:ss */ public boolean recordInfoQuery(Device device, String channelId, String startTime, String endTime); /** * 查询报警信息 * * @param device 视频设备 */ public boolean alarmInfoQuery(Device device); /** * 查询设备配置 * * @param device 视频设备 */ public boolean configQuery(Device device); /** * 查询设备预置位置 * * @param device 视频设备 */ public boolean presetQuery(Device device); /** * 查询移动设备位置数据 * * @param device 视频设备 */ public boolean mobilePostitionQuery(Device device); }