forked from xuos/xiuos
support aiit-arm32-board and stm32f407-st-discovery board
This commit is contained in:
parent
3ba05d0a71
commit
0b08dbf171
|
@ -23,6 +23,7 @@
|
||||||
#include <xs_klist.h>
|
#include <xs_klist.h>
|
||||||
#include <xs_adapter_manager.h>
|
#include <xs_adapter_manager.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <user_api.h>
|
||||||
adapter_t padapter;
|
adapter_t padapter;
|
||||||
/* a demo function to send message through command line using zigbee*/
|
/* a demo function to send message through command line using zigbee*/
|
||||||
/* first open zigbee to start demo*/
|
/* first open zigbee to start demo*/
|
||||||
|
@ -53,6 +54,7 @@ void ZigbeeSendDemo(int argc, char *argv[])
|
||||||
/*Find from the list of registered adapters*/
|
/*Find from the list of registered adapters*/
|
||||||
bool v = false;
|
bool v = false;
|
||||||
padapter->done.NetAiitSend(padapter, argv[1], strlen(argv[1]) ,true,10000,0, NULL,&v,NULL);
|
padapter->done.NetAiitSend(padapter, argv[1], strlen(argv[1]) ,true,10000,0, NULL,&v,NULL);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
#ifndef SEPARATE_COMPILE
|
#ifndef SEPARATE_COMPILE
|
||||||
|
|
|
@ -4,4 +4,8 @@ default n
|
||||||
|
|
||||||
menuconfig CONNECTION_COMMUNICATION_ZIGBEE_KD233
|
menuconfig CONNECTION_COMMUNICATION_ZIGBEE_KD233
|
||||||
bool "Enable zigbee for kd233"
|
bool "Enable zigbee for kd233"
|
||||||
|
default n
|
||||||
|
|
||||||
|
menuconfig CONNECTION_COMMUNICATION_ZIGBEE_STM32
|
||||||
|
bool "Enable zigbee for STM32F407-DISCOVERY"
|
||||||
default n
|
default n
|
|
@ -18,7 +18,7 @@
|
||||||
* @date: 2021/4/30
|
* @date: 2021/4/30
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#include <xs_adapter_manager.h>
|
||||||
#include "xs_adapter_zigbee.h"
|
#include "xs_adapter_zigbee.h"
|
||||||
#include <user_api.h>
|
#include <user_api.h>
|
||||||
#include <bus_serial.h>
|
#include <bus_serial.h>
|
||||||
|
@ -32,7 +32,10 @@ int use_aiit = 1;
|
||||||
#define SAMPLE_UART_NAME "/dev/uart3_dev3"
|
#define SAMPLE_UART_NAME "/dev/uart3_dev3"
|
||||||
int use_aiit = 0;
|
int use_aiit = 0;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONNECTION_COMMUNICATION_ZIGBEE_STM32
|
||||||
|
#define SAMPLE_UART_NAME "/dev/usart3_dev3"
|
||||||
|
int use_aiit = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
static int serial_fd;
|
static int serial_fd;
|
||||||
static int32_t zigbeereceive;
|
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)
|
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));
|
write(serial_fd,data,strlen(data));
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*thread to read message from srial port*/
|
/*thread to read message from srial port*/
|
||||||
void SerialThreadEntry(void *parameter)
|
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[])
|
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*/
|
/*zigbee communication settings*/
|
||||||
/*it can be changed if needed*/
|
/*it can be changed if needed*/
|
||||||
char *set0 = "+++";
|
char *set0 = "+++";
|
||||||
char *set1_1 = "AT+DEV=C"; /*set device type for coordinater*/
|
char *set1_1 = "AT+DEV=C"; /*set device type for coordinater*/
|
||||||
char *set1_2 = "AT+DEV=E"; /*set device type for end device*/
|
char *set1_2 = "AT+DEV=E"; /*set device type for end device*/
|
||||||
char *set2 = "AT+MODE=1"; /*device mode 1 : passthrough */
|
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 *set4 = "AT+CH=11"; /* set channel*/
|
||||||
char *set5 = "AT+EXIT"; /* exit AT mode*/
|
char *set5 = "AT+EXIT"; /* exit AT mode*/
|
||||||
write(serial_fd,set0,strlen(set0));
|
write(serial_fd,set0,strlen(set0));
|
||||||
|
UserTaskDelay(1000);
|
||||||
/*type something in the command line to set this zigbee as coordinater*/
|
/*type something in the command line to set this zigbee as coordinater*/
|
||||||
/*otherwise it is an end device*/
|
/*otherwise it is an end device*/
|
||||||
if (argc == 2){
|
if (argc == 2){
|
||||||
write(serial_fd,set1_1,strlen(set1_1));
|
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{
|
}else{
|
||||||
write(serial_fd,set1_2,strlen(set1_2));
|
write(serial_fd,set1_2,strlen(set1_2));
|
||||||
UserTaskDelay(500);
|
UserTaskDelay(1000);
|
||||||
}
|
}
|
||||||
write(serial_fd,set2,strlen(set2));
|
write(serial_fd,set2,strlen(set2));
|
||||||
UserTaskDelay(500);
|
UserTaskDelay(1000);
|
||||||
write(serial_fd,set3,strlen(set3));
|
write(serial_fd,set3,strlen(set3));
|
||||||
UserTaskDelay(500);
|
UserTaskDelay(1000);
|
||||||
write(serial_fd,set4,strlen(set4));
|
write(serial_fd,set4,strlen(set4));
|
||||||
UserTaskDelay(500);
|
UserTaskDelay(1000);
|
||||||
write(serial_fd,set5,strlen(set5));
|
write(serial_fd,set5,strlen(set5));
|
||||||
UserTaskDelay(500);
|
UserTaskDelay(1000);
|
||||||
printf("zigbee setting success!\n");
|
printf("zigbee setting success!\n");
|
||||||
}
|
}
|
||||||
#ifndef SEPARATE_COMPILE
|
#ifndef SEPARATE_COMPILE
|
||||||
|
|
Loading…
Reference in New Issue