Air8000工业引擎Aircall功能:
将复杂的通话流程简化为三次点击,为物联网设备赋予实时通话能力。其简洁的API设计大幅降低开发门槛,助力开发者快速构建语音交互式物联网解决方案。

1、典型应用场景

Air8000的Aircall功能将传统通话能力无缝融入物联网场景,从工业场景到智能家居,为设备赋予“能听会说”的能力。

  • 远程设备监控与管理:
    通过电话功能,物联网设备可以在检测到异常情况时主动拨打电话通知管理员,实现及时响应和处理。

  • 工业自动化控制:
    在工业环境中,当生产线出现故障或紧急情况时,设备可以通过电话功能快速通知相关人员,减少停机时间。

  • 智能家居安全系统:
    智能家居系统中的安全设备,如烟雾报警器、入侵检测器等,可以在检测到危险时拨打电话报警,保障家庭安全。

  • 远程医疗监护:
    在医疗领域,远程监护设备可以通过电话功能及时向医护人员报告患者的异常生理数据,实现远程医疗服务。

  • 智能交通系统:
    智能交通设备可以通过电话功能与交通管理中心实时通信,报告路况信息或紧急事件,提高交通管理效率。

  • 农业物联网:
    农业环境监测设备可以在检测到土壤湿度、温度等参数异常时,通过电话功能通知农户采取相应措施,实现精准农业。

  • 智慧安防:
    包括校园防暴、公共场所紧急情况报警等,通过集成Air8000的终端一键触发,自动拨打预设紧急号码,实时传输语音并联动监控,保障应急响应效率。

2、功能测试准备工作

2.1 相关硬件准备

  • Air8000整机开发板套装:
    彩壳版/无壳版均可;

  • 支持数据传输的USB数据线;

  • 可打电话的手机卡;

  • Win10及其以上PC电脑。

2.2 相关软件准备

本示例所用Air8000固件及整机开发板出厂工程中的所有lib和user文件,建议下载最新版本。

  • 最新内核固件:
    https://docs.openluat.com/air8000/luatos/firmware/

  • 最新源码下载:

    https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/project/

3、示例代码解析

Air8000示例持续更新中,本文仅展示通话示例aircall.lua要点。

3.1 模块初始化与变量定义

D01NEW.png

3.2 电话功能核心函数

1)初始化电话功能

创建了四个缓冲区用于存储音频数据(两个上行缓冲区和两个下行缓冲区);然后初始化音频模块,并设置音频数据的录制和播放缓冲区;最后通过cc.init初始化电话功能。

D02NEW.png

2)挂断电话

stop_call函数非常简单,直接调用cc.hangUp(0)来挂断当前通话。

D03NEW.png

3)接听电话

recv_call函数处理来电事件,首先通过cc.lastNum()获取来电号码并记录日志,然后调用cc.accept(0)接听电话。

D04NEW.png

4)拨打电话

start_call函数用于拨打电话,调用cc.dial(0, phone_number)函数,传入预设的电话号码进行拨号。

D05NEW.png

3.3 主运行函数与触摸处理

1)主运行函数

aircall.run函数是模块的主运行函数,设置中文字体后调用init_call初始化电话功能。

然后进入一个无限循环,在每次循环中刷新LCD显示内容,包括提示信息、当前来电号码等。同时显示对应按钮图像(用于返回、挂断/拒接、接听、拨打),并在每次循环结束时刷新LCD显示。

如果run_state变为false,则退出循环返回主界面。

D06NEW.png

2)触摸事件处理

aircall.tp_handal函数处理触摸屏事件,根据触摸的坐标区域执行不同的操作:

返回按钮区域触摸会将run_state设为false以退出应用;挂断/拒接、接听、拨打按钮区域触摸,分别会启动对应的任务来执行相应的电话操作。

D07NEW.png

4、示例代码解析

将最新版“LuatOS/module/Air8000/project/整机开发板出厂工程”里的工程文件全部刷入Air8000整机开发板。

4.1 刷入固件后上电开机:

06.jpg

4.2 进入主界面,点击电话按钮:

07.png

4.3 点击最下面的“开始”按钮拨打电话:

04-按钮标注 250627 3401.png

4.4 LuaTools查看日志:

09.jpg

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐