nstackx_device.c 定义了配置与更新设备信息,以及注册设备能力和服务数据。
(一)设备信息结构
首先,在头文件nstackx.h中声明了远端与本地设备信息。
远端设备信息:
objectivec
//远端设备信息
typedef struct NSTACKX_DeviceInfo {
char deviceId[NSTACKX_MAX_DEVICE_ID_LEN]; //设备ID
char deviceName[NSTACKX_MAX_DEVICE_NAME_LEN]; //设备名
uint32_t capabilityBitmapNum; //功能位图数量
uint32_t capabilityBitmap[NSTACKX_MAX_CAPABILITY_NUM]; //功能位图
uint8_t deviceType; //设备类型
char version[NSTACKX_MAX_HICOM_VERSION]; //版本
char reservedInfo[NSTACKX_MAX_RESERVED_INFO_LEN]; //保留信息
} NSTACKX_DeviceInfo;
本地设备信息
objectivec
//本地设备信息
typedef struct {
char name[NSTACKX_MAX_DEVICE_NAME_LEN]; //设备名
char deviceId[NSTACKX_MAX_DEVICE_ID_LEN]; // 设备id
char btMacAddr[NSTACKX_MAX_MAC_STRING_LEN]; //蓝牙mac 地址
char wifiMacAddr[NSTACKX_MAX_MAC_STRING_LEN]; //wifi mac 地址
char networkIpAddr[NSTACKX_MAX_IP_STRING_LEN]; // ip地址
char networkName[NSTACKX_MAX_INTERFACE_NAME_LEN]; // 网络名
uint8_t is5GHzBandSupported; //是否支持5G
int deviceType; //设备类型
char version[NSTACKX_MAX_HICOM_VERSION]; //版本
} NSTACKX_LocalDeviceInfo;
DD一下: 欢迎大家关注公众号<程序猿百晓生>,可以了解到以下知识点。
erlang
`欢迎大家关注公众号<程序猿百晓生>,可以了解到以下知识点。`
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案)
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......
在nstackx_device.h头文件中,声明设备信息结构体
objectivec
typedef struct DeviceInfo {
char deviceName[NSTACKX_MAX_DEVICE_NAME_LEN]; //设备名
char deviceId[NSTACKX_MAX_DEVICE_ID_LEN]; // 设备ID
int deviceType; //设备类型
uint16_t portNumber; //端口号
NetChannelInfo netChannelInfo; //网络通道信息
/* Capability data */
uint32_t capabilityBitmapNum; // 功能位图数量
uint32_t capabilityBitmap[NSTACKX_MAX_CAPABILITY_NUM]; //功能位图
char version[NSTACKX_MAX_HICOM_VERSION]; // 版本
uint8_t mode;
char deviceHash[DEVICE_HASH_LEN]; //设备哈希值
char serviceData[NSTACKX_MAX_SERVICE_DATA_LEN]; //设备提供服务的数据
} DeviceInfo;
(二)设置与获取设备信息
在nstackx_device.h头文件中声明了设置、获取设备信息以及注册设备功能与服务数据。
arduino
//设置设备哈希值
void SetDeviceHash(uint64_t deviceHash);
//清楚本地设备信息
void ClearLocalData(void);
//配置本地设备信息
int ConfigureLocalDeviceInfo(const NSTACKX_LocalDeviceInfo *localDeviceInfo);
//更新本地本地网络接口
int UpdateLocalNetworkInterface(const NetworkInterfaceInfo *interfaceInfo);
//获取本地设备信息
const DeviceInfo *GetLocalDeviceInfo(void);
//是否接入到无线
uint8_t IsWifiApConnected(void);
//获取ip的点分十进制表示
int GetLocalIpString(char *ipString, size_t length);
//获取本地接口名
int GetLocalInterfaceName(char *ifName, size_t ifNameLength);
//注册设备功能
int RegisterCapability(uint32_t capabilityBitmapNum, const uint32_t capabilityBitmap[]);
//注册设备服务数据
int RegisterServiceData(const char* serviceData, int length);