📄 io.c
字号:
//*------------------------------------------------------------------------------------------------
//* 文件名 : IO.c
//* 功能描述 : 系统输输出函数
//* 作者 : 焦海波
//* 版本 : 0.1
//* 建立日期、时间 : 2006/08/07 15:26
//* 最近修改日期、时间 :
//* 修改原因 :
//*------------------------------------------------------------------------------------------------
//*------------------------------------------ 头文件 -----------------------------------------------
#include "/uCOS_II/includes.h"
#include "/tools/stringExtAPI.h"
#include "/at91sam7x256/periph/emac/lib_emac.h"
#include "flash.h"
//*================================================================================================
//* 函 数 区
//*================================================================================================
//*------------------------------------------------------------------------------------------------
//* 函数名称 : ubSetNetCFGParam
//* 功能描述 : 设置网络配置参数(IP地址、子网掩码、网关)
//* 入口参数 : <ulIP>[in] IP地址
//* : <ulNetMask>[in] 子网掩码
//* : <ulGateway>[in] 网关地址
//* 出口参数 : 设置成功返回TRUE,否则返回FALSE
//*------------------------------------------------------------------------------------------------
BOOLEAN ubSetNetCFGParam(ULONG ulIP, ULONG ulNetMask, ULONG ulGateway)
{
ST_NET_CFG_PARAM __stNetCFG;
LONG __lDNLen = 0;
memset(&__stNetCFG, 0, sizeof(ST_NET_CFG_PARAM));
if(*((ULONG*)PST_NET_CFG_PARAM->szDN) != 0xFFFFFFFF)
{
__lDNLen = strlenExt(PST_NET_CFG_PARAM->szDN);
memcpy(__stNetCFG.szDN, PST_NET_CFG_PARAM->szDN, __lDNLen);
}
__stNetCFG.ulFlag = NET_CFG_FLAG;
__stNetCFG.ulIP = ulIP;
__stNetCFG.ulNetMask = ulNetMask;
__stNetCFG.ulGateway = ulGateway;
if(DFL_WriteFlash((ULONG*)&__stNetCFG, NET_CFG_PARAM_STORE_ADDR, ST_NETCFG_PARAM_HDR_LEN + __lDNLen) == ERR_WFLASH_OK)
return TRUE;
else
return FALSE;
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : ubSetDN
//* 功能描述 : 设置域名
//* 入口参数 : <pszDN>[in] 指向域名的指针
//* : <lLen>[in] 域名的长度
//* 出口参数 : 设置成功返回TRUE,否则返回FALSE
//*------------------------------------------------------------------------------------------------
BOOLEAN ubSetDN(BYTE *pszDN, LONG lLen)
{
ST_NET_CFG_PARAM __stNetCFG;
memset(&__stNetCFG, 0, sizeof(ST_NET_CFG_PARAM));
if(PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG)
{
__stNetCFG.ulFlag = NET_CFG_FLAG;
__stNetCFG.ulIP = PST_NET_CFG_PARAM->ulIP;
__stNetCFG.ulNetMask = PST_NET_CFG_PARAM->ulNetMask;
__stNetCFG.ulGateway = PST_NET_CFG_PARAM->ulGateway;
}
memcpy(__stNetCFG.szDN, pszDN, lLen);
if(DFL_WriteFlash((ULONG*)&__stNetCFG, NET_CFG_PARAM_STORE_ADDR, ST_NETCFG_PARAM_HDR_LEN + lLen) == ERR_WFLASH_OK)
return TRUE;
else
return FALSE;
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : vReadASCIIIP
//* 功能描述 : 读取ASCII类型的IP地址到指定的缓冲区
//* 入口参数 : <pszIP>[in] 指向接收缓冲区的指针
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
void vReadASCIIIP(BYTE *pszIP)
{
sprintf(pszIP, "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetIPAddr(0) : IP_ADDR_0);
sprintf(pszIP + strlenExt(pszIP), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetIPAddr(1) : IP_ADDR_1);
sprintf(pszIP + strlenExt(pszIP), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetIPAddr(2) : IP_ADDR_2);
sprintf(pszIP + strlenExt(pszIP), "%d", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetIPAddr(3) : IP_ADDR_3);
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : vReadASCIINetMask
//* 功能描述 : 读取ASCII类型的子网掩码地址到指定的缓冲区
//* 入口参数 : <pszNetMask>[in] 指向接收缓冲区的指针
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
void vReadASCIINetMask(BYTE *pszNetMask)
{
sprintf(pszNetMask, "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetNetMask(0) : NET_MASK0);
sprintf(pszNetMask + strlenExt(pszNetMask), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetNetMask(1) : NET_MASK1);
sprintf(pszNetMask + strlenExt(pszNetMask), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetNetMask(2) : NET_MASK2);
sprintf(pszNetMask + strlenExt(pszNetMask), "%d", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetNetMask(3) : NET_MASK3);
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : vReadASCIIGateway
//* 功能描述 : 读取ASCII类型的网关地址到指定的缓冲区
//* 入口参数 : <pszGateway>[in] 指向接收缓冲区的指针
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
void vReadASCIIGateway(BYTE *pszGateway)
{
sprintf(pszGateway, "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetGateway(0) : GATEWAY_ADDR_0);
sprintf(pszGateway + strlenExt(pszGateway), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetGateway(1) : GATEWAY_ADDR_1);
sprintf(pszGateway + strlenExt(pszGateway), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetGateway(2) : GATEWAY_ADDR_2);
sprintf(pszGateway + strlenExt(pszGateway), "%d", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetGateway(3) : GATEWAY_ADDR_3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -