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);
相关推荐
一只大侠的侠3 分钟前
Flutter开源鸿蒙跨平台训练营 Day11从零开发商品详情页面
flutter·开源·harmonyos
一只大侠的侠16 分钟前
React Native开源鸿蒙跨平台训练营 Day18自定义useForm表单管理实战实现
flutter·开源·harmonyos
一只大侠的侠21 分钟前
React Native开源鸿蒙跨平台训练营 Day20自定义 useValidator 实现高性能表单验证
flutter·开源·harmonyos
听麟1 小时前
HarmonyOS 6.0+ 跨端智慧政务服务平台开发实战:多端协同办理与电子证照管理落地
笔记·华为·wpf·音视频·harmonyos·政务
前端世界1 小时前
从单设备到多设备协同:鸿蒙分布式计算框架原理与实战解析
华为·harmonyos
一只大侠的侠2 小时前
Flutter开源鸿蒙跨平台训练营 Day12从零开发通用型登录页面
flutter·开源·harmonyos
程序猿阿伟3 小时前
《分布式追踪Span-业务标识融合:端到端业务可观测手册》
分布式
Hello_Embed3 小时前
libmodbus STM32 主机实验(USB 串口版)
笔记·stm32·学习·嵌入式·freertos·modbus
前端不太难3 小时前
HarmonyOS App 工程深水区:从能跑到可控
华为·状态模式·harmonyos
万少4 小时前
端云一体 一天开发的元服务-奇趣故事匣经验分享
前端·ai编程·harmonyos