UI<------>main code 之间联系的建立:

例如:

script_tcpip_setting.sct文件中的函数   SET_LOCAL_IPCFG(……);

1、通过这个函数名在所有文件中搜索得到:------------------------>

2、得到文件Action_id.nsp:在这个文件中包含有UI与maicode之间的函数一一映射如:

#map APP_SET_LOCAL_IPCFG_ID "SET_LOCAL_IPCFG"

maincode 中的函数 UI中的函数

3、搜索maincode中的函数APP_SET_LOCAL_IPCFG_ID得到:--------------->

4、得到文件Action_id.h: 在这个文件中有 

#define APP_SET_LOCAL_IPCFG_ID ((ACTION_TYPE_APP<<16) | APP_SET_LOCAL_IPCFG)

5、在搜索APP_SET_LOCAL_IPCFG得到:

6、得到文件Gw_action_list.c :在这个文件中有:

{APP_SET_LOCAL_IPCFG, GW_set_local_ipcfg_hdl},

7、又找到相对应的函数,我们在搜索GW_set_local_ipcfg_hdl函数得到:

8、得到文件Hdl_list.c

在这个文件中有函数

UINT8 GW_set_local_ipcfg_hdl(void ** const  para, INT32 * ret)
{
#ifdef NETWORK_SUPPORT
if( set_local_ip_address( *((UINT8*)para[0]), *((UINT32*)para[1])) == SUCCESS)
{
return SUCCESS;
}

return ERROR;
#else
return ERROR;
#endif
}

在这个函数里调用了函数set_local_ip_address,再找到函数set_local_ip_address的定义,

在文件App_network_ipcfg.c中;

UINT8 set_local_ip_address (UINT8 iptype, UINT32 addr)
{
stInAddr.s_addr = addr;


switch(iptype)
{
case IP_LOCAL_CFG_IP_ADDR:
cur_local_ipcfg.ip_addr = addr;

stInAddr.s_addr = addr;
ip_addr = inet_ntoa(stInAddr);
libc_printf("set inet_ntoa(stInAddr)  = %s\n",inet_ntoa(stInAddr));
libc_printf("ip_addr   = %s\n",ip_addr);
libc_printf("set  addr = %d\n",addr);
strcpy(ip_addrshuzu,ip_addr);
libc_printf("ip_addrshuzu = %s\n",ip_addrshuzu);
break;
case IP_LOCAL_CFG_SUBNET_MASK:
cur_local_ipcfg.subnet_mask= addr;
break;
case IP_LOCAL_CFG_GATEWAY:
cur_local_ipcfg.gateway= addr;
break;
case IP_LOCAL_CFG_DNS:
cur_local_ipcfg.dns= addr;
break;
case IP_LOCAL_CFG_DNS2:
cur_local_ipcfg.dns2= addr;
break;
default:
break;
}
return SUCCESS;
}




































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值