@@ -102,6 +102,10 @@ - (BOOL) isStartScan {
102102 return [[BLEConnecter sharedInstance ] isScanning ];
103103}
104104
105+ - (void ) restart {
106+ [self startScanWithTimeout: 20 ];
107+ }
108+
105109- (DPLinkingDevice *) findDPLinkingDeviceByPeripheral : (CBPeripheral *)peripheral {
106110 __block DPLinkingDevice *result = nil ;
107111 [self .devices enumerateObjectsUsingBlock: ^(DPLinkingDevice *obj, NSUInteger idx, BOOL *stop) {
@@ -204,6 +208,7 @@ - (void) disconnectDPLinkingDevice:(DPLinkingDevice *)device {
204208
205209 [[BLEConnecter sharedInstance ] disconnectByDeviceUUID: device.peripheral.identifier.UUIDString];
206210 device.connectFlag = NO ;
211+ device.peripheral = nil ;
207212 [self saveDPLinkingDevice ];
208213}
209214
@@ -634,6 +639,7 @@ - (void) removeConnectDelegate:(id<DPLinkingDeviceConnectDelegate>)delegate {
634639
635640- (void ) startScanWithTimeout : (NSTimeInterval )timeout {
636641 if ([BLEConnecter sharedInstance ].canDiscovery ) {
642+ DCLogInfo (@" DPLinkingDeviceManager::startScanWithTimeout" );
637643 [DPLinkingUtil asyncAfterDelay: timeout block: ^{
638644 DCLogWarn (@" Timeout." );
639645 _initFlag = NO ;
@@ -800,12 +806,18 @@ - (void) cancelConnectingDevice:(CBPeripheral *)peripheral {
800806}
801807
802808- (void ) failToConnect : (CBPeripheral *)peripheral {
803- DCLogInfo (@" AAAAA failToConnect: %@ " , peripheral);
809+ BLEDeviceSetting *setting = [[BLEConnecter sharedInstance ] getDeviceByPeripheral: peripheral];
810+
811+ DCLogInfo (@" @@ failToConnect: [デバイス:%@ との接続に失敗しました。]" , setting.name );
812+ DCLogInfo (@" setting.notifyDeviceInitial: %@ " , setting.notifyDeviceInitial ? @" YES" : @" NO" );
813+ DCLogInfo (@" setting.initialDeviceSettingFinished: %@ " , setting.initialDeviceSettingFinished ? @" YES" : @" NO" );
814+ DCLogInfo (@" setting.saved: %@ " , setting.saved ? @" YES" : @" NO" );
815+ DCLogInfo (@" setting.connectionStatus: %@ " , setting.connectionStatus );
804816
805817 if ([self isEqualDeviceUuid: peripheral]) {
806818 DPLinkingDevice *device = [self findDPLinkingDeviceByPeripheral: peripheral];
807819 if (device) {
808- device.setting = [[BLEConnecter sharedInstance ] getDeviceByPeripheral: peripheral] ;
820+ device.setting = setting ;
809821 device.online = NO ;
810822
811823 [self notifyFailToConnectDevice: device];
@@ -821,17 +833,15 @@ - (void) didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSD
821833 if (device) {
822834 device.peripheral = peripheral;
823835
824- if (_initFlag) {
825- if (device.connectFlag ) {
826- [self connectDPLinkingDevice: device];
836+ if ([self isEqualDeviceUuid: peripheral]) {
837+ if (_scanTimerCancelBlock) {
838+ _scanTimerCancelBlock ();
839+ _scanTimerCancelBlock = nil ;
827840 }
828- } else {
829- if ([self isEqualDeviceUuid: peripheral]) {
830- if (_scanTimerCancelBlock) {
831- _scanTimerCancelBlock ();
832- _scanTimerCancelBlock = nil ;
833- }
834- [self stopScan ];
841+ [self stopScan ];
842+ [self connectDPLinkingDevice: device];
843+ } else if (_initFlag) {
844+ if (device.connectFlag && !device.online ) {
835845 [self connectDPLinkingDevice: device];
836846 }
837847 }
@@ -850,7 +860,12 @@ - (void) didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)
850860}
851861
852862- (void )didConnectDevice : (BLEDeviceSetting *)setting {
853- DCLogInfo (@" @@ didConnectDevice [デバイス:%@ と接続されました。]: %@ " , setting.name , setting.initialDeviceSettingFinished ? @" true" : @" false" );
863+ DCLogInfo (@" @@ didConnectDevice: [デバイス:%@ と接続されました。]" , setting.name );
864+ DCLogInfo (@" setting.notifyDeviceInitial: %@ " , setting.notifyDeviceInitial ? @" YES" : @" NO" );
865+ DCLogInfo (@" setting.initialDeviceSettingFinished: %@ " , setting.initialDeviceSettingFinished ? @" YES" : @" NO" );
866+ DCLogInfo (@" setting.saved: %@ " , setting.saved ? @" YES" : @" NO" );
867+ DCLogInfo (@" setting.connectionStatus: %@ " , setting.connectionStatus );
868+
854869 setting.isInDistanceThreshold = YES ;
855870}
856871
@@ -859,7 +874,7 @@ - (void)didDeviceInitialFinished:(CBPeripheral *)peripheral {
859874
860875 BLEDeviceSetting *setting = [[BLEConnecter sharedInstance ] getDeviceByPeripheral: peripheral];
861876
862- DCLogInfo (@" デバイスを発見しました。 " );
877+ DCLogInfo (@" デバイスの初期化が完了しました " );
863878 DCLogInfo (@" name : %@ " , setting.peripheral .name );
864879 DCLogInfo (@" device id : %d " , setting.deviceId );
865880 DCLogInfo (@" device uid : %d " , setting.deviceUid );
@@ -887,7 +902,7 @@ - (void)didDeviceInitialFinished:(CBPeripheral *)peripheral {
887902}
888903
889904- (void )didDisconnectPeripheral : (CBPeripheral *)peripheral {
890- DCLogInfo (@" @@ didDisconnectPeripheral" );
905+ DCLogInfo (@" @@ didDisconnectPeripheral: %@ " , peripheral );
891906
892907 DPLinkingDevice *device = [self findDPLinkingDeviceByPeripheral: peripheral];
893908 if (device) {
@@ -896,7 +911,7 @@ - (void)didDisconnectPeripheral:(CBPeripheral *)peripheral {
896911}
897912
898913- (void ) didDisconnectDevice : (BLEDeviceSetting *)setting {
899- DCLogInfo (@" @@ didDisconnectDevice" );
914+ DCLogInfo (@" @@ didDisconnectDevice: %@ " , setting. peripheral );
900915
901916 DPLinkingDevice *device = [self findDPLinkingDeviceByPeripheral: setting.peripheral];
902917 if (device) {
0 commit comments