1 /*
2  * Copyright (C) 2019-2020 Alibaba Group Holding Limited
3  */
4 
5 #include <stdint.h>
6 #include <genie_event.h>
7 #include <genie_service.h>
8 #include "port/mesh_event_port.h"
9 
genie_mesh_model_event_cb(mesh_model_event_e event,void * p_arg)10 void genie_mesh_model_event_cb(mesh_model_event_e event, void *p_arg)
11 {
12     genie_event_e genie_evt;
13     switch (event) {
14     case BT_MESH_MODEL_EVT_PROV_START:
15     {
16         genie_evt = GENIE_EVT_SDK_MESH_PROV_START;
17     }
18     break;
19     case BT_MESH_MODEL_EVT_PROV_DATA:
20     {
21         genie_evt = GENIE_EVT_SDK_MESH_PROV_DATA;
22     }
23     break;
24 
25     case BT_MESH_MODEL_EVT_APPKEY_ADD:
26     {
27         genie_mesh_load_group_addr();
28         genie_mesh_setup();
29         genie_evt = GENIE_EVT_SDK_APPKEY_ADD;
30     }
31     break;
32 
33     case BT_MESH_MODEL_EVT_APPKEY_UPDATE:
34     {
35         genie_evt = GENIE_EVT_SDK_APPKEY_UPDATE;
36     }
37     break;
38 
39     case BT_MESH_MODEL_EVT_APPKEY_DEL:
40     {
41         genie_evt = GENIE_EVT_SDK_APPKEY_DEL;
42     }
43     break;
44 
45     case BT_MESH_MODEL_EVT_NETKEY_ADD:
46     {
47         genie_evt = GENIE_EVT_SDK_NETKEY_ADD;
48     }
49     break;
50 
51     case BT_MESH_MODEL_EVT_NETKEY_UPDATE:
52     {
53         genie_evt = GENIE_EVT_SDK_NETKEY_UPDATE;
54     }
55     break;
56 
57     case BT_MESH_MODEL_EVT_NETKEY_DEL:
58     {
59         genie_evt = GENIE_EVT_SDK_NETKEY_DEL;
60     }
61     break;
62 
63     case BT_MESH_MODEL_EVT_NODE_RESET_OP:
64     {
65         genie_evt = GENIE_EVT_SW_RESET;
66     }
67     break;
68 #if 0
69     case BT_MESH_MODEL_EVT_SEQ_UPDATE:
70     {
71         genie_evt = GENIE_EVT_SDK_SEQ_UPDATE;
72     }
73     break;
74 #endif
75     default:
76         return;
77     }
78     genie_event(genie_evt, p_arg);
79     return;
80 }
81 
genie_mesh_port_init(void)82 int genie_mesh_port_init(void)
83 {
84     bt_mesh_event_register(genie_mesh_model_event_cb);
85     return 0;
86 }
87 
88