Android作为host端控制云台摄像头整个实现过程中涉及了Android kernel底层UVC部分,Android kernel代码的编译,USB协议,Android JNI方面的知识。

刚开始项目提出这个需求的时候,想到的是通过Android原生的USB API 去控制外接的USB PTZ摄像头,因为大多数的云台摄像头支持pelco-d或是pelco-p协议,而Android提供的接口可以传递byte[]类型的参数过去,设想通过这种方式实现控制。现在回想起来这个方法真是too young to naive。因为Android kernel层是通过UVC(usb video class)协议取控制摄像头PTZ,需要走这一套逻辑才能实现。

由此思路开始转到通过Android UVC来控制摄像头转动,但是google了大大小小的网站没有人做过这个东西,侧面也在一定程度上说明了需求足够操蛋。UVC在Android的kernel层,但是怎么去验证这个东西呢,就想到了有Ubuntu,而Ubuntu上面有一个工具uvcdyctrl 可以输入对应的参数控制摄像头,于是通过这个工具验证了在linux下控制云台转动的可能性。

紧接着要解决的是如何把这个可能性移植到Android上,从前期的实践看,是需要查看kernel层的实现,kernel层的参数是否实现了相对和绝对的控制;如果kernel层实现了,怎么把这个实现传递到app层面,让app可以输入参数控制转动。

现在思路很清晰了,就是打通从kernel到app的通道,实现控制,将app层的控制指令传递到kernel,由kernel将控制字节传递到硬件。

接下来的文章是:

  • 1、探索Android UVC协议;

  • 2、研究UVC控制协议;

  • 3、定制Android kernel UVC部分支持相对和绝对参数;

  • 4、编写Android jni代码实现控制PTZ。

更多相关文章

  1. Android中AsyncTask异步加载
  2. Android中AlarmManager的使用
  3. Android拦截并获取WebView内部POST请求参数
  4. 服务器基于PHP CodeIgniter,Android基于Volley实现多文件/图片上
  5. 如何使用jdb调试android的java程序
  6. Android(安卓)点击通知栏消息打开activity,并判断app是否运行
  7. Android(安卓)fragment 传值
  8. Android软件限制AP的最大连接数
  9. Android(安卓)ListView 如何 更改字体颜色,字体类型等参数

随机推荐

  1. 学习用pyhon写hive udf
  2. 创建单独的函数而不是一个大的缓慢处理时
  3. python打印系统所有tcp,udp监听端口及服
  4. python学习(13)————jieba进阶生成词云
  5. 用于搜索和替换大字符串的最快Python方法
  6. 基于scrapy框架的关于58同城招聘网站信息
  7. PyQt中的各种提示框
  8. Python3:抓取百度关键词所包含的网页
  9. 如何使用os.listdir()忽略隐藏文件?
  10. 弹性豆茎,awsebcli,和祝福1.9.5。