// // HS2Module.m // ReactNativeIOSLibrary // // Created by jing on 2018/11/26. // Copyright © 2018年 daiqingquan. All rights reserved. // #import "HS2SModule.h" #import "HS2SProfileModule.h" #import "HSMacroFile.h" #import "HS2SController.h" #import "HS2S.h" #import "iHealthDeviceManagerModule.h" #import "ManageDeviceController.h" #define EVENT_NOTIFY @"HS2S.MODULE.NOTIFY" #define kMAC_KEY @"mac" #define kACTION_KEY @"action" #define kTYPE_KEY @"type" #define kTYPE_HS2S @"HS2S" @implementation HS2SModule RCT_EXPORT_MODULE() - (NSArray *)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"]; } #pragma mark-init -(NSDictionary *)constantsToExport{ return @{ @"Event_Notify" : EVENT_NOTIFY }; } + (BOOL)requiresMainQueueSetup { return YES; } -(HS2S *)getHS2SWithMac:(NSString *)mac{ HS2SController *controller = [HS2SController shareIHHS2SController]; NSArray *hs2sDeviceArray = [controller getAllCurrentHS2SInstace]; for (HS2S *tempHS2S in hs2sDeviceArray) { if ([mac isEqualToString:tempHS2S.serialNumber]){ return tempHS2S; break; } } return nil; } #pragma mark #pragma mark - Method #pragma mark-获取连接设备 RCT_EXPORT_METHOD(getAllConnectedDevices){ NSArray*hs2sarray= [[HS2SController shareIHHS2SController] getAllCurrentHS2SInstace]; NSMutableArray*deviceMacArray=[NSMutableArray array]; for (int i=0; i<[hs2sarray count]; i++) { HS2S*hs2s=[hs2sarray objectAtIndex:i]; [deviceMacArray addObject:hs2s.serialNumber]; } NSDictionary* deviceInfo = @{kACTION_KEY:ACTION_GET_ALL_CONNECTED_DEVICES,@"devices":deviceMacArray}; [self sendEventWithName:EVENT_NOTIFY body:deviceInfo]; } RCT_EXPORT_METHOD(getDeviceInfo:(nonnull NSString*)mac){ if ([self getHS2SWithMac:mac] != nil) { [[self getHS2SWithMac:mac] commandGetHS2SDeviceInfo:^(NSDictionary *deviceInfo) { NSDictionary* deviceInfoDic = @{kMAC_KEY:mac, kTYPE_KEY:kTYPE_HS2S, kACTION_KEY:ACTION_GET_HS2S_DEVICE_INFO, HS2S_DEVICE_BATTERY:[deviceInfo valueForKey:@"Battary"], HS2S_DEVICE_UNIT:[deviceInfo valueForKey:@"Unit"], HS2S_DEVICE_USER_COUNT:[deviceInfo valueForKey:@"UserCount"] }; [self sendEventWithName:EVENT_NOTIFY body:deviceInfoDic]; } DiaposeErrorBlock:^(HS2SDeviceError errorID) { [self sendHS2SErrorCode:errorID mac:mac]; }]; } } RCT_EXPORT_METHOD(getBattery:(nonnull NSString*)mac){ if ([self getHS2SWithMac:mac] != nil) { [[self getHS2SWithMac:mac]commandGetHS2SBattery:^(NSNumber *battary) { NSDictionary *deviceInfo = @{kMAC_KEY:mac,kTYPE_KEY:kTYPE_HS2S,kACTION_KEY:ACTION_BATTARY_HS,BATTERY_HS:battary}; [self sendEventWithName:EVENT_NOTIFY body:deviceInfo]; } DiaposeErrorBlock:^(HS2SDeviceError errorID) { [self sendHS2SErrorCode:errorID mac:mac]; }]; } } RCT_EXPORT_METHOD(setUnit:(nonnull NSString*)mac :(nonnull NSNumber*)unit){ if ([self getHS2SWithMac:mac] != nil) { HSUnit tempUnit; switch ([unit intValue]) { case 1: tempUnit=HSUnit_Kg; break; case 2: tempUnit=HSUnit_LB; break; case 3: tempUnit=HSUnit_ST; break; default: tempUnit=HSUnit_Kg; break; } __weak typeof(self) weakSelf = self; [[self getHS2SWithMac:mac] commandSetHS2SUnit:tempUnit result:^(BOOL result) { [weakSelf sendEventWithName:EVENT_NOTIFY body:@{ kMAC_KEY:mac, kTYPE_KEY:kTYPE_HS2S, kACTION_KEY:ACTION_SET_HS2S_UNIT, HS2S_SET_RESULT:[NSNumber numberWithBool:result] }]; } DisposeErrorBlock:^(HS2SDeviceError errorID) { [self sendHS2SErrorCode:errorID mac:mac]; }]; } } RCT_EXPORT_METHOD(getUserInfo:(nonnull NSString*)mac){ if ([self getHS2SWithMac:mac] != nil) { __weak typeof(self) weakSelf = self; [[self getHS2SWithMac:mac]commandGetHS2SUserInfo:^(NSDictionary *userInfo) { NSMutableArray*tempUserArray=[userInfo valueForKey:@"UserInfo"]; NSMutableArray*resultArray=[NSMutableArray array]; if (tempUserArray>0) { for (int i=0; i0) { for (int i=0; i0) { for (int i=0; i