⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parameter.c

📁 ucos-II2.51在S3C44B0X上的移植 开发环境:SDT2.50 实验板:ES44BO
💻 C
字号:
/*
 **************************************************************
 武汉理工大学嵌入式系统与网络安全实验室版权所有。非经允许,不得
 拷贝与任何形式的利用。
 **************************************************************
 */
 
/*
 此文件为IIS相关程序库头文件。
 */ 
 
/*
 修改日志:
 2004,4,18	创建在原文件修改
 */
 
#include <string.h>
#include <stdlib.h>
#include "..\uart\uart.h"
#define PRA_GLOBAL
#include "parameter.h"

void Read_Parameter(void)
{
	
	get_otheraddr("ipaddr",6);
	get_otheraddr("netmask",7);
	get_otheraddr("serverip",8);
	get_otheraddr("multiaddr",9);
	get_ethaddr();
	get_otheraddr("code",4);
	My_Parameter.destip = My_Parameter.serverip;
}

//unsigned long get_gaugevalue(char *valname, unsigned int valuelen)
//{
//    char *p;
//    char str[10];
//    unsigned int namelen, i;
//    
//    p = (char *)0x18000;  
//	namelen = strlen(valname);
//	
//	while ((int)p < 0x19000)
//	{
//	    if (memcmp(p,valname,namelen) == 0)
//	    {
//	        break;
//	    }
//	    else
//	    {
//	        p++;
//	    }
//	}
//	
//	if((int)p == 0x19000)
//	{
//	    return 0;
//	}
//	
//	p += (namelen + 1);
//	
//	for(i=0; i<valuelen; i++)
//	{
//	    str[i] = *(p++);
//	}
//	
//	str[valuelen] = '\0';
//	
//	return (unsigned long) atol(str);	    
//}

void  get_ethaddr(void)
{
	char * p;
	char tmp1,tmp2;
		
	p = (char *)0x18000;
	
	while ((int)p < 0x19000)
	{
		if (memcmp((char *)p,"ethaddr",7) == 0)
		{	
			//Printf("find ethaddr , p is %x!!\n",p);
			break;
		}
		else
		p++;
	}
	
	p += 8;
	
	/* get the first mac */
	if (*p <= '9' && *p >= '0')
	tmp1 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp1 = *p - 'a' + 0xa;
	else
	tmp1 = *p - 'A' + 0xa;
		
	p++;
	
	if (*p <= '9' && *p >= '0')
	tmp2 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp2 = *p - 'a' + 0xa;
	else
	tmp2 = *p - 'A' + 0xa;
	
	My_Parameter.mac[0] = (tmp1<<4) | tmp2 ;
//	Printf("My_Parameter.mac[0] = 0x%x \n",My_Parameter.mac[0]);
	
	/* get the second mac */
	p += 2;
	if (*p <= '9' && *p >= '0')
	tmp1 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp1 = *p - 'a' + 0xa;
	else
	tmp1 = *p - 'A' + 0xa;
		
	p++;
	
	if (*p <= '9' && *p >= '0')
	tmp2 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp2 = *p - 'a' + 0xa;
	else
	tmp2 = *p - 'A' + 0xa;
	
	My_Parameter.mac[1] = (tmp1<<4) | tmp2 ;
//	Printf("My_Parameter.mac[1] = 0x%x \n",My_Parameter.mac[1]);
	
	/* get the third mac */
	p += 2;
	if (*p <= '9' && *p >= '0')
	tmp1 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp1 = *p - 'a' + 0xa;
	else
	tmp1 = *p - 'A' + 0xa;
		
	p++;
	
	if (*p <= '9' && *p >= '0')
	tmp2 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp2 = *p - 'a' + 0xa;
	else
	tmp2 = *p - 'A' + 0xa;
	
	My_Parameter.mac[2] = (tmp1<<4) | tmp2 ;
//	Printf("My_Parameter.mac[2] = 0x%x \n",My_Parameter.mac[2]);
	
	/* get the fourth mac */
	p += 2;
	if (*p <= '9' && *p >= '0')
	tmp1 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp1 = *p - 'a' + 0xa;
	else
	tmp1 = *p - 'A' + 0xa;
		
	p++;
	
	if (*p <= '9' && *p >= '0')
	tmp2 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp2 = *p - 'a' + 0xa;
	else
	tmp2 = *p - 'A' + 0xa;
	
	My_Parameter.mac[3] = (tmp1<<4) | tmp2 ;
//	Printf("My_Parameter.mac[3] = 0x%x \n",My_Parameter.mac[3]);
	
	/* get the fifth mac */
	p += 2;
	if (*p <= '9' && *p >= '0')
	tmp1 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp1 = *p - 'a' + 0xa;
	else
	tmp1 = *p - 'A' + 0xa;
		
	p++;
	
	if (*p <= '9' && *p >= '0')
	tmp2 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp2 = *p - 'a' + 0xa;
	else
	tmp2 = *p - 'A' + 0xa;
	
	My_Parameter.mac[4] = (tmp1<<4) | tmp2 ;
//	Printf("My_Parameter.mac[4] = 0x%x \n",My_Parameter.mac[4]);
	
	/* get the sixth mac */
	p += 2;
	if (*p <= '9' && *p >= '0')
	tmp1 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp1 = *p - 'a' + 0xa;
	else
	tmp1 = *p - 'A' + 0xa;
		
	p++;
	
	if (*p <= '9' && *p >= '0')
	tmp2 = *p - '0';
	else if (*p <= 'f' && *p >='a')
	tmp2 = *p - 'a' + 0xa;
	else
	tmp2 = *p - 'A' + 0xa;
	
	My_Parameter.mac[5] = (tmp1<<4) | tmp2 ;
//	Printf("My_Parameter.mac[5] = 0x%x \n",My_Parameter.mac[5]);
	
	Printf("mac:       %02x:%02x:%02x:%02x:%02x:%02x\n",\
	My_Parameter.mac[0],\
	My_Parameter.mac[1],\
	My_Parameter.mac[2],\
	My_Parameter.mac[3],\
	My_Parameter.mac[4],\
	My_Parameter.mac[5]);
	
}

void get_otheraddr(char *s , int len)
{
	char * p;
	int i = 0;
	char t1,t2,t3;
	char a1,a2,a3,a4;
	
	p = (char *)0x18000;
	while ((int)p < 0x19000)
	{
		if (memcmp((char *)p,s,len) == 0)
		{	
			//Printf("find ipaddr , p is %x!!\n",p);
			break;
		}
		else
		p++;
	}
	
	if (memcmp("ipaddr",s,6) == 0)
		p += 7;
	else if (memcmp("netmask",s,7) == 0)
		p += 8;
	else if (memcmp("serverip",s,8) == 0)
		p += 9;
	else if (memcmp("code",s,4) == 0)
		p += 5;
	else if (memcmp("multiaddr",s,4) == 0)
		p += 10;
	else
		Printf("unknown ip search!!\n");
	
	/* get the first one */
	i = 0;	
	while (i<3)
	{
		if (*(p+i) == '.')
		break;
		else 
		i++;
	}
	
	if (i == 3)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t2 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t2 = *p - 'a' + 0xa;
		else
		t2 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t3 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t3 = *p - 'a' + 0xa;
		else
		t3 = *p - 'A' + 0xa;
		
		a1 = t1*100 + t2*10 +t3;
		//Printf("a1 = %d ",a1);
		
	}
	else if (i==2)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t2 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t2 = *p - 'a' + 0xa;
		else
		t2 = *p - 'A' + 0xa;
				
		a1 = t1*10 +t2;
		//Printf("a1 = %d ",a1);
	}
	else if (i==1)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		a1 = t1;
		//Printf("a1 = %d ",a1);
		
	}
	else 
	{
		//Printf("known ip !!!\n");
	}
	p++;
	p++;	
	//Printf("i = %d\n",i);
	
	/* get the second one */
	i = 0;	
	while (i<3)
	{
		if (*(p+i) == '.')
		break;
		else 
		i++;
	}
	if (i == 3)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t2 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t2 = *p - 'a' + 0xa;
		else
		t2 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t3 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t3 = *p - 'a' + 0xa;
		else
		t3 = *p - 'A' + 0xa;
		
		a2 = t1*100 + t2*10 +t3;
		//Printf("a2 = %d ",a2);
		
	}
	else if (i==2)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t2 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t2 = *p - 'a' + 0xa;
		else
		t2 = *p - 'A' + 0xa;
				
		a2 = t1*10 +t2;
		//Printf("a2 = %d ",a2);
	}
	else if (i==1)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		a2 = t1;
		//Printf("a2 = %d ",a2);
		
	}
	else 
	{
		Printf("known ip !!!\n");
	}
	p++;
	p++;	
	
	
	//Printf("i = %d\n",i);
	
	/* get the third one */
	i = 0;	
	while (i<3)
	{
		if (*(p+i) == '.')
		break;
		else 
		i++;
	}
	
	if (i == 3)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t2 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t2 = *p - 'a' + 0xa;
		else
		t2 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t3 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t3 = *p - 'a' + 0xa;
		else
		t3 = *p - 'A' + 0xa;
		
		a3 = t1*100 + t2*10 +t3;
		//Printf("a3 = %d ",a3);
		
	}
	else if (i==2)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t2 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t2 = *p - 'a' + 0xa;
		else
		t2 = *p - 'A' + 0xa;
				
		a3 = t1*10 +t2;
		//Printf("a3 = %d ",a3);
	}
	else if (i==1)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		a3 = t1;
		//Printf("a3 = %d ",a3);
		
	}

	p++;
	p++;
	//Printf("i = %d\n",i);
	
	/* get the fourth one */
	i = 0;	
	while (i<3)
	{
		if (*(p+i)>'9' || *(p+i)<'0' )
		break;
		else 
		i++;
	}
	
	if (i == 3)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t2 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t2 = *p - 'a' + 0xa;
		else
		t2 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t3 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t3 = *p - 'a' + 0xa;
		else
		t3 = *p - 'A' + 0xa;
		
		a4 = t1*100 + t2*10 +t3;
		//Printf("a4 = %d ",a4);
		
	}
	else if (i==2)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		p++;
		
		if (*p <= '9' && *p >= '0')
		t2 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t2 = *p - 'a' + 0xa;
		else
		t2 = *p - 'A' + 0xa;
				
		a4 = t1*10 +t2;
		//Printf("a4 = %d ",a4);
	}
	else if (i==1)
	{
		if (*p <= '9' && *p >= '0')
		t1 = *p - '0';
		else if (*p <= 'f' && *p >='a')
		t1 = *p - 'a' + 0xa;
		else
		t1 = *p - 'A' + 0xa;
		a4 = t1;
		//Printf("a4 = %d ",a4);
		
	}
//	else 
//	{
//		Printf("known ip !!!\n");
//	}
	p++;
	p++;
	
	
	//Printf("i = %d\n",i);
	
	if (memcmp("ipaddr",s,6) == 0)
	{
		My_Parameter.ipaddr = a1<<24 | a2<<16 | a3<< 8 | a4;
		Printf("ipaddr:    %d.%d.%d.%d \n",a1,a2,a3,a4);
	}
	else if (memcmp("netmask",s,7) == 0)
	{
		My_Parameter.mask = a1<<24 | a2<<16 | a3<< 8 | a4;
		Printf("netmask:   %d.%d.%d.%d \n",a1,a2,a3,a4);
	}
	else if (memcmp("serverip",s,8) == 0)
	{
		My_Parameter.serverip = a1<<24 | a2<<16 | a3<< 8 | a4;
		Printf("serverip:  %d.%d.%d.%d \n",a1,a2,a3,a4);
	}
	else if (memcmp("multiaddr",s,9) == 0)
	{
		My_Parameter.multiaddr = a1<<24 | a2<<16 | a3<< 8 | a4;
		Printf("multiaddr: %d.%d.%d.%d \n",a1,a2,a3,a4);
	}
	else if (memcmp("code",s,4) == 0)
	{
		My_Parameter.code = a1<<24 | a2<<16 | a3<< 8 | a4;
		Printf("code:      0x%x \n",My_Parameter.code);
	}
	else
		Printf("unknown ip search!!\n");
		
	
		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -