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);
相关推荐
李游Leo9 分钟前
HarmonyOS:ComposeTitleBar 组件自学指南
harmonyos
飞凌嵌入式15 分钟前
从DeepSeek到Qwen,AI大模型的移植与交互实战指南
人工智能·aigc·嵌入式
抓鱼猫L16 分钟前
鸿蒙Next(四)文字识别
harmonyos
小钊(求职中)1 小时前
七种分布式ID生成方式详细介绍--Redis、雪花算法、号段模式以及美团Leaf 等
java·spring boot·分布式·spring·mybatis
IT乐手1 小时前
3.7、HarmonyOS Next 自定义弹窗(CustomDialog)
harmonyos
martian6651 小时前
分布式并发控制实战手册:从Redis锁到ZK选主的架构之道
java·开发语言·redis·分布式·架构
李游Leo1 小时前
HarmonyOS:ArkTS 多态样式自学指南
harmonyos
zacksleo1 小时前
鸿蒙Flutter实战:20. Flutter集成高德地图,同层渲染
flutter·harmonyos
李游Leo1 小时前
HarmonyOS:ArkTS RowSplit 组件自学指南
harmonyos
NodeMedia1 小时前
如何快速集成NodeMediaClient-Harmony
harmonyos