support zigbee on nuttx stm32f4discovery

This commit is contained in:
wgz-code
2022-03-03 14:43:51 +08:00
parent 74683ed165
commit 316798e98c
10 changed files with 132 additions and 46 deletions
@@ -0,0 +1,7 @@
############################################################################
# APP_Framework/Framework/connection/zigbee/Make.defs
############################################################################
ifneq ($(CONFIG_CONNECTION_ADAPTER_ZIGBEE),)
CONFIGURED_APPS += $(APPDIR)/../../../APP_Framework/Framework/connection/zigbee
endif
include $(wildcard $(APPDIR)/../../../APP_Framework/Framework/connection/zigbee/*/Make.defs)
@@ -1,7 +1,18 @@
SRC_FILES := adapter_zigbee.c
include $(KERNEL_ROOT)/.config
ifeq ($(CONFIG_ADD_NUTTX_FETURES),y)
include $(APPDIR)/Make.defs
CSRCS += adapter_zigbee.c
include $(APPDIR)/Application.mk
ifeq ($(CONFIG_ADAPTER_E18),y)
SRC_DIR += e18
endif
include $(KERNEL_ROOT)/compiler.mk
ifeq ($(CONFIG_ADD_XIZI_FETURES),y)
SRC_FILES := adapter_zigbee.c
ifeq ($(CONFIG_ADAPTER_E18),y)
SRC_DIR += e18
endif
include $(KERNEL_ROOT)/compiler.mk
endif
@@ -120,7 +120,10 @@ int openzigbee(void)
return 0;
}
#ifdef ADD_XIUOS_FETURES
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, openzigbee, openzigbee, show adapter zigbee information);
#endif
int sendzigbee(int argc, char *argv[])
{
@@ -140,7 +143,9 @@ int sendzigbee(int argc, char *argv[])
return 0;
}
#ifdef ADD_XIUOS_FETURES
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(2)|SHELL_CMD_DISABLE_RETURN, sendzigbee, sendzigbee, show adapter zigbee information);
#endif
int recvzigbee(void)
{
@@ -153,5 +158,7 @@ int recvzigbee(void)
return 0;
}
#ifdef ADD_XIUOS_FETURES
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, recvzigbee, recvzigbee, show adapter zigbee information);
#endif
@@ -40,7 +40,11 @@ if ADD_XIZI_FETURES
endif
if ADD_NUTTX_FETURES
config ADAPTER_E18_DRIVER
string "E18 device uart driver path"
default "/dev/ttyS1"
---help---
If USART1 is selected, then fill in /dev/ttyS1 here.
endif
if ADD_RTTHREAD_FETURES
@@ -0,0 +1,6 @@
############################################################################
# APP_Framework/Framework/connection/zigbee/e18/Make.defs
############################################################################
ifneq ($(CONFIG_ADAPTER_ZIGBEE_E18),)
CONFIGURED_APPS += $(APPDIR)/../../../APP_Framework/Framework/connection/zigbee/e18
endif
@@ -1,3 +1,13 @@
SRC_FILES := e18.c
include $(KERNEL_ROOT)/.config
ifeq ($(CONFIG_ADD_NUTTX_FETURES),y)
include $(APPDIR)/Make.defs
CSRCS += e18.c
include $(APPDIR)/Application.mk
include $(KERNEL_ROOT)/compiler.mk
endif
ifeq ($(CONFIG_ADD_XIZI_FETURES),y)
SRC_FILES := e18.c
include $(KERNEL_ROOT)/compiler.mk
endif
@@ -37,6 +37,19 @@ char *cmd_role_as_e = "AT+DEV=E"; /*set device type for end device*/
char *cmd_role_as_r = "AT+DEV=R"; /*set device type for router*/
char *cmd_set_ch = "AT+CH=11"; /*set channel as 11*/
#ifdef ADD_NUTTX_FETURES
static int E18UartOpen(struct Adapter *adapter)
{
adapter->fd = PrivOpen(ADAPTER_E18_DRIVER, O_RDWR);
if (adapter->fd < 0) {
printf("E18UartSetUp get serial %s fd error\n", ADAPTER_E18_DRIVER);
return -1;
}
return adapter->fd;
}
#else
static int E18UartOpen(struct Adapter *adapter)
{
if (NULL == adapter) {
@@ -78,6 +91,7 @@ static int E18UartOpen(struct Adapter *adapter)
printf("Zigbee uart config ready\n");
return 0;
}
#endif
static int E18NetworkModeConfig(struct Adapter *adapter)
{
@@ -204,7 +218,7 @@ static int E18Open(struct Adapter *adapter)
/*step2: init AT agent*/
if (!adapter->agent) {
char *agent_name = "zigbee_device";
if (EOK != InitATAgent(agent_name, adapter->fd, 512)) {
if (0 != InitATAgent(agent_name, adapter->fd, 512)) {
printf("at agent init failed !\n");
return -1;
}