跳转至

extalk - 合宙对讲扩展库

作者:梁健

一、概述

extalk 是 airtalk 的扩展库,简化了使用方法,扩展了部分应用,建议使用此库. 音频框架如下:

合宙仅Air780EHV 内置音频编解码芯片,其他支持音频的功能需要外置音频编解码芯片。

目前合宙所有的型号均需要外置音频放大器(PA)才可将音频输出。

二、核心示例

    local extalk = require "extalk"
    -- 配置并初始化
    extalk.setup({
        key = "your_product_key",
        heart_break_time = 30,
        contact_list_cbfnc = function(dev_list) end,
        state_cbfnc = function(state) end
    })
    -- 发起对讲
    extalk.start("remote_device_id")
    -- 结束对讲
    extalk.stop()

三、常量详解

  1. extalk.START = 1 -- 通话开始,当对讲发起成功后将产生这个回调
  2. extalk.STOP = 2 -- 通话结束,当管理平台发过来停止对讲指令后,产生这个回调
  3. extalk.UNRESPONSIVE = 3 -- 对端未响应,当发起对讲请求后,对端没有响应,将产生此回调
  4. extalk.ONE_ON_ONE = 5 -- 一对一来电回调
  5. extalk.BROADCAST = 6 -- 对端过来广播,产生的回调

四、函数详解

extalk.setup(configs)

功能

初始化airtalk,配置项目KEY,心跳间隔,联系人回调函数,状态回调函数

注意事项

1. 该接口只能也只需启动一次

2. 项目key,通过https://iot.openluat.com/ 网站获取,需要和main.lua 的PRODUCT_KEY,保持一致,可用来升级,建立群组等

3. 心跳间隔,定期会发送电池电量,以及信号值的信息

参数 configs

参数含义:音频的参数配置,参数为table类型table内容格式说明如下
{
key = ,
-- 参数含义:此项目的识别号
-- 数据类型:string;
-- 取值范围:无;
-- 是否必选:必选传入此参数;
-- 注意事项:需要和main.lua 的PRODUCT_KEY,保持一致
heart_break_time = ,
-- 参数含义:心跳上报时间(单位s);
-- 数据类型:number;
-- 取值范围:>0
-- 是否必选:必选;
-- 注意事项:间隔过段,会引起功耗上升
contact_list_cbfnc = ,
-- 参数含义:联系人列表的回调函数;
-- 数据类型:function;
-- 取值范围:无
-- 是否必选:必须;
-- 注意事项:必须等到联系人列表返回,才可进行呼叫业务
state_cbfnc = ,
-- 参数含义:对讲状态的回调函数;
-- 数据类型:function;
-- 取值范围:无
-- 是否必选:必须;
-- 注意事项:回调的参数,可见上方的常量参数
}
数据类型:table
取值范围:参考参数含义内各字段说明    
是否必选:可选传入此参数;
注意事项:暂无;

返回值

返回true ,表示成功,返回false 表示失败

示例

-- extalk配置参数
local extalk_configs = {
    key = PRODUCT_KEY,
    heart_break_time = 120,  -- 心跳间隔(单位秒)
    contact_list_cbfnc = contact_list_callback,
    state_cbfnc = speech_state_callback,
}
if extalk.setup(extalk_configs) then
    log.info("airtalk初始化成功")
end

extalk.start(id)

功能

开始一对一呼叫,或者一对多呼叫

注意事项

1. 当没有鉴权成功,将无法呼叫

2. 如果当前正在通话,将无法呼叫

参数

id , -- 参数含义:如果填入可以呼叫的对端ID,则进行一对一的单独通话,如果不填入或者填入nil 则对整个群组全部广播; -- 数据类型:number/nil; -- 取值范围: 无 -- 是否必选:非必须; -- 注意事项:如果需要一对一通话,填入的数据只能是extalk.setup 的contact_list_cbfnc 回调函数返回ID

返回值

返回true ,表示成功,返回false 表示失败

示例

extalk.start("868123457234234")   --  一对一单呼
extalk.start()   --  对群组内所有设备进行广播

extalk.stop()

功能

停止一对一或广播对讲

注意事项

参数

返回值

返回true ,表示成功,返回false 表示失败

示例

extalk.stop()   --  停止对讲

五、产品支持说明

780epm,780ehv,780eth,8000 全系列均支持