[OpenHarmony Socket通信]DAYU200遥控3861小车 原创 精华
笔者最近学习了OpenHarmony Socket通信相关内容,制作了一个DAYU200(OpenHarmony标准系统)遥控3861小车(OpenHarmony轻量系统)的样例
- 样例开源地址:https://gitee.com/hihope_iot/hispark-pegasus-smart-car/tree/master/DAYU200遥控HiSpark-Pegasus智能小车样例
- 演示视频:https://ost.51cto.com/show/25247
目录
1. DAYU200和3861小车简单介绍
- 润开鸿OpenHarmony标准系统开发板 DAYU200 https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200
- 3861小车 ,购买链接:https://item.taobao.com/item.htm?spm=a230r.7195193.1997079397.35.2cb75ea4PUqbMk&id=632728730350&abbucket=15
2. DAYU200遥控HiSpark-Pegasus智能小车样例介绍
-
本样例通过TCP socket通信实现DAYU200开发板(OpenHarmony标准系统) 遥控 HiSpark-Pegasus智能小车(OpenHarmony轻量系统)前进、后退、左转、右转、停止等操作,实现了一个简单的OpenHarmony南北向开发互通案例。
-
样例开发分成3568端小车控制hap应用和3861端c代码
2.1 3568端小车控制hap应用代码讲解
1.3568端小车控制hap应用基于 (需要特别注意开发环境!!!OpenHarmony应用开发更新速度很快)
- OpenHarmony3.2release
- DevEco Studio 3.1.0.500
- sdk 3.2.12.2
2.DAYU200通过tcp socket与3861建立通信,hap应用主要实现代码:https://gitee.com/hihope_iot/hispark-pegasus-smart-car/blob/master/DAYU200遥控HiSpark-Pegasus智能小车样例/DAYU200(3568)/car_socket_control/entry/src/main/ets/pages/Index.ets
3.hap应用TCP协议进行通信大致步骤
- import需要的socket模块。
- 创建一个TCPSocket连接,返回一个TCPSocket对象
- (可选)订阅TCPSocket相关的订阅事件
- 绑定IP地址和端口,端口可以指定或由系统随机分配
- 连接到指定的IP地址和端口
- 发送数据/接收数据
- Socket连接使用完毕后,关闭
4.添加获取wifi信息和网络的权限,在entry\src\main\module.json5中
5.建立tcp通信需要首先获取本地ip地址和端口号
6.tcp初始化,订阅TCPSocket相关的订阅事件,绑定本地ip地址和端口
7.绑定轻量系统(3861)的ip地址和端口
8.3568发送数据至3861
9.3568接收3861发送的数据
10.关闭tcp连接
12.如果要修改hap应用的名称,在car_socket_control\entry\src\main\resources\zh_CN\element\string.json文件中修改EntryAbility_label属性
13.如果要修改应用图标修改car_socket_control\entry\src\main\resources\base\media下icon.png(像素大小为114×114)
2.2 3861端小车代码讲解
文件名 | 说明 |
---|---|
BUILD.gn | OpenHarmony构建脚本 |
demo_entry_cmsis.c | OpenHarmony liteos-m程序入口 |
net_common.h | 系统网络接口头文件 |
net_demo.h | demo脚手架头文件 |
net_params.h | 网络参数,包括WiFi热点信息、端口信息 |
car_tcp_server_test.c | TCP socket控制小车实现代码 |
wifi_connecter.c | OpenHarmony WiFi STA模式API的封装实现文件 |
wifi_connecter.h | OpenHarmony WiFi STA模式API的封装头文件 |
本篇文章主要讲解主要实现代码car_tcp_server_test.c (笔者在代码提交了比较详细的注释)
1.3861tcp发送数据
2.3861接收数据
3、当3568与3861断开连接后,可以进行重新连接。相关代码:
很详细的实现过程讲解,必须支持
看视频效果很不错
这个遥控现在是有线的吗
无线的,通过wifi控制
赞赞赞
了解一下如何打通开发板