📄 testnet.c
字号:
#include "config.h"
#include "../include/cfg_net.h"
void Timer1_Init(void);
#define TASK_START_ID 0
#define TASK_1_ID 1
#define TASK_2_ID 2
#define TASK_3_ID 3
#define TASK_4_ID 4
#define TASK_5_ID 5
#define TASK_6_ID 6
#define TASK_START_PRIO 10
#define TASK_1_PRIO 11
#define TASK_2_PRIO 12
#define TASK_3_PRIO 13
#define TASK_4_PRIO 14
#define TASK_5_PRIO 15
#define TASK_6_PRIO 16
#define MSG_QUEUE_SIZE 30
OS_EVENT *RecPackedFlag;
OS_EVENT *RecBufOverFlowFlag;
OS_EVENT *RecTcpPackedFlag;
OS_EVENT *RecPingPackedFlag;
//OS_EVENT *Uart0ReviceFlag;//add 3.1.10 liuxj
OS_EVENT *Uart0ReviceMbox;//add 3.1.13
OS_STK task0_stack[3000];
OS_STK task1_stack[1000];
OS_STK task2_stack[2000];
OS_STK task3_stack[1000];
OS_STK task4_stack[2000];
OS_STK task5_stack[2000];
OS_STK task6_stack[2000];
void TaskStart(void *data);
void TaskUart0Revice(void *pdata);
void TaskF(void *pdata);
uint8 httpweb[]={
"HTTP/1.0 200 OK\r\n"
"Date: Sat, 25 Feb 2006 15:24:17 GMT\r\n"
"Server: microHttp/1.0 huxhengdx Corporation\r\n"
"Accept-Ranges: bytes\r\n"
//"Content-Length: 116\r\n"//"Connection: Keep-Alive\r\n"
"Connection: Keep-Close\r\n"
"Content-Type: text/html\r\n"
"\r\n"};
uint8 web[]={
"<HTML>\r\n"
"<HEAD>\r\n"
"<TITLE>以太网控制串口设备演示</TITLE>\r\n"
"<BODY aLink=black background=/100.bmp bgColor=#f1f1dd link=red\r\n"
"vLink=#321afd>\r\n"
"<LI> <A HREF=\"http://www.21ic.com/\">电子工程师网站 </A>\r\n"
"</UL>\r\n"
"</BODY>\r\n"
"</HTML>\r\n"
};
uint8 httpgif[]={
"HTTP/1.0 200 OK\r\n"
"Date: Sat, 25 Feb 2006 15:24:17 GMT\r\n"
"Server: microHttp/1.0 HUAHENG TELECOM Corporation\r\n"
"Accept-Ranges: bytes\r\n"
//"Content-Length: 116\r\n"//"Connection: Keep-Alive\r\n"
"Connection: Keep-Close\r\n"
"Content-Type: image/bmp\r\n"
"\r\n"};
uint8 bmp[422]={0x34,0x88,0x55,0x43,0x45,0xff};
typedef struct {
char TaskName[30];
INT16U TaskCtr;
INT16U TaskExecTime;
INT32U TaskTotExecTime;
} TASK_USER_DATA;
TASK_USER_DATA TaskUserData[7];
OS_EVENT *MsgQueue; /* Message queue pointer */
void *MsgQueueTbl[60]; /* Storage for messages */
void TaskA(void *pdata)
{
uint8 *cp;
uint8 err;
// uint8 rec_buffer[100];
SOCKET s;
// uint8 rec_coute;
uint16 iii;
struct sockaddr servaddr,clientaddr;
OSTimeDly(60);
servaddr.sin_family=0;
servaddr.sin_addr[0]=192;
servaddr.sin_addr[1]=168;
servaddr.sin_addr[2]=0;
servaddr.sin_addr[3]=132;
servaddr.sin_port=1011;
OSTimeDly(60);
s=*socket( 0, SOCK_DGRAM, UDP_PROTOCOL);
clientaddr.sin_family=0;
clientaddr.sin_addr[0]=NetPort[0].My_Ip[0];
clientaddr.sin_addr[1]=NetPort[0].My_Ip[1];
clientaddr.sin_addr[2]=NetPort[0].My_Ip[2];
clientaddr.sin_addr[3]=NetPort[0].My_Ip[3];
clientaddr.sin_port=1025;
iii=bind( (SOCKET * )&s, (struct sockaddr*)&clientaddr,sizeof(clientaddr));
Uart0ReviceMbox = OSMboxCreate(NULL); /* 建立邮箱 */
if (Uart0ReviceMbox == NULL)
{
while (1);
}
// TargetInit(); /* 目标板初始化 */
for (;;)
{
cp = (uint8 *)OSMboxPend(Uart0ReviceMbox, 0, &err);
//UART0Write(cp,8);
sendto(s, cp, 100, 0, (struct sockaddr*)&servaddr, sizeof(servaddr) );
}
}
/* void TaskA(void *pdata)
{
uint8 const ShowTable[11] = {
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x00};
// 0 1 2 3 4 5 6 7 8 9
uint8 *cp;
uint8 err;
pdata = pdata;
Uart0ReviceMbox = OSMboxCreate(NULL);
if (Uart0ReviceMbox == NULL)
{
while (1);
}
OSTaskCreateExt(TaskF,
(void *)0,
&task6_stack[1999],
TASK_6_PRIO,
TASK_6_ID,
&task6_stack[0],
2000,
(void *)0,//&TaskUserData[TASK_5_ID],
0);
TargetInit();
for (;;)
{
cp = (uint8 *)OSMboxPend(Uart0ReviceMbox, 0, &err);
UART0Write(cp,4);
if (cp[0] == 0x80)
{
cp[2] = ShowTable[cp[2]];
}
else
{
cp[2] = cp[2] +'0';
}
PC_DispChar(cp);
}
}
*/
void TaskB(void *pdata)
{
void * UdpTemp;
uint8 eer;
while (1)
{
UdpTemp=OSQPend(RecUdpQFlag,0,&eer);
if(eer==OS_NO_ERR)
{
Udp_Process((Rec_Ptr *)UdpTemp);
eer=eer;
}
}
}
void TaskC(void *pdata)
{
void * TcpTemp;
uint8 err;
while (1)
{
TcpTemp=OSQPend(RecTcpQFlag,0,&err);
if(err==OS_NO_ERR)
{
Process_Tcp1((Rec_Ptr *)TcpTemp);
TcpTemp=TcpTemp;
}
}
}
void TaskD(void *pdata)
{
uint8 rec_buffer[100];
SOCKET s;
uint8 rec_coute;
uint16 iii;
struct sockaddr servaddr,clientaddr;
OSTimeDly(60);
servaddr.sin_family=0;
servaddr.sin_addr[0]=192;
servaddr.sin_addr[1]=168;
servaddr.sin_addr[2]=0;
servaddr.sin_addr[3]=132;
servaddr.sin_port=1011;
OSTimeDly(60);
s=*socket( 0, SOCK_DGRAM, UDP_PROTOCOL);
clientaddr.sin_family=0;
clientaddr.sin_addr[0]=NetPort[0].My_Ip[0];
clientaddr.sin_addr[1]=NetPort[0].My_Ip[1];
clientaddr.sin_addr[2]=NetPort[0].My_Ip[2];
clientaddr.sin_addr[3]=NetPort[0].My_Ip[3];
clientaddr.sin_port=1025;
iii=bind( (SOCKET * )&s, (struct sockaddr*)&clientaddr,sizeof(clientaddr));
while (1)
{
rec_coute=recvfrom( s, rec_buffer, 100, 0, (struct sockaddr*)&servaddr, &iii );
if(rec_coute>0)
UART0Write(rec_buffer,rec_coute);
}
}
void TaskE(void *pdata)
{
uint8 Temp=0;
uint16 TempLength;
int addrlen;
int ei;
unsigned char ip_add[4]={192,168,0,1};
uint8 tempdata[400];
//uint8 err;
SOCKET s;
struct sockaddr servaddr,cliaddr;
Arp_Request(ip_add,0);
OSTimeDly(60);
servaddr.sin_family=0;
servaddr.sin_addr[0]=NetPort[0].My_Ip[0];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -