Skip to content

Commit c4d85cd

Browse files
tonychanchenoldcodefarmer
authored andcommitted
设备发消息给app
tapd: http://tapd.oa.com/20393192/prong/stories/view/1020393192869350657 Change-Id: I764988307afd8511409dd61b7f47fbd1aab28cc7
1 parent f677650 commit c4d85cd

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

Source/SDK/LinkVideo/TIoTCoreXP2PBridge.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@ extern NSNotificationName const TIoTCoreXP2PBridgeNotificationStreamEnd;
2323
* 客户端拉取到的裸流数据对应 data 参数
2424
*/
2525
- (void)getVideoPacket:(uint8_t *)data len:(size_t)len;
26+
27+
28+
/*
29+
* 设备主动发消息给app:
30+
* dev_name 和所有接口的dev_name参数是保持一致,表示给那个哪个设备发的流
31+
* data是设备主动发过来的内容
32+
* 需注意使用场景:只能在直播,回看或对讲期间设备才可以主动发
33+
*/
34+
- (void)reviceDeviceMsgWithID:(NSString *)dev_name data:(NSData *)data;
2635
@end
2736

2837

Source/SDK/LinkVideo/TIoTCoreXP2PBridge.mm

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@
6161
});
6262
}
6363
else if (type == XP2PTypeDeviceMsgArrived) {
64-
// 设备端向App发消息
65-
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
66-
[[NSNotificationCenter defaultCenter] postNotificationName:TIoTCoreXP2PBridgeNotificationDeviceMsg object:nil userInfo:@{@"id": DeviceName, @"msg": message}];
67-
});
64+
// 设备端向App发消息,
65+
// dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
66+
// [[NSNotificationCenter defaultCenter] postNotificationName:TIoTCoreXP2PBridgeNotificationDeviceMsg object:nil userInfo:@{@"id": DeviceName, @"msg": message}];
67+
// });
6868
}
6969
else if (type == XP2PTypeCmdNOReturn) {
7070
//设备自定义信令未回复内容
@@ -88,12 +88,18 @@ void XP2PDataMsgHandle(const char *idd, uint8_t* recv_buf, size_t recv_len) {
8888
}
8989

9090
char* XP2PReviceDeviceCustomMsgHandle(const char *idd, uint8_t* recv_buf, size_t recv_len) {
91-
// id<TIoTCoreXP2PBridgeDelegate> delegate = [TIoTCoreXP2PBridge sharedInstance].delegate;
92-
// if ([delegate respondsToSelector:@selector(getVideoPacket:len:)]) {
93-
// [delegate getVideoPacket:recv_buf len:recv_len];
94-
// }
9591
char *msg = (char *)recv_buf;
96-
printf("device feedback ==> %s",msg);
92+
printf("device feedback ==> %s\n",msg);
93+
94+
NSString *DeviceName = [NSString stringWithCString:idd encoding:[NSString defaultCStringEncoding]]?:@"";
95+
NSData *DeviceData = [NSData dataWithBytes:recv_buf length:recv_len];
96+
97+
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
98+
id<TIoTCoreXP2PBridgeDelegate> delegate = [TIoTCoreXP2PBridge sharedInstance].delegate;
99+
if ([delegate respondsToSelector:@selector(reviceDeviceMsgWithID:data:)]) {
100+
[delegate reviceDeviceMsgWithID:DeviceName data:DeviceData];
101+
}
102+
});
97103
return "";
98104
}
99105

0 commit comments

Comments
 (0)