102 lines
2.4 KiB
C
102 lines
2.4 KiB
C
/// Agent文件
|
|
///
|
|
/// 指令处理模块、处理外部接收指令
|
|
/// @file Agent.c
|
|
/// @author LH
|
|
/// @date 2022-04-22
|
|
/// @version v1.0
|
|
|
|
#include "includes.h"
|
|
#include "gd32f4xx.h"
|
|
#include "enet_to_udp.h"
|
|
#include "Lan8720.h"
|
|
#include "lwip/tcpip.h"
|
|
#include "lwip/raw.h"
|
|
#include "lwip/icmp.h"
|
|
#include "lwip/dhcp.h"
|
|
#include "lwip/netif.h"
|
|
#include "lwip/sys.h"
|
|
#include "lwip/timers.h"
|
|
#include "lwip/inet_chksum.h"
|
|
#include "lwip/init.h"
|
|
#include "netif/etharp.h"
|
|
#include "pdebug.h"
|
|
|
|
//网络
|
|
BSP_OS_SEM udp_send_data_mutex;
|
|
struct sockaddr_in ptz_from;//IP和端口
|
|
struct sockaddr_in ptz_local;//本地IP和端口
|
|
socklen_t ptz_fromlen;//长度
|
|
int ptz_sock_fd;//句柄
|
|
BSP_OS_SEM udp_mutex;//共享资源锁
|
|
|
|
BSP_OS_SEM sem_enet_isr_recv;
|
|
|
|
static void task_create_recv_enet_isr (void);
|
|
|
|
extern struct netif fsl_netif0;
|
|
|
|
extern err_t ethernetif_input(struct netif *netif);
|
|
|
|
static void task_recv_enet_isr(void *p_arg)
|
|
{
|
|
CPU_INT08U err;
|
|
|
|
p_arg = p_arg;
|
|
while(1)
|
|
{
|
|
OSSemPend(sem_enet_isr_recv,0,&err);
|
|
ethernetif_input(&fsl_netif0);
|
|
|
|
}
|
|
}
|
|
|
|
static OS_STK task_recv_enet_isr_stk[TASK_RECV_ENET_ISR_STK_SIZE];
|
|
static void task_create_recv_enet_isr (void)
|
|
{
|
|
|
|
CPU_INT08U task_err;
|
|
CPU_INT08U name_err;
|
|
|
|
task_err = OSTaskCreateExt((void (*)(void *)) task_recv_enet_isr,
|
|
(void *) 0,
|
|
(OS_STK *)&task_recv_enet_isr_stk[TASK_RECV_ENET_ISR_STK_SIZE - 1],
|
|
(INT8U ) TASK_RECV_ENET_ISR_PRIO,
|
|
(INT16U ) TASK_RECV_ENET_ISR_PRIO,
|
|
(OS_STK *)&task_recv_enet_isr_stk[0],
|
|
(INT32U ) TASK_RECV_ENET_ISR_STK_SIZE,
|
|
(void *) 0,
|
|
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
|
#if (OS_TASK_NAME_EN > 0)
|
|
OSTaskNameSet(TASK_RECV_ENET_ISR_PRIO, "task_recv_enet_isr", &name_err);
|
|
#endif
|
|
|
|
if ((task_err == OS_ERR_NONE) && (name_err == OS_ERR_NONE)) {
|
|
pdebug(DEBUG_LEVEL_INFO,"create init_udp_module success...\n\r");
|
|
} else {
|
|
pdebug(DEBUG_LEVEL_FATAL,"create init_udp_module failed...\n\r");
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//=====以太网接收中断初始化=====
|
|
void init_udp_module()
|
|
{
|
|
BSP_OS_SemCreate(&udp_mutex,1u,"udp_mutex");
|
|
BSP_OS_SemCreate(&sem_enet_isr_recv,0u,"sem_enet_isr_recv");
|
|
Lan8720_Init();
|
|
task_create_recv_enet_isr();
|
|
term_printf("\n Lwip Init begin \r\n\r\n");
|
|
Lwip_init();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|