语音

用到的结构体是inputcommand.h

在这里插入图片描述
在这里插入图片描述

inputcommand中:“语音控制”加入指令控制工厂链表函数声明

在这里插入图片描述

mainpro中添加接口:

在这里插入图片描述

语音指令输入文件代码,这个文件里面的函数就要添加读取指令函数和初始化函数,初始化函数就是将串口打开然后设置相应波特率,读取指令函数需要注意的是在读取指令前需要将缓冲区初始化防止有乱码,读指令函数主要调用read函数进行指令的读取,在没有指令到来的时候,输出: over time。

编写语音模块是涉及到一些函数传参不是很扎实!

socket

socketcontrl.c可以以voicecontrl.c为基础写
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

inputcommand中:“语音控制”加入指令控制工厂链表函数声明

在这里插入图片描述

mainpro中添加接口

在这里插入图片描述


编译过程中经常出现类似报错(代码没问题):

在这里插入图片描述

原因是下图的两个写到struct InputCommander里去了

在这里插入图片描述

线程池的建立

一.语音线程

语音线程函数:
在这里插入图片描述
在这里插入图片描述
socket线程函数
在这里插入图片描述
在这里插入图片描述

二.socket线程

socketcontrl.c:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

socket线程函数:(mainpro.c中)

1.起两个线程
在这里插入图片描述

2.创建这两个线程要调的函数
在这里插入图片描述
3.把voicecontrl 和socketcontrl结构体拿到main函数操作(通过findDeviceByName来找)
在这里插入图片描述

思路:
main函数进来 建立语音线程 开始语音监控 调用函数void_thread
void_thread :把voice相关的结构体找到。找到后调用初始化函数去打开串口,调用get_command函数去读取 读到的放到voiceHandler->command里
然后main函数里继续初始化socket线程:
sockethandler找出来,然后初始化,(已经开始监听),while(1)里不断accept,有数据接入创建新线程,读数据,放到socketHandler->command里,最终把数据拿出来

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐