【华为Hilink SDK Linux系统开发】第三章:华为hilink SDK Linux系统网关适配

关注嘉友创科技公众号

声明:文章只做技术交流,没有其他任何用途,侵权泄密立删!!


【华为Hilink开发】目录

此文章适配后,可实现APP扫描添加网关,删除网关,OTA升级网关(OTA需华为技术配合调试).

如果是wifi类单品,适配完就完了...

参考

商务审核ok以后,会发送sdk包,内有参考文档.

Hilink SDK Linux系统适配

hilink_network_adapter.c文件适配:实现网关联网给SDK提供运行条件.

接口1:获取本地ip,让sdk联网

位置:hilink-sdk-src/adapter/network_adapter/hilink_network_adapter.c

/*
 * 获取本地ip
 * localIp表示存放Ip的缓冲
 * len表示存放Ip的缓冲长度
 * 返回0表示成功,返回-1表示失败
 * 注意: localIp为点分十进制格式
 */
int HILINK_GetLocalIp(char *localIp, unsigned char len)
/*
    eth_name:网卡名称,例如eth0
    local_ip_addr:存放获取到的IP
*/
int USER_GetLocalIp(const char * eth_name, char *local_ip_addr)
{
	int ret = -1;
    register int fd;
    struct ifreq ifr;

	user_link_status = 0;

	if (local_ip_addr == NULL || eth_name == NULL)
	{
		return ret;
	}
	if ((fd=socket(AF_INET, SOCK_DGRAM, 0)) > 0)
	{
		strcpy(ifr.ifr_name, eth_name);
		if (!(ioctl(fd, SIOCGIFADDR, &ifr)))
		{
			ret = 0;
			user_link_status = 1;
			strcpy(local_ip_addr, inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
			hilink_printf("local_ip_addr:%s\n",local_ip_addr);
		}
	}
	if (fd > 0)
	{
		close(fd);
	}
    return ret;
}

接口2:获取网络mac地址,此处只需要填充唯一值,不需要获取网络mac,如果要获取网络mac,就要先写网络mac,因为我的硬件没有网mac.所以可以先写到网络mac,然后再获取出来,我是直接读取变量,没有获取网络的mac(因为是我写的).

位置:hilink-sdk-src/adapter/network_adapter/hilink_network_adapter.c


/*
 * 获取网络mac地址
 * mac表示存放MAC地址的缓冲
 * len表示缓冲长度
 * 返回0表示成功,返回-1表示失败
 * 注意: mac格式为a1b2c3d4e5f6
 */
int HILINK_GetMacAddr(unsigned char *mac, unsigned char len)
{
    //填
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值