# COM_SkydroidH12Demo
**Repository Path**: skydroid/SkydroidH12Demo
## Basic Information
- **Project Name**: COM_SkydroidH12Demo
- **Description**: H12数传 图传示例(旧版,不推荐,后续不再维护)
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 4
- **Created**: 2023-06-05
- **Last Updated**: 2025-01-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 云卓 Demo 简介:
- 1.RCSDKDemo: [遥控器SDK及Demo(推荐)](https://gitee.com/skydroid/rcsdk-demo)
- 2.SkydroidFpvTest: [适用于T10,T12,H12,H30串口连接方式 ](https://gitee.com/skydroid/SkydroidFpvTest)
- 3.SkydroidH12Demo: [H12数传图传SDKDemo(旧版,不推荐,后续不再维护)](https://gitee.com/skydroid/SkydroidH12Demo)
- 4.SkydroidDemo: [H16及H30安卓开发示例](https://gitee.com/skydroid/SkydroidDemo)
- 5.FPVPlayerDemo: [云卓图传播放器Demo](https://gitee.com/skydroid/fpv-player-demo)
| Demo | RCSDK | SkydroidFpvTest | SkydroidH12Demo
旧版 | SkydroidDemo | FPV-Player
网口 图传 |
| :----: | :----: | :----: | :----: | :----: | :----: |
| 适用于 |H12、H12Pro、H16
后续会新增H30| T10、T12、H12、H30 | T10、T12、H12 | H16、H30 | H12Pro、H16、H30 |
| T10,T12图传 | ✘ | ✔
USB 图传 | ✔
USB 图传 | ✘ | ✘ |
| H12数传 | ✔ | ✔ | ✔ | ✘ | ✘ |
| H12图传 | ✘ | ✔
串口 图传 | ✔
串口 图传 | ✘ | ✘ |
| H12Pro数传 | ✔ | ✘ | ✘ | ✘ | ✘ |
| H12Pro图传 | ✘ | ✘ | ✘ | ✘ | ✔ |
| H16数传 | ✔ | ✘ | ✘ | ✔
舵量、手型 | ✘ |
| H16图传 | ✘ | ✘ | ✘ | ✔
网口 图传 | ✔ |
| H30数传 | ✔ | ✔ | ✘ | ✔
舵量、手型、信号 | ✘ |
| H30图传 | ✘ | ✘ | ✘ | ✔
网口 图传 | ✔ |
| 遥控调参 | ✔
支持助手功能 | ✘ | ✘ | ✘ | ✘ |
| 云台控制 | ✘ | ✔ | ✘ | ✘ | ✔ |
---
# H12安卓开发示例(2020.09.26版,用于参考,不推荐,不再维护)

## H12通讯方式
### 遥控器有2路串口
| 串口 | 地址 | 波特率 | 用途 |
| ---- | ---- | ---- | ---- |
| uart0 | /dev/ttyHS0 | 4000000 | 图传 |
| uart1 | /dev/ttyHS1 | 115200 | 数传 |
### 在H12助手可以查看接收机数传波特率
- 代码里串口1的波特率 = 921600(固定的);
- 接收机波特率要和要与飞控同步,飞控的波特率=接收机的波特率;
- 飞控如果是115200,接收机波特率也要设置115200;
- 当数传不能收到数据或数据不正确时,请检查这三处波特率设置是否正确;

## 数传串口调用示例代码(串口1)
### 1. 创建数传连接
```
mSerialPortConnection = new SerialPortConnection(
921600,
"/dev/ttyHS1",
1 << 13,
0 ,
8 ,
1
);
```
### 2. 读取数据
**通过监听读取串口数据**
```
mSerialPortConnection.setDelegate(new SerialPortConnection.Delegate() {
@Override
public void received(@org.jetbrains.annotations.Nullable byte[] bytes, int size) {
Log.e("H12DataSamplesActivity",new String(bytes));
}
});
```
### 4. 发送数据
```
mSerialPortConnection.sendData();
```
### 5. 关闭连接
```
mSerialPortConnection.closeConnection();
```
## 图传串口调用示例代码(串口0)

### 1. 创建图传连接
```
mSerialPortConnection = new SerialPortConnection(
4000000,
"/dev/ttyHS0",
1 << 13,
0 ,
8 ,
1
);
```
### 2. 读取数据
**通过监听读取串口数据,并将视频流展示在UI上**
```
mSerialPortConnection.setDelegate(new SerialPortConnection.Delegate() {
@Override
public void received(@org.jetbrains.annotations.Nullable byte[] bytes, int size) {
if(fPVVideoImp != null){
fPVVideoImp.received(bytes,size);
}
}
});
```
```
//视频播放与控制
fPVVideoImp = new FPVVideoClient();
fPVVideoImp.setRun(mSerialPortConnection.isConnection());
fPVVideoImp.setDelegate(new FPVVideoClient.Delegate() {
@Override
public void onStopRecordListener(String fileName) {}
@Override
public void onSnapshotListener(String fileName) {}
@Override
public void renderI420(byte[] frame, int width, int height) {
mPreviewDualVideoView.renderI420(frame, width, height);
}
@Override
public void setVideoSize(int picWidth, int picHeight) {
mPreviewDualVideoView.setVideoSize(picWidth, picHeight,mainHanlder);
}
@Override
public void resetView() {
mPreviewDualVideoView.resetView(mainHanlder);
}
});
fPVVideoImp.startPlayback();
```
### 4. 控制云台
```
fPVVideoImp.startRecord(null,null);//开始录像
fPVVideoImp.stopRecord();//结束录像
fPVVideoImp.captureSnapshot(null,null);//拍照
```
### 5. 关闭连接
```
mSerialPortConnection.closeConnection();
fPVVideoImp.stopPlayback();
```
## 案例说明
### 用户连接方式
- 用户的飞控输出是232串口,115200波特率;
- 用户用一根232转TTL的模块把云卓的机载端和用户的飞控连接;
- 地面遥控器打开ttyHS1,波特率921600;
### 遇到问题
- H12助手可以显示图传
- Demo里面图传和数传都没数据
### 解决方案
- 图传的波特率设置错了,应设置为4000000;
- 数传的波特率设置错了,应设置为921600;
### 修改后遇到的问题
- 数传有数据,但是数据不对;
### 波特率不对
- 接收机的波特率应该和飞控的输出波特率一致;
- 将接收机的波特率设置为115200;