ameba_ws2812b/component/common/application/uart_adapter/uart_adapter.h
2015-11-17 10:30:14 +08:00

166 lines
4.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <platform/platform_stdlib.h>
#include "gpio_api.h" // mbed
#include "gpio_irq_api.h" // mbed
/******************************************************
* Macros
******************************************************/
#define UA_ERROR 0
#define UA_WARNING 1
#define UA_INFO 2
#define UA_DEBUG 3
#define UA_NONE 0xFF
#define UA_DEBUG_LEVEL UA_INFO
#define UA_UART_THREAD_PRIORITY 5
#define UA_UART_THREAD_STACKSIZE 512
#if (UA_DEBUG_LEVEL== UA_NONE)
#define ua_printf(level, fmt, arg...)
#else
#define ua_printf(level, fmt, arg...) \
do {\
if (level <= UA_DEBUG_LEVEL) {\
if (level <= UA_ERROR) {\
printf("\r\nERROR: " fmt, ##arg);\
} \
else {\
printf("\r\n"fmt, ##arg);\
} \
}\
}while(0)
#endif
/******************************************************
* Constants
******************************************************/
typedef enum
{
UART_CTRL_MODE_SET_REQ = 0,
UART_CTRL_MODE_SET_RSP = 1,
UART_CTRL_MODE_GET_REQ = 2,
UART_CTRL_MODE_GET_RSP = 3,
}ua_ctrl_mode_t;
typedef enum
{
UART_CTRL_TYPE_BAUD_RATE = 0x01,
UART_CTRL_TYPE_WORD_LEN = 0x02,
UART_CTRL_TYPE_PARITY = 0x04,
UART_CTRL_TYPE_STOP_BIT = 0x08,
UART_CTRL_TYPE_FLOW_CTRL = 0x10,
}ua_ctrl_type_t;
/******************************************************
* Structures
******************************************************/
typedef long time_t;
typedef struct _uartadapter_timeval_st{
long tv_sec; //秒
long tv_hmsec; //百毫秒
}UARTTHROUGH_TIMEVAL_st;
//获取网络DHCP参数时存储返回的IPMAC,GWMASKDNS等
typedef struct _ua_net_para {
char dhcp;
char ip[16]; // such as string "192.168.1.1"
char gate[16];
char mask[16];
char dns[16];
char mac[16]; // such as string "7E0000001111"
char broadcastip[16];
} ua_net_para_st;
//softAP模式时存储搜索到的 AP列表信息
typedef struct _ua_ApList_str
{
char ssid[32];
char ApPower; // min:0, max:100
char channel;
char encryption;
}ua_ApList_str;
//softAP模式时存储搜索到的 AP列表信息
typedef struct _ua_UwtPara_str
{
char ApNum; //AP number
ua_ApList_str * ApList;
} ua_UwtPara_str;
//获取UART配置信息时存储获得的串口配置信息
typedef struct _ua_uart_get_str
{
int BaudRate; //The baud rate
char number; //The number of data bits
char parity; //The parity(0: none, 1:odd, 2:evn, default:0)
char StopBits; //The number of stop bits
char FlowControl; //support flow control is 1
}ua_uart_get_str;
//配置UART参数时存储相关的配置信息
typedef struct _ua_uart_set_str
{
char UartName[8]; // the name of uart
int BaudRate; //The baud rate
char number; //The number of data bits
char parity; //The parity(default NONE)
char StopBits; //The number of stop bits
char FlowControl; //support flow control is 1
}ua_uart_set_str;
//启动wifi连接时存储WIFI的配置信息
typedef struct _ua_network_InitTypeDef_st
{
char wifi_mode; // SoftAp(0)station(1)
char wifi_ssid[32];
char wifi_key[32];
char local_ip_addr[16];
char net_mask[16];
char gateway_ip_addr[16];
char dnsServer_ip_addr[16];
char dhcpMode; // disable(0), client mode(1), server mode(2)
char address_pool_start[16];
char address_pool_end[16];
int wifi_retry_interval;//sta reconnect interval, ms
char channel;
char encryption;
} ua_network_InitTypeDef_st;
#pragma pack(1)
struct ua_ieee80211_frame
{
unsigned char i_fc[2];
unsigned char i_dur[2];
unsigned char i_addr1[6];
unsigned char i_addr2[6];
unsigned char i_addr3[6];
unsigned char i_seq[2];
};
#pragma pack()
//extern void uartadapter_netcallback(ua_net_para_st *pnet);
//extern void uartadapter_wifistatushandler(int status);
extern int uartadapter_init();
//extern void uartadapter_deinit();
//extern void uartadapter_wifipoweron(void);
//extern void uartadapter_wifipoweroff(void);
//extern int uartadapter_startnetwork(ua_network_InitTypeDef_st* pNetworkInitPara);
//extern void uartadapter_wifidisconnect (void);
extern int uartadapter_getnetpara(ua_net_para_st * pnetpara);
//extern int uartadapter_sethostname(char* name);
extern int uartadapter_readuart(int fd, void *read_buf, size_t size);
void uartadapter_tcp_data_fd_handler();
extern void uartadapter_tcpsend(char *buffer, int size, u8 isctrl);
//extern void uartadapter_test(void *param);
//extern void uartadapter_tcp_control_server_handler(void *param);
//extern void uartadapter_tcp_data_server_handler(void *param);
//extern void uartadapter_gpio_irq (uint32_t id, gpio_irq_event event);
void example_uart_adapter_init();
extern void cmd_uart_adapter(int argc, char **argv);
//#define cmd_uart_adapter cmd_ua