OpenHarmony之分布式软总线nstackx_device.c(一)

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);
相关推荐
Huang兄3 小时前
鸿蒙-List和Grid拖拽排序:仿微信小程序删除效果
harmonyos·arkts·arkui
anyup1 天前
🔥2026最推荐的跨平台方案:H5/小程序/App/鸿蒙,一套代码搞定
前端·uni-app·harmonyos
Ranger09291 天前
鸿蒙开发新范式:Gpui
rust·harmonyos
Huang兄1 天前
鸿蒙-深色模式适配
harmonyos·arkts·arkui
SummerKaze3 天前
为鸿蒙开发者写一个 nvm:hmvm 的设计与实现
harmonyos
初次攀爬者4 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
在人间耕耘5 天前
HarmonyOS Vision Kit 视觉AI实战:把官方 Demo 改造成一套能长期复用的组件库
人工智能·深度学习·harmonyos
王码码20355 天前
Flutter for OpenHarmony:socket_io_client 实时通信的事实标准(Node.js 后端的最佳拍档) 深度解析与鸿蒙适配指南
android·flutter·ui·华为·node.js·harmonyos
HarmonyOS_SDK5 天前
【FAQ】HarmonyOS SDK 闭源开放能力 — Ads Kit
harmonyos
Swift社区5 天前
如何利用 ArkUI 框架优化鸿蒙应用的渲染性能
华为·harmonyos