关注嘉友创科技公众号
声明:文章只做技术交流,没有其他任何用途,侵权泄密立删!!
【华为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)
{
//填