diff --git a/applications/connection_demo/zigbee_demo/zigbee_send_demo.c b/applications/connection_demo/zigbee_demo/zigbee_send_demo.c index 7b021fb55..45a82825e 100644 --- a/applications/connection_demo/zigbee_demo/zigbee_send_demo.c +++ b/applications/connection_demo/zigbee_demo/zigbee_send_demo.c @@ -23,6 +23,7 @@ #include #include #include +#include adapter_t padapter; /* a demo function to send message through command line using zigbee*/ /* first open zigbee to start demo*/ @@ -53,6 +54,7 @@ void ZigbeeSendDemo(int argc, char *argv[]) /*Find from the list of registered adapters*/ bool v = false; padapter->done.NetAiitSend(padapter, argv[1], strlen(argv[1]) ,true,10000,0, NULL,&v,NULL); + } #ifndef SEPARATE_COMPILE diff --git a/framework/connection/Adapter/zigbee/Kconfig b/framework/connection/Adapter/zigbee/Kconfig index 9939bc277..5e59af4b7 100644 --- a/framework/connection/Adapter/zigbee/Kconfig +++ b/framework/connection/Adapter/zigbee/Kconfig @@ -4,4 +4,8 @@ default n menuconfig CONNECTION_COMMUNICATION_ZIGBEE_KD233 bool "Enable zigbee for kd233" +default n + +menuconfig CONNECTION_COMMUNICATION_ZIGBEE_STM32 +bool "Enable zigbee for STM32F407-DISCOVERY" default n \ No newline at end of file diff --git a/framework/connection/Adapter/zigbee/xs_adapter_zigbee.c b/framework/connection/Adapter/zigbee/xs_adapter_zigbee.c index 25ada96fe..81a011da5 100644 --- a/framework/connection/Adapter/zigbee/xs_adapter_zigbee.c +++ b/framework/connection/Adapter/zigbee/xs_adapter_zigbee.c @@ -18,7 +18,7 @@ * @date: 2021/4/30 * */ - +#include #include "xs_adapter_zigbee.h" #include #include @@ -32,7 +32,10 @@ int use_aiit = 1; #define SAMPLE_UART_NAME "/dev/uart3_dev3" int use_aiit = 0; #endif - +#ifdef CONNECTION_COMMUNICATION_ZIGBEE_STM32 +#define SAMPLE_UART_NAME "/dev/usart3_dev3" +int use_aiit = 0; +#endif static int serial_fd; static int32_t zigbeereceive; @@ -74,9 +77,12 @@ int ZigbeeOpen(struct Adapter *padapter) int ZigbeeSend(struct Adapter *padapter, const char* data, int len, bool block, int time_out, int delay, send_success cb, void* param, void* reserved) { write(serial_fd,data,strlen(data)); + + return 0; } + /*thread to read message from srial port*/ void SerialThreadEntry(void *parameter) { @@ -129,34 +135,47 @@ int ZigbeeReceive(struct Adapter *padapter, char* rev_buffer, int buffer_len,int void ZigbeeSettingDemo(int argc, char *argv[]) { + + adapter_t padapter = ZigbeeAdapterFind("zigbee"); + if (NONE == padapter){ + KPrintf("adapter find failed!\n"); + return; + } + /*Open adapter*/ + if (0 != padapter->done.NetAiitOpen(padapter)){ + KPrintf("adapter open failed!\n"); + return; + } + + ZigbeeOpen(padapter); /*zigbee communication settings*/ /*it can be changed if needed*/ char *set0 = "+++"; char *set1_1 = "AT+DEV=C"; /*set device type for coordinater*/ char *set1_2 = "AT+DEV=E"; /*set device type for end device*/ char *set2 = "AT+MODE=1"; /*device mode 1 : passthrough */ - char *set3 = "AT+PANID=15D8"; /* set PANID*/ + char *set3 = "AT+PANID=A1B2"; /* set PANID*/ char *set4 = "AT+CH=11"; /* set channel*/ char *set5 = "AT+EXIT"; /* exit AT mode*/ write(serial_fd,set0,strlen(set0)); - + UserTaskDelay(1000); /*type something in the command line to set this zigbee as coordinater*/ /*otherwise it is an end device*/ if (argc == 2){ write(serial_fd,set1_1,strlen(set1_1)); - UserTaskDelay(500); /*zigbee needs some time to process input message*/ + UserTaskDelay(1000); /*zigbee needs some time to process input message*/ }else{ write(serial_fd,set1_2,strlen(set1_2)); - UserTaskDelay(500); + UserTaskDelay(1000); } write(serial_fd,set2,strlen(set2)); - UserTaskDelay(500); + UserTaskDelay(1000); write(serial_fd,set3,strlen(set3)); - UserTaskDelay(500); + UserTaskDelay(1000); write(serial_fd,set4,strlen(set4)); - UserTaskDelay(500); + UserTaskDelay(1000); write(serial_fd,set5,strlen(set5)); - UserTaskDelay(500); + UserTaskDelay(1000); printf("zigbee setting success!\n"); } #ifndef SEPARATE_COMPILE