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);
相关推荐
樱花落木兰32 分钟前
Redisson 可重入分布式锁底层原理详解
分布式
承渊政道1 小时前
鸿蒙设备远控电脑实测:ToDesk蓝牙键鼠、双模式鼠标、跨端剪贴板,远控电脑更顺手了
计算机外设·电脑·harmonyos·远程工作·todesk
CV工程师丁Sir4 小时前
ArkWeb 手记 04|DevTools 调试与缓存清理
java·spring·缓存·harmonyos
程序猿追16 小时前
HarmonyOS 6 上做个极简浏览器:Web 组件 + 前进后退 + 加载进度
前端·华为·harmonyos
程序猿追16 小时前
HarmonyOS 6 音视频实战:用 AVPlayer 做一个本地音乐播放器
华为·音视频·harmonyos
威哥爱编程16 小时前
HarmonyOS 7 多设备 UX 自动检测实战:AppAnalyzer 多设备体检 + 一多工程底线,提前拦截截断重叠大图大字
harmonyos
dozenyaoyida16 小时前
Zephyr静态注册机制详解:SYS_INIT和BT_CONN_CB_DEFINE为什么没人调用也执行
嵌入式·nordic·链接器·zephyr·蓝牙开发
威哥爱编程16 小时前
HarmonyOS 7 安全相机 2.0 实战:数字内容溯源,为拍摄内容提供来源保护
harmonyos
威哥爱编程16 小时前
HarmonyOS 7 弱网优化实战:Network Boost Kit 场景加速 + QUIC 长连接 + 弱网直播优化
harmonyos
威哥爱编程16 小时前
HarmonyOS 7 应用故障智能诊断实战:APMS 故障总览 + Profiler 跨语言泄漏 + Operation Analyzer 冻屏分析
harmonyos