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);
相关推荐
zhang238390615434 分钟前
Kafka-可视化工具-Offset Explorer
分布式·kafka
fjkxyl43 分钟前
Kafka 消息可靠性深度解析:大流量与小流量场景下的设计哲学
分布式·kafka
方二华6 小时前
分布式队列对消息语义的处理
分布式·kafka·rocketmq
API_technology7 小时前
《淘宝 API 数据湖构建:实时商品详情入湖 + Apache Kafka 流式处理指南》
数据库·分布式·数据挖掘·kafka·apache
晓看云起时8 小时前
kafka消息的顺序性如何保持一致的
分布式·kafka
凉白开3388 小时前
Spark-streaming
大数据·分布式·spark
佳腾_9 小时前
【分布式系统中的“瑞士军刀”_ Zookeeper】三、Zookeeper 在实际项目中的应用场景与案例分析
分布式·zookeeper·云原生
bestadc11 小时前
入门版 鸿蒙 组件导航 (Navigation)
harmonyos
lix的小鱼11 小时前
如何搭建spark yarn模式的集群
大数据·分布式·spark
冼紫菜11 小时前
[特殊字符] Docker 从入门到实战:全流程教程 + 项目部署指南(含镜像加速)
运维·分布式·后端·docker·云原生·容器