mirror of
https://github.com/drasko/open-ameba.git
synced 2024-12-30 18:15:17 +00:00
100 lines
2.5 KiB
C
100 lines
2.5 KiB
C
#ifndef __ATCMD_LWIP_H__
|
|
#define __ATCMD_LWIP_H__
|
|
|
|
#include <platform_opts.h>
|
|
#ifdef CONFIG_AT_LWIP
|
|
|
|
#include "main.h"
|
|
#include <lwip/opt.h>
|
|
#include "lwip/sockets.h"
|
|
#include "lwip/api.h"
|
|
#include "lwip/sys.h"
|
|
#include "lwip/igmp.h"
|
|
#include "lwip/inet.h"
|
|
#include "lwip/tcp.h"
|
|
#include "lwip/raw.h"
|
|
#include "lwip/udp.h"
|
|
#include "lwip/tcpip.h"
|
|
#include "lwip/pbuf.h"
|
|
#include "lwip/netdb.h"
|
|
#include "lwip_netconf.h"
|
|
|
|
|
|
#define _AT_TRANSPORT_MODE_ "ATP1"
|
|
#define _AT_TRANSPORT_LOCAL_PORT_ "ATP2"
|
|
#define _AT_TRANSPORT_REMOTE_IP_ "ATP3"
|
|
#define _AT_TRANSPORT_REMOTE_PORT_ "ATP4"
|
|
#define _AT_TRANSPORT_START_SERVER_ "ATP5"
|
|
#define _AT_TRANSPORT_START_CLIENT_ "ATP6"
|
|
#define _AT_TRANSPORT_SHOW_SETTING_ "ATP?"
|
|
#define _AT_TRANSPORT_RECEIVE_DATA_ "ATR0"
|
|
#define _AT_TRANSPORT_RECEIVE_PACKET_SIZE_ "ATR1"
|
|
#define _AT_TRANSPORT_WRITE_DATA_ "ATRA"
|
|
#define _AT_TRANSPORT_WRITE_PACKET_SIZE_ "ATRB"
|
|
|
|
#define NODE_MODE_TCP 0
|
|
#define NODE_MODE_UDP 1
|
|
|
|
#define NODE_ROLE_SERVER 0
|
|
#define NODE_ROLE_CLIENT 1
|
|
#define NODE_ROLE_SEED 2
|
|
|
|
#define INVALID_SOCKET_ID (-1)
|
|
|
|
//parameters
|
|
#ifndef NET_IF_NUM
|
|
#define NET_IF_NUM 2
|
|
#endif
|
|
|
|
#define ATCMD_LWIP_TASK_PRIORITY (tskIDLE_PRIORITY + 1)
|
|
|
|
#if ATCMD_VER == ATVER_2
|
|
|
|
#define SERVER "127.0.0.1"
|
|
|
|
#define NUM_NS (MEMP_NUM_NETCONN) //maximum number of node and seed, same as NUM_SOCKETS
|
|
|
|
#define ETH_MAX_MTU 1500
|
|
|
|
#define INVALID_CON_ID (-1)
|
|
|
|
#define RECV_SELECT_TIMEOUT_SEC (0)
|
|
#define RECV_SELECT_TIMEOUT_USEC (20000) //20ms
|
|
|
|
typedef struct ns
|
|
{
|
|
int con_id;
|
|
int sockfd;
|
|
s8_t role;
|
|
int protocol;
|
|
u32_t addr;
|
|
u16_t port;
|
|
u32_t local_addr;
|
|
u16_t local_port;
|
|
xTaskHandle handletask;
|
|
struct ns* next;
|
|
struct ns* nextseed;
|
|
} node;
|
|
|
|
extern xTaskHandle atcmd_lwip_tt_task;
|
|
extern xSemaphoreHandle atcmd_lwip_tt_sema;
|
|
extern volatile int atcmd_lwip_tt_datasize;
|
|
extern volatile int atcmd_lwip_tt_lasttickcnt;
|
|
#define ATCMD_LWIP_TT_MAX_DELAY_TIME_MS (20) //transparent transmission interval
|
|
|
|
extern int atcmd_lwip_is_tt_mode(void);
|
|
extern void atcmd_lwip_set_tt_mode(int enable);
|
|
int atcmd_lwip_send_data(node *curnode, u8 *data, u16 data_sz, struct sockaddr_in cli_addr);
|
|
int atcmd_lwip_receive_data(node *curnode, u8 *buffer, u16 buffer_size, int *recv_size,
|
|
u8_t *udp_clientaddr, u16_t *udp_clientport);
|
|
node* create_node(int mode, s8_t role);
|
|
void init_node_pool(void);
|
|
void delete_node(node *n);
|
|
int hang_node(node* insert_node);
|
|
int hang_seednode(node* main_node ,node* insert_node);
|
|
node *seek_node(int con_id);
|
|
node *tryget_node(int n);
|
|
#endif
|
|
|
|
#endif //#ifdef CONFIG_AT_LWIP
|
|
#endif //#ifndef __ATCMD_LWIP_H__
|