定位模组也能打电话?Air201带你快速实现!

电子说

1.3w人已加入

描述

今天特别分享VoLTE通话功能示例,感兴趣的朋友一起来学。

VoLTE通话功能示例
 

Air201模组的4G通信功能,通过VoLTE技术实现高清语音通话,支持音频编解码、硅麦输入和喇叭输出。在通话过程中,声音信号通过MIC捕捉并转换为数字音频数据,经4G网络实时传输至对方设备。
 

这一应用广泛适用于物联网设备中的远程通信、语音交互等场景,提供便捷、高效的通话服务。 

Air201最新资料下载:

www.air201.cn

物联网

注:Air201最大可支持8Ω 1.2W功率喇叭(默认),或者4Ω 2.5W功率喇叭。

本文将通过Air201+喇叭+扩展板进行相关演示,教你使用VoLTE通话功能示例,在实际开发中可根据具体情况灵活应用。

一. 搭建环境

新同学建议先看前期的基础知识相关教程,更有助于理解和操作。

可以在LuaTools项目管理中新建一个项目,重新选择底层CORE和脚本;或者在原有项目的基础上,不更换CORE,将原来的脚本删除,添加为demo/cc的脚本。

1.1 硬件准备:

Air201 PCBA

Air201-BTB扩展板(带一个FPC线)

配套USB_BOOT小板、喇叭

可正常上网及通话的SIM卡

带有数据通信功能的数据线

Win10及以上PC

Air201通过FPC线连接BTB扩展板,使用扩展板上的按键,接线如下所示:

物联网

1.2 软件准备:

LuaTools调试工具:

https://docs.openluat.com/Luatools

最新固件:https://gitee.com/openLuat/LuatOS-Air201/tree/master/core

最新脚本:

https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/cc

API接口:

https://docs.openluat.com/air201/luatos/api/core/cc

1.3 烧录操作:

由于Air201单板子没有复位键和BOOT键,所以数据线与Air201开发板之间还需要接一个USB_BOOT板(Air201套件里已包含)。

将Air201通过USB_BOOT小板连接电脑,如下图所示:

物联网

1.3.1 根据下方操作进行烧录

此时就需要大家先点击Luatools工具上的【下载脚本】或【 下载底层和脚本】,再执行下方操作了。

新同学请先学习LuaTools使用和烧录教程:

https://docs.openluat.com/Luatools/

开发板处于未开机状态:

此时先按住下载模式按键(BOOT键)不放,再长按开机键(POW键)开机。若不出意外开发板将会进入下载模式,LuaTools工具下载进度条会开始跑,这时便可以松开BOOT键和POW键,等到工具提示下载完成即可。

开发板已经处于开机状态:

此时可以先按住BOOT键不放,再短按复位键(RST键)后开发板会重启并进入下载模式。

1.3.2 不同模式下的端口显示

正常开机模式:

物联网

下载模式:

物联网

二. 示例代码

2.1 初始化驱动ES8311

Air201板子自带了ES8311音频编解码芯片(Audio Codec),所以硬件配置参数是固定的。

ES8311使用了I2C0,电源脚为GPIO2,PA控制脚为GPIO23:

物联网

2.2 订阅通话状态

通过sys.subscribe函数订阅了一个名为CC_IND的事件。当这个事件被触发时,会调用后面的匿名函数,传入一个参数 state,表示当前的通话状态。

物联网

2.3 注册音频事件回调函数

物联网

2.4 通讯录列表

物联网

2.5 通话管理状态机

1)IDLE(空闲状态):

系统处于等待状态,准备接收来电或拨号。

转移条件:

物联网

2)WAIT_CALLING(等待呼叫状态):

系统在等待后续的拨号操作。

转移条件:

物联网

3)CALLING(拨号中状态):

正在拨打电话。

转移条件:

物联网

4)PREPARE(准备通话状态):

准备接听来电或拨打电话。

转移条件:

物联网

5)CONNECTING(通话中状态):

准备接听来电或拨打电话。

转移条件:

物联网

6)DISCONNECTING(挂断流程状态):

处理挂断电话的流程。

转移条件:

物联网物联网物联网物联网

2.6 呼叫,挂断按键配置

物联网

2.7 运行结果展示

通过LuaTools工具,查看相关运行结果。

1)模组主动拨打电话

空闲状态下按下按键1,默认拨打通讯录第一位联系人,日志打印显示如下:

物联网

2)模组主动挂断电话

通话状态下按下按键2,挂断电话,日志打印显示如下:

物联网

三. 总结

CC库的通话管理API接口共同构成了通话控制的核心功能,使开发者能够高效地管理通话的启动、挂断、接听、参数配置以及附加的通话处理功能。

通过合理利用这些接口,开发者可以构建出具备出色通话体验的应用程序,满足用户在多种通话场景下的需求。同时,也需关注接口之间的协同配合,以确保通话功能的流畅性和可靠性。

今天的分享就到这里了~

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分