📄 tsknet.c
字号:
#include "network.h"
#include "funcudp.h"
extern OS_EVENT *rom peventNet;
extern UDP_SOCKET UDPOpen(IP_ADDR remoteAddr,
UDP_PORT remotePort,
UDP_PORT localPort,
OS_EVENT * sockOwner);
extern INT8U UDPPutS(UDP_SOCKET s,
INT8U rom * pD,
INT16U len);
INT8U UDPPutB(UDP_SOCKET s,INT8U byte);
INT32U IPGetSrcAddress(INT8U rom * pD);
INT32U IPGetDestAddress(INT8U rom * pD);
void Func_Clear_Msg(INT8U rom * pMsg);
void UDPFlush(UDP_SOCKET s,
IP_ADDR remoteAddr,
INT16U remotePort);
void tskNet(void * Pdata){
void rom * pMsg;
INT8U err;
UDP_SOCKET MySock;
UDP_PORT DestPort;
IP_ADDR DestAddr,SrcAddr;
DestAddr.Val = 0;
MySock = UDPOpen(DestAddr,0,5000,peventNet);
for(;;){
pMsg = OSQPend(peventNet, 0, &err);
if(err == OS_NO_ERR){
if((INT24U)pMsg >= PTR_MAX){
}
else{
if(((MSG_HEAD *)pMsg)->Msg_ID == MSG_UDP_DATA){
//process data--we just copy data and send it back for test
UDPPutS(MySock, ((MSG_UDP *)pMsg)-> pPayload, ((MSG_UDP *)pMsg)-> LenOfPayload);
//and we can put some other data like
UDPPutB(MySock, 0x88);
UDPPutB(MySock, 0xce);
DestAddr.Val = IPGetSrcAddress(((MSG_HEAD *)pMsg)->pMem);
SrcAddr.Val = IPGetDestAddress(((MSG_HEAD *)pMsg)->pMem);
DestPort = ((MSG_UDP *)pMsg)->SourcePort;
UDPFlush(MySock, DestAddr, DestPort);
}
Func_Clear_Msg(pMsg);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -