手机数据线连接linux,Linux设备通过USB线与手机通信(Android、IOS)

2023-11-01 17:20

本文主要是介绍手机数据线连接linux,Linux设备通过USB线与手机通信(Android、IOS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景介绍

通过手机USB连接遥控器,无人机的视频经遥控器实时传到手机预览,手机也可以通过USB发送指令给无人机,或者从无人机下载视频照片到手机。

方案选择

IOS手机使用usbmuxd方式,这样就不需要MFI认证,Android手机使用AOA协议,框图如下:

2ba3ca7932ac830fc622b6cf1417e8a8.png

原理解析

手机通过USB发送rtsp/http/ftp等消息,经过遥控器,遥控器起到了一个数据转发的作用,将接收到手机的消息转发给无人机,同样遥控器也需要接收无人机发送的消息,并转发给手机。遥控器除了转发收到的数据外,针对不同消息有可能还需要解析,并且遥控器还需要维护跟无人机的连接。

Android手机

Android手机通过AOA协议跟遥控器连接,遥控器端需要移植libusb库,使用异步方式获取手机发送的消息,解析消息是rtsp、http还是ftp,并将消息发送给对应的无人机socket句柄上。反之从相应的socket句柄上接收无人机的消息,转发给手机。

IOS手机

IOS手机使用usbmuxd方式是为了避免MFI认证,IOS系统端已经集成了usbmuxd服务,遥控器端使用的是Linux系统,Linux中没有usbmuxd服务,需要自己移植。可以去github上下载源码交叉编译,地址:https://github.com/libimobiledevice。

usbmuxd屏蔽了底层的USB操作,将USB的数据转化为TCP(基于Unix Domain Socket)数据,这样iPhone的App和外设上的应用就可以使用Socket进行TCP进行通信了。参考网站:https://www.theiphonewiki.com/wiki/Usbmux,此网站介绍了usbmuxd的数据格式,创建socket并通信的步骤,根据此文档可以编写遥控器端Linux应用程序。

总结:使用AOA和usbmuxd协议实现了Android手机和IOS手机通过USB连接遥控器,手机既可以预览无人机画面,又可以控制无人机飞行。

这篇关于手机数据线连接linux,Linux设备通过USB线与手机通信(Android、IOS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/324551

相关文章

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大