这是一个很好的问题,涉及到了物联网和嵌入式系统的基础知识。在这个问题中,你想要了解的是通过一个APP来控制海康摄像头转动所采用的技术和流程。
首先,让我们来回答你的第一个问题,关于APP控制海康摄像头转动的基本流程。一般来说,这个过程大致是这样的:
- APP发送指令:你的APP会通过某种形式的通信接口(如HTTP、WebSocket、蓝牙等)向海康服务器发送控制指令。这个指令可能是转动摄像头一定的角度,或者执行某种特定的动作。
- 海康服务器接收并处理信息:海康服务器会接收到这个指令,并解析出其中的含义。然后,它会将这个指令转化为对摄像头的具体控制指令。
- 海康服务器通知摄像头转动:海康服务器将控制指令发送到摄像头,摄像头会根据这个指令转动或者执行相应的动作。
然后,对于你的第二个问题,你想要了解的APP---发送并响应仪器状态--》Java(这里修改仪器在数据库的状态)--发送并响应是否成功---》Py--控制--》仪器 这个流程是否可行。
这个流程是可行的,但是需要一些前提条件。首先,你需要确保你的APP能够和海康服务器建立稳定的连接,并且能够发送和接收指令。其次,你需要确保海康服务器能够和摄像头建立连接,并且能够控制摄像头的动作。最后,你需要在Java端修改数据库的状态,这需要相应的数据库操作和权限。
对于是否需要经过Java的问题,如果你只是需要控制摄像头的动作,而不需要修改数据库的状态,那么经过Java可能并不是必要的。但是,如果你需要在Java端进行一些数据处理或者逻辑判断,那么经过Java可能是必要的。
最后,对于是否需要检测Py是否和仪器能否连接的问题,一般来说,如果你能够确保Py和仪器都能够正常工作,那么就不需要检测连接状态。但是,如果你需要确保连接的稳定性或者安全性,那么进行连接检测可能是必要的。
下发的不是旋转角度,下发的是坐标。
摄像头有自己的坐标系,有自己的0,0,有自己的芯片控制两个坐标之间的移动。
一般的摄像头都是平面直角坐标系,出厂设定一个(0,0)点,X轴对应横向电机移动,Y轴对应纵向电机移动。
APP控制时候,按左递进就是x=x-i,右就是x=x+i,操作完成发送(x,y)。摄像头接受坐标后由内部芯片控制移动到该坐标。
没必要反馈,因为用户在看监控画面,监控动了就是反馈。监控与操作是两个互不相关的。
再补充一下,移动也不是操作完成了再最后发,而是每隔一段时间发送该时间段内的最终坐标点。例如摄像头的帧率是30帧,如果APP端有连贯性操作,那么我们每隔(1/(30~60))秒发送APP操作的最终坐标点。分子是秒,分母是帧,分母大于等于摄像头录制帧率,摄像头的流畅性。
最后补充,APP操作虚拟按键的时候是自增、自减,不是绝对坐标值。例如(x-1, y+3),板子会执行(x-1, y+3),不是板子控制电机跑去(-1,3)。
只有APP控制前往指定位置,例如APP之前存储的A画面(150,30),然后要求板子去A画面就会使用绝对坐标。