上一篇讲了对NDK的初始化与一些基本的配置,这一次讲一下静态IP 配置。 IP地址最长是使用16个字节(包括数字与标点),如:192.168.100.100. 所以要先定义存储IP地址的数组: char IPAddr[16]; 除此之后,还有网关与子网掩码,也是最长16个字节(包括数字与标点),定义对应的缓存。 char IPMask[16]; char IPGateway[16]; 这几个值都在通过串口进行的配置,具体的程序如下:
- char IPAddr[16];
- platform_write("rnInput IP address(Example 10.0.5.2)n");
- platform_uart_read(PLATFORM_UART0, IPAddr);
- char IPMask[16];
- platform_write("rnInput subnet mask(Example 255.255.255.0)n");
- platform_uart_read(PLATFORM_UART0, IPMask);
- char IPGateway[16];
- platform_write("rnInput default gateway(Example 10.0.5.1)n");
- platform_uart_read(PLATFORM_UART0, IPGateway);
复制代码
在此之前,有两个结构体要说一下,它们分别是CI_IPNET 与 CI_ROUTE 。 CI_IPNET结构体成员为:
其中NetType有三个值可以配置:
CI_ROUTE结构体为网关路由结构体,其成员有:
首先先通过bzero函数,将两个结构体清零。 通过inet_addr函数,将之前定义的IPAddr、IPMask、赋值给CI_IPNET 结构体,通过strcpy 函数将DomainName赋值给CI_IPNET的最后一个成员Domain[CFG_DOMAIN_MAX]。 相对于CI_ROUTE结构体赋值也是类似的,最后将两个结构体赋值完成后,将这两个结构体添加到上一篇的HANDLE句柄中。
- CfgAddEntry(hCfg, CFGTAG_IPNET, 1, 0, sizeof(CI_IPNET), (UINT8 *)&NA, 0);
- CfgAddEntry(hCfg, CFGTAG_ROUTE, 0, 0, sizeof(CI_ROUTE), (UINT8 *)&RT, 0);
- CfgAddEntry(hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_DOMAINNAMESERVER, 0, sizeof(IPTmp), (UINT8 *)&IPTmp, 0);
复制代码
还要配置 DNS 服务器,前面已经定义了DNS为:
char *DNSServer = "114.114.114.114";
- CfgAddEntry(hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_DOMAINNAMESERVER, 0, sizeof(IPTmp), (UINT8 *)&IPTmp, 0);
复制代码
这样NDK的静态IP就配置好了。 由于这几篇都是NDK的讲解与使用方法的说明,在NDK的最后一篇将把所有的源码与二进制文件上传。
|