Просмотр исходного кода

fix: 优化AirTalk 的demo 注册

梁健 5 месяцев назад
Родитель
Сommit
a4a74932a1

+ 0 - 1
module/Air8000/demo/airtalk/main.lua

@@ -32,7 +32,6 @@ VERSION = "1.0.0"
 PRODUCT_KEY =  "NrkXcjWwjcc5EFdCrrYnvypBCyJlEaIO"
 -- 在日志中打印项目名和项目版本号
 log.info("main", PROJECT, VERSION)
-exnetif = require("exnetif")
 
 -- 如果内核固件支持wdt看门狗功能,此处对看门狗进行初始化和定时喂狗处理
 -- 如果脚本程序死循环卡死,就会无法及时喂狗,最终会自动重启

+ 10 - 21
module/Air8000/demo/airtalk/readme.md

@@ -1,8 +1,3 @@
-## 总体设计框图
-
- 
-
-
 
 ## 功能模块介绍
 
@@ -23,7 +18,7 @@
 
 1.    按一次boot,选择群组内第一个联系人,开始1对1对讲,再按一次boot,结束对讲
 2.    按一次powerkey,开始1对多广播,再按一次powerkey或者boot,结束对讲
-
+3.    当收到对讲信息的时候,LED灯常亮,关闭对讲的时候LED 灯灭
 
 ## 演示硬件环境
 
@@ -47,28 +42,22 @@
 
 1、搭建好硬件环境
 
-2、选择本demo 的全部文件(可不包含readme)
+2、创建群组:详情请见:https://docs.openluat.com/value/airtalk/
+
+3、选择本demo 的全部文件(可不包含readme)
 
-3、Luatools烧录内核固件和修改后的demo脚本代码
+4、Luatools烧录内核固件和修改后的demo脚本代码
 
-4、烧录成功后,自动开机运行,如果出现以下日志
+5、烧录成功后,自动开机运行,如果出现以下日志
 
 ``` lua
-I/user.播放完成 true
-I/user.录音完成 
-I/user.录音后文件大小 
+I/user. 联系人列表更新
 ```
 
-5、 在测试播放音频文件的时候,点powerkey 按键进行音频切换,切换内容是MP3,AMR格式,切换是通过播放优先级进行区分的,注意音频格式仅仅支持:MP3,WAV,AMR,点击boot 按键停止音频播放
-
-6、 在测试播放TTS的时候,点powerkey 按键进行TTS 音色切换,点击boot 按键停止音频播放,注意:仅支持中文TTS。
-
-
-7、在进行流式播放测试的时候,使用test.pcm 模拟音频来源,通过流式传输不断填入播放的音频,使用powerkey 按键进行音量减小,点击boot 按键进行音量增加,注意流式播放目前仅支持PCM 格式音频,可选择不同的采样率,以及位深
-
-8、在测试录音到文件(仅支持PCM),演示了pcm 录音到文件,使用powerkey 按键进行录音音量减小,点击boot 按键进行录音音量增加
+6、 点击BOOT 按键,会选择联系人列表第一个人,进行一对一对讲,当对面收到对讲,将亮起灯
 
-9、在测试流式录音(仅支持PCM),不断输出录音的数据地址和录音长度,供给应用层调用
+7、 点击POWERKEY按键,会进行广播,所有群组内的人,都会收到对讲消息,并亮起灯
 
+8、在进行流式播放测试的时候,使用test.pcm 模拟音频来源,通过流式传输不断填入播放的音频,使用powerkey 按键进行音量减小,点击boot 按键进行音量增加,注意流式播放目前仅支持PCM 格式音频,可选择不同的采样率,以及位深
 
 

+ 40 - 3
module/Air8000/demo/airtalk/talk.lua

@@ -1,7 +1,10 @@
 --[[
     演示airtalk基本功能
+    1.  按键操作
     按一次boot,开始1对1对讲,再按一次boot,结束对讲
     按一次powerkey,开始1对多对讲,再按一次powerkey或者boot,结束对讲
+    2. 指示灯
+    当收到对讲信息的时候,LED灯常亮,关闭对讲的时候LED 灯灭
 ]]
 
 -- 引入必要模块
@@ -28,6 +31,38 @@ local audio_setup_param = {
     dac_ctrl = 20,         -- 音频编解码芯片电源控制管脚    
 }
 
+--  因为8000,8000A,8000W,支持Wifi ,可以使用WIFI 来联网
+local function use_wifi()
+    exnetif = require("exnetif")
+
+    exnetif.set_priority_order({ { -- 次优先级:WiFi
+        WIFI = {
+
+            ssid = "机房-降功耗,找合宙!",
+
+            password = "Air123456", 
+
+        }
+    }})
+
+    -- 设置网络状态回调
+
+    exnetif.notify_status(function(net_type, adapter)
+
+        log.info("网络切换至:", net_type)
+
+    end)
+
+    -- wifi的STA相关事件
+    sys.subscribe("WLAN_STA_INC", function(evt, data)
+        -- evt 可能的值有: "CONNECTED", "DISCONNECTED"
+        -- 当evt=CONNECTED, data是连接的AP的ssid, 字符串类型
+        -- 当evt=DISCONNECTED, data断开的原因, 整数类型
+        log.info("收到STA事件", evt, data)
+    end)
+
+end
+
 -- 联系人列表回调函数
 local function contact_list_callback(dev_list)
     g_dev_list = dev_list
@@ -44,7 +79,7 @@ end
 
 local gpio_number = 20 -- air8000 核心板上的23 管脚
 
-LED = gpio.setup(gpio_number, 1) -- 设置GPIO20为输出模式
+LED = gpio.setup(gpio_number, 1) -- 设置为LED输出模式,用于指示对讲功能
 
 
 -- 对讲状态回调函数
@@ -52,7 +87,7 @@ local function speech_state_callback(event_table)
     if not event_table then return end
     
     if event_table.state == extalk.START then
-        log.info("对讲开始,可以说话了")
+        log.info("对讲开始")
         LED(1)
         g_speech_active = true
     elseif event_table.state == extalk.STOP then
@@ -147,6 +182,7 @@ local function handle_key_press(is_power_key)
         -- 当前正在对讲,按任何键都结束对讲
         log.info("结束当前对讲")
         extalk.stop()
+        LED(0)       -- 关闭LED 灯
         g_speech_active = false
     else
         -- 当前未在对讲,根据按键类型开始不同对讲
@@ -197,7 +233,8 @@ local function user_main_task()
     end
     log.info("extalk初始化成功")
     LED(0)
-    -- lower_enter()               -- 如果需要进入低功耗,请打开此函数
+    -- use_wifi()                  -- 使用wifi 方式联网
+    -- lower_enter()               -- 需要进入低功耗,请打开此函数
     -- 等待按键消息并处理
     while true do
         local msg = sys.waitMsg(USER_TASK_NAME, MSG_KEY_PRESS)

+ 1 - 7
module/Air8000/demo/audio/readme.md

@@ -1,9 +1,3 @@
-## 总体设计框图
-
-![输入图片说明](../../../../%E9%9F%B3%E9%A2%91%E7%A1%AC%E4%BB%B6%E6%A1%86%E6%9E%B6.png)
-
-**注意:目前不支持录音和放音同时进行**
-
 ## 功能模块介绍
 
 1、main.lua:主程序入口;
@@ -23,7 +17,7 @@
 8、test.pcm: 用于测试pcm 流式播放(实际可以云端下载)
 
 
-
+**注意:目前不支持录音和放音同时进行**
 
 
 ## 常量的介绍