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

Merge branch 'master' of gitee.com:openLuat/LuatOS

Wendal Chen 7 месяцев назад
Родитель
Сommit
026e54f10d

+ 14 - 3
components/bluetooth/include/luat_ble.h

@@ -120,6 +120,7 @@ typedef enum{
     // CONN
     LUAT_BLE_EVENT_CONN,        // BLE连接成功
     LUAT_BLE_EVENT_DISCONN,     // BLE断开连接
+    LUAT_BLE_EVENT_GATT_DONE,     // BLE GATT
 
     // WRITE
     LUAT_BLE_EVENT_WRITE,       // BLE写数据
@@ -186,20 +187,30 @@ typedef struct {
     int len;
 }luat_ble_adv_data_t;
 
-typedef void (*luat_ble_cb_t)(luat_ble_t* luat_ble, luat_ble_event_t ble_event, luat_ble_param_t* ble_param);
+typedef void (*luat_ble_cb_t)(luat_ble_t* luat_ble, luat_ble_event_t ble_event, void* ble_param);
 
 typedef struct luat_ble_gatt_chara luat_ble_gatt_chara_t;
+#define LUAT_BLE_UUID_LEN_MAX   16
+typedef struct luat_ble_gatt_descriptor{
+    uint16_t handle;
+    uint8_t uuid[LUAT_BLE_UUID_LEN_MAX];
+    luat_ble_uuid_type uuid_type;
+    uint16_t perm;
+    uint16_t max_size;
+}luat_ble_gatt_descriptor_t;
 
 struct luat_ble_gatt_chara{
     uint16_t handle;
-    uint8_t uuid[16];
+    uint8_t uuid[LUAT_BLE_UUID_LEN_MAX];
     luat_ble_uuid_type uuid_type;
     uint16_t perm;
     uint16_t max_size;
+    luat_ble_gatt_descriptor_t* descriptor;     // descriptor
+    uint8_t descriptors_num;            // number of descriptor
 };
 
 typedef struct {
-    uint8_t uuid[16];
+    uint8_t uuid[LUAT_BLE_UUID_LEN_MAX];
     luat_ble_uuid_type uuid_type;
     luat_ble_gatt_chara_t* characteristics; // characteristics
     uint8_t characteristics_num;            // number of characteristics

+ 3 - 2
module/Air8000/demo/gsensor/main.lua

@@ -6,8 +6,9 @@ log.info("main", PROJECT, VERSION)
 sys = require "sys"
 sysplus = require("sysplus")
 
--- gsensor的供电打开
-local vbackup = gpio.setup(24, 1)
+gpio.setup(24, 1, gpio.PULLUP)  -- gsensor 开关
+gpio.setup(164, 1, gpio.PULLUP) -- air8000 和解码芯片公用
+gpio.setup(147, 1, gpio.PULLUP) -- camera的供电使能脚
 
 local da221 = require "da221"
 

+ 4 - 4
module/Air8101/project/core_accessory_board/AirGPIO_1000/readme.md

@@ -43,9 +43,9 @@ Air8101核心板+AirGPIO_1000配件板,演示I2C扩展16路GPIO功能;
 
 - 扩展GPIO输出演示时,无需接线;通过万用表或者示波器检测AirGPIO_1000配件板上的P00电平即可
 
-- 扩展GPIO输入演示时,将AirGPIO_1000配件板上的P10和P11两个引脚通过杜邦线短接
+- 扩展GPIO输入演示时,将AirGPIO_1000配件板上的P10和P11两个引脚通过杜邦线短接;软件上会将P10配置为输出(第一秒输出低电平,第二秒输出高电平,如此循环输出),将P11配置为输入,通过检测P11引脚输入电平的状态来演示
 
-- 扩展GPIO中断演示时,将AirGPIO_1000配件板上的P03和P04两个引脚通过杜邦线短接,将AirGPIO_1000配件板上的P13和P14两个引脚通过杜邦线短接
+- 扩展GPIO中断演示时,将AirGPIO_1000配件板上的P03和P04两个引脚通过杜邦线短接,将AirGPIO_1000配件板上的P13和P14两个引脚通过杜邦线短接;软件上会将P03和P13配置为输出(第一秒输出低电平,第二秒输出高电平,如此循环输出),将P04和P14配置为中断,通过检测中断函数的触发状态来演示
 
 
 ## 演示软件环境
@@ -67,8 +67,8 @@ Air8101核心板+AirGPIO_1000配件板,演示I2C扩展16路GPIO功能;
 
    (1) 通过万用表或者示波器检测AirGPIO_1000配件板上的P00电平,持续1秒输出0V的低电平,持续1秒输出3.3V的高电平,循环输出,表示GPIO输出测试正常;
 
-   (2) 通过观察Luatools的运行日志,首先输出 air_gpio.get(0x11) 0, 再隔一秒输出 air_gpio.get(0x11) 1,再隔一秒输出 air_gpio.get(0x11) 0,如此循环输出,表示GPIO输入测试正常;
+   (2) 通过观察Luatools的运行日志,首先打印 air_gpio.get(0x11) 0, 再隔一秒打印 air_gpio.get(0x11) 1,再隔一秒打印 air_gpio.get(0x11) 0,如此循环输出,表示GPIO输入测试正常;
 
-   (3) 通过观察Luatools的运行日志,首先输出 P04_int_cbfunc 4 0      P04_int_cbfunc 14 0, 再隔一秒输出  P04_int_cbfunc 4 1      P04_int_cbfunc 14 1,再隔一秒输出 P04_int_cbfunc 4 0      P04_int_cbfunc 14 0,如此循环输出,表示GPIO中断测试正常;
+   (3) 通过观察Luatools的运行日志,首先打印 P04_int_cbfunc 4 0      P14_int_cbfunc 20 0, 再隔一秒打印  P04_int_cbfunc 4 1      P14_int_cbfunc 20 1,再隔一秒打印 P04_int_cbfunc 4 0      P14_int_cbfunc 20 0,如此循环输出,表示GPIO中断测试正常;