HKC/src/udp_client.h
2024-10-22 16:10:27 +09:00

47 lines
1.4 KiB
C

#ifndef UDP_CLIENT_H
#define UDP_CLIENT_H
#include "lwipopts.h"
#include "xlwipconfig.h"
#include "lwip/ip_addr.h"
#include "lwip/err.h"
#include "lwip/udp.h"
#include "lwip/inet.h"
#include "xil_printf.h"
#include "platform.h"
#include <sleep.h>
#include "ctrl_module.h"
#include "tcpipcomm.h"
#include "define.h"
struct ClientUdpPcb
{
struct udp_pcb *pcb; // udp_pcb
u8_t szRecvData[NUM_RECV_BUF]; // 수신 버퍼
u32_t nRecvLen; // 수신 버퍼 사이즈
u8_t cRecvFlag; // 수신 플래그
} ;
static struct ClientUdpPcb g_stUdpCliPcb; // UDP서버에 접속하는 클라이언트 처리
u32_t g_nReportCnt; // udp_client에서 사용, static 선언하면 안됨
static u16_t g_unUdpServerPort; // UDP Server Port
static u8_t m_cReportIdx = 0; // Report 2개 교차 송신용
static u8_t m_cRecvHBFromMP = 0; // 임무처리기로부터 Heart Beat 수신 여부
void InitUdpServer(void);
static void udp_server_receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, ip_addr_t *addr, u16_t port);
static void InitUdpClientMember(void); // UDP Client 구조체 초기화
void UdpCommProcess(void); // UDP 통신 처리
static void UdpCommPeriod(void); // UDP 주기적인 통신 처리
static void FuncAntMastStatusReport(void); // 안테나 마스트 상태 보고 송신
static void FuncAntMastCBitReport(void); // 안테나 마스트 CBIT 보고 송신
static void FuncHeartBeatData(void); // LAN 연결성 확인 데이터
#endif // UDP_CLIENT_H