本地蓝牙Mesh
蓝牙Mesh相关的功能对应IOTSmartBlueToothMesh类(单例)。
创建Mesh网络
使用此方法可创建并初始化一个Mesh网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
name | String | 网络的名称 | 无 | 是 |
ttl | int | 消息的最大转发次数 | Time To Live的缩写 | 是 |
例子:
- (void)createMesh {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_createBLEMeshWithMeshName:@"name" meshTTL:@"ttl" success:^(IOTSmartMeshModel *mesh) {
NSLog(@"createMesh success");
} failure:^(NSString *errMsg) {
NSLog(@"createMesh failure: %@", errMsg);
}];
}
删除Mesh网络
使用此方法传入一个Mesh网络的对象,可删除该网络并重置网络下的所有节点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mesh | IOTSmartMeshModel | 要删除的网络对象 | 无 | 是 |
例子:
- (void)removeMesh {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_removeBLEMesh:@"mesh" success:^ {
NSLog(@"remove success");
} failure:^(NSString *errMsg) {
NSLog(@"remove failure: %@", errMsg);
}];
}
获取所有Mesh网络
使用此方法可获取当前手机保存的所有Mesh网络的网络对象。
请求参数:无。
例子:
- (void)getAllMesh {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_getAllBLEMeshSuccess:^(NSArray
NSLog(@"getAllMesh success");
} failure:^(NSString *errMsg) {
NSLog(@"getAllMesh failure: %@", errMsg);
}];
}
连接Mesh网络
使用此方法可连接到Mesh网络的某个代理节点上,进而可进行App与Mesh中节点的交互,使用前提是该Mesh网络中有代理节点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
timeout | int | 连接的超时时间 | 无 | 是 |
mesh | IOTSmartMeshModel | 要连接的mesh网络 | 无 | 是 |
例子:
- (void)connectMesh {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_connectBLEMesh:@"mesh" timeout:@"timeout" success:^ {
NSLog(@"connect success");
} failure:^(NSString *errMsg) {
NSLog(@"connect failure: %@", errMsg);
}];
}
断开Mesh网络
使用此方法可断开App与Mesh网络的连接。若已断开则直接返回成功。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mesh | IOTSmartMeshModel | 要断开的mesh网络 | 无 | 是 |
例子:
- (void)disconnectMesh {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_disConnectBLEMesh:@"mesh" success:^ {
NSLog(@"disconnect success");
} failure:^(NSString *errMsg) {
NSLog(@"disconnect failure: %@", errMsg);
}];
}
获取Mesh网络的所有节点
使用此方法可获取到某个Mesh网络下的所有节点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mesh | IOTSmartMeshModel | 要获取节点的mesh网络 | 无 | 是 |
例子:
- (void)getAllNodes {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_getAllNodeWithBLEMesh:@"mesh" success:^(NSArray
NSLog(@"getAllNodes success");
} failure:^(NSString *errMsg) {
NSLog(@"getAllNodes failure: %@", errMsg);
}];
}
修改网络的名称及TTL
使用此方法可修改网络的名称及Mesh网络的TTL。前提要连接该Mesh网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshName | String | 修改后的网络名称 | 无 | 否 |
meshTTL | int | 修改后的网络TTL | 无 | 否 |
mesh | IOTSmartMeshModel | 要修改的mesh网络 | 无 | 是 |
例子:
- (void)modifyMeshNameAndTTL {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_modifyMeshName: @"meshName" meshTTL:@"meshTTL" withMesh:@"mesh" success:^{
NSLog(@"modify success");
} failure:^(NSString *errMsg) {
NSLog(@"modify failure: %@", errMsg);
}];
}
搜索周围的可添加节点
使用此方法可搜索周围没有被添加到Mesh网络的节点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
timeout | int | 搜索的超时时间 | 无 | 是 |
mesh | IOTSmartMeshModel | 要搜索节点的mesh网络 | 无 | 是 |
例子:
- (void)searchLeisureNode {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_searchNodeWithTimeout: @"timeout" withMesh:@"mesh" success:^(NSString nodeId, NSString nodeName, NSString *mac) {
NSLog(@"search success");
} failure:^(NSString *errMsg) {
NSLog(@"search failure: %@", errMsg);
}];
}
Mesh网络添加节点
使用此方法可以将搜索到的没有被添加到Mesh网络的节点添加到该Mesh网络。前提条件要先进行搜索。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
nodeId | String | 节点的ID | 无 | 是 |
productId | int | 产品ID | 无 | 是 |
productKey | String | 产品的Key | 无 | 是 |
mesh | IOTSmartMeshModel | 要添加节点的mesh网络 | 无 | 是 |
例子:
- (void)meshAddNode {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_addNodeWithNodeId: @"nodeId" productId: @"productId" productKey:@"productKey" toMesh:@"mesh" success:^(IOTSmartNode *node) {
NSLog(@"addNode success");
} failure:^(NSString *errMsg) {
NSLog(@"addNode failure: %@", errMsg);
}];
}
重置节点
使用此方法可将节点重置为未加入Mesh网络的节点,并将节点信息从传入的mesh网络中删除。注意与删除节点信息进行区分。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
node | IOTSmartNode | 需要重置的节点 | 无 | 是 |
mesh | IOTSmartMeshModel | 要重置节点的mesh网络 | 无 | 是 |
例子:
- (void)resetNode {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_resetNodeWithNode:@"node" fromMesh:@"mesh" success:^ {
NSLog(@"resetNode success");
} failure:^(NSString *errMsg) {
NSLog(@"resetNode failure: %@", errMsg);
}];
}
删除节点信息
删除本地保存的节点信息,将节点从网络的节点列表中删除,不管节点是否被重置。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
node | IOTSmartNode | 需要删除信息的节点 | 无 | 是 |
mesh | IOTSmartMeshModel | 要删除节点的mesh网络 | 无 | 是 |
例子:
- (void)deleteNodeInfo {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_deleteNodeWithNode:@"node" fromMesh:@"mesh"];
}
修改节点名称
使用此方法可修改网络内指定mac对应节点的名称。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
nodeName | String | 修改后的节点的名称 | 无 | 是 |
mac | String | 要修改名称的节点mac | 无 | 是 |
mesh | IOTSmartMeshModel | 要修改节点名称的mesh网络 | 无 | 是 |
例子:
- (void)modifyNodeName {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_modifyNodeName:@"nodeName" nodeMac:@"mac" fromMesh:@"mesh" success:^ {
NSLog(@"modify success");
} failure:^(NSString *errMsg) {
NSLog(@"modify failure: %@", errMsg);
}];
}
向节点发送二进制透传消息
使用此方法可向网络内的任意节点发送二进制透传消息。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
data | NSData | 透传的数据 | 无 | 是 |
mac | String | 目标节点的mac | 无 | 是 |
mesh | IOTSmartMeshModel | 发送透传消息的mesh网络 | 无 | 是 |
例子:
- (void)pushMessage {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_pushData:@"data" mac:@"mac" withMesh:@"mesh" success:^ {
NSLog(@"push success");
} failure:^(NSString *errMsg) {
NSLog(@"push failure: %@", errMsg);
}];
}
向节点发送数据点消息
使用此方法可向网络内的任意节点下发数据点消息。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
dpArr | NSArray | 数组中存放数据点对象 | 无 | 是 |
mac | String | 目标节点的mac | 无 | 是 |
mesh | IOTSmartMeshModel | 发送数据点的mesh网络 | 无 | 是 |
例子:
- (void)publishDps {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_publishDPs:@"dpArr" mac:@"mac" withMesh:@"mesh" success:^ {
NSLog(@"publish success");
} failure:^(NSString *errMsg) {
NSLog(@"publish failure: %@", errMsg);
}];
}
获取节点的订阅节点列表
使用此方法可获取某节点所订阅的所有节点。如:A订阅了B、C、D,参数中传A的mac,返回B、C、D的对象数组。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 节点的mac | 无 | 是 |
mesh | IOTSmartMeshModel | 节点所属的mesh网络 | 无 | 是 |
例子:
- (void)getSubscribeArr {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_ getSubscribeNodeListWithMac: @"mac" withMesh:@"mesh" success:^(NSArray
NSLog(@"getSubscribeArr success");
} failure:^(NSString *errMsg) {
NSLog(@"getSubscribeArr failure: %@", errMsg);
}];
}
让节点去订阅另一个节点
此方法可让节点1(源节点)去订阅节点2(被订阅节点)。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
srcMac | String | 源节点 | 无 | 是 |
subMac | String | 源节点需要订阅的节点 | 无 | 是 |
mesh | IOTSmartMeshModel | 节点所属的mesh网络 | 无 | 是 |
例子:
- (void)addSubscribeNode {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_addSubscribeWithSourceNodeMac:@"srcMac" subscribeNodeMac:@"subMac" withMesh:@"mesh" success:^ {
NSLog(@"subscribe success");
} failure:^(NSString *errMsg) {
NSLog(@"subscribe failure: %@", errMsg);
}];
}
让节点取消订阅某个节点
使用此方法可让节点1(源节点)取消订阅节点2(被订阅节点),前提是节点1已经订阅了节点2。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
srcMac | String | 源节点 | 无 | 是 |
subMac | String | 源节点需要取消订阅的节点 | 无 | 是 |
mesh | IOTSmartMeshModel | 节点所属的mesh网络 | 无 | 是 |
例子:
- (void)addSubscribeNode {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_removeSubscribeWithSourceNodeMac:@"srcMac" subscribeNodeMac:@"subMac" withMesh:@"mesh" success:^ {
NSLog(@"remove subscribe success");
} failure:^(NSString *errMsg) {
NSLog(@"remove subscribe failure: %@", errMsg);
}];
}
下发极速小数据点
使用此方法可向某节点极速下发数据点消息。注意:此方法一次只能发送一个数据点且数据点只能使用(布尔、整形、枚举、浮点)类型。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
dpModel | IOTSmartBlueToothDPModel | 数据点对象 | 无 | 是 |
mac | String | 要发送到的节点的mac | 无 | 是 |
mesh | IOTSmartMeshModel | 节点所属的mesh网络 | 无 | 是 |
例子:
- (void)addSubscribeNode {
[[IOTSmartBlueToothMesh shareInstance] IOTCloudSDK_topSpeedPublishSmallDP: @"dpModel" mac:@"mac" withMesh:@"mesh"];
}
实时接收节点发送二进制透传
用户遵循IOTSmartBlueToothMeshDelegate并实现IOTCloudSDK_didReceivedPushData: withMac:meshId:方法即可实时的接收到网络内的节点发送的二进制透传消息。
实时接收节点上报数据点
用户遵循IOTSmartBlueToothMeshDelegate并实现IOTCloudSDK_didReceivedDPArr: withMac:meshId:方法即可实时的接收到网络内的节点上报数据点消息。前提需要先连接Mesh网络。
实时接收节点上报极速小数据点
用户需要遵循IOTSmartBlueToothMeshDelegate协议并实现其中的代理方法IOTCloudSDK_didReceivedTopSpeedSmallDP:withMac:meshId:即可实时的接收到网络内节点上报的极速小数据点。前提需要连接Mesh网络。
监听网络连接和断开
手机端要监听Mesh网络的连接或非正常断开(主动断开只执行回调)。需将自身作为IOTSmartBlueToothMeshConnectionStatus通知的观察者。当手机与Mesh网络连接成功或非正常断开连接时即可监听到对应消息。
云端蓝牙Mesh
云端蓝牙Mesh对应的所有功能都在IOTSmartCloudBlueToothMesh(单例)类中。本节全部功能的前提条件:项目中必须要导入IOTSDK且必须要先进行登录。
创建Mesh网络
使用此方法可创建并初始化一个Mesh网络,并将此Mesh网络的信息保存至云端与当前登录用户进行关联。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
name | String | 网络的名称 | 无 | 是 |
ttl | int | 消息的最大转发次数 | Time To Live的缩写 | 是 |
例子:
- (void)createMesh {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_createBLEMeshWithMeshName:@"name" meshTTL:@"ttl" success:^(IOTSmartMeshModel *mesh) {
NSLog(@"createMesh success");
} failure:^(NSString *errMsg) {
NSLog(@"createMesh failure: %@", errMsg);
}];
}
删除指定的Mesh网络
使用此方法传入一个Mesh网络的对象,可删除该网络并重置网络下的所有节点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mesh | IOTSmartMeshModel | 要删除的网络对象 | 无 | 是 |
例子:
- (void)removeMesh {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_removeBLEMesh:@"mesh" success:^ {
NSLog(@"remove success");
} failure:^(NSString *errMsg) {
NSLog(@"remove failure: %@", errMsg);
}];
}
获取所有Mesh网络
使用此方法可获取当前登录的用户拥有的所有Mesh网络的对象。
请求参数:无。
例子:
- (void)getAllMesh {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_getAllBLEMeshSuccess:^(NSArray
NSLog(@"getAllMesh success");
} failure:^(NSString *errMsg) {
NSLog(@"getAllMesh failure: %@", errMsg);
}];
}
连接Mesh网络
使用此方法可连接到指定Mesh网络,进而可进行App与Mesh中节点的数据交互。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
timeout | int | 连接的超时时间 | 无 | 是 |
mesh | IOTSmartMeshModel | 要连接的mesh网络 | 无 | 是 |
例子:
- (void)connectMesh {
[[IOTSmartCloudBlueToothMesh shareInstance]
IOTCloudSDK_connectBLEMesh:@"mesh" timeout:@"timeout" success:^ {
NSLog(@"connect success");
} failure:^(NSString *errMsg) {
NSLog(@"connect failure: %@", errMsg);
}];
}
断开Mesh网络
使用此方法可断开App与Mesh网络的连接。若已断开则直接返回成功。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mesh | IOTSmartMeshModel | 要断开的mesh网络 | 无 | 是 |
例子:
- (void)disconnectMesh {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_disConnectBLEMesh:@"mesh" success:^ {
NSLog(@"disconnect success");
} failure:^(NSString *errMsg) {
NSLog(@"disconnect failure: %@", errMsg);
}];
}
获取Mesh网络的所有节点
使用此方法可从云端获取指定Mesh网络下的所有节点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mesh | IOTSmartMeshModel | 要获取节点的mesh网络 | 无 | 是 |
例子:
- (void)getAllNodes {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_getAllNodeWithBLEMesh:@"mesh" success:^(NSArray
NSLog(@"getAllNodes success");
} failure:^(NSString *errMsg) {
NSLog(@"getAllNodes failure: %@", errMsg);
}];
}
修改网络的名称及TTL
使用此方法可修改Mesh网络的名称及Mesh网络的TTL。前提要连接该Mesh网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshName | String | 修改后的网络名称 | 无 | 否 |
meshTTL | int | 修改后的网络TTL | 无 | 否 |
mesh | IOTSmartMeshModel | 要修改的mesh网络 | 无 | 是 |
例子:
- (void)modifyMeshNameAndTTL {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_modifyMeshName: @"meshName" meshTTL:@"meshTTL" withMesh:@"mesh" success:^{
NSLog(@"modify success");
} failure:^(NSString *errMsg) {
NSLog(@"modify failure: %@", errMsg);
}];
}
搜索周围的可入网节点
使用此方法可搜索周围没有被添加到Mesh网络的节点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
timeout | int | 搜索的超时时间 | 无 | 是 |
mesh | IOTSmartMeshModel | 要搜索节点的mesh网络 | 无 | 是 |
例子:
- (void)searchLeisureNode {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_searchNodeWithTimeout: @"timeout" withMesh:@"mesh" success:^(NSString nodeName, NSString mac) {
NSLog(@"search success");
} failure:^(NSString *errMsg) {
NSLog(@"search failure: %@", errMsg);
}];
}
Mesh网络添加节点
使用此方法可将搜索到的没有被添加到Mesh网络的节点添加到该Mesh网络。前提条件要先进行搜索。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 节点的mac地址 | 无 | 是 |
productId | int | 产品ID | 无 | 是 |
productKey | String | 产品的Key | 无 | 是 |
mesh | IOTSmartMeshModel | 要添加节点的mesh网络 | 无 | 是 |
例子:
- (void)meshAddNode {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_addNodeWithMac:@"mac" productId: @"productId" productKey:@"productKey" toMesh:@"mesh" success:^(IOTSmartNode *node) {
NSLog(@"addNode success");
} failure:^(NSString *errMsg) {
NSLog(@"addNode failure: %@", errMsg);
}];
}
重置节点
使用此方法可将节点重置为未加入Mesh网络的节点,并将节点信息从指定的mesh网络中删除。注意与删除节点信息进行区分。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
node | IOTSmartNode | 需要重置的节点 | 无 | 是 |
mesh | IOTSmartMeshModel | 要重置节点的mesh网络 | 无 | 是 |
例子:
- (void)resetNode {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_resetNodeWithNode:@"node" fromMesh:@"mesh" success:^ {
NSLog(@"resetNode success");
} failure:^(NSString *errMsg) {
NSLog(@"resetNode failure: %@", errMsg);
}];
}
删除节点信息
此方法用来清除由于某些原因导致节点已不属于Mesh网络但节点信息还存在的节点。其他情况下请勿调用此方法,可能会导致节点信息从云端和本地清除了但节点还在Mesh网络内的情况,此时就必须用户手动在设备上进行重置。若要将某节点从网络中移除请使用重置节点方法。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
node | IOTSmartNode | 需要删除信息的节点 | 无 | 是 |
mesh | IOTSmartMeshModel | 要删除节点的mesh网络 | 无 | 是 |
例子:
- (void)deleteNodeInfo {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_deleteNodeWithNode:@"node" fromMesh:@"mesh" success:^ {
NSLog(@"deleteNode success");
} failure:^(NSString *errMsg) {
NSLog(@"deleteNode failure: %@", errMsg);
}];
}
修改节点名称
使用此方法可修改网络内指定mac对应节点的名称。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
nodeName | String | 修改后的节点的名称 | 无 | 是 |
mac | String | 要修改名称的节点mac | 无 | 是 |
mesh | IOTSmartMeshModel | 要修改节点名称的mesh网络 | 无 | 是 |
例子:
- (void)modifyNodeName {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_modifyNodeName:@"nodeName" nodeMac:@"mac" fromMesh:@"mesh" success:^ {
NSLog(@"modify success");
} failure:^(NSString *errMsg) {
NSLog(@"modify failure: %@", errMsg);
}];
}
向节点发送二进制透传消息
使用此方法向指定的Mesh网络内的指定节点发送二进制透传消息。前提条件:需要连接网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
data | NSData | 透传的数据 | 无 | 是 |
mac | String | 目标节点的mac | 无 | 是 |
mesh | IOTSmartMeshModel | 发送透传消息的mesh网络 | 无 | 是 |
例子:
- (void)pushMessage {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_pushData:@"data" mac:@"mac" withMesh:@"mesh" success:^ {
NSLog(@"push success");
} failure:^(NSString *errMsg) {
NSLog(@"push failure: %@", errMsg);
}];
}
向节点发送数据点消息
使用此方法可向指定Mesh网络的指定节点下发数据点消息。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
dpArr | NSArray | 数组中存放数据点对象 | 无 | 是 |
mac | String | 目标节点的mac | 无 | 是 |
mesh | IOTSmartMeshModel | 发送数据点的mesh网络 | 无 | 是 |
例子:
- (void)publishDps {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_publishDPs:@"dpArr" mac:@"mac" withMesh:@"mesh" success:^ {
NSLog(@"publish success");
} failure:^(NSString *errMsg) {
NSLog(@"publish failure: %@", errMsg);
}];
}
获取节点的订阅节点列表
使用此方法可获取某节点所订阅的所有节点。如:A订阅了B、C、D,参数中传A的mac,返回B、C、D的对象数组。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 节点的mac | 无 | 是 |
mesh | IOTSmartMeshModel | 节点所属的mesh网络 | 无 | 是 |
例子:
- (void)getSubscribeArr {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_getSubscribeNodeListWithMac:@"mac" withMesh:@"mesh" success:^(NSArray
NSLog(@"getSubscribeArr success");
} failure:^(NSString *errMsg) {
NSLog(@"getSubscribeArr failure: %@", errMsg);
}];
}
让节点去订阅另一个节点
此方法可让节点1(源节点)去订阅节点2(被订阅节点)。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
srcMac | String | 源节点 | 无 | 是 |
subMac | String | 源节点需要订阅的节点 | 无 | 是 |
mesh | IOTSmartMeshModel | 节点所属的mesh网络 | 无 | 是 |
例子:
- (void)addSubscribeNode {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_addSubscribeWithSourceNodeMac:@"srcMac" subscribeNodeMac:@"subMac" withMesh:@"mesh" success:^ {
NSLog(@"subscribe success");
} failure:^(NSString *errMsg) {
NSLog(@"subscribe failure: %@", errMsg);
}];
}
让节点取消订阅某个节点
使用此方法可让节点1(源节点)取消订阅节点2(被订阅节点),前提是节点1已经订阅了节点2。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
srcMac | String | 源节点 | 无 | 是 |
subMac | String | 源节点需要取消订阅的节点 | 无 | 是 |
mesh | IOTSmartMeshModel | 节点所属的mesh网络 | 无 | 是 |
例子:
- (void)addSubscribeNode {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_removeSubscribeWithSourceNodeMac:@"srcMac" subscribeNodeMac:@"subMac" withMesh:@"mesh" success:^ {
NSLog(@"remove subscribe success");
} failure:^(NSString *errMsg) {
NSLog(@"remove subscribe failure: %@", errMsg);
}];
}
向节点下发极速小数据点
使用此方法可向某节点极速下发数据点消息。注意:此方法一次只能发送一个数据点且数据点只能使用(布尔、整形、枚举、浮点)类型。前提条件:需要连接网络
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
dpModel | IOTSmartBlueToothDPModel | 数据点对象 | 无 | 是 |
mac | String | 要发送到的节点的mac | 无 | 是 |
mesh | IOTSmartMeshModel | 节点所属的mesh网络 | 无 | 是 |
例子:
- (void)addSubscribeNode {
[[IOTSmartCloudBlueToothMesh shareInstance] IOTCloudSDK_topSpeedPublishSmallDP: @"dpModel" mac:@"mac" withMesh:@"mesh"];
}
实时接收节点发送二进制透传
用户遵循IOTSmartCloudBlueToothMeshDelegate代理协议并实现协议中的IOTCloudSDK_didReceivedPushData:withMac:meshUUID:方法可实时的接收到网络内的节点发送的二进制透传消息。
实时接收节点上报数据点
遵循IOTSmartCloudBlueToothMeshDelegate并实现IOTCloudSDK_didReceivedDPArr: withMac:meshUUID:方法可实时的接收到网络内的节点上报数据点消息。前提需要先连接Mesh网络。
实时接收节点上报极速小数据点消息
用户遵循IOTSmartCloudBlueToothMeshDelegate协议并实现其中的IOTCloudSDK_ didReceivedTopSpeedSmallDP:withMac:meshUUID: 方法可实时的接收到网络内节点上报的极速小数据点。前提需要连接Mesh网络。
监听网络连接和断开
手机端要监听Mesh网络的连接或非正常断开(主动断开只执行回调)。需将自身作为IOTSmartCloudBlueToothMeshConnectionStatus通知的观察者。当手机与Mesh网络连接成功或非正常断开连接时即可监听到对应消息。