1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
//
// TS28BModule.m
// ReactNativeIOSLibrary
//
// Created by user on 2019/11/12.
// Copyright © 2019 daiqingquan. All rights reserved.
//
#import "TS28BModule.h"
#import "TS28BHeader.h"
#define EVENT_NOTIFY @"event_notify_ts28b"
#define kMAC_KEY @"mac"
#define kACTION_KEY @"action"
@interface TS28BModule()<TS28BControllerDelegate>
@property (strong, nonatomic) TS28BController *ts28bController;
@end
@implementation TS28BModule
RCT_EXPORT_MODULE()
- (NSArray<NSString *> *)supportedEvents {
return @[@"event_notify", @"event_scan_device", @"event_scan_finish",
@"event_device_connected", @"event_device_connect_failed",
@"event_device_disconnect", @"event_authenticate_result",
@"event_notify_ts28b", @"event_notify_bg1",
@"action_connect_result_for_bg1"];
}
- (NSDictionary *)constantsToExport
{
return @{ @"Event_Notify": EVENT_NOTIFY };
}
+ (BOOL)requiresMainQueueSetup
{
return YES;
}
RCT_EXPORT_METHOD(getAllConnectedDevices){
[[NSNotificationCenter defaultCenter] postNotificationName:@"getAllTS28BConnectedDevices" object:self];
}
RCT_EXPORT_METHOD(measure:(nonnull NSString *)mac){
self.ts28bController = [TS28BController sharedController];
self.ts28bController.delegate = self;
// if ([self getDeviceWithMac:mac] != nil) {
//
// [[self getDeviceWithMac:mac] commandStartMeasure:^(NSDictionary *result) {
//
// NSDictionary* deviceInfo = @{kACTION_KEY:@"ACTION_GET_MEASURE",@"bodyFlag":[result objectForKey:@"bodyFlag"],@"unit":[result objectForKey:@"unit"],@"result":[result objectForKey:@"result"]};
//
// [self sendEventWithName:EVENT_NOTIFY body:deviceInfo];
//
//
//
// }];
//
// }
}
//断开连接
RCT_EXPORT_METHOD(disconnect:(nonnull NSString *)mac){
[[NSNotificationCenter defaultCenter] postNotificationName:@"disconnectTS28B" object:self];
}
#pragma mark - TS28B delegate
- (void)controller:(TS28BController *)controller didDiscoverDevice:(TS28B *)device{
NSLog(@"搜索到设备的代理");
}
- (void)controller:(TS28BController *)controller didConnectSuccessDevice:(TS28B *)device{
NSLog(@"连接成功的代理");
// self.connectedDevice = device;
// NSLog(@"%@",[NSString stringWithFormat:@"连接成功:%@ \nSerial Number:%@\nModel Number%@\nFirmware:%@\nHardware:%@\nSoftware:%@\nManufacture:%@\nSystemID:%@",device.peripheral.name,device.serialNumber,device.modelNumber,device.firmwareVersion,device.hardwareVersion,device.softwareVersion,device.manufacturerName,device.systemID]);
}
- (void)controller:(TS28BController *)controller didConnectFailDevice:(TS28B *)device{
NSLog(@"连接失败的代理");
// self.recordTextView.text = @"连接失败";
}
- (void)controller:(TS28BController *)controller didDisconnectDevice:(TS28B *)device{
NSLog(@"断开连接的代理");
// self.recordTextView.text = @"连接断开";
}
- (void)controller:(TS28BController *)controller device:(TS28B *)device didUpdateTemperature:(float)value temperatureUnit:(TemperatureUnit)unit measureDate:(NSDate *)date measureLocation:(TemperatureType)type{
// self.valueLabel.text = [NSString stringWithFormat:@"%.1f %@",value,(unit == TemperatureUnit_C)?@"C":@"F"];
NSDictionary* deviceInfo = @{kACTION_KEY:@"ACTION_GET_MEASURE",@"bodyFlag":[NSNumber numberWithInt:type],@"unit":[NSNumber numberWithInt:unit],@"result":[NSNumber numberWithFloat:value]};
[self sendEventWithName:EVENT_NOTIFY body:deviceInfo];
}
@end
|