From f99cf1d5cc50407394501853be06cb39f38a092c Mon Sep 17 00:00:00 2001
From: 单军华 <WindShan@danjunhuas-MacBook-Pro.local>
Date: Wed, 28 Mar 2018 14:09:19 +0800
Subject: [PATCH] 界面更换与适配调整

---
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/GlucoseModel.m                                               |  358 +
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/ThermometerModel.h                                           |   72 
 pregnancy_guard/BaseProject/Controller/Home/MinePage.m                                                                       |  334 
 pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_sel@2x.png                                            |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/ThermometerModel.m                                           |  400 +
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/GlucoseModel.h                                               |   85 
 pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_unsel@2x.png                                          |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_one.png                                                    |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_done.png                                              |    0 
 pregnancy_guard/BaseProject/Controller/Home/DeviceListMgrPage.m                                                              |    8 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Utilities.h                                                          |   63 
 pregnancy_guard/BaseProject/Controller/Login/FogetPwdPage.m                                                                  |   42 
 pregnancy_guard/BaseProject/Resources/Config/TabBarPages.plist                                                               |    2 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_zhuanpan_bk@2x.png                              |    0 
 pregnancy_guard/BaseProject/Model/UploadModel.m                                                                              |   13 
 pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_unsel@2x.png                                        |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_radia_bottom_bg.png                             |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/CharacteristicFormatPList.plist                                       |   63 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-three.png                                                  |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/CharacteristicUUIDPList.plist                                         |  110 
 pregnancy_guard/BaseProject/Model/UploadModel.h                                                                              |   21 
 pregnancy_guard/BaseProject/Model/DataModel.h                                                                                |   16 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BPModel.h                                                    |   72 
 pregnancy_guard/BaseProject/Model/DataModel.m                                                                                |   13 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BPModel.m                                                    |  198 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/FindMeModel.h                                                |   87 
 pregnancy_guard/BaseProject/AppDelegate.m                                                                                    |  111 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BootLoaderServiceModel.m                                     |  486 +
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BootLoaderServiceModel.h                                     |  112 
 pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_sel@2x.png                                             |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_line.png                                        |    0 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700-568h@2x.png                    |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_start_btn.png                                         |    0 
 pregnancy_guard/BaseProject/ThirdClass/JHChart/JHLineChart.m                                                                 |   69 
 pregnancy_guard/BaseProject/Utility/AudioTool/CSAudioManager.h                                                               |   48 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/AccelerometerModel.m                                         |  280 +
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-two.png                                                    |    0 
 pregnancy_guard/BaseProject/Utility/AudioTool/CSAudioManager.m                                                               |  375 +
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700@2x.png                         |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Utilities.m                                                          |  443 +
 pregnancy_guard/pregnancy_guard.xcodeproj/project.xcworkspace/xcuserdata/WindShan.xcuserdatad/UserInterfaceState.xcuserstate |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/AccelerometerModel.h                                         |  107 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png                                    |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/MBleService.m                                                      |   20 
 pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_address.png                                               |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_time.png                                                  |    0 
 pregnancy_guard/BaseProject/Controller/Home/HomePage.m                                                                       |    8 
 pregnancy_guard/BaseProject/Resources/images/loginpage/NavigationBar64@2x.png                                                |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/MBleService.h                                                      |   19 
 pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_bk.png                                                     |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/ServiceUUIDPList.plist                                                |  167 
 pregnancy_guard/BaseProject/Views/Cell/DevicesTableViewCell.m                                                                |  145 
 pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/regist_btn_bk.png                                            |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_anquan_bk.png                                   |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_data.png                                                 |    0 
 pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.h                                                               |    4 
 pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_line.png                                                    |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_head_bg.png                                     |    0 
 pregnancy_guard/BaseProject/Controller/Login/RegistPage.m                                                                    |   39 
 pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_time_bk.png                                                 |    0 
 pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.m                                                               |  463 +
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/FindMeModel.m                                                |  293 +
 pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/serviceAndCharacteristicNames.plist                                   |  354 +
 pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_down_up_arraw.png                                         |    0 
 pregnancy_guard/BaseProject/Controller/Mine/ChangeNamePage.m                                                                 |    1 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/CSCModel.h                                                   |   62 
 pregnancy_guard/BaseProject/Core/Network/NetworkSingleton.m                                                                  |    2 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png                                 |    0 
 pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.m                                                                    |   10 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage.png                                |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_police.png                                               |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/CSCModel.m                                                   |  268 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/TemperatureModel.m                                           |  194 
 pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_tel_no_tag.png                                          |    0 
 pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.h                                                                    |    3 
 pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_btn_bk.png                                                 |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/TemperatureModel.h                                           |   76 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RGBModel.h                                                   |   76 
 pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_long_bk.png                                             |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_bottom_bk@2x.png                                           |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_tel_no_tag.png                                             |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/DevieInformationModel.m                                      |  264 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RSCModel.m                                                   |  242 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RGBModel.m                                                   |  278 +
 pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Constants.h                                                          |  382 +
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/DevieInformationModel.h                                      |   51 
 pregnancy_guard/BaseProject/Controller/Mine/UpdateHotelAccountPage.m                                                         |    2 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RSCModel.h                                                   |   82 
 pregnancy_guard/BaseProject/Views/Cell/DevicesTableViewCell.h                                                                |   13 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/HRMModel.m                                                   |  347 +
 pregnancy_guard/BaseProject/ThirdClass/CBManager/common/UIView+Toast.h                                                       |   57 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_zhishu_bk.png                                   |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/HRMModel.h                                                   |   74 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/common/UIView+Toast.m                                                       |  386 +
 pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_bottom_bg@2x.png                                            |    0 
 pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m                                 |    7 
 pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_unsel@2x.png                                           |    0 
 pregnancy_guard/BaseProject/Resources/images/loginpage/NavigationBar128@2x.png                                               |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_anquan_tips.png                                 |    0 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png                                 |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_name_tag.png                                                |    0 
 pregnancy_guard/BaseProject/Model/UserModel.h                                                                                |    9 
 pregnancy_guard/BaseProject/Controller/Login/LoginPage.m                                                                     |   30 
 pregnancy_guard/BaseProject/Views/Cell/MusicPlayCell.m                                                                       |   16 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_btn.png                                          |    0 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-667h@2x.png                    |    0 
 pregnancy_guard/BaseProject/Utility/XZPickView/XZPickView.m                                                                  |  246 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ResourceHandler.h                                                    |   40 
 pregnancy_guard/BaseProject/Define/URLDefines.h                                                                              |   52 
 pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_refresh.png                                              |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/capsenseModel.h                                              |   80 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png                                 |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_weixin_tips.png                                 |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/capsenseModel.m                                              |  214 
 pregnancy_guard/BaseProject/Define/Defines.h                                                                                 |   11 
 pregnancy_guard/BaseProject/Utility/XZPickView/XZPickView.h                                                                  |   52 
 pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_new_pwd_tag.png                                         |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CBMoralManager.m                                                            |  520 +
 pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_start.png                                                |    0 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png                                 |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_weixian_bk.png                                  |    0 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-Portrait-736h@3x.png           |    0 
 pregnancy_guard/BaseProject/Controller/Mine/HistoryRecordPage.m                                                              |  341 +
 pregnancy_guard/BaseProject/Model/BaseReqModel.m                                                                             |    2 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CBMoralManager.h                                                            |  212 
 pregnancy_guard/BaseProject/Utility/XZPickView/UIView+Category.m                                                             |   53 
 pregnancy_guard/BaseProject/Utility/XZPickView/UIView+Category.h                                                             |   18 
 pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_short_bk.png                                            |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_tag.png                                          |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/icon_weixian.png                                   |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ResourceHandler.m                                                    |   98 
 pregnancy_guard/BaseProject/Model/BaseReqModel.h                                                                             |    2 
 pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcschemes/pregnancy_guard.xcscheme                 |    4 
 pregnancy_guard/BaseProject/Controller/Mine/MusicSetPage.m                                                                   |  165 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/gif_searching.gif                                               |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/Option.m                                                           |   16 
 pregnancy_guard/BaseProject/Info.plist                                                                                       |   10 
 pregnancy_guard/BaseProject/Resources/images/istanbul/personal/exit_btn.png                                                  |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/icon_anquan.png                                    |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/Option.h                                                           |   20 
 pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.m                                                             | 1095 ++++
 pregnancy_guard/BaseProject/Utility/DateUtil.m                                                                               |   11 
 pregnancy_guard/pregnancy_guard.xcodeproj/project.pbxproj                                                                    |  362 +
 pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_code_tag.png                                               |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/SensorHubModel.h                                             |  111 
 pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.h                                                             |    3 
 pregnancy_guard/BaseProject/Utility/DateUtil.h                                                                               |    3 
 pregnancy_guard/BaseProject/Views/Cell/SearchTipsCell.m                                                                      |   70 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/icon.png                                            |    0 
 pregnancy_guard/BaseProject/Views/Cell/SearchTipsCell.h                                                                      |   17 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png                                 |    0 
 pregnancy_guard/BaseProject/Controller/Common/BasePageController.m                                                           |    8 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png                                 |    0 
 pregnancy_guard/BaseProject/Model/CommonReqModel.h                                                                           |    3 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_lanya_tag.png                                              |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BatteryServiceModel.m                                        |  226 
 pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_bk@2x.png                                                   |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_pwd_tag.png                                                 |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BarometerModel.h                                             |   82 
 pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw_left@2x.png                                         |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_logo.png                                                   |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BatteryServiceModel.h                                        |   73 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BarometerModel.m                                             |  203 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_top_bk.png                                                   |    0 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57.png                                    |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ProgressHandler.h                                                    |   40 
 pregnancy_guard/BaseProject/Views/Cell/HotelAccountCell.m                                                                    |    6 
 pregnancy_guard/BaseProject/Model/HotelAccount.h                                                                             |    9 
 pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-four.png                                                   |    0 
 pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_pointer@2x.png                                  |    0 
 pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_unlike.png                                               |    0 
 pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist               | 2736 ++++++++-
 pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/top_bar_bk.png                                               |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/SensorHubModel.m                                             |  416 +
 /dev/null                                                                                                                    |    0 
 pregnancy_guard/BaseProject/Resources/Music/music.mp3                                                                        |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ProgressHandler.m                                                    |  103 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CBPeripheralExt.h                                                           |   72 
 pregnancy_guard/BaseProject/Global/Global.h                                                                                  |    2 
 pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw_right@2x.png                                        |    0 
 pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57@2x.png                                 |    0 
 pregnancy_guard/BaseProject/Global/Global.m                                                                                  |   25 
 pregnancy_guard/BaseProject/Controller/Mine/ChangePwdPage.m                                                                  |    1 
 pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_sel@2x.png                                          |    0 
 pregnancy_guard/BaseProject/ThirdClass/CBManager/CBPeripheralExt.m                                                           |   40 
 185 files changed, 15,440 insertions(+), 865 deletions(-)

diff --git a/pregnancy_guard/BaseProject/AppDelegate.m b/pregnancy_guard/BaseProject/AppDelegate.m
index 95422c7..1505425 100644
--- a/pregnancy_guard/BaseProject/AppDelegate.m
+++ b/pregnancy_guard/BaseProject/AppDelegate.m
@@ -19,6 +19,7 @@
 #import "HomePage.h"
 #import "SegmentedPage.h"
 
+#import "CBMoralManager.h"
 #import "SettingPage.h"
 #import "PhotosPage.h"
 #import "MinePage.h"
@@ -27,6 +28,9 @@
 #import "HistoryRecordPage.h"
 
 @interface AppDelegate ()
+{
+    NSMutableArray *notifyingCharacteristicsArray;
+}
 
 @property (nonatomic) Reachability *hostReachability;
 @property (nonatomic) Reachability *internetReachability;
@@ -93,11 +97,10 @@
 
     // ������������������������������������BaiduMapManager
     self.mapManager = [[BMKMapManager alloc]init];
-    BOOL ret = [self.mapManager start:@"HRr8jBYNgRoXgRGHyIg8oC1yYwIUk0IG" generalDelegate:self];
+    BOOL ret = [self.mapManager start:@"ZiqQxvKGjZVNbITouYn7dIwDjb1CbKcy" generalDelegate:self];
     if (!ret) {
         NSLog(@"manager start failed!");
     }
-    
     
     // ������������������
     self.hostReachability = [Reachability reachabilityWithHostName:@"www.baidu.com"];
@@ -107,9 +110,22 @@
     [self.internetReachability startNotifier];
     [self updateInterfaceWithReachability:self.internetReachability];
     
+    // Override point for customization after application launch.
+    UIUserNotificationType types = UIUserNotificationTypeBadge |
+    UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
+    
+    UIUserNotificationSettings *mySettings =
+    [UIUserNotificationSettings settingsForTypes:types categories:nil];
+    
+    if(mySettings != nil)
+    {
+        [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];
+    }
+    
     //_currentDevice = _selectedDevice.mac;
     
-    [self showHomePage2];
+
+    [self showHomePage];
     
     //������������:NSException
     //���������������������������������
@@ -171,13 +187,50 @@
 - (void)applicationDidEnterBackground:(UIApplication *)application {
     // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
     // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+    
+    if (!notifyingCharacteristicsArray)
+    {
+        notifyingCharacteristicsArray = [NSMutableArray array];
+    }
+    
+    /* Stop notification of characteristics while enter in background */
+    for (CBService *service in [[CBMoralManager sharedManager] foundServices])
+    {
+        for (CBCharacteristic *characteristic in service.characteristics)
+        {
+            if (characteristic.isNotifying  && ![characteristic.UUID isEqual:BOOT_LOADER_CHARACTERISTIC_UUID])
+            {
+                [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:characteristic];
+                [notifyingCharacteristicsArray addObject:characteristic];
+            }
+        }
+        
+    }
 }
 
 
 - (void)applicationWillEnterForeground:(UIApplication *)application {
     // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
+    
+    /* Enable notification of characteristics while enter in foreground */
+    
+    if (notifyingCharacteristicsArray)
+    {
+        for (CBCharacteristic *characteristic in notifyingCharacteristicsArray)
+        {
+            if (![characteristic.UUID isEqual:BOOT_LOADER_CHARACTERISTIC_UUID])
+            {
+                [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:characteristic];
+            }
+        }
+    }
 }
 
+
+- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
+{
+    NSLog(@"Registered to receive local notification...");
+}
 
 - (void)applicationDidBecomeActive:(UIApplication *)application {
     // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
@@ -219,14 +272,13 @@
 {
     
     //[UserDefault stringForKey:@"user_id"]
-    NSString *path = [[NSString alloc] initWithFormat:GET_INFO];
+    NSString *path = [[NSString alloc] initWithFormat:USER_GETINFO];
     
     CommonReqModel * model = [[CommonReqModel alloc] init];
-    model.userID = [UserDefault stringForKey:@"user_id"];
-    model.opt = [UserDefault stringForKey:@"opt"];
+    model.phone = [UserDefault stringForKey:@"phone"];
     
     MPWeakSelf(self);
-    [NetworkSingleton networkingPostMethod:model.toDic urlName:path success:^(id responseBody)
+    [NetworkSingleton networkingGetMethod:model.toDic urlName:path success:^(id responseBody)
      {
          MPStrongSelf(self);
          BaseResModel * resModel = [Global toBaseModel:responseBody];
@@ -244,15 +296,12 @@
                  // ������������������
                  [UserDefault setObject:@"1" forKey:@"isLogin"];
                  [UserDefault setObject:userModel._id forKey:@"user_id"];
-                 [UserDefault setObject:userModel.username forKey:@"username"];
+                 [UserDefault setObject:userModel.phone forKey:@"phone"];
                  [UserDefault setObject:userModel.password forKey:@"password"];
                  [UserDefault setObject:userModel.nickname forKey:@"nickname"];
-                 if(userModel.opt == 2)
-                 {
-                     [UserDefault setObject:userModel.hotel_id forKey:@"hotel_id"];
-                 }
-                 
-                  [UserDefault setObject:[NSString stringWithFormat:@"%d",userModel.opt] forKey:@"opt"];//opt=1���������������������opt=2������������������
+                 [UserDefault setObject:userModel.refresh_frequency forKey:@"refresh_frequency"];
+                 [UserDefault setObject:userModel.is_open_upload forKey:@"is_open_upload"];
+                 [UserDefault setObject:userModel.video forKey:@"video"];
                  [UserDefault synchronize];//������synchronize���������������������������������,���������������NSUserDefaults������������������������������������
                  
                  // ���������������
@@ -275,40 +324,6 @@
      {
          [UserDefault setObject:@"0" forKey:@"isLogin"];
          //[Global alertMessageEx:error title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
-     }];
-    
-}
-
-//flr ������ 0
--(void) sendControl:(NSString*)device controlkey:(NSString*)key floor:(NSString*)flr funIndex:(NSString*)fun
-{
-    
-//    NSString * device = @"f0fe6b156ebd";
-//    NSString * key = @"7";
-//    NSString * flr = [NSString stringWithFormat:@"%ld",row+1];
-//    NSString * fun = [NSString stringWithFormat:@"%d",open == YES? 1:0];
-    NSString *path = [[NSString alloc] initWithFormat:@"%@", [NSString stringWithFormat:Moral_Device_Url,device,key,flr,fun]];
-    
-    NSMutableDictionary *param = [[NSMutableDictionary alloc] init];
-    
-    //MPWeakSelf(self);
-    LOG_INFO(@"%@",path);
-    [NetworkSingleton networkingPostMethod:param urlName:path success:^(id responseBody)
-     {
-         //         BaseResModel * resModel = [Global toBaseModel:responseBody];
-         //         if(resModel.code == 0)
-         //         {
-         //             [Global alertMessageEx:@"������������!" title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
-         //             [weakself.navigationController popViewControllerAnimated:YES];
-         //         }
-         //         else
-         //         {
-         //             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
-         //         }
-     }
-                                   failure:^(NSString *error)
-     {
-         [Global alertMessageEx:error title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
      }];
     
 }
diff --git a/pregnancy_guard/BaseProject/Controller/Common/BasePageController.m b/pregnancy_guard/BaseProject/Controller/Common/BasePageController.m
index e81be9b..36aa4cc 100644
--- a/pregnancy_guard/BaseProject/Controller/Common/BasePageController.m
+++ b/pregnancy_guard/BaseProject/Controller/Common/BasePageController.m
@@ -114,7 +114,13 @@
 
 - (void)setNavBarImage
 {
-    UIImage *image = [UIImage imageNamed:@"NavigationBar64.png"];
+    NSString* topBarName = @"NavigationBar64.png";
+    if(IsiPhone6P)
+    {
+        topBarName = [NSString stringWithFormat:@"NavigationBar128.png"];
+    }
+    
+    UIImage *image = [UIImage imageNamed:topBarName];
     [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
     [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
     
diff --git a/pregnancy_guard/BaseProject/Controller/Home/DeviceListMgrPage.m b/pregnancy_guard/BaseProject/Controller/Home/DeviceListMgrPage.m
index 865d435..4205e6f 100644
--- a/pregnancy_guard/BaseProject/Controller/Home/DeviceListMgrPage.m
+++ b/pregnancy_guard/BaseProject/Controller/Home/DeviceListMgrPage.m
@@ -21,6 +21,7 @@
 #import "ChangeDevicePage.h"
 #import "AddDevicePage.h"
 
+
 @interface DeviceListMgrPage ()<UITextFieldDelegate,JSDropDownMenuDataSource,JSDropDownMenuDelegate,SelectedDelegate,SelDetailDelegate>
 {
     UIButton * sign_btn;
@@ -34,6 +35,7 @@
     
     HBdansView *_dansView;
     JSDropDownMenu *menu;
+    
 }
 
 @property (nonatomic, strong) MyDeviceStatusView * myFileViewList;
@@ -43,6 +45,7 @@
 
 @implementation DeviceListMgrPage
 
+
 -(void)viewWillAppear:(BOOL)animated
 {
     [super viewWillAppear:YES];
@@ -50,12 +53,15 @@
     HotelSelModel * hotelSelModel = [_data2 objectAtIndex:_currentData2Index];
     self.myFileViewList.hotel_id = hotelSelModel._id;
     [self.myFileViewList reSetView: [UserDefault stringForKey:@"user_id"] devicetype: [NSString stringWithFormat:@"%ld",_currentData3Index] searchkey:searchEdit.text];
+    
+   
 }
 
 -(void)viewDidDisappear:(BOOL)animated
 {
     [super viewDidDisappear:YES];
     //self.navigationController.navigationBarHidden = NO;
+    
 }
 
 - (void)viewDidLoad
@@ -161,6 +167,8 @@
     
     [self get_hotel_list];
     [self get_latest_list];
+    
+
 }
 
 -(void)addAction
diff --git a/pregnancy_guard/BaseProject/Controller/Home/HomePage.m b/pregnancy_guard/BaseProject/Controller/Home/HomePage.m
index 4dea4b9..dafed11 100644
--- a/pregnancy_guard/BaseProject/Controller/Home/HomePage.m
+++ b/pregnancy_guard/BaseProject/Controller/Home/HomePage.m
@@ -37,10 +37,10 @@
 
 - (void)addTabControllers
 {
-    self.tabBar.selectedImageTintColor = kUIColorFromRGB(0xff7800);
-    self.tabBar.unselectedItemTintColor = RgbColor(244, 37, 75);
-    self.tabBar.barTintColor = RgbColor(251, 224, 227);
-    self.tabBar.tintColor = kUIColorFromRGB(0xff7800);
+    self.tabBar.selectedImageTintColor = RgbColor(43, 184, 14);
+    self.tabBar.unselectedItemTintColor = RgbColor(42, 117, 254);
+    self.tabBar.barTintColor = RgbColor(217, 244, 254);
+    self.tabBar.tintColor = RgbColor(43, 184, 14);
     self.viewControllers = [PageInfo pageControllers];
 }
 
diff --git a/pregnancy_guard/BaseProject/Controller/Home/MinePage.m b/pregnancy_guard/BaseProject/Controller/Home/MinePage.m
index cb7771e..1698153 100644
--- a/pregnancy_guard/BaseProject/Controller/Home/MinePage.m
+++ b/pregnancy_guard/BaseProject/Controller/Home/MinePage.m
@@ -16,18 +16,170 @@
 #import "MBProgressHUD+Add.h"
 #import "LoginPage.h"
 #import "GloriaLabel.h"
+#import "XZPickView.h"
+#import "MusicSetPage.h"
 
-@interface MinePage ()
+@interface MinePage ()<XZPickViewDelegate, XZPickViewDataSource>
 {
     UISwitch *switchButton;
+    GloriaLabel* _TitleLabel;
+    GloriaLabel* _SulvLabel;
+    GloriaLabel* _IsUpLoadLabel;
+    GloriaLabel* _MusicLabel;
+    UIImageView * icon_refresh;
+    UIImageView * icon_data;
+    UIImageView * icon_police;
 }
 
 @property(nonatomic,strong) UITableView * tableView;
 @property (nonatomic, strong) NSMutableArray *dataArray;
+@property (nonatomic,strong) XZPickView * pickView;
+
+@property (nonatomic,copy) NSDictionary * dateDic;
+@property (nonatomic,strong) NSString * is_open_upload;
+@property (nonatomic,strong) NSString * weekStr;
+@property (nonatomic, strong) NSDate *selectDate;
+@property (nonatomic, assign) NSInteger currentSelectDay;
 
 @end
 
 @implementation MinePage
+
+// ������������������
+-(void)pickView:(XZPickView *)pickerView confirmButtonClick:(UIButton *)button{
+    
+    NSInteger left = [pickerView selectedRowInComponent:0];
+    self.selectDate = [self.dateDic[@"week"] objectAtIndex:left];
+    self.weekStr = self.dateDic[@"week"][left];
+    self.weekStr = [self.weekStr substringWithRange:NSMakeRange(0,[self.weekStr length]-1)];
+    [self update_refresh_frequency];
+}
+
+-(void)update_refresh_frequency
+{
+    //[UserDefault stringForKey:@"user_id"]
+    NSString *path = [[NSString alloc] initWithFormat:UPDATE_USERINFO];
+    
+    NSMutableDictionary *param = [[NSMutableDictionary alloc] init];
+    
+    //['refresh_frequency', 'video', 'is_open_upload']
+    [param setValue:[UserDefault stringForKey:@"user_id"] forKey:@"user_id"];
+    [param setValue:@"refresh_frequency" forKey:@"field"];
+    [param setValue:self.weekStr forKey:@"value"];
+    
+    MPWeakSelf(self);
+    [NetworkSingleton networkingGetMethod:param urlName:path success:^(id responseBody)
+     {
+         MPStrongSelf(self);
+         BaseResModel * resModel = [Global toBaseModel:responseBody];
+         
+         if(resModel.code == 0)
+         {
+             [UserDefault setObject:self.weekStr forKey:@"refresh_frequency"];
+             [UserDefault synchronize];
+             
+             [self.tableView reloadData];
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+         else
+         {
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+     }
+                                  failure:^(NSString *error)
+     {
+         
+         [Global alertMessageEx:error title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+     }];
+}
+
+-(void)update_is_open_upload
+{
+    //[UserDefault stringForKey:@"user_id"]
+    NSString *path = [[NSString alloc] initWithFormat:UPDATE_USERINFO];
+    
+    NSMutableDictionary *param = [[NSMutableDictionary alloc] init];
+    
+    //['refresh_frequency', 'video', 'is_open_upload']
+    [param setValue:[UserDefault stringForKey:@"user_id"] forKey:@"user_id"];
+    [param setValue:@"is_open_upload" forKey:@"field"]; // 1 ������ 0 ������
+    [param setValue:self.is_open_upload forKey:@"value"];
+    
+    MPWeakSelf(self);
+    [NetworkSingleton networkingGetMethod:param urlName:path success:^(id responseBody)
+     {
+         MPStrongSelf(self);
+         BaseResModel * resModel = [Global toBaseModel:responseBody];
+         
+         if(resModel.code == 0)
+         {
+             [UserDefault setObject:self.is_open_upload forKey:@"is_open_upload"];
+             [UserDefault synchronize];
+             
+             [self.tableView reloadData];
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+         else
+         {
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+     }
+                                  failure:^(NSString *error)
+     {
+         
+         [Global alertMessageEx:error title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+     }];
+}
+
+-(NSInteger)pickerView:(XZPickView *)pickerView numberOfRowsInComponent:(NSInteger)component{
+    
+    //������
+    return [self.dateDic[@"week"] count];
+}
+
+-(void)pickerView:(XZPickView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
+{
+    self.currentSelectDay = [pickerView selectedRowInComponent:0];
+    //[pickerView pickReloadComponent:1];
+    self.weekStr = self.dateDic[@"week"][row];
+    
+}
+
+-(NSString *)pickerView:(XZPickView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
+{
+    return self.dateDic[@"week"][row];
+}
+
+-(NSInteger)numberOfComponentsInPickerView:(XZPickView *)pickerView{
+    return  1;
+}
+
+#pragma mark -
+
+
+- (NSDictionary *)LHGetStartTime
+{
+    NSMutableArray *weekStrArr = [NSMutableArray array];
+    [weekStrArr addObject:@"10���"];
+    [weekStrArr addObject:@"20���"];
+    [weekStrArr addObject:@"30���"];
+    NSDictionary *resultDic = @{@"week" : weekStrArr};
+    return resultDic;
+}
+
+
+#pragma mark - getter methods
+
+-(XZPickView *)pickView
+{
+    if(!_pickView){
+        _pickView = [[XZPickView alloc]initWithFrame:kScreenBounds title:@"���������"];
+        _pickView.delegate = self;
+        _pickView.dataSource = self;
+    }
+    return _pickView;
+}
+
 
 - (UITableView *)tableView
 {
@@ -68,6 +220,9 @@
     self.navigationItem.title =  @"������";
     
     self.tableView.hidden = NO;
+    
+
+    
 }
 
 
@@ -75,31 +230,6 @@
     [super didReceiveMemoryWarning];
     // Dispose of any resources that can be recreated.
 }
-
-//- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
-//{
-//    return 50;
-//}
-//
-//- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;   // custom view for header. will be adjusted to default or specified header height
-//{
-//    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 80)];
-//    
-//    view.backgroundColor = [UIColor clearColor];
-//    
-////    UIButton *quitLoginBtn = [UIButton buttonWithType:UIButtonTypeCustom];
-////    quitLoginBtn.frame =CGRectMake(30, 50, SCREEN_WIDTH-60, 40);
-////    [quitLoginBtn.layer setMasksToBounds:YES];
-////    [quitLoginBtn.layer setCornerRadius:5.0]; //������������������������������
-////    quitLoginBtn.backgroundColor = RgbColor(84, 76, 155);/////���������������������
-////    [quitLoginBtn setTitle:@"������������������" forState:UIControlStateNormal];
-////    quitLoginBtn.userInteractionEnabled = YES;
-////    [quitLoginBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
-////    [quitLoginBtn addTarget:self action:@selector(exitLoginAction) forControlEvents:UIControlEventTouchUpInside];
-////    [view addSubview:quitLoginBtn];
-//    
-//    return view;
-//}
 
 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 {
@@ -153,74 +283,86 @@
     {
         case 0:
         {
-            UIImageView * icon_refresh = [[UIImageView alloc] initWithFrame:CGRectMake(20, 22, 15, 15)];
-            icon_refresh.image = [UIImage imageNamed:@"icon_refresh"];
-            [cell.contentView addSubview:icon_refresh];
+            if(icon_refresh==nil)
+            {
+                icon_refresh = [[UIImageView alloc] initWithFrame:CGRectMake(20, 22, 15, 15)];
+                icon_refresh.image = [UIImage imageNamed:@"icon_refresh"];
+                [cell.contentView addSubview:icon_refresh];
+            }
             
-            GloriaLabel* _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(50, 15,SCREEN_WIDTH/2, 30)];
-            _TitleLabel.font = [UIFont systemFontOfSize:14];
-            _TitleLabel.textAlignment = UITextAlignmentLeft;
-            _TitleLabel.textColor = kUIColorFromRGB(0x595959);
-            _TitleLabel.text = @"������������";
-            [cell.contentView addSubview:_TitleLabel];
+            if(_TitleLabel == nil)
+            {
+                _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(50, 15,SCREEN_WIDTH/2, 30)];
+                _TitleLabel.font = [UIFont systemFontOfSize:14];
+                _TitleLabel.textAlignment = UITextAlignmentLeft;
+                _TitleLabel.textColor = kUIColorFromRGB(0x595959);
+                _TitleLabel.text = @"������������";
+                [cell.contentView addSubview:_TitleLabel];
+            }
+
             
-            UITextField*userPhoneTextField = [[UITextField alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-40-110, 8, 110, 44)];
-            userPhoneTextField.font = [UIFont fontWithName:@"Arial" size:14];
-            userPhoneTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"���������������������"attributes:@{ NSForegroundColorAttributeName:kUIColorFromRGB(0x00b744)}];
-            userPhoneTextField.delegate = self;
-            [userPhoneTextField setValue:RgbColor(149, 149, 150) forKeyPath:@"_placeholderLabel.textColor"];
-            //userPhoneTextField.layer.borderColor = [RgbColor(213, 213, 213) CGColor];
-            userPhoneTextField.textColor = RgbColor(149, 149, 150);
-            userPhoneTextField.keyboardType = UIKeyboardTypeNumberPad;
-            userPhoneTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
-            // ������������������blankView���15.0������������View���������width���������������������������������������������������������������
-            UIView *blankView = [[UIView alloc] initWithFrame:CGRectMake(userPhoneTextField.frame.origin.x,userPhoneTextField.frame.origin.y,10.0, userPhoneTextField.frame.size.height)];
-            userPhoneTextField.leftView = blankView;
-            userPhoneTextField.leftViewMode =UITextFieldViewModeAlways;
-            [cell.contentView addSubview:userPhoneTextField];
+            if(_SulvLabel == nil)
+            {
+                _SulvLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-60, 15,SCREEN_WIDTH/2, 30)];
+                _SulvLabel.font = [UIFont systemFontOfSize:14];
+                _SulvLabel.textAlignment = UITextAlignmentLeft;
+                _SulvLabel.textColor = kUIColorFromRGB(0x595959);
+                [cell.contentView addSubview:_SulvLabel];
+            }
             
-            GloriaLabel* _MiaoLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-40, 15,20, 30)];
-            _MiaoLabel.font = [UIFont systemFontOfSize:14];
-            _MiaoLabel.textAlignment = UITextAlignmentLeft;
-            _MiaoLabel.textColor = kUIColorFromRGB(0x595959);
-            _MiaoLabel.text = @"���";
-            [cell.contentView addSubview:_MiaoLabel];
             
+            _SulvLabel.text = [NSString stringWithFormat:@"%@���",[UserDefault stringForKey:@"refresh_frequency"]];
         }
             break;
         case 1:
         {
-            UIImageView * icon_data = [[UIImageView alloc] initWithFrame:CGRectMake(20, 22, 15, 15)];
-            icon_data.image = [UIImage imageNamed:@"icon_data"];
-            [cell.contentView addSubview:icon_data];
+            if(icon_data==nil)
+            {
+                icon_data = [[UIImageView alloc] initWithFrame:CGRectMake(20, 22, 15, 15)];
+                icon_data.image = [UIImage imageNamed:@"icon_data"];
+                [cell.contentView addSubview:icon_data];
+            }
+
             
-            GloriaLabel* _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(50, 15,SCREEN_WIDTH/2, 30)];
-            _TitleLabel.font = [UIFont systemFontOfSize:14];
-            _TitleLabel.textAlignment = UITextAlignmentLeft;
-            _TitleLabel.textColor = kUIColorFromRGB(0x595959);
-            _TitleLabel.text = @"������������������";
-            [cell.contentView addSubview:_TitleLabel];
-            
-            switchButton = [[UISwitch alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-60, 15, 20, 10)];
-            [switchButton setOn:YES];
-            [switchButton addTarget:self action:@selector(switchAction) forControlEvents:UIControlEventValueChanged];
-            [cell.contentView addSubview:switchButton];
-            
+            if(_IsUpLoadLabel==nil)
+            {
+                _IsUpLoadLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(50, 15,SCREEN_WIDTH/2, 30)];
+                _IsUpLoadLabel.font = [UIFont systemFontOfSize:14];
+                _IsUpLoadLabel.textAlignment = UITextAlignmentLeft;
+                _IsUpLoadLabel.textColor = kUIColorFromRGB(0x595959);
+                _IsUpLoadLabel.text = @"������������������";
+                [cell.contentView addSubview:_IsUpLoadLabel];
+            }
+
+            if(switchButton == nil)
+            {
+                switchButton = [[UISwitch alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-60, 15, 20, 10)];
+                [switchButton setOn:[[UserDefault stringForKey:@"is_open_upload"] intValue] == 1? YES:NO];
+                [switchButton addTarget:self action:@selector(switchAction) forControlEvents:UIControlEventValueChanged];
+                [cell.contentView addSubview:switchButton];
+            }
         }
 
             break;
         case 2:
         {
-            UIImageView * icon_police = [[UIImageView alloc] initWithFrame:CGRectMake(20, 22, 15, 15)];
-            icon_police.image = [UIImage imageNamed:@"icon_police"];
-            [cell.contentView addSubview:icon_police];
+            if(icon_police==nil)
+            {
+                icon_police = [[UIImageView alloc] initWithFrame:CGRectMake(20, 22, 15, 15)];
+                icon_police.image = [UIImage imageNamed:@"icon_police"];
+                [cell.contentView addSubview:icon_police];
+            }
             
-            GloriaLabel* _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(50,15,SCREEN_WIDTH/2, 30)];
-            _TitleLabel.font = [UIFont systemFontOfSize:14];
-            _TitleLabel.textAlignment = UITextAlignmentLeft;
-            _TitleLabel.textColor = kUIColorFromRGB(0x595959);
-            _TitleLabel.text = @"������������";
-            [cell.contentView addSubview:_TitleLabel];
+            if(_MusicLabel==nil)
+            {
+                _MusicLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(50,15,SCREEN_WIDTH/2, 30)];
+                _MusicLabel.font = [UIFont systemFontOfSize:14];
+                _MusicLabel.textAlignment = UITextAlignmentLeft;
+                _MusicLabel.textColor = kUIColorFromRGB(0x595959);
+                _MusicLabel.text = @"������������";
+                [cell.contentView addSubview:_MusicLabel];
+            }
+
             
             UIImageView * icon_line = [[UIImageView alloc] initWithFrame:CGRectMake(20, 59, SCREEN_WIDTH, 1)];
             icon_line.image = [UIImage imageNamed:@"icon_line"];
@@ -249,15 +391,25 @@
 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
     NSInteger index = [indexPath row];
     
-    
-             // ������������������������
-             // ������������������
-             //HotelSelPage* page = [[HotelSelPage alloc] initIsFirstPage:NO];
-             //page.bSelRoom = 2;
-             // ������������
-             //BaseNaviController *baseNav = [[BaseNaviController alloc] initWithRootViewController:page];
-             //[self presentViewController:baseNav animated:YES completion:nil];
-             //[self showActionForPhoto];
+    if(index == 0)
+    {
+        NSLog(@"%s",__func__);
+        self.dateDic = [self LHGetStartTime];
+        self.weekStr = self.dateDic[@"week"][0];
+        [self.pickView reloadData];
+        //[self.userNumPickView selectRow:0 inComponent:0 animated:NO];
+        [[UIApplication sharedApplication].keyWindow addSubview:self.pickView];
+        [self.pickView show];
+    }
+    else if(index == 2)
+    {
+
+        // ������������������������
+        MusicSetPage* page = [[MusicSetPage alloc] initIsFirstPage:NO];
+        // ������������
+        BaseNaviController *baseNav = [[BaseNaviController alloc] initWithRootViewController:page];
+        [self presentViewController:baseNav animated:YES completion:nil];
+    }
 }
 
 - (void)switchAction
@@ -265,12 +417,14 @@
     BOOL isButtonOn = [switchButton isOn];
     if (isButtonOn)
     {
-        //showSwitchValue.text = @"���";
+        self.is_open_upload = @"1";
     }
     else
     {
-        //showSwitchValue.text = @"���";
+        self.is_open_upload = @"0";
     }
+    
+    [self update_is_open_upload];
 }
 
 #pragma mark - custom function begin
diff --git a/pregnancy_guard/BaseProject/Controller/Mine/RadiaDetectionPage.h b/pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.h
similarity index 64%
rename from pregnancy_guard/BaseProject/Controller/Mine/RadiaDetectionPage.h
rename to pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.h
index 682ce13..e2730f2 100644
--- a/pregnancy_guard/BaseProject/Controller/Mine/RadiaDetectionPage.h
+++ b/pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.h
@@ -7,7 +7,8 @@
 //
 
 #import "BaseNavPage.h"
+#import "CBMoralManager.h"
 
-@interface RadiaDetectionPage : BaseNavPage
+@interface RadiaDetectionPage : BaseNavPage<cbDiscoveryManagerDelegate>
 
 @end
diff --git a/pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.m b/pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.m
new file mode 100644
index 0000000..5522fb7
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.m
@@ -0,0 +1,1095 @@
+//
+//  RadiaDetectionPage.m
+//  pregnancy_guard
+//
+//  Created by WindShan on 2017/7/5.
+//  Copyright �� 2017��� WindShan. All rights reserved.
+//
+
+#import "RadiaDetectionPage.h"
+#import "ASValueTrackingSlider.h"
+
+#import "ZZCircleProgress.h"
+#import "GloriaLabel.h"
+#import "CBPeripheralExt.h"
+#import "MBleService.h"
+#import "Constants.h"
+#import "UIView+Toast.h"
+#import "CBMoralManager.h"
+#import "SearchDevicePage.h"
+#import "BaseNaviController.h"
+#import "HistoryRecordPage.h"
+#import "NetworkSingleton.h"
+#import "UploadModel.h"
+#import "NetworkSingleton.h"
+
+#import <BaiduMapAPI_Map/BMKMapComponent.h>
+#import <BaiduMapAPI_Location/BMKLocationComponent.h>
+#import<BaiduMapAPI_Search/BMKPoiSearchType.h>
+#import "DataModel.h"
+
+@interface RadiaDetectionPage ()<ASValueTrackingSliderDelegate,ASValueTrackingSliderDataSource,cbCharacteristicManagerDelegate,BMKMapViewDelegate,BMKLocationServiceDelegate>
+{
+    ZZCircleProgress *circle3;
+    CGFloat gaugeValue;
+    CGFloat gaugeAngle;
+    UIImageView * ic_pointer;
+    CGFloat maxNum;
+    CGFloat minNum;
+    
+    CGFloat maxAngle;
+    CGFloat minAngle;
+    CGFloat angleperValue;
+    
+    BOOL notifyEnable;
+    BOOL hexSend;
+    CBCharacteristic *notifyCharacteristic;
+    CBCharacteristic *writeCharacteristic;
+    CBCharacteristic *readCharacteristic;
+    void(^characteristicWriteCompletionHandler)(BOOL success,NSError *error);
+    
+    BOOL isBluetoothON;
+    
+    UIImageView * ic_anquan_status;
+    int deviceStstaus; //0 ��������� 1 ��������� 2 ��������� 3 ���������
+    GloriaLabel* deviceStatusLabel;
+    GloriaLabel* _JiliangNumLabel;
+    GloriaLabel* _BiaozhunJiliangNumLabel;
+    GloriaLabel* _currentShuziTipsLabel;
+    GloriaLabel* _currentTipsLabel;
+    
+    NSArray *characteristicArray;
+    NSString *bleCurrentUUID;
+    NSString *receiveHexValue;
+    
+    ASValueTrackingSlider * _trackingSlider;
+    
+    // ������
+    //BMKMapView* _mapView;
+    BMKLocationService* _locService;
+    NSString * address;
+    CLLocationDegrees latitude;
+    CLLocationDegrees longitude;
+    
+    NSMutableArray *  dataModelArr;
+    NSTimer * myTimer;
+    NSString * myTimeInterval;
+    NSString * is_open_upload; // 1 ������ 0 ������
+}
+@end
+
+
+@implementation RadiaDetectionPage
+
+-(void) getcharcteristicsForService:(CBService *)service
+{
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:service];
+}
+
+-(NSMutableArray *) getPropertiesForCharacteristic:(CBCharacteristic *)characteristic
+{
+    
+    NSMutableArray *propertyList = [NSMutableArray array];
+    
+    if ((characteristic.properties & CBCharacteristicPropertyRead) != 0)
+    {
+        [propertyList addObject:READ];
+    }
+    if (((characteristic.properties & CBCharacteristicPropertyWrite) != 0) || ((characteristic.properties & CBCharacteristicPropertyWriteWithoutResponse) != 0) )
+    {
+        [propertyList addObject:WRITE];;
+    }
+    if ((characteristic.properties & CBCharacteristicPropertyNotify) != 0)
+    {
+        [propertyList addObject:NOTIFY];;
+    }
+    if ((characteristic.properties & CBCharacteristicPropertyIndicate) != 0)
+    {
+        [propertyList addObject:INDICATE];
+    }
+    
+    return propertyList;
+}
+
+-(NSString *)getPropertiesText:(NSMutableArray *) characteristicProperties{
+    NSString *property = @"";
+    
+    if (characteristicProperties != nil)
+    {
+        if (characteristicProperties.count > 0)
+        {
+            property = [characteristicProperties objectAtIndex:0];
+        }
+        
+        for (int i= 1; i < characteristicProperties.count; i++)
+        {
+            property = [property stringByAppendingString:[NSString stringWithFormat:@" & %@",[characteristicProperties objectAtIndex:i]]];
+        }
+        
+    }
+    
+    return property;
+}
+
+-(NSMutableArray *)getUsrDebugModeProperties
+{
+    NSMutableArray *propertyList = [NSMutableArray array];
+    [propertyList addObject:NOTIFY];
+    [propertyList addObject:WRITE];
+    return propertyList;
+}
+
+
+#pragma mark - CBCharacteristicManagerDelegate
+
+-(void) peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error{
+    if ([service.UUID isEqual:[[CBMoralManager sharedManager] myService].UUID]){
+        characteristicArray = [service.characteristics copy];
+        
+        
+        NSString *property = [self getPropertiesText:[self getPropertiesForCharacteristic:[characteristicArray objectAtIndex:0]]];
+        
+        if ([property isEqualToString: NOTIFY])
+        {
+            [[CBMoralManager sharedManager] setMyCharacteristic:[characteristicArray objectAtIndex:0]];
+            [[CBMoralManager sharedManager] setMyCharacteristic2:[characteristicArray objectAtIndex:1]];
+        }else{
+            [[CBMoralManager sharedManager] setMyCharacteristic:[characteristicArray objectAtIndex:1]];
+            [[CBMoralManager sharedManager] setMyCharacteristic2:[characteristicArray objectAtIndex:0]];
+        }
+        
+        [[CBMoralManager sharedManager] setCharacteristicProperties:[self getUsrDebugModeProperties]];
+        
+        notifyCharacteristic = [[CBMoralManager sharedManager]myCharacteristic];
+        readCharacteristic = [[CBMoralManager sharedManager]myCharacteristic];
+        writeCharacteristic = [[CBMoralManager sharedManager]myCharacteristic2];
+
+        [self notifyOption];
+        
+        deviceStstaus = 2;
+        deviceStatusLabel.text = @"���������";
+        if (myTimer == nil)
+            myTimer =  [NSTimer scheduledTimerWithTimeInterval:[myTimeInterval doubleValue] target:self selector:@selector(data_upload) userInfo:nil repeats:YES];
+        else
+            //���������������
+            [myTimer setFireDate:[NSDate distantPast]];
+        //���myTimeInterval���������������data_upload���������
+    }
+}
+
+
+-(void) peripheral:(CBPeripheral *)peripheral didDiscoverDescriptorsForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if ([characteristic.UUID isEqual:[[CBMoralManager sharedManager] myCharacteristic].UUID])
+    {
+        // Show descriptor button only when descriptors exist for the characteristic
+        if (characteristic.descriptors.count > 0)
+        {
+            [[CBMoralManager sharedManager] setCharacteristicDescriptors:characteristic.descriptors];
+            // do somethis
+        }
+    }
+}
+
+/*!
+ *@Method Notify Read Indicate options result return
+ * ������������������������
+ */
+-(void) peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{
+    if ([characteristic.UUID isEqual:[[CBMoralManager sharedManager] myCharacteristic].UUID])
+    {
+        receiveHexValue = [Utilities bytesToHex:characteristic.value];
+        
+        if( receiveHexValue.length == 40 )
+        {
+            //16���������10������
+           NSString * shishiStr = [receiveHexValue substringWithRange:NSMakeRange(24,4)];
+           NSString * leijiStr = [receiveHexValue substringWithRange:NSMakeRange(28,8)];
+            
+           NSString * shishiValue = [NSString stringWithFormat:@"%lu",strtoul([shishiStr UTF8String],0,16)];
+           NSString * leijiValue = [NSString stringWithFormat:@"%lu",strtoul([leijiStr UTF8String],0,16)];
+          
+           if( leijiValue.length >= 6)
+           {
+               _JiliangNumLabel.text = [NSString stringWithFormat:@"%.1f",[leijiValue floatValue]*0.10];
+           }
+            else
+                _JiliangNumLabel.text = [NSString stringWithFormat:@"%.3f",[leijiValue floatValue]*0.10];
+            
+            _BiaozhunJiliangNumLabel.text = [NSString stringWithFormat:@"%.3f",([shishiValue floatValue]-45)/10.0*0.10];
+            
+            
+            //dataModelArr
+            DataModel * model = [[DataModel alloc]init];
+            model.value = _BiaozhunJiliangNumLabel.text;
+            model.time  = [DateUtil stringFromDateYMD:[NSDate date]];
+            [dataModelArr addObject:model];
+            
+            circle3.progress = ([leijiValue floatValue]/FUSHE_MAX_VALUE)*100;
+            [_trackingSlider setValue:circle3.progress];
+            [self setGaugeValue:circle3.progress animation:NO];
+            
+
+            if( [shishiValue intValue] < FUSHE_SAFE_VALUE )
+            {
+                _currentShuziTipsLabel.text = @"������������������";
+                _currentTipsLabel.textColor = RgbColor(64, 159, 252);
+                _currentTipsLabel.text = @"������������������������������\n ������������������������������������������������";
+            }
+            else if ( [shishiValue intValue] < FUSHE_GOOD_VALUE)
+            {
+                _currentShuziTipsLabel.text = @"���������������������������";
+                _currentTipsLabel.textColor = RgbColor(64, 159, 252);
+                _currentTipsLabel.text = @"������������������������������\n ���������������������������������������������������";
+            }
+            else if ( [shishiValue intValue] < FUSHE_CHA_VALUE)
+            {
+                _currentShuziTipsLabel.text = @"������������������������";
+                _currentTipsLabel.textColor = RgbColor(252, 80, 84);
+                _currentTipsLabel.text = @"������������������������������\n ���������������������������������������������������";
+            }
+            else if ( [shishiValue intValue] < FUSHE_DANGER_VALUE)
+            {
+                _currentShuziTipsLabel.text = @"���������������������������";
+                _currentTipsLabel.textColor = RgbColor(252, 80, 84);
+                _currentTipsLabel.text = @"������������������������������\n ���������������������������������������������������";
+            }
+            else if ( [shishiValue intValue] < FUSHE_MAX_VALUE)
+            {
+                _currentShuziTipsLabel.text = @"���������������������������";
+                _currentTipsLabel.textColor = RgbColor(252, 80, 84);
+                _currentTipsLabel.text = @"������������������������������\n ���������������������������������������������������";
+            }
+            else
+            {
+                _currentShuziTipsLabel.text = @"���������������������������";
+                _currentTipsLabel.textColor = RgbColor(252, 80, 84);
+                _currentTipsLabel.text = @"������������������������������\n ���������������������������������������������������";
+            }
+            
+        }
+        
+        //NSString *ASCIIValue = [[NSString alloc]initWithData:characteristic.value encoding:NSASCIIStringEncoding];
+        
+        //[self writeOption:hexValue];
+        //MMessage *msg = [[MMessage alloc]initMessageWithString:[NSString stringWithFormat:@"%@ [ASCII:%@]",hexValue,ASCIIValue] Type:TYPE_RECEIVE];
+        //[self displayMsg:msg];
+    }
+}
+
+-(void) peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if ([characteristic.UUID isEqual:[[CBMoralManager sharedManager] myCharacteristic].UUID])
+    {
+        if (error == nil)
+        {
+            [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:[[CBMoralManager sharedManager] myService].UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:[[CBMoralManager sharedManager] myCharacteristic].UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@- %@",WRITE_REQUEST_STATUS,WRITE_SUCCESS]];
+            characteristicWriteCompletionHandler (YES,error);
+            
+        }
+        else
+        {
+            [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:[[CBMoralManager sharedManager] myService].UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:[[CBMoralManager sharedManager] myCharacteristic].UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@- %@%@",WRITE_REQUEST_STATUS,WRITE_ERROR,[error.userInfo objectForKey:NSLocalizedDescriptionKey]]];
+            
+            characteristicWriteCompletionHandler(NO,error);
+        }
+    }
+}
+
+#pragma mark---------option method
+
+// ������������������
+-(void)readOption
+{
+    //MMessage *msg = [[MMessage alloc]initMessageWithString:OPTION_READ Type:TYPE_SEND];
+    //[self displayMsg:msg];
+    [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:readCharacteristic];
+}
+
+/*!
+ *  @method writeButtonClicked :
+ *
+ *  @discussion Method to handle the write button click
+ *  ������������������
+ */
+- (void)writeOption:(NSString*)text
+{
+    
+    //MMessage *msg = [[MMessage alloc]initMessageWithString:text Type:TYPE_SEND];
+    //[self displayMsg:msg];
+
+    NSData *dataToWrite;
+    if (hexSend)
+    {
+        dataToWrite = [Utilities dataFromHexString:[text stringByReplacingOccurrencesOfString:@" " withString:@""]];
+    }
+    else
+    {
+        if ([text rangeOfString:@"AT+"].location != NSNotFound || [text rangeOfString:@"at+"].location != NSNotFound) {
+            text = [text stringByAppendingString:@"\r\n"];
+        }
+        dataToWrite = [text dataUsingEncoding:NSUTF8StringEncoding];
+    }
+    
+    // Write data to the device
+    [self writeDataForCharacteristic:writeCharacteristic  WithData:dataToWrite completionHandler:^(BOOL success, NSError *error) {
+        if (success){
+            //            ((MMessageFrame*)[msgArray objectAtIndex:msgArray.count-1]).message.isDone = YES;
+            //            NSIndexPath *indexPath = [NSIndexPath indexPathForRow:msgArray.count-1 inSection:0];
+            //            [_msgTableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationNone];
+            
+        }else{
+            NSLog(@"-------------->write text fail");
+        }
+    }];
+    
+    
+    
+}
+
+
+/*!
+ *  @method writeDataForCharacteristic: WithData:
+ *
+ *  @discussion Method to write data to the device
+ *
+ */
+-(void) writeDataForCharacteristic:(CBCharacteristic *)characteristic WithData:(NSData *)data completionHandler:(void(^) (BOOL success, NSError *error))handler{
+    characteristicWriteCompletionHandler = handler;
+    if ((characteristic.properties & CBCharacteristicPropertyWriteWithoutResponse) != 0)
+    {
+        [[[CBMoralManager sharedManager] myPeripheral] writeValue:data forCharacteristic:characteristic type:CBCharacteristicWriteWithoutResponse];
+        characteristicWriteCompletionHandler (YES,nil);
+        
+    }else{
+        [[[CBMoralManager sharedManager] myPeripheral] writeValue:data forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];
+    }
+}
+
+
+
+/*!
+ *  @method notifyButtonClicked:
+ *  ������������������������
+ *  @discussion Method to handle notify button click
+ *
+ */
+
+- (void)notifyOption
+{
+    if (!notifyEnable)
+    {
+        notifyEnable = YES;
+        
+        //MMessage *msg = [[MMessage alloc]initMessageWithString:OPTION_NOTIFY Type:TYPE_SEND];
+        //[self displayMsg:msg];
+        
+        //[_btnOption setTitle:OPTION_STOP_NOTIFY forState:UIControlStateNormal];
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:notifyCharacteristic];
+        
+    }
+    else
+    {
+        notifyEnable = NO;
+        
+        //MMessage *msg = [[MMessage alloc]initMessageWithString:OPTION_STOP_NOTIFY Type:TYPE_SEND];
+        //[self displayMsg:msg];
+        
+        //[_btnOption setTitle:OPTION_NOTIFY forState:UIControlStateNormal];
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:notifyCharacteristic];
+    }
+}
+
+/*!
+ *  @method UUIDArray:
+ *
+ *  @discussion Return all UUID as CBUUID
+ *
+ */
+
+-(NSArray*)UUIDArray:(NSArray *)allService
+{
+    NSMutableArray *UUIDArray = [NSMutableArray array];
+    for(NSString *string in allService)
+    {
+        [UUIDArray addObject:[CBUUID UUIDWithString:string]];
+    }
+    return (NSArray *)UUIDArray;
+}
+
+
+-(void)viewDidDisappear:(BOOL)animated
+{
+    [super viewDidDisappear:YES];
+
+    //_mapView.delegate = nil; // ���������������nil
+    _locService.delegate = nil;
+    
+    //���������������
+    if(myTimer)
+        [myTimer setFireDate:[NSDate distantFuture]];
+}
+
+-(void)viewWillAppear:(BOOL)animated
+{
+    
+    bleCurrentUUID = [UserDefault objectForKey:@"bleUUID"];
+    NSString *bleName = [UserDefault objectForKey:@"bleName"];
+    
+    //_mapView.delegate = self; // ������������������������������������nil������������������������������
+    _locService.delegate = self;
+    
+    if(bleCurrentUUID != nil)
+    {
+        if( _bConnectSuccess )
+        {
+            deviceStstaus = 1;
+            deviceStatusLabel.text = @"���������";
+            
+            // ������������������������
+            NSArray *allService = [self UUIDArray:[[[CBMoralManager sharedManager] serviceUUIDDict] allKeys]];
+            
+            for(CBService *service in [[CBMoralManager sharedManager] foundServices])
+            {
+                if([allService containsObject:service.UUID] && [service.UUID.UUIDString isEqualToString:BLE_DEVICE_UUID])
+                {
+                    NSInteger ServiceKeyIndex = [allService indexOfObject:service.UUID];
+                    CBUUID *keyID = [allService objectAtIndex:ServiceKeyIndex];
+                    
+                    NSString *name = [[[[CBMoralManager sharedManager] serviceUUIDDict] valueForKey:[keyID.UUIDString lowercaseString]] objectForKey:k_SERVICE_NAME_KEY];
+                    MBleService *mbleService = [[MBleService alloc]initWithName:name Service:service uuid:keyID];
+                    
+                    [[CBMoralManager sharedManager] setMyService:mbleService.service];
+                    
+                    CBService *service = [[CBMoralManager sharedManager] myService];
+                    
+                    [self getcharcteristicsForService:service];
+                    
+                }
+                //else
+                //{
+                //    CBUUID *unknowCBUUID = service.UUID;
+                //    MBleService *mbleService = [[MBleService alloc]initWithName:@"Unknow Service" Service:service uuid:unknowCBUUID];
+                //}
+            }
+        }
+        else
+        {
+            // ������������������������
+            //[[CBMoralManager sharedManager] disconnectPeripheral:[[CBMoralManager sharedManager] myPeripheral]];
+            [[CBMoralManager sharedManager] setCbDiscoveryDelegate:self];
+            [[CBMoralManager sharedManager] startScanning];
+            [self performSelector:@selector(stopScanning) withObject:nil afterDelay:3.0f];
+        }
+        
+    }
+}
+
+-(void)stopScanning
+{
+    [[CBMoralManager sharedManager]stopScanning];
+}
+
+#pragma mark - BlueTooth Turned Off Delegate
+
+/*!
+ *  @method bluetoothStateUpdatedToState:
+ *
+ *  @discussion Method to be called when state of Bluetooth changes
+ *
+ */
+
+-(void)bluetoothStateUpdatedToState:(BOOL)state
+{
+    isBluetoothON = state;
+    
+    // ������������������������
+    
+}
+
+
+/**
+ *This method invoke after a new peripheral found.
+ */
+-(void)discoveryDidRefresh
+{
+    NSUInteger count = [[CBMoralManager sharedManager] foundPeripherals].count;
+    if( count > 0)
+    {
+        for (NSUInteger i = 0; i < count; i++)
+        {
+            CBPeripheralExt *newPeriPheral = [[[CBMoralManager sharedManager] foundPeripherals] objectAtIndex:i];
+            NSString * bleUUID = [self UUIDStringfromPeripheral:newPeriPheral];
+            if( [bleUUID isEqualToString:bleCurrentUUID] )
+            {
+                [[CBMoralManager sharedManager]stopScanning];
+                
+                deviceStstaus = 3;
+                deviceStatusLabel.text = @"���������";
+                
+                [[CBMoralManager sharedManager] connectPeripheral:newPeriPheral.mPeripheral CompletionBlock:^(BOOL success, NSError *error)
+                 {
+                    if(success)
+                    {
+                        deviceStstaus = 1;
+                        deviceStatusLabel.text = @"���������";
+                        
+                        _bConnectSuccess = YES;
+                        NSString * bleUUID = [self UUIDStringfromPeripheral:newPeriPheral];
+                        [UserDefault setObject:bleUUID forKey:@"bleUUID"];
+                        [UserDefault synchronize];//������synchronize���������������������������������,���������������NSUserDefaults������������������������������������
+                        
+                        // ������������������������
+                        NSArray *allService = [self UUIDArray:[[[CBMoralManager sharedManager] serviceUUIDDict] allKeys]];
+                        
+                        for(CBService *service in [[CBMoralManager sharedManager] foundServices])
+                        {
+                            if([allService containsObject:service.UUID] && [service.UUID.UUIDString isEqualToString:BLE_DEVICE_UUID])
+                            {
+                                NSInteger ServiceKeyIndex = [allService indexOfObject:service.UUID];
+                                CBUUID *keyID = [allService objectAtIndex:ServiceKeyIndex];
+                                
+                                NSString *name = [[[[CBMoralManager sharedManager] serviceUUIDDict] valueForKey:[keyID.UUIDString lowercaseString]] objectForKey:k_SERVICE_NAME_KEY];
+                                MBleService *mbleService = [[MBleService alloc]initWithName:name Service:service uuid:keyID];
+                                
+                                [[CBMoralManager sharedManager] setMyService:mbleService.service];
+                                
+                                CBService *service = [[CBMoralManager sharedManager] myService];
+                                
+                                [self getcharcteristicsForService:service];
+                                
+                            }
+                            //else
+                            //{
+                            //    CBUUID *unknowCBUUID = service.UUID;
+                            //    MBleService *mbleService = [[MBleService alloc]initWithName:@"Unknow Service" Service:service uuid:unknowCBUUID];
+                            //}
+                        }
+
+                    }
+                    else
+                    {
+                        if(error)
+                        {
+                            NSString *errorString = [error.userInfo valueForKey:NSLocalizedDescriptionKey];
+                            
+                            if(errorString.length)
+                            {
+                                [self.view makeToast:errorString];
+                            }
+                            else
+                            {
+                                [self.view makeToast:UNKNOWN_ERROR];
+                            }
+                        }
+                    }
+                    
+                }];
+
+            }
+        }
+    }
+    
+}
+
+/*!
+ *  @method UUIDStringfromPeripheral:
+ *
+ *  @discussion Method to get the UUID from the peripheral
+ *
+ */
+-(NSString *)UUIDStringfromPeripheral:(CBPeripheralExt *)ble
+{
+    
+    NSString *bleUUID2 = ble.mPeripheral.identifier.UUIDString;
+    if(bleUUID2.length < 1 )
+        bleUUID2 = @"Nil";
+    else
+        bleUUID2 = [NSString stringWithFormat:@"%@",bleUUID2];
+    
+    return bleUUID2;
+}
+
+#pragma mark - ASValueTrackingSliderDelegate
+- (NSString *)slider:(ASValueTrackingSlider *)slider stringForValue:(float)value
+{
+    NSString * valueStr = [NSString stringWithFormat:@"%d",(int)value];
+    //self._wenDuStr = valueStr;
+    
+    LOG_INFO(@"���������������������%@���",valueStr);
+    
+    //hotelSelModel.ad_speed = (int)value;
+    circle3.progress = [valueStr floatValue]/100;
+    
+    [self setGaugeValue:slider.value animation:NO];
+    
+    return valueStr;
+}
+
+- (void)sliderWillDisplayPopUpView:(ASValueTrackingSlider *)slider{
+    
+}
+
+- (void)sliderDidHidePopUpView:(ASValueTrackingSlider *)slider{
+    
+}
+
+#define MAXOFFSETANGLE 152.0f
+#define MAXVALUE       100.0f
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    
+    self.navigationItem.title = @"������������";
+    [self setNavigationRight:@"icon_story.png" sel:@selector(storyAticon)];
+
+    gaugeValue = 0.0f;
+    gaugeAngle = -MAXOFFSETANGLE;
+    maxNum = MAXVALUE;
+    minNum = 0.0f;
+    minAngle = -MAXOFFSETANGLE;
+    maxAngle = MAXOFFSETANGLE;
+    angleperValue = (maxAngle - minAngle)/(maxNum - minNum);
+    // Do any additional setup after loading the view.
+    
+    deviceStstaus = 0;
+    hexSend = YES;
+    _bConnectSuccess = NO;
+    
+    _trackingSlider = [[ASValueTrackingSlider alloc]initWithFrame:CGRectMake(10, 40, SCREEN_WIDTH-20, 40)];
+    
+    _trackingSlider.delegate = self;
+    _trackingSlider.dataSource = self;
+    _trackingSlider.popUpViewCornerRadius = 5.0;
+    [_trackingSlider setMaxFractionDigitsDisplayed:0];
+    _trackingSlider.popUpViewColor = kUIColorFromRGB(0x00b744);
+    _trackingSlider.font = [UIFont fontWithName:@"GillSans-Bold" size:12];
+    _trackingSlider.textColor = [UIColor whiteColor];
+    _trackingSlider.maximumValue = 100;
+    _trackingSlider.minimumValue = 0;
+    //_trackingSlider.formatStr = @"%@���";
+    //[_trackingSlider setValue: [__wenDuStr intValue]];
+    [_trackingSlider showPopUpView];
+    //[self.view addSubview:_trackingSlider];
+    
+    CGFloat unitFontSize = 14;
+    CGFloat jiliangFontSize = 14;
+    CGFloat numFontSize = 18;
+    CGFloat tipsFontSize = 16;
+    CGFloat scale = 1.0;
+    CGFloat pointerOffset = 0;
+    if( IsiPhone4 || IsiPhone5 )
+    {
+        unitFontSize = 12;
+        jiliangFontSize = 12;
+        numFontSize = 14;
+        tipsFontSize = 13;
+        scale = 0.8;
+        pointerOffset = 5;
+    }
+    
+    UIImageView * ic_head_bg = [[UIImageView alloc] initWithFrame:CGRectMake(10, 0, SCREEN_WIDTH-20, 66*scale)];
+    ic_head_bg.image = [UIImage imageNamed:@"ic_head_bg"];
+    [self.view addSubview:ic_head_bg];
+
+    ic_anquan_status = [[UIImageView alloc] initWithFrame:CGRectMake(ic_head_bg.frame.size.width-60*scale, 3,60*scale, 60*scale)];
+    ic_anquan_status.image = [UIImage imageNamed:@"ic_anquan_bk"];
+    [ic_head_bg addSubview:ic_anquan_status];
+
+    UIImageView * ic_line = [[UIImageView alloc] initWithFrame:CGRectMake(ic_head_bg.frame.size.width/2, 13*scale, 1, 40*scale)];
+    ic_line.image = [UIImage imageNamed:@"ic_line"];
+    [ic_head_bg addSubview:ic_line];
+    
+
+    
+    GloriaLabel* _LeijiJiliangLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(66*scale, 13*scale,ic_head_bg.frame.size.width/2-66*scale, 20*scale)];
+    _LeijiJiliangLabel.font = [UIFont systemFontOfSize:jiliangFontSize];
+    _LeijiJiliangLabel.textAlignment = UITextAlignmentCenter;
+    _LeijiJiliangLabel.textColor = kUIColorFromRGB(0xa89fa0);
+    _LeijiJiliangLabel.text = @"������������(uSv)";
+    [ic_head_bg addSubview:_LeijiJiliangLabel];
+    
+    _JiliangNumLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(66*scale, 33*scale,ic_head_bg.frame.size.width/2-66*scale-30, 20*scale)];
+    _JiliangNumLabel.font = [UIFont boldSystemFontOfSize:numFontSize];
+    _JiliangNumLabel.textAlignment = UITextAlignmentRight;
+    _JiliangNumLabel.textColor = kUIColorFromRGB(0x07cb5a);
+    _JiliangNumLabel.text = @"0.0";
+    [ic_head_bg addSubview:_JiliangNumLabel];
+    
+    //GloriaLabel* _JiliangUnitLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(66*scale+_JiliangNumLabel.frame.size.width, 33*scale,30*scale, 20*scale)];
+    //_JiliangUnitLabel.font = [UIFont systemFontOfSize:unitFontSize];
+    //_JiliangUnitLabel.textAlignment = UITextAlignmentLeft;
+   // _JiliangUnitLabel.textColor = kUIColorFromRGB(0xa89fa0);
+   // _JiliangUnitLabel.text = @"(���)";
+   // [ic_head_bg addSubview:_JiliangUnitLabel];
+    
+    
+    GloriaLabel* _BiaozhunJiliangLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(ic_head_bg.frame.size.width/2, 13*scale,ic_head_bg.frame.size.width/2-60*scale, 20*scale)];
+    _BiaozhunJiliangLabel.font = [UIFont systemFontOfSize:jiliangFontSize];
+    _BiaozhunJiliangLabel.textAlignment = UITextAlignmentCenter;
+    _BiaozhunJiliangLabel.textColor = kUIColorFromRGB(0xa89fa0);
+    _BiaozhunJiliangLabel.text = @"������������(uSv/h)";
+    [ic_head_bg addSubview:_BiaozhunJiliangLabel];
+    
+    _BiaozhunJiliangNumLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(ic_head_bg.frame.size.width/2, 33*scale,ic_head_bg.frame.size.width/2-60*scale-30, 20*scale)];
+    _BiaozhunJiliangNumLabel.font = [UIFont boldSystemFontOfSize:numFontSize];
+    _BiaozhunJiliangNumLabel.textAlignment = UITextAlignmentRight;
+    _BiaozhunJiliangNumLabel.textColor = kUIColorFromRGB(0xff9c66);
+    _BiaozhunJiliangNumLabel.text = @"0.0";
+    [ic_head_bg addSubview:_BiaozhunJiliangNumLabel];
+    
+    
+    UIImageView * icon_anquan = [[UIImageView alloc] initWithFrame:CGRectMake(19*scale, 10*scale, 22*scale, 22*scale)];
+    icon_anquan.image = [UIImage imageNamed:@"icon_anquan"];
+    [ic_anquan_status addSubview:icon_anquan];
+    
+    
+    GloriaLabel* _AnquanStatustLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(0, 35*scale,60*scale, 20*scale)];
+    _AnquanStatustLabel.font = [UIFont systemFontOfSize:unitFontSize];
+    _AnquanStatustLabel.textAlignment = UITextAlignmentCenter;
+    _AnquanStatustLabel.textColor = kUIColorFromRGB(0x07cb5a);
+    _AnquanStatustLabel.text = @"������";
+    [ic_anquan_status addSubview:_AnquanStatustLabel];
+    
+    
+    UIImageView * ic_zhishu_bk = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-245*scale)/2, (66+20+292+20)*scale, 245*scale, 48*scale)];
+    ic_zhishu_bk.image = [UIImage imageNamed:@"ic_zhishu_bk"];
+    [self.view addSubview:ic_zhishu_bk];
+    
+    
+    _currentShuziTipsLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(0, 10*scale,245*scale, 20*scale)];
+    _currentShuziTipsLabel.font = [UIFont boldSystemFontOfSize:tipsFontSize];
+    _currentShuziTipsLabel.textAlignment = UITextAlignmentCenter;
+    _currentShuziTipsLabel.textColor = [UIColor whiteColor];
+    _currentShuziTipsLabel.text = @"���������������";
+    [ic_zhishu_bk addSubview:_currentShuziTipsLabel];
+    
+    UIImageView * ic_bottom_bg = [[UIImageView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT-64-88*scale-44, SCREEN_WIDTH, 88*scale)];
+    ic_bottom_bg.image = [UIImage imageNamed:@"ic_radia_bottom_bg"];
+    [self.view addSubview:ic_bottom_bg];
+    
+    _currentTipsLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(0, 0,SCREEN_WIDTH, 88*scale)];
+    _currentTipsLabel.font = [UIFont boldSystemFontOfSize:tipsFontSize];
+    _currentTipsLabel.textAlignment = UITextAlignmentCenter;
+    _currentTipsLabel.textColor = RgbColor(64, 159, 252);
+    _currentTipsLabel.numberOfLines = 2;
+    _currentTipsLabel.text = @"���������������";
+    [ic_bottom_bg addSubview:_currentTipsLabel];
+    
+    UIImageView * ic_weixin_tips = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-34*scale)/2, -17*scale, 34*scale, 34*scale)];
+    ic_weixin_tips.image = [UIImage imageNamed:@"ic_weixin_tips"];
+    [ic_bottom_bg addSubview:ic_weixin_tips];
+    
+    
+    UIButton* ic_zhuanpan_bkBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+    ic_zhuanpan_bkBtn.frame = CGRectMake((SCREEN_WIDTH-306*scale)/2, 66*scale+20*scale, 306*scale, 292*scale);
+    [ic_zhuanpan_bkBtn setBackgroundImage:[UIImage imageNamed:@"ic_zhuanpan_bk" ] forState:UIControlStateNormal];
+    [ic_zhuanpan_bkBtn addTarget:self action:@selector(connectAction) forControlEvents:UIControlEventTouchUpInside];
+    [self.view addSubview:ic_zhuanpan_bkBtn];
+    
+    //������������������������������������������������������������������������
+    circle3 = [[ZZCircleProgress alloc] initWithFrame:CGRectMake((ic_zhuanpan_bkBtn.frame.size.width-180*scale)/2-2*scale, 60*scale, 182*scale, 182*scale) pathBackColor:RgbColor(184,237, 254) pathFillColor:RgbColor(85,197, 252)  startAngle:-235 strokeWidth:24*scale];
+    circle3.reduceValue = 72;
+    circle3.increaseFromLast = YES;
+    circle3.pointImage = [UIImage imageNamed:@"test_point"];
+    circle3.progress = ((float)850/FUSHE_MAX_VALUE);
+    //circle3.progress = 0;
+    circle3.showProgressText = NO;
+    circle3.userInteractionEnabled = NO;
+    [ic_zhuanpan_bkBtn addSubview:circle3];
+    [_trackingSlider setValue:circle3.progress*100];
+    
+    //deviceStatusLabel
+    deviceStatusLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake((ic_zhuanpan_bkBtn.frame.size.width-60*scale)/2, 180*scale, 60*scale, 20*scale)];
+    deviceStatusLabel.font = [UIFont boldSystemFontOfSize:unitFontSize];
+    deviceStatusLabel.textAlignment = UITextAlignmentCenter;
+    deviceStatusLabel.textColor = RgbColor(64, 159, 252);
+    deviceStatusLabel.text = @"���������";
+    [ic_zhuanpan_bkBtn addSubview:deviceStatusLabel];
+    
+    ic_pointer = [[UIImageView alloc] initWithFrame:CGRectMake((ic_zhuanpan_bkBtn.frame.size.width-50*scale)/2, 91*scale+pointerOffset, 50*scale, 111*scale)];
+    ic_pointer.image = [UIImage imageNamed:@"ic_pointer"];
+    
+    //������������
+    ic_pointer.layer.anchorPoint = CGPointMake(0.5, 0.78);
+    //ic_pointer.center = CGPointMake((ic_zhuanpan_bk.frame.size.width-50)/2, 64);
+    //ic_pointer.transform = CGAffineTransformMakeScale(1, 1);
+    //���������������0������
+    ic_pointer.layer.transform = CATransform3DMakeRotation([self transToRadian:-MAXOFFSETANGLE], 0, 0, 1);
+    [ic_zhuanpan_bkBtn addSubview:ic_pointer];
+
+    //[self setGaugeValue:((float)850/FUSHE_MAX_VALUE)*100 animation:NO];
+    //������ios7
+    if( ([[[UIDevice currentDevice] systemVersion] doubleValue]>=7.0))
+    {
+        self.navigationController.navigationBar.translucent = NO;
+    }
+    _locService = [[BMKLocationService alloc]init];
+    
+    _locService.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
+    
+    [self startLocation];
+    
+    dataModelArr = [[NSMutableArray alloc] init];
+    
+    myTimeInterval = [UserDefault stringForKey:@"refresh_frequency"];
+    is_open_upload = [UserDefault stringForKey:@"is_open_upload"];
+    
+    //myTimer =  [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(function:) userInfo:nil repeats:YES];
+    //���1���������������function���������
+    
+}
+
+-(void)connectAction
+{
+    SearchDevicePage* page = [[SearchDevicePage alloc] initIsFirstPage:NO];
+    
+    BaseNaviController *baseNav = [[BaseNaviController alloc] initWithRootViewController:page];
+    [self presentViewController:baseNav animated:YES completion:nil];
+}
+
+-(void)storyAticon
+{
+    HistoryRecordPage* page = [[HistoryRecordPage alloc] initIsFirstPage:NO];
+    
+    BaseNaviController *baseNav = [[BaseNaviController alloc] initWithRootViewController:page];
+    [self presentViewController:baseNav animated:YES completion:nil];
+}
+
+
+/*
+ * parseToAngle ���������������������������������������
+ * @val CGFloat ���������������������
+ */
+-(CGFloat) parseToAngle:(CGFloat) val
+{
+    //���������������
+    if(val<minNum)
+    {
+        return minNum;
+    }
+    else if(val>maxNum)
+    {
+        return maxNum;
+    }
+    CGFloat temp =(val-gaugeValue)*angleperValue;
+    return temp;
+}
+
+
+/*
+ * setGaugeValue ���������������������
+ * @value CGFloat ������������������
+ * @isAnim BOOL   ������������������
+ */
+-(void)setGaugeValue:(CGFloat)value animation:(BOOL)isAnim
+{
+    CGFloat tempAngle = [self parseToAngle:value];
+    gaugeValue = value;
+    //���������������������������������
+    if(isAnim){
+        [self pointToAngle:tempAngle Duration:0.6f];
+    }else
+    {
+        [self pointToAngle:tempAngle Duration:0.0f];
+    }
+}
+
+/*
+ * pointToAngle ���������������
+ * @angel CGFloat ������
+ * @duration CGFloat ������������������
+ */
+- (void) pointToAngle:(CGFloat) angle Duration:(CGFloat) duration
+{
+    CAKeyframeAnimation *anim=[CAKeyframeAnimation animationWithKeyPath:@"transform"];
+    NSMutableArray *values=[NSMutableArray array];
+    anim.duration = duration;
+    anim.autoreverses = NO;
+    anim.fillMode = kCAFillModeForwards;
+    anim.removedOnCompletion= NO;
+    
+    CGFloat distance = angle/10;
+    //������������������������������������ CABaseAnimation ���toValue���������������������������������������������180������������������������
+    int i = 1;
+    for(;i<=10;i++)
+    {
+        [values addObject:[NSValue valueWithCATransform3D:CATransform3DRotate(CATransform3DIdentity, [self transToRadian:(gaugeAngle+distance*i)], 0, 0, 1)]];
+    }
+    //������������������
+    [values addObject:[NSValue valueWithCATransform3D:CATransform3DRotate(CATransform3DIdentity, [self transToRadian:(gaugeAngle+distance*(i))], 0, 0, 1)]];
+    [values addObject:[NSValue valueWithCATransform3D:CATransform3DRotate(CATransform3DIdentity, [self transToRadian:(gaugeAngle+distance*(i-2))], 0, 0, 1)]];
+    [values addObject:[NSValue valueWithCATransform3D:CATransform3DRotate(CATransform3DIdentity, [self transToRadian:(gaugeAngle+distance*(i-1))], 0, 0, 1)]];
+    
+    anim.values=values; ;
+    [ic_pointer.layer addAnimation:anim forKey:@"cubeIn"];
+    
+    gaugeAngle = gaugeAngle+angle;
+    
+}
+
+/*
+ * parseToX ���������������
+ * @angel CGFloat ������
+ */
+-(CGFloat)transToRadian:(CGFloat)angel
+{
+    return angel*M_PI/180;
+}
+
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+-(void)data_upload
+{
+    //[UserDefault stringForKey:@"user_id"]
+    NSString *path = [[NSString alloc] initWithFormat:DATA_UPLOAD];
+    
+    UploadModel *model = [[UploadModel alloc] init];
+    
+    //['refresh_frequency', 'video', 'is_open_upload']
+    //[param setValue:[UserDefault stringForKey:@"user_id"] forKey:@"user_id"];
+    
+    model.lat = [NSString stringWithFormat:@"%lf",latitude];
+    model.lon = [NSString stringWithFormat:@"%lf",longitude];
+    model.userid = [UserDefault stringForKey:@"user_id"];
+    model.address = address;
+    model.modelArray = [[NSMutableArray alloc] init];
+    [model.modelArray addObjectsFromArray:dataModelArr];
+    
+    MPWeakSelf(self);
+    [NetworkSingleton networkingGetMethod:model.toDic urlName:path success:^(id responseBody)
+     {
+         MPStrongSelf(self);
+         BaseResModel * resModel = [Global toBaseModel:responseBody];
+         
+         if(resModel.code == 0)
+         {
+             [dataModelArr removeAllObjects];
+             
+             //[UserDefault setObject:self.is_open_upload forKey:@"is_open_upload"];
+             [UserDefault synchronize];
+             
+             //[self.tableView reloadData];
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+         else
+         {
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+     }
+                                  failure:^(NSString *error)
+     {
+         
+         [Global alertMessageEx:error title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+     }];
+}
+
+//���������
+-(void)startLocation
+{
+    NSLog(@"���������������������");
+    [_locService startUserLocationService];
+    //_mapView.showsUserLocation = NO;//������������������������������
+    //_mapView.userTrackingMode = BMKUserTrackingModeNone;//���������������������
+    //_mapView.showsUserLocation = YES;//������������������
+}
+
+//������������
+-(void)stopLocation:(id)sender
+{
+    [_locService stopUserLocationService];
+    //_mapView.showsUserLocation =  YES;//������������������
+}
+
+/**
+ *������������������������������������������
+ *@param userLocation ������������������
+ */
+- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation
+{
+    //[_mapView updateLocationData:userLocation];
+    NSLog(@"heading is %@",userLocation.heading);
+}
+
+/**
+ *������������������������������������������
+ *@param userLocation ������������������
+ */
+- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
+{
+    NSLog(@"didUpdateUserLocation lat %f,long %f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);
+    
+    latitude = userLocation.location.coordinate.latitude;
+    longitude = userLocation.location.coordinate.longitude;
+    
+    // 3.CLGeocoder���������������������,���������������
+    // ������������������������������
+    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
+    //������������������������������������������������
+    [geocoder reverseGeocodeLocation:userLocation.location completionHandler:^(NSArray *array, NSError *error){
+        if (array.count > 0)
+        {
+            CLPlacemark *placemark = [array objectAtIndex:0];
+            NSDictionary *addressDictionary = placemark.addressDictionary;
+            
+            address = [NSString stringWithFormat:@"%@", [addressDictionary valueForKey:@"FormattedAddressLines"]];
+            //address = [NSString stringWithCString:[address cStringUsingEncoding:NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding];
+        }
+    }];
+    
+    //[_mapView updateLocationData:userLocation];
+    
+    //_mapView.centerCoordinate = userLocation.location.coordinate; //���������������������������������
+}
+
+
+/**
+ *���������View������������������������������������������
+ *@param mapView ������View
+ */
+- (void)willStartLocatingUser
+{
+    NSLog(@"start locate");
+}
+
+/**
+ *���������View������������������������������������
+ *@param mapView ������View
+ */
+- (void)didStopLocatingUser
+{
+    NSLog(@"stop locate");
+}
+
+/**
+ *������������������������������������
+ *@param mapView ������View
+ *@param error ������������������CLError.h���������������������
+ */
+- (void)didFailToLocateUserWithError:(NSError *)error
+{
+    NSLog(@"location error");
+}
+
+- (void)dealloc {
+   // if (_mapView) {
+    //    _mapView = nil;
+   // }
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end
diff --git a/pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.h b/pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.h
index aaaddd1..41d9b61 100644
--- a/pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.h
+++ b/pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.h
@@ -7,7 +7,9 @@
 //
 
 #import "BaseNavPage.h"
+#import "CBMoralManager.h"
+#import "CBPeripheralExt.h"
 
-@interface SearchDevicePage : BaseNavPage
+@interface SearchDevicePage : BaseNavPage<cbDiscoveryManagerDelegate>
 
 @end
diff --git a/pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.m b/pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.m
index b939612..c99daa2 100644
--- a/pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.m
+++ b/pregnancy_guard/BaseProject/Controller/Home/SearchDevicePage.m
@@ -9,12 +9,26 @@
 #import "SearchDevicePage.h"
 #import "GloriaLabel.h"
 #import "SearchDeviceCell.h"
+#import "DevicesTableViewCell.h"
+#import "BaseNaviController.h"
+#import "ProgressHandler.h"
+#import "UIView+Toast.h"
+#import "UIImage+animatedGIF.h"
+#import "SearchTipsCell.h"
 
 @interface SearchDevicePage ()<UITableViewDelegate,UITableViewDataSource>
-
+{
+    BOOL isBluetoothON;
+    UIButton* ic_search_btn;
+    UIImageView * ic_search_done;
+    UIImageView * ic_searching;
+    CGFloat ic_top_bkH;
+    CGFloat ic_search_doneH;
+    GloriaLabel* _TitleLabel;
+    GloriaLabel* _SetTitleLabel;
+}
 @property (nonatomic, strong) UITableView                   * tableView;
 @property (nonatomic, assign) int                           currentStatus; // 0 ��������� 1 ��������� 2 ������������
-@property (nonatomic, strong) NSMutableArray                * modelArray;
 
 @end
 
@@ -35,7 +49,7 @@
         [self.view addSubview:_tableView];
         
         [_tableView mas_makeConstraints:^(MASConstraintMaker *make) {
-            make.edges.mas_equalTo(UIEdgeInsetsMake(325 , 0, 0, 0));
+            make.edges.mas_equalTo(UIEdgeInsetsMake(ic_top_bkH , 0, 0, 0));
         }];
         
         _tableView.tableFooterView = [UIView new];
@@ -43,25 +57,84 @@
     return _tableView;
 }
 
+-(void)viewDidAppear:(BOOL)animated
+{
+    [super viewDidAppear:animated];
+    [[CBMoralManager sharedManager] disconnectPeripheral:[[CBMoralManager sharedManager] myPeripheral]];
+
+    
+}
+
+// ������������������
+//if (isBluetoothON) {
+//    return [[[CBMoralManager sharedManager] foundPeripherals] count];
+//}
+
+-(void)viewDidDisappear:(BOOL)animated
+{
+    [[CBMoralManager sharedManager]stopScanning];
+}
+
+-(void)startScanning
+{
+    // Start scanning for devices
+    [[CBMoralManager sharedManager] startScanning];
+    [self performSelector:@selector(stopScanning) withObject:nil afterDelay:5.0f];
+}
+
+-(void)pullToRefresh
+{
+    [[CBMoralManager sharedManager] refreshPeripherals];
+    [self performSelector:@selector(stopScanning) withObject:nil afterDelay:5.0f];
+}
+
+-(void)stopScanning
+{
+    if([[[CBMoralManager sharedManager] foundPeripherals] count] == 0)
+    {
+        self.currentStatus = 0;
+        
+        [self.tableView reloadData];
+    }
+    
+    ic_search_done.hidden = NO;
+    ic_searching.hidden = YES;
+    [ic_search_btn setBackgroundImage:[UIImage imageNamed:@"ic_search_start_btn" ] forState:UIControlStateNormal];
+    [[CBMoralManager sharedManager]stopScanning];
+    //[self.tableView.header endRefreshing];
+}
+
 - (void)viewDidLoad
 {
     [super viewDidLoad];
-    self.title = @"������������";
+    self.title = @"������������";
     [self setNavigationLeft:@"ic_back_arraw.png" sel:@selector(backAticon)];
-    [self setNavigationRight:@"icon_story.png" sel:@selector(storyAticon)];
     
     self.currentStatus = 0;
     
-    UIImageView * ic_top_bk = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 325)];
+    ic_top_bkH = 325;
+    ic_search_doneH = 230;
+    if ( IsiPhone4 || IsiPhone5 )
+    {
+        ic_top_bkH = 260;
+        ic_search_doneH = 180;
+    }
+    
+    UIImageView * ic_top_bk = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ic_top_bkH)];
     ic_top_bk.image = [UIImage imageNamed:@"ic_top_bk"];
     [self.view addSubview:ic_top_bk];
     
-    UIImageView * ic_search_done = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-230)/2, 20, 230, 230)];
+    ic_search_done = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ic_top_bkH)];
     ic_search_done.image = [UIImage imageNamed:@"ic_search_done"];
     [self.view addSubview:ic_search_done];
     
-    UIButton* ic_search_btn = [UIButton buttonWithType:UIButtonTypeCustom];
-    ic_search_btn.frame = CGRectMake((SCREEN_WIDTH-128)/2, 20+230+20, 128, 32);
+    ic_searching = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ic_top_bkH)];
+    [ic_searching setImage:[UIImage animatedImageWithAnimatedGIFURL:[[NSBundle mainBundle] URLForResource:@"gif_searching" withExtension:@"gif"]]];
+    [self.view addSubview:ic_searching];
+    ic_searching.hidden = YES;
+    
+    ic_search_btn = [UIButton buttonWithType:UIButtonTypeCustom];
+    ic_search_btn.frame = CGRectMake((SCREEN_WIDTH-128)/2, ic_search_doneH+55, 128, 32);
     [ic_search_btn setBackgroundImage:[UIImage imageNamed:@"ic_search_start_btn" ] forState:UIControlStateNormal];
     ic_search_btn.titleLabel.font = [UIFont systemFontOfSize: 18.0];
     ic_search_btn.layer.masksToBounds=YES;
@@ -71,6 +144,8 @@
     
     self.tableView.hidden = NO;
     // Do any additional setup after loading the view.
+    
+    [[CBMoralManager sharedManager] setCbDiscoveryDelegate:self];
 }
 
 
@@ -86,9 +161,14 @@
 
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {
-    if (_currentStatus == 2)
+    if (_currentStatus == 2 && isBluetoothON )
     {
-        return self.modelArray.count;
+        if(section == 0)
+        {
+            return 1;
+        }
+        else
+            return [[[CBMoralManager sharedManager] foundPeripherals] count];
     }
     else
         return 5;
@@ -101,123 +181,183 @@
 {
     if (_currentStatus != 2)
     {
-        static NSString *CellIdentifier = @"searchDeviceCell";
-
-        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
-        if (cell == nil)
-        {
-            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
-        }
-        
         NSUInteger index = [indexPath row];
-        switch (index)
+        if(index == 0 )
         {
-            case 0:
+            NSString *CellIdentifier = @"searchTipsCell";
+            
+            UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+            if (cell == nil)
             {
-                GloriaLabel* _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(10, 6,SCREEN_WIDTH/2, 30)];
-                _TitleLabel.font = [UIFont systemFontOfSize:14];
-                _TitleLabel.textAlignment = UITextAlignmentLeft;
-                _TitleLabel.textColor = kUIColorFromRGB(0x595959);
-                _TitleLabel.text = @"������������������";
-                [cell.contentView addSubview:_TitleLabel];
-                
+                cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
             }
-                break;
-            case 1:
+            
+            if(_SetTitleLabel==nil)
             {
-                UIImageView * icon_one = [[UIImageView alloc] initWithFrame:CGRectMake(10, 11, 22, 22)];
-                icon_one.image = [UIImage imageNamed:@"icon_one"];
-                [cell.contentView addSubview:icon_one];
-                
-                GloriaLabel* _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(10+22+10, 15,SCREEN_WIDTH-(10+22+10), 22)];
-                _TitleLabel.font = [UIFont systemFontOfSize:14];
-                _TitleLabel.textAlignment = UITextAlignmentLeft;
-                _TitleLabel.textColor = kUIColorFromRGB(0x595959);
-                _TitleLabel.text = @"������������������������������";
-                [cell.contentView addSubview:_TitleLabel];
-                
+                _SetTitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(10, 6,SCREEN_WIDTH/2, 30)];
+                _SetTitleLabel.font = [UIFont systemFontOfSize:14];
+                _SetTitleLabel.textAlignment = UITextAlignmentLeft;
+                _SetTitleLabel.textColor = kUIColorFromRGB(0x595959);
+                [cell.contentView addSubview:_SetTitleLabel];
             }
-                
-                break;
-            case 2:
-            {
-                UIImageView * icon_two = [[UIImageView alloc] initWithFrame:CGRectMake(10, 11, 22, 22)];
-                icon_two.image = [UIImage imageNamed:@"icon-two"];
-                [cell.contentView addSubview:icon_two];
-                
-                GloriaLabel* _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(10+22+10, 15,SCREEN_WIDTH-(10+22+10), 22)];
-                _TitleLabel.font = [UIFont systemFontOfSize:14];
-                _TitleLabel.textAlignment = UITextAlignmentLeft;
-                _TitleLabel.textColor = kUIColorFromRGB(0x595959);
-                _TitleLabel.text = @"������������������";
-                [cell.contentView addSubview:_TitleLabel];
-            }
-                
-                break;
-            case 3:
-            {
-                UIImageView * icon_three = [[UIImageView alloc] initWithFrame:CGRectMake(10, 11, 22, 22)];
-                icon_three.image = [UIImage imageNamed:@"icon-three"];
-                [cell.contentView addSubview:icon_three];
-                
-                GloriaLabel* _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(10+22+10, 15,SCREEN_WIDTH-(10+22+10), 22)];
-                _TitleLabel.font = [UIFont systemFontOfSize:14];
-                _TitleLabel.textAlignment = UITextAlignmentLeft;
-                _TitleLabel.textColor = kUIColorFromRGB(0x595959);
-                _TitleLabel.text = @"������APP������[������������������]";
-                [cell.contentView addSubview:_TitleLabel];
-            }
-                
-                break;
-            case 4:
-            {
-                UIImageView * icon_four = [[UIImageView alloc] initWithFrame:CGRectMake(10, 11, 22, 22)];
-                icon_four.image = [UIImage imageNamed:@"icon-four"];
-                [cell.contentView addSubview:icon_four];
-                
-                GloriaLabel* _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(10+22+10, 15,SCREEN_WIDTH-(10+22+10), 22)];
-                _TitleLabel.font = [UIFont systemFontOfSize:14];
-                _TitleLabel.textAlignment = UITextAlignmentLeft;
-                _TitleLabel.textColor = kUIColorFromRGB(0x595959);
-                _TitleLabel.text = @"������������������������������������������������������";
-                [cell.contentView addSubview:_TitleLabel];
-            }
-                
-                break;
+            
+            _SetTitleLabel.text = @"������������������";
+            
+            return cell;
+
         }
-        
-        return cell;
+        else
+        {
+            NSString *CellIdentifier = @"searchTips2Cell";
+            
+            SearchTipsCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+            if (cell == nil)
+            {
+                cell = [[SearchTipsCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
+            }
+            
+            switch (index)
+            {
+                case 1:
+                {
+                    [cell setItemView:@"������������������������������" imgName:@"icon_one"];
+                    
+                }
+                    break;
+                case 2:
+                {
+                    [cell setItemView:@"������������������" imgName:@"icon-two"];
+                }
+                    
+                    break;
+                case 3:
+                {
+                    [cell setItemView:@"������APP������[������������������]" imgName:@"icon-three"];
+                }
+                    
+                    break;
+                case 4:
+                {
+                    [cell setItemView:@"������������������������������������������������������" imgName:@"icon-four"];
+                }
+                    
+                    break;
+            }
+            
+            return cell;
+        }
     }
     else
     {
-        static NSString *CellIdentifier = @"searchDeviceCell";
-        
-        SearchDeviceCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
-        if (cell == nil)
-        {
-            cell = [[SearchDeviceCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
-        }
-        
         NSUInteger section = [indexPath section];
         if(section==0)
         {
-            GloriaLabel* _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(20, 15,SCREEN_WIDTH/2, 20)];
-            _TitleLabel.font = [UIFont systemFontOfSize:14];
-            _TitleLabel.textAlignment = UITextAlignmentLeft;
-            _TitleLabel.textColor = kUIColorFromRGB(0x595959);
-            _TitleLabel.text = @"������������";
-            [cell.contentView addSubview:_TitleLabel];
+            NSString *CellIdentifier = @"searchDeviceCell1";
+            
+            UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+            if (cell == nil)
+            {
+                cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
+            }
+            
+            if( _TitleLabel == nil)
+            {
+                _TitleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(20, 15,SCREEN_WIDTH/2, 20)];
+                _TitleLabel.font = [UIFont systemFontOfSize:14];
+                _TitleLabel.textAlignment = UITextAlignmentLeft;
+                _TitleLabel.textColor = kUIColorFromRGB(0x595959);
+                _TitleLabel.text = @"������������";
+                [cell.contentView addSubview:_TitleLabel];
+            }
+            
+            return cell;
         }
         else if(section==1)
         {
-            DeviceSpareModel* model = [self.modelArray objectAtIndex:indexPath.row];
+            NSString *CellIdentifier = @"searchDeviceCell";
             
-            [cell setItemView:model];
+            SearchDeviceCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+            if (cell == nil)
+            {
+                cell = [[SearchDeviceCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
+            }
+            
+            CBPeripheralExt *newPeriPheral = [[[CBMoralManager sharedManager] foundPeripherals] objectAtIndex:indexPath.row];
+            
+            NSString * bleName = [self nameForPeripheral:newPeriPheral];
+            NSString * bleUUID = [self UUIDStringfromPeripheral:newPeriPheral];
+            NSString * bleService = [self ServiceCountfromPeripheral:newPeriPheral];
+            
+            [cell setItemView:bleName];
+            
+            //[cell setDiscoveredPeripheralDataFromPeripheral:newPeriPheral];
+            
+           return cell;
         }
-        
-        return cell;
     }
 
+    return  nil;
+}
+
+/*!
+ *  @method nameForPeripheral:
+ *
+ *  @discussion Method to get the peripheral name
+ *
+ */
+-(NSString *)nameForPeripheral:(CBPeripheralExt *)ble
+{
+    NSString *bleName ;
+    
+    if ([ble.mAdvertisementData valueForKey:CBAdvertisementDataLocalNameKey] != nil)
+    {
+        bleName = [ble.mAdvertisementData valueForKey:CBAdvertisementDataLocalNameKey];
+    }
+    
+    if(bleName.length < 1 )
+        bleName = ble.mPeripheral.name;
+    
+    if(bleName.length < 1 )
+        bleName = UNKNOWN_PERIPHERAL;
+    
+    return bleName;
+}
+
+
+/*!
+ *  @method UUIDStringfromPeripheral:
+ *
+ *  @discussion Method to get the UUID from the peripheral
+ *
+ */
+-(NSString *)UUIDStringfromPeripheral:(CBPeripheralExt *)ble
+{
+    
+    NSString *bleUUID = ble.mPeripheral.identifier.UUIDString;
+    if(bleUUID.length < 1 )
+        bleUUID = @"Nil";
+    else
+        bleUUID = [NSString stringWithFormat:@"%@",bleUUID];
+    
+    return bleUUID;
+}
+
+/*!
+ *  @method ServiceCountfromPeripheral:
+ *
+ *  @discussion Method to get the number of services present in a device
+ *
+ */
+-(NSString *)ServiceCountfromPeripheral:(CBPeripheralExt *)ble
+{
+    NSString *bleService =@"";
+    NSInteger serViceCount = [[ble.mAdvertisementData valueForKey:CBAdvertisementDataServiceUUIDsKey] count];
+    if(serViceCount < 1 )
+        bleService = @"No Services";
+    else
+        bleService = [NSString stringWithFormat:@" %ld Service Advertised ",(long)serViceCount];
+    
+    return bleService;
 }
 
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
@@ -232,7 +372,13 @@
      if (_currentStatus == 2)
      {
           NSInteger index = [indexPath row];
-          DeviceSpareModel* model = [self.modelArray objectAtIndex:index];
+         if (isBluetoothON)
+         {
+             [tableView deselectRowAtIndexPath:indexPath animated:YES];
+             [self connectPeripheral:indexPath.row];
+         }
+         
+         // DeviceSpareModel* model = [self.modelArray objectAtIndex:index];
          // ������������������������
          //HotelSelPage* page = [[HotelSelPage alloc] initIsFirstPage:NO];
          //page.bSelRoom = 2;
@@ -246,16 +392,109 @@
 }
 
 
--(void)searchAction
+/**
+ *This method invoke after a new peripheral found.
+ */
+-(void)discoveryDidRefresh
 {
-    
+    _currentStatus = 2;
+    [self.tableView reloadData];
 }
 
--(void)storyAticon
+
+#pragma mark - BlueTooth Turned Off Delegate
+
+/*!
+ *  @method bluetoothStateUpdatedToState:
+ *  ������������������
+ *  @discussion Method to be called when state of Bluetooth changes
+ *
+ */
+
+-(void)bluetoothStateUpdatedToState:(BOOL)state
 {
     
+    isBluetoothON = state;
+    [self.tableView reloadData];
+    isBluetoothON ? [self.tableView setScrollEnabled:YES] : [self.tableView setScrollEnabled:NO];
 }
 
+
+
+#pragma mark - Connect
+
+/*!
+ *  @method connectPeripheral:
+ *
+ *  @discussion Method to connect the selected peripheral
+ *
+ */
+
+-(void)connectPeripheral:(NSInteger)index
+{
+    
+    if ([[CBMoralManager sharedManager] foundPeripherals].count != 0)
+    {
+        CBPeripheralExt *selectedBLE = [[[CBMoralManager sharedManager] foundPeripherals] objectAtIndex:index];
+        [[ProgressHandler sharedInstance] showWithDetailsLabel:@"Connecting.." Detail:selectedBLE.mPeripheral.name];
+        
+        [[CBMoralManager sharedManager] connectPeripheral:selectedBLE.mPeripheral CompletionBlock:^(BOOL success, NSError *error) {
+            [[ProgressHandler sharedInstance] hideProgressView];
+            if(success)
+            {
+                _bConnectSuccess = YES;
+                NSString * bleName = [self nameForPeripheral:selectedBLE];
+                NSString * bleUUID = [self UUIDStringfromPeripheral:selectedBLE];
+                
+                [UserDefault setObject:bleUUID forKey:@"bleUUID"];
+                [UserDefault setObject:bleName forKey:@"bleName"];
+                
+                [UserDefault synchronize];//������synchronize���������������������������������,���������������NSUserDefaults������������������������������������ 
+                //CBPeripheralExt *selBLE = [UserDefault objectForKey:@"Peripheral"];//������������������Peripheral
+                [self backAticon];
+            }
+            else
+            {
+                if(error)
+                {
+                    NSString *errorString = [error.userInfo valueForKey:NSLocalizedDescriptionKey];
+                    
+                    if(errorString.length)
+                    {
+                        [self.view makeToast:errorString];
+                    }
+                    else
+                    {
+                        [self.view makeToast:UNKNOWN_ERROR];
+                    }
+                }
+            }
+            
+        }];
+        
+    }
+    else
+    {
+        NSLog(@"Array is nil");
+        [[CBMoralManager sharedManager] refreshPeripherals];
+    }
+}
+
+-(void)searchAction
+{
+    self.currentStatus = 1;
+    
+    ic_search_done.hidden = YES;
+    ic_searching.hidden = NO;
+    
+    //[mainImageView setImage:[UIImage animatedImageWithAnimatedGIFURL:[[NSBundle mainBundle] URLForResource:imageName withExtension:@"gif"]]];
+    [ic_search_btn setBackgroundImage:[UIImage imageNamed:@"ic_search_stop_btn"] forState:UIControlStateNormal];
+    
+    [self startScanning];
+}
+
+
+
 -(void)backAticon
 {
     //[self.navigationController popToViewController:self animated:YES];
diff --git a/pregnancy_guard/BaseProject/Controller/Login/FogetPwdPage.m b/pregnancy_guard/BaseProject/Controller/Login/FogetPwdPage.m
index a57a34e..6d663c9 100644
--- a/pregnancy_guard/BaseProject/Controller/Login/FogetPwdPage.m
+++ b/pregnancy_guard/BaseProject/Controller/Login/FogetPwdPage.m
@@ -56,7 +56,7 @@
     
     self.title = @"������������";
     [self setNavigationLeft:@"������" sel:@selector(backAction)];
-    self.view.backgroundColor = kUIColorFromRGB(0xf0fbf5);
+    //self.view.backgroundColor = kUIColorFromRGB(0xf0fbf5);
     //[self.navigationController.navigationBar setBarTintColor:[UIColor redColor]];
     
     // ��������� pagecontrol
@@ -89,9 +89,9 @@
     userPhoneTextField.placeholder = @"������������������������";
     userPhoneTextField.font = [UIFont fontWithName:@"Arial" size:16];
     userPhoneTextField.delegate = self;
-    [userPhoneTextField setValue:RgbColor(40, 41, 42) forKeyPath:@"_placeholderLabel.textColor"];
+    [userPhoneTextField setValue:RgbColor(149, 149, 150) forKeyPath:@"_placeholderLabel.textColor"];
     //userPhoneTextField.layer.borderColor = [RgbColor(213, 213, 213) CGColor];
-    userPhoneTextField.textColor = RgbColor(40, 41, 42);
+    userPhoneTextField.textColor = RgbColor(149, 149, 150);
     userPhoneTextField.keyboardType = UIKeyboardTypeNumberPad;
     userPhoneTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
     // ������������������blankView���15.0������������View���������width���������������������������������������������������������������
@@ -110,9 +110,9 @@
     checkCodeTextField.keyboardType = UIKeyboardTypeNumberPad;
     checkCodeTextField.font = [UIFont fontWithName:@"Arial" size:16];
     checkCodeTextField.delegate = self;
-    [checkCodeTextField setValue:RgbColor(40, 41, 42) forKeyPath:@"_placeholderLabel.textColor"];
+    [checkCodeTextField setValue:RgbColor(149, 149, 150) forKeyPath:@"_placeholderLabel.textColor"];
     //userPhoneTextField.layer.borderColor = [RgbColor(213, 213, 213) CGColor];
-    checkCodeTextField.textColor = RgbColor(40, 41, 42);
+    checkCodeTextField.textColor = RgbColor(149, 149, 150);
     checkCodeTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
     // ������������������blankView���15.0������������View���������width���������������������������������������������������������������
     checkCodeTextField.leftView = [[UIView alloc] initWithFrame:CGRectMake(checkCodeTextField.frame.origin.x,checkCodeTextField.frame.origin.y,10.0, checkCodeTextField.frame.size.height)];
@@ -133,9 +133,9 @@
     userNewPwdTextField.placeholder = @"���������������������������";
     userNewPwdTextField.font = [UIFont fontWithName:@"Arial" size:16];
     userNewPwdTextField.delegate = self;
-    [userNewPwdTextField setValue:RgbColor(40, 41, 42) forKeyPath:@"_placeholderLabel.textColor"];
+    [userNewPwdTextField setValue:RgbColor(149, 149, 150) forKeyPath:@"_placeholderLabel.textColor"];
     //userPhoneTextField.layer.borderColor = [RgbColor(213, 213, 213) CGColor];
-    userNewPwdTextField.textColor = RgbColor(40, 41, 42);
+    userNewPwdTextField.textColor = RgbColor(149, 149, 150);
     userNewPwdTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
     // ������������������blankView���15.0������������View���������width���������������������������������������������������������������
     userNewPwdTextField.leftView = [[UIView alloc] initWithFrame:CGRectMake(userNewPwdTextField.frame.origin.x,userNewPwdTextField.frame.origin.y,10.0, userNewPwdTextField.frame.size.height)];
@@ -157,9 +157,9 @@
     userSurePwdTextField.placeholder = @"���������������������������";
     userSurePwdTextField.font = [UIFont fontWithName:@"Arial" size:16];
     userSurePwdTextField.delegate = self;
-    [userSurePwdTextField setValue:RgbColor(40, 41, 42) forKeyPath:@"_placeholderLabel.textColor"];
+    [userSurePwdTextField setValue:RgbColor(149, 149, 150) forKeyPath:@"_placeholderLabel.textColor"];
     //userSurePwdTextField = [RgbColor(213, 213, 213) CGColor];
-    userSurePwdTextField.textColor = RgbColor(40, 41, 42);
+    userSurePwdTextField.textColor = RgbColor(149, 149, 150);
     userSurePwdTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
     // ������������������blankView���15.0������������View���������width���������������������������������������������������������������
     userSurePwdTextField.leftView = [[UIView alloc] initWithFrame:CGRectMake(userNewPwdTextField.frame.origin.x,userNewPwdTextField.frame.origin.y,10.0, userSurePwdTextField.frame.size.height)];
@@ -181,7 +181,7 @@
     
     getCheckCodeLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-textFieldW)/2 + 218 + 6, 100, 126, textFieldH)];
     getCheckCodeLabel.font = FONT14;
-    getCheckCodeLabel.backgroundColor = RgbColor(251, 50, 81);
+    getCheckCodeLabel.backgroundColor = kUIColorFromRGB(0x00a2ff);
     getCheckCodeLabel.textColor = [UIColor whiteColor];
     getCheckCodeLabel.textAlignment = NSTextAlignmentCenter;
     getCheckCodeLabel.text = @"���������������";
@@ -191,7 +191,7 @@
     [self.view addSubview:getCheckCodeLabel];
     
     resetUserPwdBtn = [UIButton buttonWithType:UIButtonTypeCustom];
-    resetUserPwdBtn.frame = CGRectMake((SCREEN_WIDTH-textFieldW)/2,280, textFieldW, textFieldH);
+    resetUserPwdBtn.frame = CGRectMake((SCREEN_WIDTH-textFieldW)/2,280, textFieldW, textFieldH+5);
     [resetUserPwdBtn setTitle:@"������������" forState:UIControlStateNormal];
     [resetUserPwdBtn setBackgroundImage:[UIImage imageNamed:@"regist_btn_bk" ] forState:UIControlStateNormal];
     resetUserPwdBtn.titleLabel.font = [UIFont systemFontOfSize: 18.0];
@@ -275,16 +275,16 @@
     }
     else
     {
-        NSString *path = [[NSString alloc] initWithFormat:FORGET_PSW];
+        NSString *path = [[NSString alloc] initWithFormat:USER_RESETPWD];
         
         CommonReqModel * model = [[CommonReqModel alloc] init];
         
-        model.username = userPhoneTextField.text;
+        model.phone = userPhoneTextField.text;
         model.password = userNewPwdTextField.text;
         model.code     = checkCodeTextField.text;
         
         MPWeakSelf(self);
-        [NetworkSingleton networkingPostMethod:model.toDic urlName:path success:^(id responseBody)
+        [NetworkSingleton networkingGetMethod:model.toDic urlName:path success:^(id responseBody)
          {
              BaseResModel * resModel = [Global toBaseModel:responseBody];
              if(resModel.code == 0)
@@ -306,14 +306,14 @@
 //���������������
 -(void)getCheckCodeAction
 {
-    NSString *path = [[NSString alloc] initWithFormat:REQUEST_CODE];
+    NSString *path = [[NSString alloc] initWithFormat:SEND_REGISTER_SMS];
     
     CommonReqModel * model = [[CommonReqModel alloc] init];
-    model.tel = userPhoneTextField.text;
-    model.type = @"2";
+    model.phone = userPhoneTextField.text;
+    model.type  = @"resetPwd";
     
     MPWeakSelf(self);
-    [NetworkSingleton networkingPostMethod:model.toDic urlName:path success:^(id responseBody)
+    [NetworkSingleton networkingGetMethod:model.toDic urlName:path success:^(id responseBody)
      {
          BaseResModel * resModel = [Global toBaseModel:responseBody];
          
@@ -363,13 +363,13 @@
         }
         else if( textLength == 11 && [StringUtil isMobile:[userPhoneTextField.text stringByAppendingString:string]] == YES)
         {
-            getCheckCodeLabel.textColor = NAVIGATIONTINTCOLOR;
-            getCheckCodeLabel.backgroundColor = [UIColor whiteColor];
+            getCheckCodeLabel.textColor = [UIColor whiteColor];
+            getCheckCodeLabel.backgroundColor = RgbColor(251, 50, 81);
             sendBtn.userInteractionEnabled = YES;
         }
         else
         {
-            getCheckCodeLabel.backgroundColor = RgbColor(251, 50, 81);
+            getCheckCodeLabel.backgroundColor = kUIColorFromRGB(0x00a2ff);
             getCheckCodeLabel.textColor = [UIColor whiteColor];
             sendBtn.userInteractionEnabled = NO;
         }
diff --git a/pregnancy_guard/BaseProject/Controller/Login/LoginPage.m b/pregnancy_guard/BaseProject/Controller/Login/LoginPage.m
index b792bf4..dfa6b07 100644
--- a/pregnancy_guard/BaseProject/Controller/Login/LoginPage.m
+++ b/pregnancy_guard/BaseProject/Controller/Login/LoginPage.m
@@ -40,7 +40,7 @@
     if([UserDefault stringForKey:@"isLogin"] != nil && [[UserDefault stringForKey:@"isLogin"] intValue] == 1 )
     {
         // ���������������
-        //[GetAppDelegate getUserInfo];
+        [GetAppDelegate getUserInfo];
     }
     
 }
@@ -60,22 +60,22 @@
     [self.view addSubview:loginBk];
     
     // ��������� pagecontrol
-    CGFloat logoHeight = 77;
-    CGFloat logoWidth = 152;
+    CGFloat logoHeight = 134;
+    CGFloat logoWidth = 113;
     CGFloat tipsLabelHeight = NavBarHeight7+75+30;
     CGFloat textFieldW = 292;
     CGFloat textFieldH = 56;
 
     if( IsiPhone4 || IsiPhone5)
     {
-        logoWidth = 120;
-        logoHeight = 70;
+        logoWidth = 80;
+        logoHeight = 90;
         tipsLabelHeight = NavBarHeight7+70+10;
         textFieldH = 50;
     }
 
     
-    UIImageView * logoPic = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-logoWidth)/2, NavBarHeight7+22, logoWidth, logoHeight)];
+    UIImageView * logoPic = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-logoWidth)/2, NavBarHeight7, logoWidth, logoHeight)];
     logoPic.image = [UIImage imageNamed:@"login_logo"];
     [self.view addSubview:logoPic];
     
@@ -150,7 +150,7 @@
     registBtn.frame = CGRectMake((SCREEN_WIDTH-120)/2, SCREEN_HEIGHT/2+225, 120, 40);
     [registBtn setTitle:@"���������������" forState:UIControlStateNormal];
     registBtn.titleLabel.font = [UIFont systemFontOfSize: 16.0];
-    [registBtn setTitleColor:RgbColor(241, 0, 39) forState:UIControlStateNormal];
+    [registBtn setTitleColor:kUIColorFromRGB(0x269af4)  forState:UIControlStateNormal];
     [registBtn addTarget:self action:@selector(registAction) forControlEvents:UIControlEventTouchUpInside];
     [self.view addSubview:registBtn];
     
@@ -181,14 +181,14 @@
         // YES������������������������
         HUD.dimBackground = YES;
         
-        NSString *path = [[NSString alloc] initWithFormat:LOGIN];
+        NSString *path = [[NSString alloc] initWithFormat:USER_LOGIN];
         
         CommonReqModel * model = [[CommonReqModel alloc] init];
-        [model setUsername:userPhoneTextField.text];
+        [model setPhone:userPhoneTextField.text];
         [model setPassword:userPwdTextFeild.text];
         
         MPWeakSelf(self);
-        [NetworkSingleton networkingPostMethod:model.toDic urlName:path success:^(id responseBody)
+        [NetworkSingleton networkingGetMethod:model.toDic urlName:path success:^(id responseBody)
          {
              HUD.hidden = YES;
              MPStrongSelf(self);
@@ -206,14 +206,12 @@
                      // ������������������
                      [UserDefault setObject:@"1" forKey:@"isLogin"];
                      [UserDefault setObject:userModel._id forKey:@"user_id"];
-                     [UserDefault setObject:userModel.username forKey:@"username"];
+                     [UserDefault setObject:userModel.phone forKey:@"phone"];
                      [UserDefault setObject:userModel.password forKey:@"password"];
                      [UserDefault setObject:userModel.nickname forKey:@"nickname"];
-                     if(userModel.opt == 2)
-                     {
-                         [UserDefault setObject:userModel.hotel_id forKey:@"hotel_id"];
-                     }
-                     [UserDefault setObject:[NSString stringWithFormat:@"%d",userModel.opt] forKey:@"opt"];//opt=1���������������������opt=2������������������
+                     [UserDefault setObject:userModel.video forKey:@"video"];
+                     [UserDefault setObject:userModel.refresh_frequency forKey:@"refresh_frequency"];
+                     [UserDefault setObject:userModel.is_open_upload forKey:@"is_open_upload"];
                      [UserDefault synchronize];//������synchronize���������������������������������,���������������NSUserDefaults������������������������������������
                      
                      // ���������������
diff --git a/pregnancy_guard/BaseProject/Controller/Login/RegistPage.m b/pregnancy_guard/BaseProject/Controller/Login/RegistPage.m
index e17c90b..e299de2 100644
--- a/pregnancy_guard/BaseProject/Controller/Login/RegistPage.m
+++ b/pregnancy_guard/BaseProject/Controller/Login/RegistPage.m
@@ -94,9 +94,9 @@
     userPhoneTextField.placeholder = @"������������������";
     userPhoneTextField.font = [UIFont fontWithName:@"Arial" size:16];
     userPhoneTextField.delegate = self;
-    [userPhoneTextField setValue:RgbColor(40, 41, 42) forKeyPath:@"_placeholderLabel.textColor"];
+    [userPhoneTextField setValue:RgbColor(149, 149, 150) forKeyPath:@"_placeholderLabel.textColor"];
     //userPhoneTextField.layer.borderColor = [RgbColor(213, 213, 213) CGColor];
-    userPhoneTextField.textColor = RgbColor(40, 41, 42);
+    userPhoneTextField.textColor = RgbColor(149, 149, 150);
     
     userPhoneTextField.keyboardType = UIKeyboardTypeNumberPad;
     userPhoneTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
@@ -119,9 +119,9 @@
     checkCodeTextField.placeholder = @"������������������";
     checkCodeTextField.font = [UIFont fontWithName:@"Arial" size:16];
     checkCodeTextField.delegate = self;
-    [checkCodeTextField setValue:RgbColor(40, 41, 42) forKeyPath:@"_placeholderLabel.textColor"];
+    [checkCodeTextField setValue:RgbColor(149, 149, 150) forKeyPath:@"_placeholderLabel.textColor"];
     //userPhoneTextField.layer.borderColor = [RgbColor(213, 213, 213) CGColor];
-    checkCodeTextField.textColor = RgbColor(40, 41, 42);
+    checkCodeTextField.textColor = RgbColor(149, 149, 150);
     checkCodeTextField.keyboardType = UIKeyboardTypeNumberPad;
     checkCodeTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
     // ������������������blankView���15.0������������View���������width���������������������������������������������������������������
@@ -143,9 +143,9 @@
     userNewPwdTextField.placeholder = @"���������������";
     userNewPwdTextField.font = [UIFont fontWithName:@"Arial" size:16];
     userNewPwdTextField.delegate = self;
-    [userNewPwdTextField setValue:RgbColor(40, 41, 42) forKeyPath:@"_placeholderLabel.textColor"];
+    [userNewPwdTextField setValue:RgbColor(149, 149, 150) forKeyPath:@"_placeholderLabel.textColor"];
     //userPhoneTextField.layer.borderColor = [RgbColor(213, 213, 213) CGColor];
-    userNewPwdTextField.textColor = RgbColor(40, 41, 42);
+    userNewPwdTextField.textColor = RgbColor(149, 149, 150);
     userNewPwdTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
     // ������������������blankView���15.0������������View���������width���������������������������������������������������������������
     userNewPwdTextField.leftView = [[UIView alloc] initWithFrame:CGRectMake(userNewPwdTextField.frame.origin.x,userNewPwdTextField.frame.origin.y,10.0, userNewPwdTextField.frame.size.height)];
@@ -165,7 +165,7 @@
     
     getCheckCodeLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-textFieldW)/2+40+textFieldW-40-100+2, SCREEN_HEIGHT/2-50, 80, textFieldH/2)];
     getCheckCodeLabel.font = FONT12;
-    getCheckCodeLabel.backgroundColor = RgbColor(251, 50, 81);
+    getCheckCodeLabel.backgroundColor = kUIColorFromRGB(0x00a2ff);
     getCheckCodeLabel.textColor = [UIColor whiteColor];
     getCheckCodeLabel.textAlignment = NSTextAlignmentCenter;
     getCheckCodeLabel.layer.borderColor = [RgbColor(251, 50, 81) CGColor];
@@ -191,7 +191,7 @@
     backLoginBtn.frame = CGRectMake((SCREEN_WIDTH-200)/2, SCREEN_HEIGHT/2+225, 200, 40);
     [backLoginBtn setTitle:@"���������������������������" forState:UIControlStateNormal];
     backLoginBtn.titleLabel.font = [UIFont systemFontOfSize: 16.0];
-    [backLoginBtn setTitleColor:RgbColor(241, 0, 39)  forState:UIControlStateNormal];
+    [backLoginBtn setTitleColor:kUIColorFromRGB(0x00a2ff)  forState:UIControlStateNormal];
     [backLoginBtn addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
     [self.view addSubview:backLoginBtn];
     
@@ -268,16 +268,16 @@
     else
     {
         
-        NSString *path = [[NSString alloc] initWithFormat:@"/user/register"];
+        NSString *path = [[NSString alloc] initWithFormat:USER_REGISTER];
         
         CommonReqModel * model = [[CommonReqModel alloc] init];
         
-        model.username = userPhoneTextField.text;
+        model.phone = userPhoneTextField.text;
         model.password = userNewPwdTextField.text;
         model.code     = checkCodeTextField.text;
         
         MPWeakSelf(self);
-        [NetworkSingleton networkingPostMethod:model.toDic urlName:path success:^(id responseBody)
+        [NetworkSingleton networkingGetMethod:model.toDic urlName:path success:^(id responseBody)
          {
              MPStrongSelf(self);
              BaseResModel * resModel = [Global toBaseModel:responseBody];
@@ -301,14 +301,17 @@
 //���������������
 -(void)getCheckCodeAction
 {
-    NSString *path = [[NSString alloc] initWithFormat:@"/user/request_code"];
+    NSString *path = [[NSString alloc] initWithFormat:SEND_REGISTER_SMS];
     
     CommonReqModel * model = [[CommonReqModel alloc] init];
-    model.tel = userPhoneTextField.text;
-    model.type = @"1";
+    model.phone = userPhoneTextField.text;
+    model.type = @"register";
+    
+    //NSMutableDictionary *param = [[NSMutableDictionary alloc] init];
+    //[param setObject:userPhoneTextField.text forKey:@"phone"];
     
     MPWeakSelf(self);
-    [NetworkSingleton networkingPostMethod:model.toDic urlName:path success:^(id responseBody)
+    [NetworkSingleton networkingGetMethod:model.toDic urlName:path success:^(id responseBody)
      {
          BaseResModel * resModel = [Global toBaseModel:responseBody];
          
@@ -361,13 +364,13 @@
         }
         else if( textLength == 11 && [StringUtil isMobile:[userPhoneTextField.text stringByAppendingString:string]] == YES)
         {
-            getCheckCodeLabel.textColor = NAVIGATIONTINTCOLOR;
-            getCheckCodeLabel.backgroundColor = [UIColor whiteColor];
+            getCheckCodeLabel.textColor = [UIColor whiteColor];
+            getCheckCodeLabel.backgroundColor = RgbColor(251, 50, 81);
             sendBtn.userInteractionEnabled = YES;
         }
         else
         {
-            getCheckCodeLabel.backgroundColor = RgbColor(251, 50, 81);
+            getCheckCodeLabel.backgroundColor = kUIColorFromRGB(0x00a2ff);
             getCheckCodeLabel.textColor = [UIColor whiteColor];
             sendBtn.userInteractionEnabled = NO;
         }
diff --git a/pregnancy_guard/BaseProject/Controller/Mine/ChangeNamePage.m b/pregnancy_guard/BaseProject/Controller/Mine/ChangeNamePage.m
index 11bb4bf..6b0ed22 100644
--- a/pregnancy_guard/BaseProject/Controller/Mine/ChangeNamePage.m
+++ b/pregnancy_guard/BaseProject/Controller/Mine/ChangeNamePage.m
@@ -107,7 +107,6 @@
         CommonReqModel * model = [[CommonReqModel alloc] init];
         model.userID = _loginUser[@"_id"];
         model.nickname = userNickNameTextField.text;
-        model.opt = _loginUser[@"opt"];
         
         MPWeakSelf(self);
         [NetworkSingleton networkingPostMethod:model.toDic urlName:path success:^(id responseBody)
diff --git a/pregnancy_guard/BaseProject/Controller/Mine/ChangePwdPage.m b/pregnancy_guard/BaseProject/Controller/Mine/ChangePwdPage.m
index daf995b..2f704c0 100644
--- a/pregnancy_guard/BaseProject/Controller/Mine/ChangePwdPage.m
+++ b/pregnancy_guard/BaseProject/Controller/Mine/ChangePwdPage.m
@@ -143,7 +143,6 @@
         NSString *path = [NSString stringWithFormat:CHANGE_PSW];
         
         CommonReqModel * model = [[CommonReqModel alloc] init];
-        model.opt = _loginUser[@"opt"];
         model.userID = _loginUser[@"_id"];
         model.password = userOldPwdTextField.text;
         model.newspassword = userNewPwdTextField.text;
diff --git a/pregnancy_guard/BaseProject/Controller/Mine/HistoryRecordPage.m b/pregnancy_guard/BaseProject/Controller/Mine/HistoryRecordPage.m
index fc95a60..50621ba 100644
--- a/pregnancy_guard/BaseProject/Controller/Mine/HistoryRecordPage.m
+++ b/pregnancy_guard/BaseProject/Controller/Mine/HistoryRecordPage.m
@@ -7,9 +7,23 @@
 //
 
 #import "HistoryRecordPage.h"
+#import "GloriaLabel.h"
+#import "NetworkSingleton.h"
 
 @interface HistoryRecordPage ()
-
+{
+    JHLineChart *historyRecordLineChart;
+    NSMutableArray * modelArray;
+    UIButton * _DayBtn;
+    UIButton * _WeekBtn;
+    UIButton * _MonthBtn;
+    int        currentUnit; // 1 ��� 2 ���
+    GloriaLabel* _UnitTipsLabel;
+    NSDate *CurrentDate;
+    NSDate *initialDate;
+    GloriaLabel* _BeginTimesLabel;
+    GloriaLabel* _EndTimesLabel;
+}
 @end
 
 @implementation HistoryRecordPage
@@ -23,14 +37,334 @@
     
     UIImageView * ic_bottom_bg = [[UIImageView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT-112-64, SCREEN_WIDTH, 112)];
     ic_bottom_bg.image = [UIImage imageNamed:@"ic_bottom_bg"];
+    ic_bottom_bg.userInteractionEnabled = YES;
     [self.view addSubview:ic_bottom_bg];
     
-    UIImageView * ic_time_bk = [[UIImageView alloc] initWithFrame:CGRectMake(0, 10 , SCREEN_WIDTH, 112)];
+    UIImageView * ic_time_bk = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-225)/2, 15, 225, 25)];
     ic_time_bk.image = [UIImage imageNamed:@"ic_time_bk"];
-    [self.view addSubview:ic_time_bk];
+    ic_time_bk.userInteractionEnabled = YES;
+    [ic_bottom_bg addSubview:ic_time_bk];
+    
+    // Y = 0 75 150
+    
+    currentUnit = 1;
+    CurrentDate = [DateUtil dateFromStringYMD:[DateUtil stringFromOffDateYMD:[NSDate date] dayCount:-1]];
+    initialDate = CurrentDate;
+    _DayBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+    _DayBtn.frame = CGRectMake(0, 0, 75, 25);
+    [_DayBtn setBackgroundImage:[UIImage imageNamed:@"ic_time_item_bk"] forState:UIControlStateNormal];
+    [_DayBtn setTitle:@"���" forState:UIControlStateNormal];
+    _DayBtn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
+    [_DayBtn setTitleColor:kUIColorFromRGB(0xffffff) forState:UIControlStateNormal];
+    [_DayBtn addTarget:self action:@selector(unitDayLogin) forControlEvents:UIControlEventTouchUpInside];
+    [ic_time_bk addSubview:_DayBtn];
+    
+    _WeekBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+    _WeekBtn.frame = CGRectMake(75, 0, 75, 25);
+    [_WeekBtn setBackgroundImage:[UIImage imageNamed:@"ic_time_item_bk"] forState:UIControlStateNormal];
+    [_WeekBtn setTitle:@"���" forState:UIControlStateNormal];
+    _WeekBtn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
+    [_WeekBtn setTitleColor:kUIColorFromRGB(0xffffff) forState:UIControlStateNormal];
+    [_WeekBtn addTarget:self action:@selector(unitWeekLogin) forControlEvents:UIControlEventTouchUpInside];
+    [ic_time_bk addSubview:_WeekBtn];
+    [_WeekBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
+    
+    _MonthBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+    _MonthBtn.frame = CGRectMake(150, 0,75, 25);
+    [_MonthBtn setBackgroundImage:[UIImage imageNamed:@"ic_time_item_bk"] forState:UIControlStateNormal];
+    [_MonthBtn setTitle:@"���" forState:UIControlStateNormal];
+    _MonthBtn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
+    [_MonthBtn setTitleColor:kUIColorFromRGB(0xffffff) forState:UIControlStateNormal];
+    [_MonthBtn addTarget:self action:@selector(unitMonthLogin) forControlEvents:UIControlEventTouchUpInside];
+    [ic_time_bk addSubview:_MonthBtn];
+    [_MonthBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
+
+    
+    UIImageView * ic_line = [[UIImageView alloc] initWithFrame:CGRectMake(SCREEN_WIDTH/2, (112-15-25-52)/2 + 15 + 25 , 1, 52)];
+    ic_line.image = [UIImage imageNamed:@"ic_line"];
+    [ic_bottom_bg addSubview:ic_line];
+    
+    GloriaLabel* _AvgValueLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(0, 15 + 25 + 10,SCREEN_WIDTH/2, 20)];
+    _AvgValueLabel.font = [UIFont systemFontOfSize:14];
+    _AvgValueLabel.textAlignment = UITextAlignmentCenter;
+    _AvgValueLabel.textColor = kUIColorFromRGB(0xffffff);
+    _AvgValueLabel.text = @"���������";
+    [ic_bottom_bg addSubview:_AvgValueLabel];
+    
+    GloriaLabel* _YearLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(0, 15 + 25 + 10 + 20,SCREEN_WIDTH/2, 30)];
+    _YearLabel.font = [UIFont boldSystemFontOfSize:18];
+    _YearLabel.textAlignment = UITextAlignmentCenter;
+    _YearLabel.textColor = kUIColorFromRGB(0xffffff);
+    _YearLabel.text = @"10";
+    [ic_bottom_bg addSubview:_YearLabel];
+    
+    // ���������������������������label���������
+    CGSize size = [_YearLabel.text sizeWithFont:[UIFont boldSystemFontOfSize:18.0f] constrainedToSize:CGSizeMake(self.view.frame.size.width, 300) lineBreakMode:NSLineBreakByWordWrapping];
+    
+    GloriaLabel* _UnitLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH/4+size.width/2+2, 15 + 25 + 10 + 20,SCREEN_WIDTH/2, 30)];
+    _UnitLabel.font = [UIFont systemFontOfSize:14];
+    _UnitLabel.textAlignment = UITextAlignmentLeft;
+    _UnitLabel.textColor = kUIColorFromRGB(0xffffff);
+    _UnitLabel.text = @"��W/c���";
+    [ic_bottom_bg addSubview:_UnitLabel];
+    
+    GloriaLabel* _StatusTipsLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH/2, 15 + 25 + 10,SCREEN_WIDTH/2, 20)];
+    _StatusTipsLabel.font = [UIFont systemFontOfSize:14];
+    _StatusTipsLabel.textAlignment = UITextAlignmentCenter;
+    _StatusTipsLabel.textColor = kUIColorFromRGB(0xffffff);
+    _StatusTipsLabel.text = @"������";
+    [ic_bottom_bg addSubview:_StatusTipsLabel];
+    
+    GloriaLabel* _StatusLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH/2, 15 + 25 + 10+ 20,SCREEN_WIDTH/2, 20)];
+    _StatusLabel.font = [UIFont boldSystemFontOfSize:18];
+    _StatusLabel.textAlignment = UITextAlignmentCenter;
+    _StatusLabel.textColor = kUIColorFromRGB(0xffffff);
+    _StatusLabel.text = @"������";
+    [ic_bottom_bg addSubview:_StatusLabel];
+    
+    _BeginTimesLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(0, 0,SCREEN_WIDTH, 20)];
+    _BeginTimesLabel.font = [UIFont boldSystemFontOfSize:14];
+    _BeginTimesLabel.textAlignment = UITextAlignmentCenter;
+    _BeginTimesLabel.textColor = RgbColor(0, 146, 252);
+    _BeginTimesLabel.text = [DateUtil stringFromOffDateYMD:CurrentDate dayCount:-currentUnit];
+    [self.view  addSubview:_BeginTimesLabel];
+    
+    GloriaLabel* _TimesLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(0, 20,SCREEN_WIDTH, 20)];
+    _TimesLabel.font = [UIFont boldSystemFontOfSize:14];
+    _TimesLabel.textAlignment = UITextAlignmentCenter;
+    _TimesLabel.textColor = RgbColor(0, 146, 252);
+    _TimesLabel.text = @"���";
+    [self.view  addSubview:_TimesLabel];
+    
+    _EndTimesLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(0, 40,SCREEN_WIDTH, 20)];
+    _EndTimesLabel.font = [UIFont boldSystemFontOfSize:14];
+    _EndTimesLabel.textAlignment = UITextAlignmentCenter;
+    _EndTimesLabel.textColor = RgbColor(0, 146, 252);
+    _EndTimesLabel.text = [DateUtil stringFromDateYMD:CurrentDate];
+    [self.view  addSubview:_EndTimesLabel];
+    
+    UIButton * _arraw_leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+    _arraw_leftBtn.frame = CGRectMake(88, 20 , 15, 15);
+    [_arraw_leftBtn setBackgroundImage:[UIImage imageNamed:@"icon_arraw_left"] forState:UIControlStateNormal];
+    _arraw_leftBtn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
+    [_arraw_leftBtn setTitleColor:kUIColorFromRGB(0xfebead) forState:UIControlStateNormal];
+    [_arraw_leftBtn addTarget:self action:@selector(leftLogin) forControlEvents:UIControlEventTouchUpInside];
+    [self.view addSubview:_arraw_leftBtn];
     
     
+    UIButton * _arraw_rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+    _arraw_rightBtn.frame = CGRectMake(SCREEN_WIDTH-88-15, 20, 15, 15);
+    [_arraw_rightBtn setBackgroundImage:[UIImage imageNamed:@"icon_arraw_right"] forState:UIControlStateNormal];
+    _arraw_rightBtn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
+    [_arraw_rightBtn setTitleColor:kUIColorFromRGB(0xfebead) forState:UIControlStateNormal];
+    [_arraw_rightBtn addTarget:self action:@selector(rightLogin) forControlEvents:UIControlEventTouchUpInside];
+    [self.view addSubview:_arraw_rightBtn];
+
+    
+    modelArray = [[NSMutableArray alloc] init];
+    
+     [self drawHistoryRecordLine];
+    
+    _UnitTipsLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT-112-64-30, SCREEN_WIDTH, 20)];
+    _UnitTipsLabel.font = [UIFont boldSystemFontOfSize:14];
+    _UnitTipsLabel.textAlignment = UITextAlignmentCenter;
+    _UnitTipsLabel.textColor = RgbColor(0, 146, 252);
+    _UnitTipsLabel.text = @"���������(������)";
+    [self.view  addSubview:_UnitTipsLabel];
+    
+    [self GetUserDataList];
     // Do any additional setup after loading the view.
+}
+
+-(void)leftLogin
+{
+    CurrentDate = [DateUtil dateFromStringYMD:[DateUtil stringFromOffDateYMD:CurrentDate dayCount:-(currentUnit+1)]];
+    _BeginTimesLabel.text = [DateUtil stringFromOffDateYMD:CurrentDate dayCount:-currentUnit];
+    _EndTimesLabel.text = [DateUtil stringFromDateYMD:CurrentDate];
+    [self GetUserDataList];
+}
+
+-(void)rightLogin
+{
+    if( ![[DateUtil stringFromDateYMD:CurrentDate] isEqualToString: [DateUtil stringFromDateYMD:initialDate]])
+    {
+        CurrentDate = [DateUtil dateFromStringYMD:[DateUtil stringFromOffDateYMD:CurrentDate dayCount:(currentUnit+1)]];
+        _BeginTimesLabel.text = [DateUtil stringFromOffDateYMD:CurrentDate dayCount:-currentUnit];
+        _EndTimesLabel.text = [DateUtil stringFromDateYMD:CurrentDate];
+        [self GetUserDataList];
+    }
+}
+
+
+-(void)GetUserDataList
+{
+    //[UserDefault stringForKey:@"user_id"]
+    NSString *path = [[NSString alloc] initWithFormat:GET_DATALIST];
+    
+    NSMutableDictionary * params = [[NSMutableDictionary alloc] init];
+    [params setValue:[UserDefault stringForKey:@"user_id"] forKey:@"user_id"];
+    [params setValue:_BeginTimesLabel.text forKey:@"start_time"];
+    [params setValue:_EndTimesLabel.text forKey:@"end_time"];
+    
+    MPWeakSelf(self);
+    [NetworkSingleton networkingGetMethod:params urlName:path success:^(id responseBody)
+     {
+         MPStrongSelf(self);
+         BaseResModel * resModel = [Global toBaseModel:responseBody];
+         
+         if(resModel.code == 0)
+         {
+             //[UserDefault setObject:self.is_open_upload forKey:@"is_open_upload"];
+             [UserDefault synchronize];
+             
+             //[self.tableView reloadData];
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+         else
+         {
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+     }
+                                  failure:^(NSString *error)
+     {
+         
+         [Global alertMessageEx:error title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+     }];
+}
+
+
+-(void)unitMonthLogin
+{
+    currentUnit = 28;
+    [_DayBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
+    [_WeekBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
+    [_MonthBtn setBackgroundImage:[UIImage imageNamed:@"ic_time_item_bk"] forState:UIControlStateNormal];
+    CurrentDate = [DateUtil dateFromStringYMD:[DateUtil stringFromOffDateYMD:[NSDate date] dayCount:-1]];
+    _BeginTimesLabel.text = [DateUtil stringFromOffDateYMD:CurrentDate dayCount:-currentUnit];
+    _EndTimesLabel.text = [DateUtil stringFromDateYMD:CurrentDate];
+    [self GetUserDataList];
+}
+
+-(void)unitWeekLogin
+{
+    currentUnit = 7;
+    [_WeekBtn setBackgroundImage:[UIImage imageNamed:@"ic_time_item_bk"] forState:UIControlStateNormal];
+    [_MonthBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
+    [_DayBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
+    CurrentDate = [DateUtil dateFromStringYMD:[DateUtil stringFromOffDateYMD:[NSDate date] dayCount:-1]];
+    _BeginTimesLabel.text = [DateUtil stringFromOffDateYMD:CurrentDate dayCount:-currentUnit];
+    _EndTimesLabel.text = [DateUtil stringFromDateYMD:CurrentDate];
+    [self GetUserDataList];
+}
+
+-(void)unitDayLogin
+{
+    currentUnit = 1;
+    [_DayBtn setBackgroundImage:[UIImage imageNamed:@"ic_time_item_bk"] forState:UIControlStateNormal];
+    [_WeekBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
+    [_MonthBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
+    CurrentDate = [DateUtil dateFromStringYMD:[DateUtil stringFromOffDateYMD:[NSDate date] dayCount:-1]];
+    _BeginTimesLabel.text = [DateUtil stringFromOffDateYMD:CurrentDate dayCount:-currentUnit];
+    _EndTimesLabel.text = [DateUtil stringFromDateYMD:CurrentDate];
+    [self GetUserDataList];
+}
+
+-(void)drawHistoryRecordLine
+{
+    
+    /*     Create object        */
+    historyRecordLineChart = [[JHLineChart alloc] initWithFrame:CGRectMake(0, 60, SCREEN_WIDTH-20, SCREEN_HEIGHT-112-64-40-40-20) andLineChartType:JHChartLineEveryValueForEveryX];
+    
+    /* The scale value of the X axis can be passed into the NSString or NSNumber type and the data structure changes with the change of the line chart type. The details look at the document or other quadrant X axis data source sample.*/
+    
+    //co2LineChart.xLineDataArr = @[@"10:00",@"11:21",@"12:32",@"13:33",@"14:43",@"15:33",@"16:11",@"17:21"];
+    
+    /* The different types of the broken line chart, according to the quadrant division, different quadrant correspond to different X axis scale data source and different value data source. */
+    
+    historyRecordLineChart.lineChartQuadrantType = JHLineChartQuadrantTypeFirstQuardrant;
+    
+    historyRecordLineChart.lineWidth = 3.0;
+    historyRecordLineChart.valueArr = [NSMutableArray array];
+    NSMutableArray * valueTeampArr = [[NSMutableArray alloc] init];
+    //for (int i = 0; i < modelArray.count; i++)
+    for (int i = 0; i < 10; i++)
+    {
+        //LiveDataModel * model = [modelArray objectAtIndex:i];
+        
+        [valueTeampArr addObject:[NSString stringWithFormat:@"%d",i*(rand()%10)]];
+        [historyRecordLineChart.xLineDataArr addObject:[NSString stringWithFormat:@"%d",i]];
+    }
+    
+    //NSMutableArray * valueTeampArr = [[NSMutableArray alloc] init];
+    //for (int i = 0; i < 8; i++)
+    //{
+    //    [valueTeampArr addObject:@"3000"];
+    //    [co2LineChart.xLineDataArr addObject:[NSString stringWithFormat:@"%d",i]];
+    //}
+    
+    [historyRecordLineChart.valueArr addObject:valueTeampArr];
+    
+    [historyRecordLineChart updateYScale];
+    
+    /*  ������������������������������*/
+    historyRecordLineChart.showYLevelLine = YES;
+    /*         *  whether this chart shows leading lines for value point or not,default is YES  ������������������������������*/
+    historyRecordLineChart.showValueLeadingLine = NO;
+    //historyRecordLineChart.showYLine = NO;
+    historyRecordLineChart.yLineDataArr  = @[@"10",@"20",@"30",@"40",@"50",@"60",@"70",@"80",@"90",@"100"];//[NSMutableArray array];
+    // ������������
+    /* Line Chart colors ������������ */
+    historyRecordLineChart.valueLineColorArr =@[RgbColor(143, 246, 218)];
+    /* Colors for every line chart ������������������*/
+    historyRecordLineChart.pointColorArr = @[RgbColor(36, 209, 215)];
+    
+    
+    /* color for XY axis XY������������������*/
+    historyRecordLineChart.xAndYLineColor = RgbColor(0, 146, 252);
+    /* XY axis scale color XY������������������������*/
+    historyRecordLineChart.xAndYNumberColor = RgbColor(0, 146, 252);
+    /* Dotted line color of the coordinate point */
+    historyRecordLineChart.positionLineColorArr = @[RgbColor(0, 146, 252)];
+    /*  ������������������������*/
+    historyRecordLineChart.pointNumberColorArr = @[[UIColor orangeColor]];
+    /*        Set whether to fill the content, the default is False   ������������������������������      */
+    historyRecordLineChart.contentFill = NO;
+    /*        Set whether the curve path         */
+    historyRecordLineChart.pathCurve = YES;
+    /*        Set fill color array      ���������������������������������    */
+    historyRecordLineChart.contentFillColorArr = @[[UIColor orangeColor]];
+    
+    [self.view addSubview:historyRecordLineChart];
+    /*       Start animation        */
+    [historyRecordLineChart showAnimation];
+    
+    //GloriaLabel * timeTips = [[GloriaLabel alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-200)/2, 215+150, 200, 30)];
+    //[timeTips setText:@"������(���)"];
+    //timeTips.textColor = RgbColor(171, 172, 173);
+    //timeTips.textAlignment = UITextAlignmentCenter;
+    //timeTips.font = [UIFont boldSystemFontOfSize:14];
+    //[self.view addSubview:timeTips];
+    
+}
+
+-(void) reDrawLine
+{
+    if( modelArray.count == 10 )
+    {
+        [historyRecordLineChart.xLineDataArr removeAllObjects];
+        [historyRecordLineChart.valueArr removeAllObjects];
+    }
+    
+    for (int i = 0; i < modelArray.count; i++)
+    {
+        //LiveDataModel * model = [modelArray objectAtIndex:i];
+        
+        //[historyRecordLineChart.valueArr addObject:model.x5];
+        [historyRecordLineChart.xLineDataArr addObject:[NSString stringWithFormat:@"%d",i]];
+    }
+    
+    /*Start animation*/
+    [historyRecordLineChart  showAnimation];
 }
 
 -(void)backAticon
@@ -44,6 +378,7 @@
     // Dispose of any resources that can be recreated.
 }
 
+
 /*
 #pragma mark - Navigation
 
diff --git a/pregnancy_guard/BaseProject/Controller/Mine/MusicSetPage.m b/pregnancy_guard/BaseProject/Controller/Mine/MusicSetPage.m
index a8273f7..fb7f546 100644
--- a/pregnancy_guard/BaseProject/Controller/Mine/MusicSetPage.m
+++ b/pregnancy_guard/BaseProject/Controller/Mine/MusicSetPage.m
@@ -9,9 +9,18 @@
 #import "MusicSetPage.h"
 #import "MusicPlayCell.h"
 #import "HotelAccount.h"
+#import "CSAudioManager.h"
+#import "NetworkSingleton.h"
+
+#define kPlayID @"ID001"
+#define kPlayID2 @"ID002"
 
 @interface MusicSetPage ()<UITableViewDelegate,UITableViewDataSource,musicPlayDelegate>
-
+{
+    
+}
+@property (nonatomic,strong) NSData *mp3Data;
+@property (nonatomic,strong) CSAudioManager *csManager;
 @property(nonatomic,strong) UITableView * tableView;
 @property (nonatomic, strong) NSMutableArray *modelArray;
 @end
@@ -44,6 +53,48 @@
 {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
+    self.navigationItem.title = @"������������";
+    [self setNavigationLeft:@"������" sel:@selector(backAction)];
+
+    self.csManager = [CSAudioManager defaultManager];
+    self.mp3Data = nil;
+    
+    MPWeakSelf(self);
+    [self.csManager setBlockPlayerStartPlay:^{
+        NSLog(@"���������-������������������");
+        [weakself.tableView reloadData];
+    }];
+    
+    [self.csManager setBlockPlayerStopPlay:^{
+        NSLog(@"���������-������������������");
+        [weakself.tableView reloadData];
+    }];
+    
+    [self.csManager setBlockPlayerDidFinishPlaying:^{
+        NSLog(@"���������-���������������������");
+        //[weakself.tableView reloadData];
+    }];
+
+    
+    //������������������������������������������CSAudioManager.h ���������
+    //[self.csManager playSoundWithSoundName:@"sms-received1" PlayID:kPlayID2];
+    
+    
+    self.modelArray = [[NSMutableArray alloc] init];
+    for( int i =0; i<10;i++)
+    {
+        HotelAccount * model = [[HotelAccount alloc] init];
+        [self.modelArray addObject:model];
+    }
+    
+    self.tableView.hidden = NO;
+    [self.tableView reloadData];
+}
+
+-(void)backAction
+{
+    [self dismissViewControllerAnimated:YES completion:nil];
+    //[self.navigationController popViewControllerAnimated:YES];
 }
 
 - (void)didReceiveMemoryWarning
@@ -76,7 +127,20 @@
         cell = [[MusicPlayCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
     }
     
+    cell.delegate = self;
+    
     HotelAccount * model = [self.modelArray objectAtIndex:indexPath.row];
+    
+    NSInteger selIndex = [[UserDefault stringForKey:@"video"] integerValue];
+    if( selIndex == indexPath.row )
+    {
+        model.setStatus = 1;
+    }
+    
+    model.indexRow = indexPath.row;
+    model.musicName = @"music.mp3";
+    model._id = [NSString stringWithFormat:@"judqiowu%ld",indexPath.row];
+    model.xuhaoIndex = [NSString stringWithFormat:@"%02ld",indexPath.row+1];
     [cell setItemView:model];
     
     return cell;
@@ -101,9 +165,108 @@
 
 - (void)musicPlaySection:(HotelAccount*)model
 {
+    if ( model.cmd == 1 )
+    {
+        if( model.playStatus == 1 )
+        {
+            // ���������������������������
+            if( self.mp3Data != nil )
+            {
+                //������������
+                [self.csManager stopMusicWithPlayID:kPlayID];
+                [self.csManager disposeSoundWithPlayID:kPlayID];
+            }
+            
+            // ���������������������������
+            for( NSUInteger i = 0; i < self.modelArray.count;i++)
+            {
+                HotelAccount * tempModel = [self.modelArray objectAtIndex:i];
+                if( [tempModel._id isEqualToString:model._id] )
+                    continue;
+                
+                tempModel.playStatus = 0;
+            }
+            
+            NSString *mp3Path = [[NSBundle mainBundle] pathForResource:model.musicName ofType:nil];
+            NSLog(@"mp3Path : %@",mp3Path);
+            self.mp3Data = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:mp3Path]];
     
+            //������������
+            [self.csManager playingMusicWithData:self.mp3Data playID:kPlayID];
+        }
+        else if( model.playStatus == 2 )
+        {
+            //������������
+            [self.csManager stopMusicWithPlayID:kPlayID];
+        }
+    }
+    else if( model.cmd == 2 )
+    {
+        if( model.setStatus == 1 )
+        {
+            //������������
+            // ���������������������
+            for( NSUInteger i = 0; i < self.modelArray.count;i++)
+            {
+                HotelAccount * tempModel = [self.modelArray objectAtIndex:i];
+                if( [tempModel._id isEqualToString:model._id] )
+                    continue;
+                
+                tempModel.setStatus = 0;
+            }
+            
+            // ������������������
+            [self update_video:model];
+
+        }
+        else if( model.setStatus == 2 )
+        {
+            //������������
+            [self update_video:model];
+        }
+    }
 }
 
+
+-(void)update_video:(HotelAccount *)model
+{
+    //[UserDefault stringForKey:@"user_id"]
+    NSString *path = [[NSString alloc] initWithFormat:UPDATE_USERINFO];
+    
+    NSMutableDictionary *param = [[NSMutableDictionary alloc] init];
+    
+    //['refresh_frequency', 'video', 'is_open_upload']
+    [param setValue:[UserDefault stringForKey:@"user_id"] forKey:@"user_id"];
+    [param setValue:@"video" forKey:@"field"]; // 1 ������ 0 ������
+    [param setValue:[NSString stringWithFormat:@"%ld",model.indexRow] forKey:@"value"];
+    
+    MPWeakSelf(self);
+    [NetworkSingleton networkingGetMethod:param urlName:path success:^(id responseBody)
+     {
+         MPStrongSelf(self);
+         BaseResModel * resModel = [Global toBaseModel:responseBody];
+         
+         if(resModel.code == 0)
+         {
+             [UserDefault setObject:[NSString stringWithFormat:@"%ld",model.indexRow] forKey:@"video"];
+             [UserDefault synchronize];
+             
+             [self.tableView reloadData];
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+         else
+         {
+             [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+         }
+     }
+                                  failure:^(NSString *error)
+     {
+         
+         [Global alertMessageEx:error title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self];
+     }];
+}
+
+
 /*
 #pragma mark - Navigation
 
diff --git a/pregnancy_guard/BaseProject/Controller/Mine/RadiaDetectionPage.m b/pregnancy_guard/BaseProject/Controller/Mine/RadiaDetectionPage.m
deleted file mode 100644
index b8f6dd8..0000000
--- a/pregnancy_guard/BaseProject/Controller/Mine/RadiaDetectionPage.m
+++ /dev/null
@@ -1,213 +0,0 @@
-//
-//  RadiaDetectionPage.m
-//  pregnancy_guard
-//
-//  Created by WindShan on 2017/7/5.
-//  Copyright �� 2017��� WindShan. All rights reserved.
-//
-
-#import "RadiaDetectionPage.h"
-#import "ASValueTrackingSlider.h"
-
-#import "ZZCircleProgress.h"
-
-@interface RadiaDetectionPage ()<ASValueTrackingSliderDelegate,ASValueTrackingSliderDataSource>
-{
-    ZZCircleProgress *circle3;
-    CGFloat gaugeValue;
-    CGFloat gaugeAngle;
-    UIImageView * ic_pointer;
-    CGFloat maxNum;
-    CGFloat minNum;
-    
-    CGFloat maxAngle;
-    CGFloat minAngle;
-    CGFloat angleperValue;
-}
-@end
-
-
-@implementation RadiaDetectionPage
-
-#pragma mark - ASValueTrackingSliderDelegate
-- (NSString *)slider:(ASValueTrackingSlider *)slider stringForValue:(float)value
-{
-    NSString * valueStr = [NSString stringWithFormat:@"%d",(int)value];
-    //self._wenDuStr = valueStr;
-    
-    LOG_INFO(@"���������������������%@���",valueStr);
-    
-    //hotelSelModel.ad_speed = (int)value;
-    circle3.progress = [valueStr floatValue]/100;
-    
-    [self setGaugeValue:slider.value animation:NO];
-    
-    return valueStr;
-}
-
-- (void)sliderWillDisplayPopUpView:(ASValueTrackingSlider *)slider{
-    
-}
-
-- (void)sliderDidHidePopUpView:(ASValueTrackingSlider *)slider{
-    
-}
-
-#define MAXOFFSETANGLE 152.0f
-#define MAXVALUE       100.0f
-
-- (void)viewDidLoad {
-    [super viewDidLoad];
-    
-    self.title = @"������������";
-    
-    gaugeValue = 0.0f;
-    gaugeAngle = -MAXOFFSETANGLE;
-    maxNum = MAXVALUE;
-    minNum = 0.0f;
-    minAngle = -MAXOFFSETANGLE;
-    maxAngle = MAXOFFSETANGLE;
-    angleperValue = (maxAngle - minAngle)/(maxNum - minNum);
-    // Do any additional setup after loading the view.
-    
-    ASValueTrackingSlider * _trackingSlider = [[ASValueTrackingSlider alloc]initWithFrame:CGRectMake(10, 40, SCREEN_WIDTH-20, 40)];
-    
-    _trackingSlider.delegate = self;
-    _trackingSlider.dataSource = self;
-    _trackingSlider.popUpViewCornerRadius = 5.0;
-    [_trackingSlider setMaxFractionDigitsDisplayed:0];
-    _trackingSlider.popUpViewColor = kUIColorFromRGB(0x00b744);
-    _trackingSlider.font = [UIFont fontWithName:@"GillSans-Bold" size:12];
-    _trackingSlider.textColor = [UIColor whiteColor];
-    _trackingSlider.maximumValue = 100;
-    _trackingSlider.minimumValue = 0;
-    //_trackingSlider.formatStr = @"%@���";
-    //[_trackingSlider setValue: [__wenDuStr intValue]];
-    [_trackingSlider showPopUpView];
-    [self.view addSubview:_trackingSlider];
-    
-    
-    UIImageView * ic_zhuanpan_bk = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-306)/2, 64, 306, 292)];
-    ic_zhuanpan_bk.image = [UIImage imageNamed:@"ic_zhuanpan_bk"];
-    [self.view addSubview:ic_zhuanpan_bk];
-    
-    //������������������������������������������������������������������������
-    circle3 = [[ZZCircleProgress alloc] initWithFrame:CGRectMake((ic_zhuanpan_bk.frame.size.width-180)/2-2, 60, 182, 182) pathBackColor:RgbColor(239, 215, 216) pathFillColor:RgbColor(251,169, 171)  startAngle:-235 strokeWidth:24];
-    circle3.reduceValue = 72;
-    circle3.increaseFromLast = YES;
-    circle3.pointImage = [UIImage imageNamed:@"test_point"];
-    circle3.progress = 0;
-    circle3.showProgressText = NO;
-    [ic_zhuanpan_bk addSubview:circle3];
-    [_trackingSlider setValue:circle3.progress*100];
-    
-    ic_pointer = [[UIImageView alloc] initWithFrame:CGRectMake((ic_zhuanpan_bk.frame.size.width-50)/2, 91, 50, 111)];
-    ic_pointer.image = [UIImage imageNamed:@"ic_pointer"];
-    
-    //������������
-    ic_pointer.layer.anchorPoint = CGPointMake(0.5, 0.78);
-    //ic_pointer.center = CGPointMake((ic_zhuanpan_bk.frame.size.width-50)/2, 64);
-    //ic_pointer.transform = CGAffineTransformMakeScale(1, 1);
-    //���������������0������
-    ic_pointer.layer.transform = CATransform3DMakeRotation([self transToRadian:-MAXOFFSETANGLE], 0, 0, 1);
-    [ic_zhuanpan_bk addSubview:ic_pointer];
-    
-}
-
-/*
- * parseToAngle ���������������������������������������
- * @val CGFloat ���������������������
- */
--(CGFloat) parseToAngle:(CGFloat) val
-{
-    //���������������
-    if(val<minNum)
-    {
-        return minNum;
-    }
-    else if(val>maxNum)
-    {
-        return maxNum;
-    }
-    CGFloat temp =(val-gaugeValue)*angleperValue;
-    return temp;
-}
-
-
-/*
- * setGaugeValue ���������������������
- * @value CGFloat ������������������
- * @isAnim BOOL   ������������������
- */
--(void)setGaugeValue:(CGFloat)value animation:(BOOL)isAnim
-{
-    CGFloat tempAngle = [self parseToAngle:value];
-    gaugeValue = value;
-    //���������������������������������
-    if(isAnim){
-        [self pointToAngle:tempAngle Duration:0.6f];
-    }else
-    {
-        [self pointToAngle:tempAngle Duration:0.0f];
-    }
-}
-
-/*
- * pointToAngle ���������������
- * @angel CGFloat ������
- * @duration CGFloat ������������������
- */
-- (void) pointToAngle:(CGFloat) angle Duration:(CGFloat) duration
-{
-    CAKeyframeAnimation *anim=[CAKeyframeAnimation animationWithKeyPath:@"transform"];
-    NSMutableArray *values=[NSMutableArray array];
-    anim.duration = duration;
-    anim.autoreverses = NO;
-    anim.fillMode = kCAFillModeForwards;
-    anim.removedOnCompletion= NO;
-    
-    CGFloat distance = angle/10;
-    //������������������������������������ CABaseAnimation ���toValue���������������������������������������������180������������������������
-    int i = 1;
-    for(;i<=10;i++)
-    {
-        [values addObject:[NSValue valueWithCATransform3D:CATransform3DRotate(CATransform3DIdentity, [self transToRadian:(gaugeAngle+distance*i)], 0, 0, 1)]];
-    }
-    //������������������
-    [values addObject:[NSValue valueWithCATransform3D:CATransform3DRotate(CATransform3DIdentity, [self transToRadian:(gaugeAngle+distance*(i))], 0, 0, 1)]];
-    [values addObject:[NSValue valueWithCATransform3D:CATransform3DRotate(CATransform3DIdentity, [self transToRadian:(gaugeAngle+distance*(i-2))], 0, 0, 1)]];
-    [values addObject:[NSValue valueWithCATransform3D:CATransform3DRotate(CATransform3DIdentity, [self transToRadian:(gaugeAngle+distance*(i-1))], 0, 0, 1)]];
-    
-    anim.values=values; ;
-    [ic_pointer.layer addAnimation:anim forKey:@"cubeIn"];
-    
-    gaugeAngle = gaugeAngle+angle;
-    
-}
-
-/*
- * parseToX ���������������
- * @angel CGFloat ������
- */
--(CGFloat)transToRadian:(CGFloat)angel
-{
-    return angel*M_PI/180;
-}
-
-
-- (void)didReceiveMemoryWarning {
-    [super didReceiveMemoryWarning];
-    // Dispose of any resources that can be recreated.
-}
-
-/*
-#pragma mark - Navigation
-
-// In a storyboard-based application, you will often want to do a little preparation before navigation
-- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
-    // Get the new view controller using [segue destinationViewController].
-    // Pass the selected object to the new view controller.
-}
-*/
-
-@end
diff --git a/pregnancy_guard/BaseProject/Controller/Mine/UpdateHotelAccountPage.m b/pregnancy_guard/BaseProject/Controller/Mine/UpdateHotelAccountPage.m
index 9026bec..496c680 100644
--- a/pregnancy_guard/BaseProject/Controller/Mine/UpdateHotelAccountPage.m
+++ b/pregnancy_guard/BaseProject/Controller/Mine/UpdateHotelAccountPage.m
@@ -146,7 +146,7 @@
                 [cell.contentView addSubview:nicknameTextField];
             }
             
-            nicknameTextField.text = self.model.nickname;
+            //nicknameTextField.text = self.model.nickname;
         }
             break;
         case 1:
diff --git a/pregnancy_guard/BaseProject/Core/Network/NetworkSingleton.m b/pregnancy_guard/BaseProject/Core/Network/NetworkSingleton.m
index 40975ce..011b124 100755
--- a/pregnancy_guard/BaseProject/Core/Network/NetworkSingleton.m
+++ b/pregnancy_guard/BaseProject/Core/Network/NetworkSingleton.m
@@ -13,7 +13,7 @@
 #ifndef DEBUG_Moral
 static NSString * const AFAppDotNetAPIBaseURLString = @"https://api.7drlb.com/";
 #else
-static NSString * const AFAppDotNetAPIBaseURLString = @"http://121.40.92.176:5000/";
+static NSString * const AFAppDotNetAPIBaseURLString = @"http://yfsapi.7drlb.com/yfs/";
 #endif
 
 @implementation NetworkSingleton
diff --git a/pregnancy_guard/BaseProject/Define/Defines.h b/pregnancy_guard/BaseProject/Define/Defines.h
index cd0d6f5..63ca0ea 100644
--- a/pregnancy_guard/BaseProject/Define/Defines.h
+++ b/pregnancy_guard/BaseProject/Define/Defines.h
@@ -35,6 +35,8 @@
 #define IsRetain   ([[UIScreen mainScreen] scale] >= 2.0)
 #define SCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height
 #define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width
+#define kScreenBounds [UIScreen mainScreen].bounds
+
 
 #define ScreenMaxLength (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
 #define ScreenMinLength (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))
@@ -185,5 +187,14 @@
 #define DEVICE_CONTROL_COMMAND_WATERTIME	 9  // ���������������������������
 #define DEVICE_CONTROL_COMMAND_VENTILATIONTIME	     10  // ������������������������
 
+#define BLE_DEVICE_UUID       @"0003CDD0-0000-1000-8000-00805F9B0131"
+#define LISTON_DEVICE_UUID    @"0003CDD1-0000-1000-8000-00805F9B0131" // ������
+#define WRITE_DEVICE_UUID     @"0003CDD2-0000-1000-8000-00805F9B0131" // ���������
 
+#define FUSHE_MIN_VALUE      0
+#define FUSHE_SAFE_VALUE	 130 // ������
+#define FUSHE_GOOD_VALUE	 260 // ������
+#define FUSHE_CHA_VALUE	     390 // ������
+#define FUSHE_DANGER_VALUE	 520 // ������
+#define FUSHE_MAX_VALUE	     650 // ������
 
diff --git a/pregnancy_guard/BaseProject/Define/URLDefines.h b/pregnancy_guard/BaseProject/Define/URLDefines.h
index fd4fa94..6d6b3e1 100644
--- a/pregnancy_guard/BaseProject/Define/URLDefines.h
+++ b/pregnancy_guard/BaseProject/Define/URLDefines.h
@@ -24,45 +24,17 @@
 #endif
 
 
-// Moral URL
-#define Moral_Shop_Url     @"http://www.7drlb.cn/mobile/passport/inapplogin/id/%@/token/%@/alarmType/%ld"
-
-#define Moral_Device_Url     @"device/%@/key/%@/flr/%@/fun/%@"
-
-//GET /device/:mac/get_status
-#define Moral_GetStatus_Url  @"device/%@/get_status"
-//GET /device/:mac/get_live_data
-#define Moral_GetLiveData_Url  @"device/%@/get_live_data"
-
-// post ������������������������
-#define Moral_UpdateStatus_Url @"device/%@/update_status"
-// post ������������������
-#define Moral_AddDevice_Url @"user/add_device"
-// post ������������������
-#define Moral_UpdateDeviceName_Url @"user/update_devicename"
 // post ������
 #define Moral_Unbind_Url @"user/unbind"
-
-// post  ��������� userID
-#define Moral_GetDeviceInfo_Url @"user/get_device_info"
-
-// post ������������������
-//var stt_h = this.body.stt_h;
-//var stt_m = this.body.stt_m;
-//var end_h = this.body.end_h;
-//var end_m = this.body.end_m;���
-#define Moral_UpdateTimes_Url @"/device/%@/flr/%d/update_times"
-
-// vegetable/get_vegetable
-// get  ������������������������
-#define Moral_GetVegettable_Url @"vegetable/get_vegetable"
-
-///device/:mac/flr/:flr/update_status
-#define Moral_UpdateStatus_Url @"device/%@/flr/%d/update_status"
-
-#define Moral_GetInitData_Url @"device/%@/get_init_data"
-
-
+// ���������
+#define  USER_REGISTER @"?service=User.Register" //������������
+#define  USER_LOGIN @"?service=User.Login" //������������
+#define  USER_GETINFO @"?service=User.GetUserInfo" //������������������
+#define  SEND_REGISTER_SMS  @"?service=Send.Register_sms" //������������
+#define  USER_RESETPWD  @"?service=User.ResetPwd" //������������
+#define  UPDATE_USERINFO  @"?service=User.UpdateUserInfo" //������������������
+#define  GET_DATALIST  @"?service=Data.GetUserDataList" //������������
+#define  DATA_UPLOAD  @"?service=Data.Upload" //������������
 
 // ������������
 #define  REQUEST_CODE @"user/request_code" //���������������
@@ -106,10 +78,4 @@
 #define  GET_STRANER_LIST @"strainer_log/%@/get_list" //���������������������������������
 #define  UPDATE_STRANER @"strainer_log/%@/change" //������������������������
 
-//"/strainer_log/" + id + "change"
-//"/strainer_log/" + MainApp.userId + "/get_list"
-//"/strainer_log/" + MainApp.userId + "/get_count"
-
-//"/waiter/" + MainApp.userId + "/get_user_info"
-//public final static String CREATE = URL_HTTP  + "/spare/create";//������������������
 
diff --git a/pregnancy_guard/BaseProject/Global/Global.h b/pregnancy_guard/BaseProject/Global/Global.h
index b659907..b098d74 100644
--- a/pregnancy_guard/BaseProject/Global/Global.h
+++ b/pregnancy_guard/BaseProject/Global/Global.h
@@ -45,5 +45,7 @@
 extern NSString * _curDeviceName;
 extern Hotel * _curHotel_Id;
 extern Room * _sel_room;
+extern BOOL  _bConnectSuccess;
+extern NSString * _curReceiveHexValue;
 extern int  _curPage;
 @end
diff --git a/pregnancy_guard/BaseProject/Global/Global.m b/pregnancy_guard/BaseProject/Global/Global.m
index 224db9f..c9c0795 100644
--- a/pregnancy_guard/BaseProject/Global/Global.m
+++ b/pregnancy_guard/BaseProject/Global/Global.m
@@ -17,6 +17,8 @@
 Hotel * _curHotel_Id;
 Room * _sel_room;
 int  _curPage;
+BOOL  _bConnectSuccess;
+NSString * _curReceiveHexValue;
 
 + (Global *)global
 {
@@ -181,20 +183,29 @@
     if(responseBody != nil)
     {
         BaseResModel *model = [[BaseResModel alloc] init];
+        NSMutableDictionary * data = [responseBody objectForKey:@"data"];
         
-        if ([[responseBody allKeys] containsObject:@"code"])
+        if( data.count == 0 )
         {
-            model.code = [[responseBody objectForKey:@"code"] intValue];
+            model.desc = [responseBody objectForKey:@"msg"];
+            model.code = -1;
         }
         else
         {
-            model.code = -1;
+            if ([[data allKeys] containsObject:@"code"])
+            {
+                model.code = [[data objectForKey:@"code"] intValue];
+            }
+            else
+            {
+                model.code = -1;
+            }
+            
+            model.desc = [data objectForKey:@"msg"];
+            model.content = [data objectForKey:@"info"];           
         }
         
-        model.desc = [responseBody objectForKey:@"desc"];
-        model.content = [responseBody objectForKey:@"content"];
-        
-        return model;
+         return model;
     }
     else
     {
diff --git a/pregnancy_guard/BaseProject/Info.plist b/pregnancy_guard/BaseProject/Info.plist
index c1018ad..ba73789 100644
--- a/pregnancy_guard/BaseProject/Info.plist
+++ b/pregnancy_guard/BaseProject/Info.plist
@@ -7,7 +7,7 @@
 	<key>CFBundleDevelopmentRegion</key>
 	<string>en</string>
 	<key>CFBundleDisplayName</key>
-	<string>���������������</string>
+	<string>���������</string>
 	<key>CFBundleExecutable</key>
 	<string>$(EXECUTABLE_NAME)</string>
 	<key>CFBundleIdentifier</key>
@@ -30,13 +30,13 @@
 		<true/>
 	</dict>
 	<key>NSCameraUsageDescription</key>
-	<string>���������������������������������������</string>
+	<string>���������������������������������</string>
 	<key>NSLocationAlwaysUsageDescription</key>
-	<string>���������������������������������������������</string>
+	<string>���������������������������������������</string>
 	<key>NSLocationWhenInUseUsageDescription</key>
-	<string>���������������������������������������������</string>
+	<string>���������������������������������������</string>
 	<key>NSPhotoLibraryUsageDescription</key>
-	<string>���������������������������������������</string>
+	<string>���������������������������������</string>
 	<key>UIRequiredDeviceCapabilities</key>
 	<array>
 		<string>armv7</string>
diff --git a/pregnancy_guard/BaseProject/Model/BaseReqModel.h b/pregnancy_guard/BaseProject/Model/BaseReqModel.h
index ad94a9f..bb86442 100644
--- a/pregnancy_guard/BaseProject/Model/BaseReqModel.h
+++ b/pregnancy_guard/BaseProject/Model/BaseReqModel.h
@@ -10,7 +10,7 @@
 
 @interface BaseReqModel : NSObject
 
-@property(nonatomic, assign) NSNumber    * verison;
+//@property(nonatomic, assign) NSNumber    * verison;
 
 -(NSDictionary*) toDic;
 
diff --git a/pregnancy_guard/BaseProject/Model/BaseReqModel.m b/pregnancy_guard/BaseProject/Model/BaseReqModel.m
index 774adcc..af86c6a 100644
--- a/pregnancy_guard/BaseProject/Model/BaseReqModel.m
+++ b/pregnancy_guard/BaseProject/Model/BaseReqModel.m
@@ -14,7 +14,7 @@
 {
     if( self = [super init] )
     {
-        self.verison = [NSNumber numberWithInt:INTERFACE_VERSION];
+        //self.verison = [NSNumber numberWithInt:INTERFACE_VERSION];
     }
     
     
diff --git a/pregnancy_guard/BaseProject/Model/CommonReqModel.h b/pregnancy_guard/BaseProject/Model/CommonReqModel.h
index e4f58e1..960af40 100644
--- a/pregnancy_guard/BaseProject/Model/CommonReqModel.h
+++ b/pregnancy_guard/BaseProject/Model/CommonReqModel.h
@@ -19,13 +19,12 @@
 @property(nonatomic,strong) NSString * deviceID;
 @property(nonatomic,strong) NSString * name;
 @property(nonatomic,strong) NSString * feedback;
-@property(nonatomic,strong) NSString * tel;
+@property(nonatomic,strong) NSString * phone;
 @property(nonatomic,strong) NSString * code;
 @property(nonatomic,strong) NSString * type;
 @property(nonatomic,strong) NSString * newspassword;
 @property(nonatomic,strong) NSString * day;
 
-@property(nonatomic, strong) NSString* opt;//opt=1���������������������opt=2������������������
 
 
 @end
diff --git a/pregnancy_guard/BaseProject/Model/DataModel.h b/pregnancy_guard/BaseProject/Model/DataModel.h
new file mode 100644
index 0000000..54b8bd5
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Model/DataModel.h
@@ -0,0 +1,16 @@
+//
+//  DataModel.h
+//  pregnancy_guard
+//
+//  Created by WindShan on 2017/8/8.
+//  Copyright �� 2017��� WindShan. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface DataModel : NSObject
+
+@property(nonatomic, strong) NSString * time;
+@property(nonatomic, strong) NSString * value;
+
+@end
diff --git a/pregnancy_guard/BaseProject/Model/DataModel.m b/pregnancy_guard/BaseProject/Model/DataModel.m
new file mode 100644
index 0000000..fc320ed
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Model/DataModel.m
@@ -0,0 +1,13 @@
+//
+//  DataModel.m
+//  pregnancy_guard
+//
+//  Created by WindShan on 2017/8/8.
+//  Copyright �� 2017��� WindShan. All rights reserved.
+//
+
+#import "DataModel.h"
+
+@implementation DataModel
+
+@end
diff --git a/pregnancy_guard/BaseProject/Model/HotelAccount.h b/pregnancy_guard/BaseProject/Model/HotelAccount.h
index 11fd9a8..de28283 100644
--- a/pregnancy_guard/BaseProject/Model/HotelAccount.h
+++ b/pregnancy_guard/BaseProject/Model/HotelAccount.h
@@ -14,9 +14,12 @@
 @property(nonatomic, strong) NSString * _id;
 @property(nonatomic, strong) NSString * user_id;
 @property(nonatomic, strong) NSString * username;
-@property(nonatomic, strong) NSString * nickname;
-@property(nonatomic, strong) Hotel * hotel_id;
+@property(nonatomic, strong) NSString * musicName;
+@property(nonatomic, strong) NSString * xuhaoIndex;
 
-@property(nonatomic, assign) int  cmd; // 1 ������ 2 ������
+@property(nonatomic, assign) int  cmd; // 1 ������ 2 ������������
+@property(nonatomic, assign) int  playStatus; // ������0 ������������������ 1 ������������ 2 ������������
+@property(nonatomic, assign) int  setStatus; // ������0 ������������������ 1 ������������ 2 ������������
+@property(nonatomic, assign) NSInteger  indexRow; // ������������
 
 @end
diff --git a/pregnancy_guard/BaseProject/Model/UploadModel.h b/pregnancy_guard/BaseProject/Model/UploadModel.h
new file mode 100644
index 0000000..117056f
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Model/UploadModel.h
@@ -0,0 +1,21 @@
+//
+//  UploadModel.h
+//  pregnancy_guard
+//
+//  Created by WindShan on 2017/8/8.
+//  Copyright �� 2017��� WindShan. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "BaseReqModel.h"
+
+@interface UploadModel : BaseReqModel
+
+@property(nonatomic, strong) NSMutableArray * modelArray; // DataModel
+@property(nonatomic, strong) NSString * address;
+@property(nonatomic, strong) NSString * lat;//"lat": 31.430284,
+@property(nonatomic, strong) NSString * lon;//"lon": 120.988931,
+@property(nonatomic, strong) NSString * userid;//"userid": "597bf6a1a0e6d23f5c3c9869"
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/Model/UploadModel.m b/pregnancy_guard/BaseProject/Model/UploadModel.m
new file mode 100644
index 0000000..05c1902
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Model/UploadModel.m
@@ -0,0 +1,13 @@
+//
+//  UploadModel.m
+//  pregnancy_guard
+//
+//  Created by WindShan on 2017/8/8.
+//  Copyright �� 2017��� WindShan. All rights reserved.
+//
+
+#import "UploadModel.h"
+
+@implementation UploadModel
+
+@end
diff --git a/pregnancy_guard/BaseProject/Model/UserModel.h b/pregnancy_guard/BaseProject/Model/UserModel.h
index 5d715ce..d9543c4 100644
--- a/pregnancy_guard/BaseProject/Model/UserModel.h
+++ b/pregnancy_guard/BaseProject/Model/UserModel.h
@@ -10,9 +10,12 @@
 
 @interface UserModel : NSObject
 @property(nonatomic, strong) NSString * _id;
-@property(nonatomic, strong) NSString * username;
 @property(nonatomic, strong) NSString * password;
 @property(nonatomic, strong) NSString * nickname;
-@property(nonatomic, assign) int opt;//opt=1���������������������opt=2������������������
-@property(nonatomic, strong) NSString * hotel_id;
+@property(nonatomic, strong) NSString * is_lock;
+@property(nonatomic, strong) NSString * is_open_upload;//������������������
+@property(nonatomic, strong) NSString * phone;//������������
+@property(nonatomic, strong) NSString * refresh_frequency;//������������
+@property(nonatomic, strong) NSString * video;
+
 @end
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png
index 40361f8..f34b20a 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
index f51ccd9..83d6862 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
index a5982f2..46e5944 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
index b62681a..c9ac5f0 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
index 84fcab3..05ccc0a 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57.png
index 1ec0ce1..f014cb0 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57@2x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57@2x.png
index 2d6b97d..ca8605a 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon57x57@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
index 816690c..d1bd9ed 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
index 92b57be..c1c9de7 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/icon.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/icon.png
new file mode 100755
index 0000000..36e9636
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/AppIcon.appiconset/icon.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700-568h@2x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700-568h@2x.png
index 9145695..1da3641 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700-568h@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700-568h@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700@2x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700@2x.png
index 03ebca7..268262c 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-667h@2x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-667h@2x.png
index cb33a32..653c519 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-667h@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-667h@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-Portrait-736h@3x.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-Portrait-736h@3x.png
index ae20d45..0044f84 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-Portrait-736h@3x.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-Portrait-736h@3x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage.png b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage.png
index 9afa4ca..e59a4e0 100755
--- a/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage.png
+++ b/pregnancy_guard/BaseProject/Resources/Assets.xcassets/LaunchImage.launchimage/LaunchImage.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/Config/TabBarPages.plist b/pregnancy_guard/BaseProject/Resources/Config/TabBarPages.plist
index 655af8a..ae689b6 100644
--- a/pregnancy_guard/BaseProject/Resources/Config/TabBarPages.plist
+++ b/pregnancy_guard/BaseProject/Resources/Config/TabBarPages.plist
@@ -4,7 +4,7 @@
 <array>
 	<dict>
 		<key>ClassName</key>
-		<string>MinePage</string>
+		<string>RadiaDetectionPage</string>
 		<key>Title</key>
 		<string>������������</string>
 		<key>Image</key>
diff --git a/pregnancy_guard/BaseProject/Resources/Music/music.mp3 b/pregnancy_guard/BaseProject/Resources/Music/music.mp3
new file mode 100644
index 0000000..e95d219
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/Music/music.mp3
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_long_bk.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_long_bk.png
index 75a5d30..c63851f 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_long_bk.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_long_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_new_pwd_tag.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_new_pwd_tag.png
index 5ad5fcb..689c26d 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_new_pwd_tag.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_new_pwd_tag.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_short_bk.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_short_bk.png
index 3d8e94b..34feb56 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_short_bk.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_short_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_tel_no_tag.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_tel_no_tag.png
index cf86f73..18c3a08 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_tel_no_tag.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/edit_tel_no_tag.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/regist_btn_bk.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/regist_btn_bk.png
index 80dc312..49ad1a4 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/regist_btn_bk.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/regist_btn_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/top_bar_bk.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/top_bar_bk.png
index a3b9723..33dee34 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/top_bar_bk.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/forgetpwd/top_bar_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_bottom_bg.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_bottom_bg.png
deleted file mode 100755
index e06bceb..0000000
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_bottom_bg.png
+++ /dev/null
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_bottom_bg@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_bottom_bg@2x.png
new file mode 100755
index 0000000..9d93b75
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_bottom_bg@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_line.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_line.png
index 6622b1f..439879c 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_line.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_line.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_time_bk.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_time_bk.png
index d884d23..ce504bc 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_time_bk.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/ic_time_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_address.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_address.png
index be210f7..d1690ce 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_address.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_address.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw.png
deleted file mode 100755
index 20b96ae..0000000
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw.png
+++ /dev/null
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw_left@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw_left@2x.png
new file mode 100755
index 0000000..bfed873
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw_left@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw_right@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw_right@2x.png
new file mode 100755
index 0000000..e6a8725
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_arraw_right@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_down_up_arraw.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_down_up_arraw.png
index edb6dda..b06a550 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_down_up_arraw.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_down_up_arraw.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_time.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_time.png
index def61f7..77a3b51 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_time.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/history/icon_time.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_bottom_bk@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_bottom_bk@2x.png
new file mode 100755
index 0000000..e19b01f
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_bottom_bk@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_sel@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_sel@2x.png
index 33ed4b0..f076e5f 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_sel@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_sel@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_unsel@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_unsel@2x.png
index 230af4f..b97b8d0 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_unsel@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_jiance_unsel@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_sel@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_sel@2x.png
index 5ec7aa4..83578cd 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_sel@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_sel@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_unsel@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_unsel@2x.png
index 0ca2de7..b554654 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_unsel@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_set_unsel@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_sel@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_sel@2x.png
index 75475d0..5d94006 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_sel@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_sel@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_unsel@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_unsel@2x.png
index 8b9f070..b43ed45 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_unsel@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/homepage/ic_shop_unsel@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_bk@2x.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_bk@2x.png
index 978b164..b5889d4 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_bk@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_bk@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_name_tag.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_name_tag.png
index 7f1a955..67114dc 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_name_tag.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_name_tag.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_pwd_tag.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_pwd_tag.png
index 11c2252..eac0624 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_pwd_tag.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/edit_pwd_tag.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_bk.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_bk.png
index 94a7b88..0cee33c 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_bk.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_btn_bk.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_btn_bk.png
index dde53c0..931faae 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_btn_bk.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_btn_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_logo.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_logo.png
index 4b76df0..83b8504 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_logo.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/login/login_logo.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/exit_btn.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/exit_btn.png
index 77d4dd9..49ad1a4 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/exit_btn.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/exit_btn.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_data.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_data.png
index 750215a..eba2e98 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_data.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_data.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_police.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_police.png
index 0a8eda6..bb01143 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_police.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_police.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_refresh.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_refresh.png
index 98a042a..f66f245 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_refresh.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_refresh.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_start.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_start.png
index 0223b74..5907e78 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_start.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_start.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_unlike.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_unlike.png
index 615b09d..a1fede2 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_unlike.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/personal/icon_unlike.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_code_tag.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_code_tag.png
index b445ac2..5b75920 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_code_tag.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_code_tag.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_tel_no_tag.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_tel_no_tag.png
index c860ab3..ea788f7 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_tel_no_tag.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/regist/edit_tel_no_tag.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/gif_searching.gif b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/gif_searching.gif
old mode 100644
new mode 100755
index 1826bbb..144cf53
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/gif_searching.gif
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/gif_searching.gif
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_done.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_done.png
old mode 100644
new mode 100755
index d863e52..04056be
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_done.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_done.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_start_btn.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_start_btn.png
index c4d73eb..e3d7bdd 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_start_btn.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_start_btn.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_btn.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_btn.png
index 05ebc4d..1e8694b 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_btn.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_btn.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_tag.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_tag.png
index 595ebac..e3b4129 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_tag.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_search_stop_tag.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_top_bk.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_top_bk.png
index 7a6c8ab..fff20e9 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_top_bk.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/ic_top_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-four.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-four.png
index 88c42a4..c3daf20 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-four.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-four.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-three.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-three.png
index 110b386..d3ac009 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-three.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-three.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-two.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-two.png
index 01a435c..9c73d0a 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-two.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon-two.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_lanya_tag.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_lanya_tag.png
index 7045aea..7bf9496 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_lanya_tag.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_lanya_tag.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_one.png b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_one.png
index 89b188f..b45abbf 100755
--- a/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_one.png
+++ b/pregnancy_guard/BaseProject/Resources/images/istanbul/search/icon_one.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/loginpage/NavigationBar128@2x.png b/pregnancy_guard/BaseProject/Resources/images/loginpage/NavigationBar128@2x.png
new file mode 100755
index 0000000..fbcda47
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/loginpage/NavigationBar128@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/loginpage/NavigationBar64@2x.png b/pregnancy_guard/BaseProject/Resources/images/loginpage/NavigationBar64@2x.png
index a3b9723..33dee34 100755
--- a/pregnancy_guard/BaseProject/Resources/images/loginpage/NavigationBar64@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/loginpage/NavigationBar64@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_anquan_bk.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_anquan_bk.png
new file mode 100755
index 0000000..2867563
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_anquan_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_anquan_tips.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_anquan_tips.png
new file mode 100755
index 0000000..1b0c6cf
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_anquan_tips.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_head_bg.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_head_bg.png
new file mode 100755
index 0000000..3062ba5
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_head_bg.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_line.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_line.png
new file mode 100755
index 0000000..829f6f3
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_line.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_pointer@2x.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_pointer@2x.png
index d27ad1b..4c63b5c 100755
--- a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_pointer@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_pointer@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_radia_bottom_bg.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_radia_bottom_bg.png
new file mode 100755
index 0000000..b494dce
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_radia_bottom_bg.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_weixian_bk.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_weixian_bk.png
new file mode 100755
index 0000000..2ae9aa9
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_weixian_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_weixin_tips.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_weixin_tips.png
new file mode 100755
index 0000000..fbc6d65
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_weixin_tips.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_zhishu_bk.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_zhishu_bk.png
new file mode 100755
index 0000000..303c6e5
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_zhishu_bk.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_zhuanpan_bk@2x.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_zhuanpan_bk@2x.png
index 4f47311..1db9ae2 100755
--- a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_zhuanpan_bk@2x.png
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/ic_zhuanpan_bk@2x.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/icon_anquan.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/icon_anquan.png
new file mode 100755
index 0000000..2c4ebd1
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/icon_anquan.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/icon_weixian.png b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/icon_weixian.png
new file mode 100755
index 0000000..ba6b925
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Resources/images/pregnancy_guard/radiadection/icon_weixian.png
Binary files differ
diff --git a/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m b/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m
index 9a2ac98..687281a 100644
--- a/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m
+++ b/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m
@@ -1252,8 +1252,11 @@
         }
     }];
 
-    if (parameters) {
-        if (![mutableRequest valueForHTTPHeaderField:@"Content-Type"]) {
+    if (parameters)
+    {
+        if (![mutableRequest valueForHTTPHeaderField:@"Content-Type"])
+        {
+            //[mutableRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
             [mutableRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
         }
 
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/MBleService.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/MBleService.h
new file mode 100644
index 0000000..69e5505
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/MBleService.h
@@ -0,0 +1,19 @@
+//
+//  MBleService.h
+//  UsrBleAssistent
+//
+//  Created by USRCN on 15-12-8.
+//  Copyright (c) 2015��� usr.cn. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <CoreBluetooth/CoreBluetooth.h>
+@interface MBleService : NSObject
+
+-(id)initWithName:(NSString *)name Service:(CBService *)service uuid:(CBUUID *)uudi;
+
+@property(nonatomic,retain)NSString* name;
+@property(nonatomic,retain)CBService* service;
+@property(nonatomic,retain)CBUUID* uuid;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/MBleService.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/MBleService.m
new file mode 100644
index 0000000..cb14671
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/MBleService.m
@@ -0,0 +1,20 @@
+//
+//  MBleService.m
+//  UsrBleAssistent
+//
+//  Created by USRCN on 15-12-8.
+//  Copyright (c) 2015��� usr.cn. All rights reserved.
+//
+
+#import "MBleService.h"
+
+@implementation MBleService
+-(id)initWithName:(NSString *)name Service:(CBService *)service uuid:(CBUUID *)uuid{
+    if (self == [super init]) {
+        self.name = name;
+        self.service = service;
+        self.uuid = uuid;
+    }
+    return self;
+}
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/Option.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/Option.h
new file mode 100644
index 0000000..9cd5161
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/Option.h
@@ -0,0 +1,20 @@
+//
+//  Option.h
+//  UsrBleAssistent
+//
+//  Created by USRCN on 15-12-10.
+//  Copyright (c) 2015��� usr.cn. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+typedef NS_ENUM(NSInteger, MMessageType) {
+    PROPERTY_READ = 0,
+    PROPERTY_WRITE = 1,
+    PROPERTY_NOTIFY = 2,
+    PROPERTY_INDICATE=3
+};
+
+
+@interface Option : NSObject
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/Option.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/Option.m
new file mode 100644
index 0000000..895b9a2
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/BLEModel/Option.m
@@ -0,0 +1,16 @@
+//
+//  Option.m
+//  UsrBleAssistent
+//
+//  Created by USRCN on 15-12-10.
+//  Copyright (c) 2015��� usr.cn. All rights reserved.
+//
+
+#import "Option.h"
+
+
+
+
+@implementation Option
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBMoralManager.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBMoralManager.h
new file mode 100644
index 0000000..141e377
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBMoralManager.h
@@ -0,0 +1,212 @@
+
+
+#import <Foundation/Foundation.h>
+#import <CoreBluetooth/CoreBluetooth.h>
+#import "Constants.h"
+#import "ResourceHandler.h"
+#import "Utilities.h"
+
+
+/*!
+ *  @property CBDiscoveryDelegate
+ *
+ *  @discussion The delegate object that will receive events which use for UI updation.
+ *
+ */
+@protocol cbDiscoveryManagerDelegate <NSObject>
+
+/*!
+ *  @method discoveryDidRefresh
+ *
+ *  @discussion			This method invoke after a new peripheral found.
+ */
+- (void) discoveryDidRefresh;
+
+/*!
+ *  @method bluetoothStateUpdatedToState:
+ *
+ *  @discussion	 This will be invoked when the Bluetooth state changes.
+ */
+
+- (void) bluetoothStateUpdatedToState:(BOOL)state;
+@end
+
+@protocol cbCharacteristicManagerDelegate <NSObject>
+
+@optional
+/*!
+ *  @method peripheral:didDiscoverCharacteristicsForService:error:
+ *
+ *  @param peripheral	The peripheral providing this information.
+ *  @param service		The <code>CBService</code> object containing the characteristic(s).
+ *	@param error		If an error occurred, the cause of the failure.
+ *
+ *  @discussion			This method returns the result of a @link discoverCharacteristics:forService: @/link call. If the characteristic(s) were read successfully,
+ *						they can be retrieved via <i>service</i>'s <code>characteristics</code> property.
+ */
+- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error;
+
+/*!
+ *  @method peripheral:didUpdateValueForCharacteristic:error:
+ *
+ *  @param peripheral		The peripheral providing this information.
+ *  @param characteristic	A <code>CBCharacteristic</code> object.
+ *	@param error			If an error occurred, the cause of the failure.
+ *
+ *  @discussion				This method is invoked after a @link readValueForCharacteristic: @/link call, or upon receipt of a notification/indication.
+ */
+- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error;
+
+/*!
+ *  @method peripheral:didWriteValueForCharacteristic:error:
+ *
+ *  @param peripheral		The peripheral providing this information.
+ *  @param characteristic	A <code>CBCharacteristic</code> object.
+ *	@param error			If an error occurred, the cause of the failure.
+ *
+ *  @discussion				This method returns the result of a {@link writeValue:forCharacteristic:type:} call, when the <code>CBCharacteristicWriteWithResponse</code> type is used.
+ */
+- (void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error;
+
+/*!
+ *  @method peripheral:didUpdateNotificationStateForCharacteristic:error:
+ *
+ *  @param peripheral		The peripheral providing this information.
+ *  @param characteristic	A <code>CBCharacteristic</code> object.
+ *	@param error			If an error occurred, the cause of the failure.
+ *
+ *  @discussion				This method returns the result of a @link setNotifyValue:forCharacteristic: @/link call.
+ */
+- (void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error;
+
+/*!
+ *  @method peripheral:didDiscoverDescriptorsForCharacteristic:error:
+ *
+ *  @param peripheral		The peripheral providing this information.
+ *  @param characteristic	A <code>CBCharacteristic</code> object.
+ *	@param error			If an error occurred, the cause of the failure.
+ *
+ *  @discussion				This method returns the result of a @link discoverDescriptorsForCharacteristic: @/link call. If the descriptors were read successfully,
+ *							they can be retrieved via <i>characteristic</i>'s <code>descriptors</code> property.
+ */
+- (void)peripheral:(CBPeripheral *)peripheral didDiscoverDescriptorsForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error;
+
+/*!
+ *  @method peripheral:didUpdateValueForDescriptor:error:
+ *
+ *  @param peripheral		The peripheral providing this information.
+ *  @param descriptor		A <code>CBDescriptor</code> object.
+ *	@param error			If an error occurred, the cause of the failure.
+ *
+ *  @discussion				This method returns the result of a @link readValueForDescriptor: @/link call.
+ */
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForDescriptor:(CBDescriptor *)descriptor error:(NSError *)error;
+
+@end
+
+
+@interface CBMoralManager : NSObject 
+{
+    
+}
+
+@property (strong,nonatomic)  id<cbCharacteristicManagerDelegate> cbCharacteristicDelegate;
+@property (nonatomic, assign) id<cbDiscoveryManagerDelegate>           cbDiscoveryDelegate;
+
+
+/*!
+ *  @property myPeripheral
+ *
+ *  @discussion Current Connected Peripheral.
+ *
+ */
+@property (nonatomic, retain)CBPeripheral		*myPeripheral;
+
+/*!
+ *  @property myService
+ *
+ *  @discussion  The selected Service.
+ *
+ */
+@property (nonatomic, retain)CBService			*myService;
+
+/*!
+ *  @property myCharacteristic
+ *
+ *  @discussion  The selected Characteristic.
+ *
+ */
+@property (nonatomic, retain)CBCharacteristic   *myCharacteristic;
+
+
+/*!
+ *  @property myCharacteristic2
+ *
+ *  @discussion Is just for USR Debug Mode.
+ *
+ */
+@property (nonatomic,retain)CBCharacteristic *myCharacteristic2;
+
+/*!
+ *  @property foundPeripherals
+ *
+ *  @discussion  All discovered peripherals while scanning.
+ *
+ */
+@property (retain, nonatomic) NSMutableArray    *foundPeripherals;
+
+/*!
+ *  @property foundServices
+ *
+ *  @discussion All available services of connected peripheral..
+ *
+ */
+@property (retain, nonatomic) NSMutableArray    *foundServices;
+
+/*!
+ *  @property serviceUUIDDict
+ *
+ *  @discussion  Dictionary contains all listed Known services from pList (ServiceUUIDPlist).
+ *
+ */
+@property (retain, nonatomic) NSMutableDictionary      *serviceUUIDDict;
+
+/*!
+ *  @property characteristicProperties
+ *
+ *  @discussion  Properties of characteristic .
+ *
+ */
+@property (retain,nonatomic) NSMutableArray *characteristicProperties;
+
+/*!
+ *  @property characteristicDescriptors
+ *
+ *  @discussion  Descriptors of characteristic .
+ *
+ */
+@property (retain,nonatomic) NSArray  *characteristicDescriptors;
+
+/*!
+ *  @property bootLoaderFilesArray
+ *
+ *  @discussion  Firmware files selected for device upgrade.
+ *
+ */
+
+@property (retain, nonatomic) NSArray *bootLoaderFilesArray;
+
++ (id)sharedManager;
+
+
+/*								Actions										*/
+/****************************************************************************/
+- (void) startScanning;
+- (void) stopScanning;
+- (void) refreshPeripherals;
+
+- (void) connectPeripheral:(CBPeripheral*)peripheral CompletionBlock:(void (^)(BOOL success, NSError *error))completionHandler;
+- (void) disconnectPeripheral:(CBPeripheral*)peripheral;
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBMoralManager.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBMoralManager.m
new file mode 100644
index 0000000..9c0a708
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBMoralManager.m
@@ -0,0 +1,520 @@
+
+
+#import <UIKit/UIKit.h>
+#import "CBMoralManager.h"
+#import "CBPeripheralExt.h"
+#import "ResourceHandler.h"
+#import "Utilities.h"
+
+/*!
+ *  @class CBMoralManager
+ *
+ *  @discussion Class to co-ordinate all the peripheral related operations
+ *
+ */
+
+@interface CBMoralManager () <CBCentralManagerDelegate, CBPeripheralDelegate>
+{
+    CBCentralManager    *centralManager;
+    NSMutableArray *peripheralListArray;
+    
+    void (^cbCommunicationHandler)(BOOL success, NSError *error);
+    BOOL isTimeOutAlert;
+}
+@end
+
+@implementation CBMoralManager
+
+@synthesize cbCharacteristicDelegate;
+@synthesize myPeripheral;
+@synthesize myService;
+@synthesize myCharacteristic;
+@synthesize myCharacteristic2;
+@synthesize serviceUUIDDict;
+@synthesize cbDiscoveryDelegate;
+@synthesize foundPeripherals;
+@synthesize foundServices;
+@synthesize characteristicDescriptors;
+@synthesize characteristicProperties;
+@synthesize bootLoaderFilesArray;
+
+
+#define k_SERVICE_UUID_PLIST_NAME @"ServiceUUIDPList"
+
+#pragma mark - Singleton Methods
+
++ (id)sharedManager {
+    static CBMoralManager *sharedMyManager = nil;
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        sharedMyManager = [[self alloc] init];
+    });
+    return sharedMyManager;
+}
+
+- (id)init {
+    if (self = [super init])
+    {
+        centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
+        foundPeripherals = [[NSMutableArray alloc] init];
+        foundServices = [[NSMutableArray alloc] init];
+        peripheralListArray = [[NSMutableArray alloc] init];
+        serviceUUIDDict = [NSMutableDictionary dictionaryWithDictionary:[ResourceHandler getItemsFromPropertyList:k_SERVICE_UUID_PLIST_NAME]];
+        bootLoaderFilesArray = nil;
+    }
+    return self;
+}
+
+
+#pragma mark - Discovery
+/*								Discovery                                   */
+/****************************************************************************/
+
+/*!
+ *  @method startScanning
+ *
+ *  @discussion  To scans for peripherals that are advertising services.
+ *
+ */
+
+- (void) startScanning
+{
+    NSLog(@"-------------------->startScanning");
+    
+    if((NSInteger)[centralManager state] == CBCentralManagerStatePoweredOn)
+    {
+        [cbDiscoveryDelegate bluetoothStateUpdatedToState:YES];
+        NSDictionary *options=[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO],CBCentralManagerScanOptionAllowDuplicatesKey, nil];
+        [centralManager scanForPeripheralsWithServices:nil options:options];
+    }
+    else if ([centralManager state] == CBCentralManagerStateUnsupported)
+    {
+        [Utilities alert:@"CySmart" Message:@"This device does not support Bluetooth Low Energy"];
+    }
+}
+
+
+/*!
+ *  @method stopScanning
+ *
+ *  @discussion  To stop scanning for peripherals.
+ *
+ */
+
+- (void) stopScanning
+{
+    
+    [centralManager stopScan];
+}
+
+
+/*!
+ *  @method peripheralWithPeripheral:advertisementData:RSSI
+ *
+ *  @param peripheral           A <code>CBPeripheral</code> object.
+ *  @param advertisementData    A dictionary containing any advertisement and scan response data.
+ *  @param RSSI                 The current RSSI of <i>peripheral</i>, in dBm. A value of <code>127</code> is reserved and indicates the RSSI
+ *								was not available.
+ *
+ *  @discussion  The methods handles the peripherals are to be displayed or not in the BLE Device List.
+ Each time a new peripheral dicover will invoke [discoveryDidRefresh] method.
+ *
+ */
+
+-(void)peripheralWithPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
+{
+    
+    if (![peripheralListArray containsObject:peripheral])
+    {
+        if(peripheral.state == CBPeripheralStateConnected)
+        {
+        }
+        else
+        {
+            //Printing description of newPeriPheral->mAdvertisementData:
+            //{
+            //    kCBAdvDataIsConnectable = 1;
+            //    kCBAdvDataLocalName = MORAL;
+            //    kCBAdvDataServiceData =     {
+            //        "0003CBBB-0000-1000-8000-00805F9B0131" = <bbcb>;
+            //   };
+            //}
+            
+            CBPeripheralExt *newPeriPheral = [[CBPeripheralExt alloc] init];
+            newPeriPheral.mPeripheral = [peripheral copy];
+            newPeriPheral.mAdvertisementData = [advertisementData copy];
+            newPeriPheral.mRSSI = [RSSI copy];
+            [peripheralListArray addObject:peripheral];
+            [foundPeripherals addObject:newPeriPheral];
+            [cbDiscoveryDelegate discoveryDidRefresh];
+        }
+    }
+    
+}
+
+//  - This is called with the CBPeripheral class as its main input parameter. This contains the information about a BLE peripheral.
+- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
+{
+    [self peripheralWithPeripheral:peripheral advertisementData:advertisementData RSSI:RSSI];
+}
+
+#pragma mark - Connection/Disconnection
+
+/*!
+ *  @method cancelTimeOutAlert
+ *
+ *  @discussion Method to cancel timeout alert
+ *
+ */
+-(void)cancelTimeOutAlert
+{
+    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(timeOutMethodForConnect) object:nil];
+}
+
+/*!
+ *  @method timeOutMethodForConnect
+ *  ������������
+ *  @discussion The methods invoke to cancel the connection request Because connection attempts do not time out,
+ *
+ */
+-(void)timeOutMethodForConnect
+{
+    isTimeOutAlert = YES;
+    [self cancelTimeOutAlert];
+    [self disconnectPeripheral:myPeripheral];
+    NSMutableDictionary *errorDetail = [NSMutableDictionary dictionary];
+    [errorDetail setValue:@"The Connection has Timed Out unexpectedly" forKey:NSLocalizedDescriptionKey];
+    NSError *error = [NSError errorWithDomain:@"myDomain" code:100 userInfo:errorDetail];
+    [self refreshPeripherals];
+    cbCommunicationHandler(NO,error);
+}
+
+/*						Connection/Disconnection                            */
+/****************************************************************************/
+
+
+/*!
+ *  @method connectPeripheral:CompletionBlock
+ *
+ *  @param peripheral	The peripheral to which the central is attempting to connect.
+ *
+ *  @discussion	 Establishes a local connection to a peripheral.
+ *
+ */
+- (void) connectPeripheral:(CBPeripheral*)peripheral CompletionBlock:(void (^)(BOOL success, NSError *error))completionHandler
+{
+    
+      if((NSInteger)[centralManager state] == CBCentralManagerStatePoweredOn)
+      {
+          cbCommunicationHandler = completionHandler ;
+         
+          if ([peripheral state] == CBPeripheralStateDisconnected)
+          {
+              [centralManager connectPeripheral:peripheral options:nil];
+              LOG_INFO(@"[%@] %@",peripheral.name,CONNECTION_REQUEST);
+              //[[LoggerHandler LogManager] LogData:[NSString stringWithFormat:@"[%@] %@",peripheral.name,CONNECTION_REQUEST]];
+          }
+          else
+          {
+              [centralManager cancelPeripheralConnection:peripheral];
+          }
+          
+          [self performSelector:@selector(timeOutMethodForConnect) withObject:nil afterDelay:DEVICE_CONNECTION_TIMEOUT];
+
+      }
+    
+
+}
+
+/*!
+ *  @method disconnectPeripheral:
+ *
+ *  @param peripheral	The peripheral which needs to be disconnected from central.
+ *
+ *  @discussion	 Cancels an active or pending local connection to a peripheral.
+ *
+ */
+
+- (void) disconnectPeripheral:(CBPeripheral*)peripheral
+{
+    if(peripheral)
+    {
+        [centralManager cancelPeripheralConnection:peripheral];
+    }
+}
+
+- (void) centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
+{
+    myPeripheral =  nil;
+    myPeripheral = [peripheral copy];
+    myPeripheral.delegate = self ;
+    [myPeripheral discoverServices:nil];
+    
+    LOG_INFO(@"[%@] %@",peripheral.name,CONNECTION_ESTABLISH);
+    LOG_INFO(@"[%@] %@",peripheral.name,SERVICE_DISCOVERY_REQUEST);
+}
+
+
+- (void) centralManager:(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
+{
+    NSLog(@"Attempted connection to peripheral %@ failed: %@", [peripheral name], [error localizedDescription]);
+     [self cancelTimeOutAlert];
+     cbCommunicationHandler(NO,error);
+}
+
+
+- (void) centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
+{
+    [self cancelTimeOutAlert];
+
+    /*  Check whether the disconnection is done by the device */
+    if (error == nil && !isTimeOutAlert)
+    {
+        NSMutableDictionary *errorDetail = [NSMutableDictionary dictionary];
+        [errorDetail setValue:@"The BLE device is disconnected" forKey:NSLocalizedDescriptionKey];
+        NSError *disconnectError = [NSError errorWithDomain:@"myDomain" code:100 userInfo:errorDetail];
+        
+        LOG_INFO(@"[%@] %@",peripheral.name,DISCONNECTION_REQUEST);
+        
+        cbCommunicationHandler(NO,disconnectError);
+    }
+    else
+    {
+        isTimeOutAlert = NO;
+        
+        // Checking whether the disconnected device has pending firmware upgrade
+        if ([[CBMoralManager sharedManager] bootLoaderFilesArray] != nil && error != nil)
+        {
+            NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
+            [errorDict setValue:[NSString stringWithFormat:@"%@%@",[error.userInfo objectForKey:NSLocalizedDescriptionKey],FIRMWARE_DISCONNECTION_ERROR] forKey:NSLocalizedDescriptionKey];
+            
+            NSError *disconnectionError = [NSError errorWithDomain:@"myDomain" code:100 userInfo:errorDict];
+            cbCommunicationHandler(NO,disconnectionError);
+        }
+        else
+            cbCommunicationHandler(NO,error);
+    }
+
+    [self redirectToRootviewcontroller];
+    LOG_INFO(@"[%@] %@",peripheral.name,DISCONNECTED);
+    [self clearDevices];
+}
+
+/*!
+ *  @method redirectToRootviewcontroller
+ *
+ *  @discussion	 Pops all the view controllers on the stack except the root view controller and updates the display. This will redirect to BLE Devices Page which list all discovered peripherals,
+ *
+ */
+
+-(void)redirectToRootviewcontroller
+{
+    if(cbDiscoveryDelegate)
+    {
+        [[(UIViewController*)cbDiscoveryDelegate navigationController] popToRootViewControllerAnimated:YES];
+    }
+    else if(cbCharacteristicDelegate)
+    {
+        [[(UIViewController*)cbCharacteristicDelegate navigationController] popToRootViewControllerAnimated:YES];
+    }
+}
+
+
+
+#pragma mark - Disc Services
+
+/*	Represents the current state of a CBCentralManager.                     */
+/****************************************************************************/
+
+
+
+// CBPeripheralDelegate - Invoked when you discover the peripheral's available services.
+
+- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error
+{
+    [self cancelTimeOutAlert];
+    if(error == nil)
+    {
+        LOG_INFO(@"[%@] %@- %@",peripheral.name,SERVICE_DISCOVERY_STATUS,SERVICE_DISCOVERED);
+        BOOL isCapsenseExist = NO;
+        for (CBService *service in peripheral.services)
+        {
+
+            if (![foundServices containsObject:service]) {
+                [foundServices addObject:service];
+                if([service.UUID isEqual:CAPSENSE_SERVICE_UUID])
+                {
+                    isCapsenseExist = YES;
+                    cbCharacteristicDelegate = nil;  
+                     [myPeripheral discoverCharacteristics:nil forService:service];
+                }
+            }
+        }
+        if(isCapsenseExist == NO )
+            cbCommunicationHandler(YES,nil);
+    }
+    else
+    {
+        LOG_INFO(@"[%@] %@- %@%@]",peripheral.name,SERVICE_DISCOVERY_STATUS,SERVICE_DISCOVERY_ERROR,[error.userInfo objectForKey:NSLocalizedDescriptionKey]);
+
+        cbCommunicationHandler(NO,error);
+        
+    }
+
+}
+
+
+
+
+/*	Represents the current state of a CBCentralManager.                     */
+/****************************************************************************/
+
+#pragma mark - characteristic/
+
+- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    
+    if([cbCharacteristicDelegate isKindOfClass:[CBMoralManager class]] || cbCharacteristicDelegate == nil)
+    {
+        cbCommunicationHandler(YES,nil);
+    }
+    else
+    {
+        [cbCharacteristicDelegate peripheral:peripheral didDiscoverCharacteristicsForService:service error:error];
+    }
+    
+}
+- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if (error)
+    {
+        if (!characteristic.isNotifying)
+        {
+            [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@- %@%@",READ_RESPONSE,READ_ERROR,[error.userInfo objectForKey:NSLocalizedDescriptionKey]]];
+        }
+    }
+    
+    if([cbCharacteristicDelegate respondsToSelector:@selector(peripheral:didUpdateValueForCharacteristic:error:)])
+        [cbCharacteristicDelegate peripheral:peripheral didUpdateValueForCharacteristic:characteristic error:error];
+}
+
+- (void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if([cbCharacteristicDelegate respondsToSelector:@selector(peripheral:didWriteValueForCharacteristic:error:)])
+    [cbCharacteristicDelegate peripheral:peripheral didWriteValueForCharacteristic:characteristic error:error];
+    
+}
+
+- (void)peripheral:(CBPeripheral *)peripheral didDiscoverDescriptorsForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if([cbCharacteristicDelegate respondsToSelector:@selector(peripheral:didDiscoverDescriptorsForCharacteristic:error:)])
+    [cbCharacteristicDelegate peripheral:peripheral didDiscoverDescriptorsForCharacteristic:characteristic error:error];
+}
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForDescriptor:(CBDescriptor *)descriptor error:(NSError *)error
+{
+    if (error)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:descriptor.characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:descriptor.characteristic.UUID] descriptor:[Utilities getDiscriptorNameForUUID:descriptor.UUID] operation:[NSString stringWithFormat:@"%@- %@%@",READ_RESPONSE,READ_ERROR,[error.userInfo objectForKey:NSLocalizedDescriptionKey]]];
+    }
+    [cbCharacteristicDelegate peripheral:peripheral didUpdateValueForDescriptor:descriptor error:error];
+}
+
+
+#pragma mark - BLE State
+
+/*	Represents the current state of a CBCentralManager.                     */
+/****************************************************************************/
+
+/*!
+ *  @method clearDevices
+ *
+ *  @discussion	 Clear all listed peripherals and services,
+ *
+ */
+- (void) clearDevices
+{
+    [peripheralListArray removeAllObjects];
+    [foundPeripherals removeAllObjects];
+    [foundServices removeAllObjects];
+}
+
+/*
+ Invoked when the central manager���s state is updated. (required)
+
+ If the state is On then app start scanning for peripherals that are advertising services.
+ If the state is Off then call method [clearDevices] and redirect to Home screen.
+ 
+ */
+
+
+- (void) centralManagerDidUpdateState:(CBCentralManager *)central
+{
+    
+    switch ((NSInteger)[centralManager state])
+    {
+        case CBCentralManagerStatePoweredOff:
+        {
+            [self clearDevices];
+            /* Tell user to power ON BT for functionality, but not on first run - the Framework will alert in that instance. */
+            //Show Alert
+            [self redirectToRootviewcontroller];
+            [cbDiscoveryDelegate bluetoothStateUpdatedToState:NO];
+            break;
+        }
+            
+        case CBCentralManagerStateUnauthorized:
+        {
+            /* Tell user the app is not allowed. */
+            [Utilities alert:@"CySmart" Message:@"The app is not authorized  to use bluetooth low energy"];
+            break;
+        }
+            
+        case CBCentralManagerStateUnknown:
+        {
+            /* Bad news, let's wait for another event. */
+            [Utilities alert:@"CySmart" Message:@"The state of central manager is unknown."];
+            break;
+        }
+            
+        case CBCentralManagerStatePoweredOn:
+        {
+            [cbDiscoveryDelegate bluetoothStateUpdatedToState:YES];
+            //���������������������������
+            //[self startScanning];
+            break;
+        }
+            
+        case CBCentralManagerStateResetting:
+        {
+            [self clearDevices];
+            break;
+        }
+    }
+    
+}
+
+/*!
+ *  @method refreshPeripherals
+ *
+ *  @discussion	  Clear all listed peripherals and services.
+ Device scanning will add  peripherals that are advertising services.
+ And check the status of Bluetooth and alert the user if Off,
+ *
+ */
+
+- (void) refreshPeripherals
+{
+    [self clearDevices];
+    if([centralManager state] == CBCentralManagerStatePoweredOff)
+    {
+        [Utilities alert:WARNING Message:@"Turn On Bluetooth to Allow App to Connect to Accessories"];
+    }
+//    [[CBMoralManager sharedManager] stopScanning];
+    [[CBMoralManager sharedManager] startScanning];
+}
+
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBPeripheralExt.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBPeripheralExt.h
new file mode 100644
index 0000000..afe9827
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBPeripheralExt.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+@import CoreBluetooth;
+
+/*!
+ *  @class CBPeripheralExt
+ *
+ *  @discussion Model class for handling the external peripheral
+ *
+ */
+
+@interface CBPeripheralExt : NSObject
+
+/*!
+ *  @property mPeripheral
+ *
+ *  @discussion  Represents a peripheral.
+ *
+ */
+
+
+@property (nonatomic, retain)CBPeripheral		*mPeripheral;
+
+/*!
+ *  @property mAdvertisementData
+ *
+ *  @discussion  A dictionary containing any advertisement and scan response data.
+ *
+ */
+@property (nonatomic, retain)NSDictionary		*mAdvertisementData;
+
+/*!
+ *  @property mRSSI
+ *
+ *  @discussion   The current RSSI of <i>peripheral</i>, in dBm. A value of <code>127</code> is reserved and indicates the RSSI
+ *							was not available.
+ *
+ */
+@property (nonatomic, retain)NSNumber           *mRSSI;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBPeripheralExt.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBPeripheralExt.m
new file mode 100644
index 0000000..63a0161
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CBPeripheralExt.m
@@ -0,0 +1,40 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import "CBPeripheralExt.h"
+
+@implementation CBPeripheralExt
+
+@synthesize mPeripheral;
+@synthesize mAdvertisementData;
+@synthesize mRSSI;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/AccelerometerModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/AccelerometerModel.h
new file mode 100644
index 0000000..595afb4
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/AccelerometerModel.h
@@ -0,0 +1,107 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+
+#import <Foundation/Foundation.h>
+#import "CBMoralManager.h"
+
+
+@interface AccelerometerModel : NSObject
+
+
+/*!
+ *  @property xValue
+ *
+ *  @discussion The accelerometer X coordinate value
+ *
+ */
+
+@property(nonatomic) float xValue;
+
+/*!
+ *  @property yValue
+ *
+ *  @discussion The accelerometer Y coordinate value
+ *
+ */
+@property(nonatomic) float yValue;
+
+/*!
+ *  @property zValue
+ *
+ *  @discussion The accelerometer Z coordinate value
+ *
+ */
+@property(nonatomic) float zValue;
+
+/*!
+ *  @property scanIntervalString
+ *
+ *  @discussion The accelerometer sensor scan intervel
+ *
+ */
+
+@property (strong,nonatomic) NSString *scanIntervalString;
+
+/*!
+ *  @property filterTypeConfigurationString
+ *
+ *  @discussion The accelerometer sensor filterType
+ *
+ */
+@property (strong,nonatomic) NSString *filterTypeConfigurationString;
+
+/*!
+ *  @property sensorTypeString
+ *
+ *  @discussion The accelerometer sensor type
+ *
+ */
+
+@property (strong,nonatomic) NSString *sensorTypeString;
+
+
+
+-(void) stopUpdate;
+
+-(void) writeValueForAccelerometerSensorScanInterval:(int) newScanInterval;
+-(void) writeValueForAccelerometerFilterConfiguration:(int) filterconfiguration;
+
+
+-(void) getCharacteristicsForAccelerometerService:(CBService *) service;
+-(void) updateXYZCharacteristics;
+-(void) getXYZValuesWithCharacteristic:(CBCharacteristic *)characteristic;
+-(void) readAccelerometerCharacteristics;
+-(void) getValuesForAcclerometerCharacteristics:(CBCharacteristic *)characteristic;
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/AccelerometerModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/AccelerometerModel.m
new file mode 100644
index 0000000..36a33e1
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/AccelerometerModel.m
@@ -0,0 +1,280 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+
+#import "AccelerometerModel.h"
+#import "Constants.h"
+
+/*!
+ *  @class AccelerometerModel
+ *
+ *  @discussion Class to handle the accelerometer service related operations
+ *
+ */
+
+@interface AccelerometerModel ()
+{
+    NSMutableArray *XYZCharacteristicsArray;
+    CBCharacteristic *scanIntervalCharacteristic, *sensorTypecharacteristic, *dataAccumulationCharacteristic;
+}
+
+@end
+
+
+@implementation AccelerometerModel
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+        
+        XYZCharacteristicsArray = [[NSMutableArray alloc] init];
+    }
+    return self;
+}
+
+/*!
+ *  @method writeValueForAccelerometerSensorScanInterval:
+ *
+ *  @discussion Method to write value for accelerometer SensorScanInterval
+ *
+ */
+-(void) writeValueForAccelerometerSensorScanInterval:(int) newScanInterval
+{
+    uint8_t val = (uint8_t)newScanInterval; // The value which you want to write.
+    NSData  *valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)];
+    [[[CBMoralManager sharedManager] myPeripheral] writeValue:valData forCharacteristic:scanIntervalCharacteristic type:CBCharacteristicWriteWithoutResponse];
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ACCELEROMETER_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:scanIntervalCharacteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",WRITE_REQUEST,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:valData]]];
+}
+
+/*!
+ *  @method writeValueForAccelerometerFilterconfiguration:
+ *
+ *  @discussion Method to write value for accelerometer filter configuration
+ *
+ */
+
+-(void) writeValueForAccelerometerFilterConfiguration:(int) filterconfiguration
+{
+    uint8_t val = (uint8_t)filterconfiguration; // The value which you want to write.
+    NSData  *valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)];
+    [[[CBMoralManager sharedManager] myPeripheral] writeValue:valData forCharacteristic:dataAccumulationCharacteristic type:CBCharacteristicWriteWithoutResponse];
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ACCELEROMETER_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:dataAccumulationCharacteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",WRITE_REQUEST,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:valData]]];
+}
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Method to stop update
+ *
+ */
+
+-(void)stopUpdate
+{
+    [self updateCharacteristicsNotificationStatus:NO];
+}
+
+/*!
+ *  @method getCharacteristicsForAccelerometerService
+ *
+ *  @discussion Method to get the characteristics for accelerometer service
+ *
+ */
+
+-(void) getCharacteristicsForAccelerometerService:(CBService *) service
+{
+    for (CBCharacteristic *characteristic in service.characteristics)
+    {
+        if ([characteristic.UUID isEqual:ACCELEROMETER_READING_X_CHARACTERISTIC_UUID])
+        {
+            [XYZCharacteristicsArray addObject:characteristic];
+        }
+        else if ([characteristic.UUID isEqual:ACCELEROMETER_READING_Y_CHARACTERISTIC_UUID])
+        {
+            [XYZCharacteristicsArray addObject:characteristic];
+        }
+        else if ([characteristic.UUID isEqual:ACCELEROMETER_READING_Z_CHARACTERISTIC_UUID])
+        {
+            [XYZCharacteristicsArray addObject:characteristic];
+        }
+        else if ([characteristic.UUID isEqual:ACCELEROMETER_SENSOR_SCAN_INTERVAL_CHARACTERISTIC_UUID])
+        {
+            scanIntervalCharacteristic = characteristic;
+        }
+        else if ([characteristic.UUID isEqual:ACCELEROMETER_DATA_ACCUMULATION_CHARACTERISTIC_UUID])
+        {
+            dataAccumulationCharacteristic = characteristic;
+        }
+        else if ([characteristic.UUID isEqual:ACCELEROMETER_ANALOG_SENSOR_CHARACTERISTIC_UUID])
+        {
+            sensorTypecharacteristic = characteristic;
+        }
+    }
+    
+}
+
+/*!
+ *  @method updateXYZCharacteristics
+ *
+ *  @discussion Method to set notify for accelerometer X,Y and Z values
+ *
+ */
+
+-(void) updateXYZCharacteristics
+{
+    [self updateCharacteristicsNotificationStatus:YES];
+}
+
+/*!
+ *  @method updateCharacteristicsNotificationStatus:
+ *
+ *  @discussion Method to update the notification status of x,y and z characteristics
+ *
+ */
+-(void) updateCharacteristicsNotificationStatus:(BOOL)status
+{
+    if ([XYZCharacteristicsArray count] > 0)
+    {
+        for (CBCharacteristic *characteristic in XYZCharacteristicsArray)
+        {
+            [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:status forCharacteristic:characteristic];
+            
+            if (status)
+            {
+                [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ACCELEROMETER_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:START_NOTIFY];
+            }
+            else
+            {
+                 [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ACCELEROMETER_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:STOP_NOTIFY];
+            }
+        }
+    }
+}
+
+
+
+/*!
+ *  @method readAccelerometerCharacteristics
+ *
+ *  @discussion Method to read values for different accelerometer characteristics
+ *
+ */
+
+-(void) readAccelerometerCharacteristics
+{
+    
+    if (scanIntervalCharacteristic != nil)
+    {
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:scanIntervalCharacteristic];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ACCELEROMETER_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:scanIntervalCharacteristic.UUID] descriptor:nil operation:READ_REQUEST];
+    }
+    
+    if (dataAccumulationCharacteristic != nil)
+    {
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:dataAccumulationCharacteristic];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ACCELEROMETER_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:dataAccumulationCharacteristic.UUID] descriptor:nil operation:READ_REQUEST];
+    }
+    
+    if (sensorTypecharacteristic != nil)
+    {
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:sensorTypecharacteristic];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ACCELEROMETER_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:sensorTypecharacteristic.UUID] descriptor:nil operation:READ_REQUEST];
+    }
+}
+
+
+/*!
+ *  @method getXYZValuesWithCharacteristic:
+ *
+ *  @discussion Method to get the accelerometer X,Y and Z values
+ *
+ */
+
+
+-(void) getXYZValuesWithCharacteristic:(CBCharacteristic *)characteristic
+{
+    NSData *data = [characteristic value];
+    const uint8_t *reportData = (uint8_t *)[data bytes];
+    
+    if ([characteristic.UUID isEqual:ACCELEROMETER_READING_X_CHARACTERISTIC_UUID])
+    {
+        _xValue = CFSwapInt16LittleToHost(*(uint16_t *) &reportData[0]);
+    }
+    else if ([characteristic.UUID isEqual:ACCELEROMETER_READING_Y_CHARACTERISTIC_UUID])
+    {
+        _yValue = CFSwapInt16LittleToHost(*(uint16_t *) &reportData[0]);
+    }
+    else if ([characteristic.UUID isEqual:ACCELEROMETER_READING_Z_CHARACTERISTIC_UUID])
+    {
+        _zValue = CFSwapInt16LittleToHost(*(uint16_t *) &reportData[0]);
+    }
+
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+}
+
+/*!
+ *  @method getValuesForAcclerometerCharacteristics:
+ *
+ *  @discussion Method to parse values for different accelerometer characteristics
+ *
+ */
+-(void) getValuesForAcclerometerCharacteristics:(CBCharacteristic *)characteristic
+{
+    NSData *data = [characteristic value];
+    const uint8_t *reportData = (uint8_t *)[data bytes];
+
+    if ([characteristic.UUID isEqual:ACCELEROMETER_SENSOR_SCAN_INTERVAL_CHARACTERISTIC_UUID])
+    {
+        _scanIntervalString = [NSString stringWithFormat:@"%d",reportData[0]];
+    }
+    else if ([characteristic.UUID isEqual:ACCELEROMETER_DATA_ACCUMULATION_CHARACTERISTIC_UUID])
+    {
+        _filterTypeConfigurationString = [NSString stringWithFormat:@"%d",reportData[0]];
+    }
+    else if ([characteristic.UUID isEqual:ACCELEROMETER_ANALOG_SENSOR_CHARACTERISTIC_UUID])
+    {
+        _sensorTypeString = [NSString stringWithFormat:@"%d",reportData[0]];
+    }
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+
+}
+
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BPModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BPModel.h
new file mode 100644
index 0000000..4501049
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BPModel.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import <Foundation/Foundation.h>
+
+/**
+ *
+ * Class used for parsing Blood pressure related information
+ */
+
+@interface BPModel : NSObject
+
+
+/*!
+ *  @property bloodPressureUnitString
+ *
+ *  @discussion The unit value of blood pressure
+ *
+ */
+@property(strong,nonatomic) NSString *bloodPressureUnitString;
+
+/*!
+ *  @property systolicPressureValue
+ *
+ *  @discussion Blood Pressure Measurement Compound Value - Systolic
+ *
+ */
+@property(nonatomic) float systolicPressureValue;
+
+/*!
+ *  @property diastolicPressureValue
+ *
+ *  @discussion Blood Pressure Measurement Compound Value - Diastolic
+ *
+ */
+@property(nonatomic) float diastolicPressureValue;
+
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler;
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)stopUpdate;
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BPModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BPModel.m
new file mode 100644
index 0000000..80f1319
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BPModel.m
@@ -0,0 +1,198 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import "BPModel.h"
+#import "CBMoralManager.h"
+#import "Constants.h"
+
+/*!
+ *  @class BPModel
+ *
+ *  @discussion Class to handle the blood pressure service related operations
+ *
+ */
+
+@interface BPModel ()<cbCharacteristicManagerDelegate>
+{
+    void(^cbCharacteristicHandler)(BOOL success, NSError *error);
+    void(^cbcharacteristicDiscoverHandler)(BOOL success, NSError *error);
+    
+    CBCharacteristic *bpCharacteristic;
+}
+
+@end
+
+@implementation BPModel
+
+/*!
+ *  @method startDiscoverChar:
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler
+{
+    cbcharacteristicDiscoverHandler = handler;
+    
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+}
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicHandler = handler;
+    
+    if (bpCharacteristic)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:BP_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:BP_MEASUREMENT_CHARACTERISTIC_UUID] descriptor:nil operation:START_NOTIFY];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:bpCharacteristic];
+    }
+    
+}
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Stop notifications or indications for the value of a specified characteristic.
+ */
+
+
+-(void)stopUpdate
+{
+    cbCharacteristicHandler = nil;
+    
+    if (bpCharacteristic)
+    {
+        if (bpCharacteristic.isNotifying)
+        {
+            [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:bpCharacteristic];
+            
+            [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:BP_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:BP_MEASUREMENT_CHARACTERISTIC_UUID] descriptor:nil operation:STOP_NOTIFY];
+        }
+        
+    }
+}
+
+
+
+#pragma mark - characteristicManager delegate
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:BP_SERVICE_UUID])
+    {
+        for (CBCharacteristic *aChar in service.characteristics)
+        {
+            // Checking for required characteristic
+            if ([aChar.UUID isEqual:BP_MEASUREMENT_CHARACTERISTIC_UUID])
+            {
+                bpCharacteristic = aChar;
+                cbcharacteristicDiscoverHandler(YES,nil);
+            }
+        }
+    }
+    
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes
+ *
+ */
+
+-(void) peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if ([characteristic.UUID isEqual:BP_MEASUREMENT_CHARACTERISTIC_UUID])
+    {
+        if (error == nil)
+        {
+            [self getBloodPressureDataFromChar:characteristic];
+            cbCharacteristicHandler(YES,nil);
+        }
+        else
+        {
+            cbCharacteristicHandler(NO,error);
+        }
+    }
+}
+
+
+/*!
+ *  @method getBloodPressureDataFromChar:
+ *
+ *  @discussion   Instance method to get the blood pressure value
+ *
+ */
+-(void) getBloodPressureDataFromChar:(CBCharacteristic *)characteristic
+{
+    NSData *data = [characteristic value];
+    const uint8_t *reportData = (uint8_t *)[data bytes];
+    
+    // Checking the flag
+    
+    if (!(reportData[0] & 0x00))
+    {
+        // BP details in units of mmHg
+        _bloodPressureUnitString = BLOOD_PRESSURE_UNIT_mmHg;
+        
+    }
+    else
+    {
+        //BP details in units of kPa
+        _bloodPressureUnitString = BLOOD_PRESSURE_UNIT_kPa;
+    }
+    
+    _systolicPressureValue = CFSwapInt16LittleToHost(*(uint16_t *) &reportData[1]);
+    _diastolicPressureValue =  CFSwapInt16LittleToHost(*(uint16_t *) &reportData[3]);
+    
+    if (cbCharacteristicHandler != nil) {
+        cbCharacteristicHandler(YES,nil);
+    }
+    
+     [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+}
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BarometerModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BarometerModel.h
new file mode 100644
index 0000000..7487217
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BarometerModel.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+
+#import <Foundation/Foundation.h>
+#import "CBMoralManager.h"
+
+
+@interface BarometerModel : NSObject
+
+/*!
+ *  @property sensorScanIntervalString
+ *
+ *  @discussion The barometer sensor scan interval
+ *
+ */
+
+@property (strong,nonatomic) NSString *sensorScanIntervalString;
+
+/*!
+ *  @property pressureValueString
+ *
+ *  @discussion The barometer pressure value
+ *
+ */
+@property (strong,nonatomic) NSString *pressureValueString;
+
+/*!
+ *  @property sensorTypeString
+ *
+ *  @discussion The barometer sensor type
+ *
+ */
+@property (strong,nonatomic) NSString *sensorTypeString;
+
+/*!
+ *  @property filterTypeConfigurationString
+ *
+ *  @discussion The barometer filter type
+ *
+ */
+@property (strong,nonatomic) NSString *filterTypeConfigurationString;
+
+
+
+-(void) stopUpdate;
+
+-(void) getCharacteristicsForBarometerService:(CBService *)service;
+-(void) updateValueForPressure;
+-(void) getValuesForBarometerCharacteristics:(CBCharacteristic *)characteristic;
+-(void) readValueForCharacteristics;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BarometerModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BarometerModel.m
new file mode 100644
index 0000000..6be90f4
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BarometerModel.m
@@ -0,0 +1,203 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+
+#import "BarometerModel.h"
+#import "Constants.h"
+
+/*!
+ *  @class BarometerModel
+ *
+ *  @discussion Class to handle the barometer service related operations
+ *
+ */
+
+@interface BarometerModel () <cbCharacteristicManagerDelegate>
+{
+    
+    CBCharacteristic *sensorTypeCharacteristic, *sensorScanIntervalCharacteristic, *dataAccumulationCharacterstic, *barometerReadingCharacteristic, *indicationThresholdCharacteristic;
+}
+
+@end
+
+
+@implementation BarometerModel
+
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Method to stop update
+ *
+ */
+
+-(void) stopUpdate
+{
+    
+    if (barometerReadingCharacteristic != nil)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:BAROMETER_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:barometerReadingCharacteristic.UUID] descriptor:nil operation:STOP_NOTIFY];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:barometerReadingCharacteristic];
+    }
+}
+
+/*!
+ *  @method getCharacteristicsForBarometerService:
+ *
+ *  @discussion Method to get characteristics for barometer service
+ *
+ */
+
+-(void) getCharacteristicsForBarometerService:(CBService *)service
+{
+    for (CBCharacteristic *characteristic in service.characteristics)
+    {
+        if ([characteristic.UUID isEqual:BAROMETER_DIGITAL_SENSOR_CHARACTERISTIC_UUID])
+        {
+            sensorTypeCharacteristic = characteristic;
+        }
+        else if ([characteristic.UUID isEqual:BAROMETER_SENSOR_SCAN_INTERVAL_CHARACTERISTIC_UUID])
+        {
+            sensorScanIntervalCharacteristic = characteristic;
+        }
+        else if ([characteristic.UUID isEqual:BAROMETER_DATA_ACCUMULATION_CHARACTERISTIC_UUID])
+        {
+            dataAccumulationCharacterstic = characteristic;
+        }
+        else if ([characteristic.UUID isEqual:BAROMETER_READING_CHARACTERISTIC_UUID])
+        {
+            barometerReadingCharacteristic = characteristic;
+        }
+        else if ([characteristic.UUID isEqual:BAROMETER_THRESHOLD_FOR_INDICATION_CHARACTERISTIC_UUID])
+        {
+            indicationThresholdCharacteristic = characteristic;
+        }
+        
+    }
+
+}
+
+/*!
+ *  @method updateValueForPressure
+ *
+ *  @discussion Method to set notification for barometer reading
+ *
+ */
+-(void) updateValueForPressure
+{
+    if (barometerReadingCharacteristic != nil)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:barometerReadingCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:barometerReadingCharacteristic.UUID] descriptor:nil operation:START_NOTIFY];
+        
+        
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:barometerReadingCharacteristic];
+    }
+    
+}
+
+/*!
+ *  @method readValueForCharacteristics
+ *
+ *  @discussion Method to read values for sensortype, scan interval and data accumulation characteristic
+ *
+ */
+
+-(void) readValueForCharacteristics
+{
+    
+    if (sensorTypeCharacteristic != nil)
+    {
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:sensorTypeCharacteristic];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ANALOG_TEMPERATURE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:sensorTypeCharacteristic.UUID] descriptor:nil operation:READ_REQUEST];
+    }
+    
+    if (sensorScanIntervalCharacteristic != nil)
+    {
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:sensorScanIntervalCharacteristic];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ANALOG_TEMPERATURE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:sensorScanIntervalCharacteristic.UUID] descriptor:nil operation:READ_REQUEST];
+    }
+    
+    if (dataAccumulationCharacterstic != nil)
+    {
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:dataAccumulationCharacterstic];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ANALOG_TEMPERATURE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:dataAccumulationCharacterstic.UUID] descriptor:nil operation:READ_REQUEST];
+    }
+    
+}
+
+/*!
+ *  @method getValuesForBarometerCharacteristics:
+ *
+ *  @discussion Method to get values for barometer characteristics
+ *
+ */
+
+-(void) getValuesForBarometerCharacteristics:(CBCharacteristic *)characteristic
+{
+    NSData *dataValue = characteristic.value;
+    const uint8_t *reportData = (uint8_t *)[dataValue bytes];
+    
+    if ([characteristic.UUID isEqual:BAROMETER_DIGITAL_SENSOR_CHARACTERISTIC_UUID])
+    {
+        _sensorTypeString = [NSString stringWithFormat:@"%d",reportData[0]];
+        
+         [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:dataValue]]];
+    }
+    else if ([characteristic.UUID isEqual:BAROMETER_SENSOR_SCAN_INTERVAL_CHARACTERISTIC_UUID])
+    {
+        _sensorScanIntervalString = [NSString stringWithFormat:@"%d",reportData[0]];
+        
+         [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:dataValue]]];
+    }
+    else if ([characteristic.UUID isEqual:BAROMETER_DATA_ACCUMULATION_CHARACTERISTIC_UUID])
+    {
+        _filterTypeConfigurationString = [NSString stringWithFormat:@"%d",reportData[0]];
+        
+         [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:dataValue]]];
+    }
+    else if ([characteristic.UUID isEqual:BAROMETER_READING_CHARACTERISTIC_UUID])
+    {
+        float pressureValue = CFSwapInt16LittleToHost(*(uint16_t *) &reportData[0]);
+        _pressureValueString = [NSString stringWithFormat:@"%f",pressureValue];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:dataValue]]];
+    }
+
+}
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BatteryServiceModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BatteryServiceModel.h
new file mode 100644
index 0000000..c96b026
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BatteryServiceModel.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+#import "CBMoralManager.h"
+
+
+@protocol BatteryCharacteristicDelegate <NSObject>
+
+-(void)updateBatteryUI;
+
+@end
+
+@interface BatteryServiceModel : NSObject
+
+/*!
+ *  @property batteryServiceDict
+ *
+ *  @discussion Dictionary to store battery level value against battery service
+ *
+ */
+
+@property(nonatomic,retain)NSMutableDictionary *batteryServiceDict;
+
+@property (strong,nonatomic) id <BatteryCharacteristicDelegate> delegate;
+
+/*!
+ *  @property batteryCharacterisic
+ *
+ *  @discussion characteristic that represent battery level
+ *
+ */
+
+@property (strong, nonatomic) CBCharacteristic *batteryCharacterisic;
+
+
+-(void)startDiscoverCharacteristicsWithCompletionHandler:(void (^)(BOOL success,NSError *error))handler;
+-(void)startUpdateCharacteristic;
+-(void) readBatteryLevel;
+-(void)stopUpdate;
+-(void) handleBatteryCharacteristicValueWithChar:(CBCharacteristic *) characteristic;
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BatteryServiceModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BatteryServiceModel.m
new file mode 100644
index 0000000..e256f8a
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BatteryServiceModel.m
@@ -0,0 +1,226 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import "BatteryServiceModel.h"
+
+/*!
+ *  @class BatteryServiceModel
+ *
+ *  @discussion Class to handle the battery service related operations
+ *
+ */
+@interface BatteryServiceModel()<cbCharacteristicManagerDelegate>
+{
+    void(^cbCharacteristicDiscoverHandler)(BOOL success,NSError *error);
+    BOOL isCharacteristicRead;
+}
+
+@end
+
+
+@implementation BatteryServiceModel
+
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+        
+        self.batteryServiceDict = [[NSMutableDictionary alloc] init];
+        [self.batteryServiceDict setValue:@" " forKey:[NSString stringWithFormat:@"%@",[[CBMoralManager sharedManager] myService]]];
+    }
+    return self;
+}
+
+
+/*!
+ *  @method startDiscoverChar
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+
+-(void)startDiscoverCharacteristicsWithCompletionHandler:(void (^)(BOOL success,NSError *error))handler
+
+{
+    cbCharacteristicDiscoverHandler = handler;
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+     [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+
+}
+
+
+-(void) readBatteryLevel
+{
+    if (_batteryCharacterisic != nil)
+    {
+        isCharacteristicRead = YES;
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:BATTERY_LEVEL_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:BATTERY_LEVEL_CHARACTERISTIC_UUID] descriptor:nil operation:READ_REQUEST];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:_batteryCharacterisic];
+    }
+}
+
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)startUpdateCharacteristic
+{
+
+    if (_batteryCharacterisic != nil)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:BATTERY_LEVEL_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:BATTERY_LEVEL_CHARACTERISTIC_UUID] descriptor:nil operation:START_NOTIFY];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:_batteryCharacterisic];
+    }
+}
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Stop notifications or indications for the value of a specified characteristic.
+ */
+
+
+-(void)stopUpdate
+{
+    if (_batteryCharacterisic != nil)
+    {
+        if (_batteryCharacterisic.isNotifying)
+        {
+            [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:_batteryCharacterisic];
+            [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:BATTERY_LEVEL_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:BATTERY_LEVEL_CHARACTERISTIC_UUID] descriptor:nil operation:STOP_NOTIFY];
+        }
+    }
+}
+
+
+
+
+#pragma mark - characteristicManager delegate
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:BATTERY_LEVEL_SERVICE_UUID])
+    {
+        for (CBCharacteristic *aChar in service.characteristics)
+        {
+            // Checking for the required characteristic
+            if ([aChar.UUID isEqual:BATTERY_LEVEL_CHARACTERISTIC_UUID])
+            {
+                _batteryCharacterisic = aChar;
+                cbCharacteristicDiscoverHandler(YES,nil);
+            }
+           
+        }
+    }
+    else
+        cbCharacteristicDiscoverHandler(NO,error);
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    
+    if(error == nil )
+    {
+        [self handleBatteryCharacteristicValueWithChar:characteristic];
+    }
+}
+
+/*!
+ *  @method handleBatteryCharacteristicValueWithChar:
+ *
+ *  @discussion Method to handle the characteristic value
+ *
+ */
+
+-(void) handleBatteryCharacteristicValueWithChar:(CBCharacteristic *) characteristic
+{
+    if ([characteristic.UUID isEqual:BATTERY_LEVEL_CHARACTERISTIC_UUID] && characteristic.value)
+    {
+        [self getBatteryData:characteristic];
+    }
+    
+    if (_delegate && [_delegate respondsToSelector:@selector(updateBatteryUI)])
+    {
+        [_delegate updateBatteryUI];
+    }
+
+}
+
+
+/*!
+ *  @method getBatteryData:
+ *
+ *  @discussion Method to get the Battery Level information
+ *
+ */
+
+- (void)getBatteryData:(CBCharacteristic *)characteristic
+{
+    NSData *data = [characteristic value];
+    const uint8_t *reportData = [data bytes];
+    NSString *levelString=[NSString stringWithFormat:@"%d",reportData[0]];
+    
+    if (!isCharacteristicRead)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+    }
+    else
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+        isCharacteristicRead = NO;
+    }
+    
+    
+    [self.batteryServiceDict setValue:levelString forKey:[NSString stringWithFormat:@"%@",characteristic.service]];
+}
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BootLoaderServiceModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BootLoaderServiceModel.h
new file mode 100644
index 0000000..5368976
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BootLoaderServiceModel.h
@@ -0,0 +1,112 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+
+@interface BootLoaderServiceModel : NSObject
+
+/*!
+ *  @property siliconIDString
+ *
+ *  @discussion siliconID from the device response
+ *
+ */
+@property (strong,nonatomic) NSString *siliconIDString;
+
+/*!
+ *  @property siliconRevString
+ *
+ *  @discussion silicon rev from the device response
+ *
+ */
+@property (strong,nonatomic) NSString *siliconRevString;
+
+/*!
+ *  @property isWriteRowDataSuccess
+ *
+ *  @discussion flag used to check whether data writing is success
+ *
+ */
+
+@property (nonatomic) BOOL isWriteRowDataSuccess;
+
+/*!
+ *  @property isWritePacketDataSuccess
+ *
+ *  @discussion flag used to check whether packet data writing is success
+ *
+ */
+
+@property (nonatomic) BOOL isWritePacketDataSuccess;
+/*!
+ *  @property startRowNumber
+ *
+ *  @discussion Device flash start row number
+ *
+ */
+@property (nonatomic) int startRowNumber;
+
+/*!
+ *  @property endRowNumber
+ *
+ *  @discussion Device flash end row number
+ *
+ */
+@property (nonatomic) int endRowNumber;
+
+/*!
+ *  @property checkSum
+ *
+ *  @discussion checkSum received from the device for writing a single row
+ *
+ */
+@property (nonatomic) uint8_t checkSum;
+
+/*!
+ *  @property isApplicationValid
+ *
+ *  @discussion flag used to check whether the application writing is success
+ *
+ */
+@property (nonatomic) BOOL isApplicationValid;
+
+
+-(void) discoverCharacteristicsWithCompletionHandler:(void (^) (BOOL success, NSError *error)) handler;
+-(void) updateValueForCharacteristicWithCompletionHandler:(void (^) (BOOL success,id command,NSError *error)) handler;
+-(void) writeValueToCharacteristicWithData:(NSData *)data bootLoaderCommandCode:(unsigned short)commandCode;
+-(void) stopUpdate;
+
+
+-(NSData *) createCommandPacketWithCommand:(uint8_t)commandCode dataLength:(unsigned short)dataLength data:(NSDictionary *)packetDataDictionary ;
+-(void) setCheckSumType:(NSString *)type;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BootLoaderServiceModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BootLoaderServiceModel.m
new file mode 100644
index 0000000..a9f6e12
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/BootLoaderServiceModel.m
@@ -0,0 +1,486 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import "BootLoaderServiceModel.h"
+
+#import "CBMoralManager.h"
+#import "Constants.h"
+
+#define COMMAND_PACKET_MIN_SIZE  7
+
+/*!
+ *  @class BootLoaderServiceModel
+ *
+ *  @discussion Class to handle the bootloader service related operations
+ *
+ */
+
+
+@interface BootLoaderServiceModel ()<cbCharacteristicManagerDelegate>
+{
+    void (^cbCharacteristicDiscoverHandler)(BOOL success, NSError *error);
+    void (^cbCharacteristicUpdationHandler)(BOOL success,id command,NSError *error);
+    CBCharacteristic *bootLoaderCharacteristic;
+    
+    NSMutableArray *commandArray;
+    NSString *checkSumType;
+}
+
+@end
+
+
+
+@implementation BootLoaderServiceModel
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+        
+        commandArray = [[NSMutableArray alloc] init];
+    }
+    return self;
+}
+
+/*!
+ *  @method setCheckSumType:
+ *
+ *  @discussion Method to set the checksum calculation type
+ *
+ */
+-(void) setCheckSumType:(NSString *) type
+{
+    checkSumType = type;
+}
+
+/*!
+ *  @method discoverCharacteristicsWithCompletionHandler:
+ *
+ *  @discussion Method to discover the specified characteristics of a service.
+ *
+ */
+-(void) discoverCharacteristicsWithCompletionHandler:(void (^) (BOOL success, NSError *error)) handler
+{
+    cbCharacteristicDiscoverHandler = handler;
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+}
+
+/*!
+ *  @method updateValueForCharacteristicWithCompletionHandler:
+ *
+ *  @discussion Method to set notifications or indications for the value of a specified characteristic
+ *
+ */
+-(void) updateValueForCharacteristicWithCompletionHandler:(void (^) (BOOL success,id command,NSError *error)) handler
+{
+    cbCharacteristicUpdationHandler = handler;
+    
+    if (bootLoaderCharacteristic != nil)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:bootLoaderCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:bootLoaderCharacteristic.UUID] descriptor:nil operation:START_NOTIFY];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:bootLoaderCharacteristic];
+    }
+}
+
+/*!
+ *  @method writeValueToCharacteristicWithData: bootLoaderCommandCode:
+ *
+ *  @discussion Method to write data to the device
+ *
+ */
+
+-(void) writeValueToCharacteristicWithData:(NSData *)data bootLoaderCommandCode:(unsigned short)commandCode
+{
+    if (data != nil && bootLoaderCharacteristic != nil)
+    {
+        if (commandCode)
+        {
+            [commandArray addObject:@(commandCode)];
+        }
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:bootLoaderCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:bootLoaderCharacteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",WRITE_REQUEST,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] writeValue:data forCharacteristic:bootLoaderCharacteristic type:CBCharacteristicWriteWithResponse];
+    }
+}
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Method to stop notifications or indications for the specified characteristic.
+ *
+ */
+-(void) stopUpdate
+{
+    cbCharacteristicUpdationHandler = nil;
+    [commandArray removeAllObjects];
+    
+    if (bootLoaderCharacteristic != nil)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:bootLoaderCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:bootLoaderCharacteristic.UUID] descriptor:nil operation:STOP_NOTIFY];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:bootLoaderCharacteristic];
+    }
+}
+
+
+
+#pragma mark - CBCharacteristicManagerDelegate
+
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:CUSTOM_BOOT_LOADER_SERVICE_UUID])
+    {
+        for (CBCharacteristic *characteristic in service.characteristics)
+        {
+            if ([characteristic.UUID isEqual:BOOT_LOADER_CHARACTERISTIC_UUID])
+            {
+                bootLoaderCharacteristic = characteristic;
+                cbCharacteristicDiscoverHandler(YES,nil);
+            }
+        }
+    }
+    else
+        cbCharacteristicDiscoverHandler(NO,error);
+}
+
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes or read value
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if (error == nil)
+    {
+        if ([characteristic.UUID isEqual:BOOT_LOADER_CHARACTERISTIC_UUID])
+        {
+            uint8_t *dataPointer = (uint8_t *) [characteristic.value bytes];
+            NSString *errorCode = [NSString stringWithFormat:@"0x%2x",dataPointer[1]];
+            errorCode = [errorCode stringByReplacingOccurrencesOfString:@" " withString:@"0"];
+            
+            // Checking the error code from the response
+            if ([errorCode isEqualToString:SUCCESS])
+            {
+                if ([[commandArray objectAtIndex:0] isEqual:@(ENTER_BOOTLOADER)])
+                {
+                    [self getBootLoaderDataFromCharacteristic:characteristic];
+                }
+                else if ([[commandArray objectAtIndex:0] isEqual:@(GET_FLASH_SIZE)])
+                {
+                    [self getFlashDataFromCharacteristic:characteristic];
+                }
+                else if ([[commandArray objectAtIndex:0] isEqual:@(SEND_DATA)])
+                {
+                    _isWritePacketDataSuccess = YES;
+                }
+                else if ([[commandArray objectAtIndex:0] isEqual:@(PROGRAM_ROW)])
+                {
+                    _isWriteRowDataSuccess = YES;
+                }
+                else if ([[commandArray objectAtIndex:0] isEqual:@(VERIFY_ROW)])
+                {
+                    [self getRowCheckSumFromCharacteristic:characteristic];
+                }
+                else if([[commandArray objectAtIndex:0] isEqual:@(VERIFY_CHECKSUM)])
+                {
+                    [self checkApplicationCheckSumFromCharacteristic:characteristic];
+                }
+                
+                if (cbCharacteristicUpdationHandler != nil)
+                {
+                    cbCharacteristicUpdationHandler(YES,[commandArray objectAtIndex:0],nil);
+                    [commandArray removeObjectAtIndex:0];
+                }
+                
+            }
+            else
+            {
+                if ([[commandArray objectAtIndex:0] isEqual:@(PROGRAM_ROW)])
+                {
+                    _isWriteRowDataSuccess = NO;
+                }
+                else if ([[commandArray objectAtIndex:0] isEqual:@(SEND_DATA)])
+                {
+                    _isWritePacketDataSuccess = NO;
+                }
+                if (cbCharacteristicUpdationHandler != nil)
+                {
+                    cbCharacteristicUpdationHandler(YES,[commandArray objectAtIndex:0],nil);
+                    [commandArray removeObjectAtIndex:0];
+                }
+            }
+        }
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:characteristic.value]]];
+    }
+    else
+        cbCharacteristicUpdationHandler(NO,0,error);
+}
+
+/*!
+ *  @method getBootLoaderDataFromCharacteristic:
+ *
+ *  @discussion Method to parse the characteristic value to get the siliconID and silicon rev string
+ *
+ */
+
+-(void) getBootLoaderDataFromCharacteristic:(CBCharacteristic *) characteristic
+{
+    uint8_t *dataPointer = (uint8_t *)[characteristic.value bytes];
+    
+    // Move to the position of data field
+    
+    dataPointer +=4;
+    
+    // Get silicon Id
+    
+    NSMutableString *siliconIDString = [NSMutableString stringWithCapacity:8];
+    
+    for (int i = 3; i>=0; i--)
+    {
+        [siliconIDString appendFormat:@"%02x",(unsigned int)dataPointer[i]];
+    }
+    
+    _siliconIDString = siliconIDString;
+    
+    // Get silicon Rev
+    NSMutableString *siliconRevString = [NSMutableString stringWithCapacity:2];
+    [siliconRevString appendFormat:@"%02x",(unsigned int)dataPointer[4]];
+    
+    _siliconRevString = siliconRevString;
+    
+}
+
+/*!
+ *  @method getFlashDataFromCharacteristic:
+ *
+ *  @discussion Method to parse the characteristic value to get the flash start and end row number
+ *
+ */
+-(void) getFlashDataFromCharacteristic:(CBCharacteristic *)charatceristic
+{
+    uint8_t *dataPointer = (uint8_t *)[charatceristic.value bytes];
+    
+    dataPointer+=4;
+
+    uint16_t firstRowNumber = CFSwapInt16LittleToHost(*(uint16_t *) dataPointer);
+    
+    dataPointer += 2;
+    
+    uint16_t lastRowNumber = CFSwapInt16LittleToHost(*(uint16_t *) dataPointer);
+
+    _startRowNumber = firstRowNumber;
+    _endRowNumber = lastRowNumber;
+
+}
+
+/*!
+ *  @method getRowCheckSumFromCharacteristic:
+ *
+ *  @discussion Method to parse the characteristic value to get the row checksum
+ *
+ */
+-(void) getRowCheckSumFromCharacteristic:(CBCharacteristic *)characteristic
+{
+    uint8_t *dataPointer = (uint8_t *)[characteristic.value bytes];
+    
+    _checkSum = dataPointer[4];
+}
+
+/*!
+ *  @method checkApplicationCheckSumFromCharacteristic:
+ *
+ *  @discussion Method to parse the characteristic value to get the application checksum
+ *
+ */
+-(void) checkApplicationCheckSumFromCharacteristic:(CBCharacteristic *) characteristic
+{
+    uint8_t *dataPointer = (uint8_t *)[characteristic.value bytes];
+    
+    int applicationChecksum = dataPointer[4];
+    
+    if (applicationChecksum > 0)
+    {
+        _isApplicationValid = YES;
+    }
+    else
+        _isApplicationValid = NO;
+}
+
+
+/*!
+ *  @method createCommandPacketWithCommand: dataLength: data:
+ *
+ *  @discussion Method to create the command packet from the host
+ *
+ */
+-(NSData *) createCommandPacketWithCommand:(uint8_t)commandCode dataLength:(unsigned short)dataLength data:(NSDictionary *)packetDataDictionary
+{
+    NSData *data = [[NSData alloc] init];
+    
+    uint8_t startByte = COMMAND_START_BYTE;
+    uint8_t endbyte = COMMAND_END_BYTE;
+    int bitPosition = 0;
+    
+    unsigned char *commandPacket =  (unsigned char *)malloc((COMMAND_PACKET_MIN_SIZE + dataLength)* sizeof(unsigned char));
+    
+    commandPacket[bitPosition++] = startByte;
+    commandPacket[bitPosition++] = commandCode;
+    commandPacket[bitPosition++] = dataLength;
+    commandPacket[bitPosition++] = dataLength >> 8;
+    
+    
+    
+    
+    // Handle command code for GET_FLASH_SIZE command
+    if (commandCode == GET_FLASH_SIZE)
+    {
+        uint8_t flashArrayID = [[packetDataDictionary objectForKey:FLASH_ARRAY_ID] integerValue];
+        commandPacket[bitPosition++] = flashArrayID;
+    }
+    
+    //Handle command code for PROGRAM_ROW command
+    
+    if (commandCode == PROGRAM_ROW || commandCode == VERIFY_ROW)
+    {
+        NSLog(@"program row command");
+        
+        uint8_t flashArrayID = [[packetDataDictionary objectForKey:FLASH_ARRAY_ID] integerValue];
+        unsigned short flashRowNumber = [[packetDataDictionary objectForKey:FLASH_ROW_NUMBER] integerValue];
+        commandPacket[bitPosition++] = flashArrayID;
+        commandPacket[bitPosition++] = flashRowNumber;
+        commandPacket[bitPosition++] = flashRowNumber >> 8;
+        
+    }
+    
+    // Add the data to send to the command packet
+    if (commandCode == SEND_DATA || commandCode == PROGRAM_ROW)
+    {
+        NSArray *dataArray = [packetDataDictionary objectForKey:ROW_DATA];
+        
+        for (int i =0; i<dataArray.count; i++)
+        {
+            NSString *value = dataArray[i];
+            
+            unsigned int outVal;
+            NSScanner* scanner = [NSScanner scannerWithString:value];
+            [scanner scanHexInt:&outVal];
+            
+            unsigned short valueToWrite = (unsigned short)outVal;
+            commandPacket[bitPosition++] = valueToWrite;
+            
+        }
+    }
+    
+    
+    
+    unsigned short checkSum  = [self calculateChacksumWithCommandPacket:commandPacket withSize:(bitPosition) type:checkSumType];
+    
+    
+    commandPacket[bitPosition++] = checkSum;
+    commandPacket[bitPosition++] = checkSum >> 8;
+    commandPacket[bitPosition++] = endbyte;
+    
+    data = [NSData dataWithBytes:commandPacket length:(bitPosition)];
+    
+    free(commandPacket);
+    
+    return data;
+}
+
+/*!
+ *  @method calculateChacksumWithCommandPacket: withSize: type:
+ *
+ *  @discussion Method to calculate the checksum
+ *
+ */
+-(unsigned short) calculateChacksumWithCommandPacket:(unsigned char [])array withSize:(int)packetSize type:(NSString *)type
+{
+    if ([type isEqualToString:CHECK_SUM])
+    {
+        // Sum checksum
+        unsigned short sum = 0;
+        
+        for (int i = 0; i<packetSize; i++)
+        {
+            sum = sum + array[i];
+        }
+        return ~sum+1;
+    }
+    else
+    {
+        // CRC 16
+        unsigned short sum = 0xffff;
+        
+        unsigned short tmp;
+        int i;
+        
+        if (packetSize == 0)
+            return (~sum);
+        
+        do
+        {
+            for (i = 0, tmp = 0x00ff & *array++; i < 8; i++, tmp >>= 1)
+            {
+                if ((sum & 0x0001) ^ (tmp & 0x0001))
+                    sum = (sum >> 1) ^ 0x8408;
+                else
+                    sum >>= 1;
+            }
+        }
+        while (--packetSize);
+        
+        sum = ~sum;
+        tmp = sum;
+        sum = (sum << 8) | (tmp >> 8 & 0xFF);
+        return sum;
+    }
+}
+
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/CSCModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/CSCModel.h
new file mode 100644
index 0000000..3cf1db9
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/CSCModel.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+
+@interface CSCModel : NSObject
+
+/*!
+ *  @property coveredDistance
+ *
+ *  @discussion Covered Distance in meter
+ *
+ */
+
+@property (nonatomic,assign) float coveredDistance;
+
+/*!
+ *  @property cadence
+ *
+ *  @discussion wheel rpm
+ *
+ */
+@property (nonatomic,assign) int cadence;
+
+
+
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler;
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)stopUpdate;
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/CSCModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/CSCModel.m
new file mode 100644
index 0000000..83c45f5
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/CSCModel.m
@@ -0,0 +1,268 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import "CSCModel.h"
+#import "CBMoralManager.h"
+#import "Constants.h"
+
+#define WHEEL_CIRCUMFERENCE    2.1
+
+/*!
+ *  @class CSCModel
+ *
+ *  @discussion Class to handle the cycling speed and cadence service related operations
+ *
+ */
+
+@interface CSCModel () <cbCharacteristicManagerDelegate>
+{
+    void(^cbCharacteristicHandler)(BOOL success, NSError *error);
+    void(^cbCharacteristicDiscoverHandler)(BOOL success, NSError *error);
+    
+    CBCharacteristic *CSCCharacteristic;
+    
+    float previousRevolution, previousEventTime;
+}
+
+
+@end
+
+@implementation CSCModel
+
+
+@synthesize coveredDistance;
+@synthesize cadence;
+
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+        
+        previousEventTime = 0.0;
+        previousRevolution = 0.0;
+    }
+    return self;
+}
+/*!
+ *  @method startDiscoverChar:
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicDiscoverHandler = handler;
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+}
+
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+
+
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicHandler = handler;
+    
+    if (CSCCharacteristic)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:CSC_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:CSC_CHARACTERISTIC_UUID] descriptor:nil operation:START_NOTIFY];
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:CSCCharacteristic];
+    }
+}
+
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Stop notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)stopUpdate
+{
+    cbCharacteristicHandler = nil;
+    
+    if (CSCCharacteristic)
+    {
+        if (CSCCharacteristic.isNotifying)
+        {
+            [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:CSC_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:CSC_CHARACTERISTIC_UUID] descriptor:nil operation:STOP_NOTIFY];
+            [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:CSCCharacteristic];
+        }
+    }
+}
+
+#pragma mark - CBCharacteristicManager delegate
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:CSC_SERVICE_UUID])
+    {
+        for (CBCharacteristic *aChar in service.characteristics)
+        {
+            // Checking for the required characteristic
+            if ([aChar.UUID isEqual:CSC_CHARACTERISTIC_UUID])
+            {
+                CSCCharacteristic = aChar ;
+                cbCharacteristicDiscoverHandler(YES,nil);
+            }
+        }
+        cbCharacteristicDiscoverHandler(NO,error);
+
+    }
+    else
+    {
+        cbCharacteristicDiscoverHandler(NO,error);
+    }
+    
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if ([characteristic.UUID isEqual:CSC_CHARACTERISTIC_UUID])
+    {
+        if(error == nil)
+        {
+            [self getCSCData:characteristic]; // Parse the data received from the characteristic
+            cbCharacteristicHandler(YES,nil);
+        }
+        else
+        {
+            cbCharacteristicHandler(NO,error);
+        }
+    }
+}
+
+
+/*!
+ *  @method getCSCData:
+ *
+ *  @discussion  Method to parse the characteristic value. The CSC Measurement characteristic (CSC refers to Cycling Speed and Cadence) is a variable length structure containing a Flags field and, based on the contents of the Flags field, may contain one or more additional fields.
+ *
+ */
+
+-(void) getCSCData:(CBCharacteristic *)characteristic
+{
+    NSData *data =[characteristic value];
+    const uint8_t *reportData = [data bytes];
+    
+    int bitPosition = 1;
+    // Checking Cumulative Wheel Revolutions present
+    
+    if ((reportData[0] & 0x01) == 1)
+    {
+        // Cumulative Wheel Revolutions present
+        uint32_t  wheelRevolutionsCount = (uint32_t)CFSwapInt32LittleToHost(*(uint32_t *)&reportData[bitPosition]);
+        bitPosition += 6;
+        
+        if (wheelRevolutionsCount)
+        {
+            self.coveredDistance = (float)wheelRevolutionsCount * WHEEL_CIRCUMFERENCE;
+        }
+    }
+  
+    if ((reportData[0] & 0x02) > 0)
+    {
+        // Cumulative Crank Revolutions present
+        uint16_t CrankRevolutionsCount = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[bitPosition]));
+        bitPosition += 2;
+        
+        uint16_t LastEvent = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[bitPosition]));
+        [self calculateRPMForCrankrevolutions:CrankRevolutionsCount eventTime:LastEvent];
+    }
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:CSC_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:CSC_CHARACTERISTIC_UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+
+}
+
+/*!
+ *  @method calculateRPMForCrankrevolutions: eventTime:
+ *
+ *  @discussion Method to calculate rpm from crank revolutions
+ *
+ */
+-(void) calculateRPMForCrankrevolutions:(float)currentRevolution eventTime:(float)lastEventTime
+{
+    
+    if (lastEventTime == previousEventTime)
+    {
+        return;
+    }
+    
+    if (previousEventTime == 0.0 && previousRevolution == 0.0)
+    {
+        previousEventTime = lastEventTime;
+        previousRevolution = currentRevolution;
+    }
+    else
+    {
+        float timeDelta, rpm;
+        if (lastEventTime > previousEventTime)
+        {
+            timeDelta = (lastEventTime - previousEventTime)/1024.0;
+        }
+        else
+            timeDelta = ((65535.0 + lastEventTime) - previousEventTime)/1024.0;
+        
+        rpm = (currentRevolution - previousRevolution) * (60.0 / timeDelta);
+        
+        if (rpm > 0.0)
+        {
+            cadence = (int) rpm;
+        }
+        
+        previousEventTime = lastEventTime;
+        previousRevolution = currentRevolution;
+    }
+}
+
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/DevieInformationModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/DevieInformationModel.h
new file mode 100644
index 0000000..d4d3350
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/DevieInformationModel.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+
+@interface DevieInformationModel : NSObject
+
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler;
+-(void) discoverCharacteristicValues:(void(^)(BOOL success, NSError *error))handler;
+
+
+// Device details
+/*!
+ *  @property deviceInfoCharValueDictionary
+ *
+ *  @discussion Dictionary contains the basic informations of service characteristic
+ *
+ */
+@property(nonatomic,retain) NSMutableDictionary *deviceInfoCharValueDictionary;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/DevieInformationModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/DevieInformationModel.m
new file mode 100644
index 0000000..6e2844d
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/DevieInformationModel.m
@@ -0,0 +1,264 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import "DevieInformationModel.h"
+#import "CBMoralManager.h"
+#import "Constants.h"
+#import "Utilities.h"
+
+/*!
+ *  @class DevieInformationModel
+ *
+ *  @discussion Class to handle the device information service related operations
+ *
+ */
+
+@interface DevieInformationModel ()<cbCharacteristicManagerDelegate>
+{
+    void(^cbCharacteristicDiscoverHandler)(BOOL success, NSError *error);
+    void(^cbCharacteristicHandler)(BOOL success, NSError *error);
+    
+    NSArray *deviceInfoCharArray;
+    int charCount;
+}
+
+@end
+
+
+@implementation DevieInformationModel
+
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+        
+        if (!_deviceInfoCharValueDictionary)
+        {
+            _deviceInfoCharValueDictionary = [NSMutableDictionary dictionary];
+        }
+        charCount = 0;
+    }
+    return self;
+}
+
+
+/*!
+ *  @method startDiscoverChar:
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicDiscoverHandler = handler;
+    
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+    
+}
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+
+
+-(void) discoverCharacteristicValues:(void(^)(BOOL success, NSError *error))handler
+{
+    cbCharacteristicHandler = handler;
+    
+    for (CBCharacteristic *aChar in deviceInfoCharArray)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:DEVICE_INFO_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:aChar.UUID] descriptor:nil operation:READ_REQUEST];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:aChar];
+    }
+}
+
+
+
+#pragma mark - CBCharacteristic manager delegate
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:DEVICE_INFO_SERVICE_UUID])
+    {
+        deviceInfoCharArray = service.characteristics;
+        cbCharacteristicDiscoverHandler(YES,nil);
+    }
+    else
+    {
+        cbCharacteristicDiscoverHandler(NO,error);
+    }
+}
+
+/*!
+ *  @method didUpdateValueForCharacteristic:
+ *
+ *  @discussion  Method to get the basic information from the characteristic
+ */
+
+
+-(void) peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    NSData *charData = characteristic.value;
+    
+    /* Read the name of the manufacturer of the device from characteristic
+     */
+    if ([characteristic.UUID isEqual:DEVICE_MANUFACTURER_NAME_CHARACTERISTIC_UUID])
+    {
+         NSString *manufactureName = [[NSString alloc] initWithData:charData encoding:NSUTF8StringEncoding];
+        
+        if (manufactureName != nil)
+        {
+            [_deviceInfoCharValueDictionary setObject:manufactureName forKey:MANUFACTURER_NAME];
+        }
+    }
+    /* Read the model number that is assigned by the device vendor from characteristic
+     */
+    else if ([characteristic.UUID isEqual:DEVICE_MODEL_NUMBER_CHARACTERISTIC_UUID])
+    {
+        NSString *modelNumberString = [[NSString alloc] initWithData:charData encoding:NSUTF8StringEncoding];
+        
+        if (modelNumberString != nil)
+        {
+            [_deviceInfoCharValueDictionary setObject:modelNumberString forKey:MODEL_NUMBER];
+        }
+    }
+    /* Read the serial number for a particular instance of the device from characteristic
+     */
+    else if ([characteristic.UUID isEqual:DEVICE_SERIAL_NUMBER_CHARACTERISTIC_UUID])
+    {
+        NSString *serialNumberString = [[NSString alloc] initWithData:charData encoding:NSUTF8StringEncoding];
+        
+        if (serialNumberString != nil)
+        {
+            [_deviceInfoCharValueDictionary setObject:serialNumberString forKey:SERIAL_NUMBER];
+        }
+    }
+    /* Read the hardware revision for the hardware within the device from characteristic
+     */
+    else if ([characteristic.UUID isEqual:DEVICE_HARDWARE_REVISION_CHARACTERISTIC_UUID])
+    {
+        NSString *hardwareRevisionString = [[NSString alloc] initWithData:charData encoding:NSUTF8StringEncoding];
+        
+        if (hardwareRevisionString != nil)
+        {
+            [_deviceInfoCharValueDictionary setObject:hardwareRevisionString forKey:HARDWARE_REVISION];
+        }
+    }
+    else if ([characteristic.UUID isEqual:DEVICE_FIRMWARE_REVISION_CHARACTERISTIC_UUID])
+    {
+        NSString *firmwareRevisionString = [[NSString alloc] initWithData:charData encoding:NSUTF8StringEncoding];
+        
+        if (firmwareRevisionString != nil)
+        {
+            [_deviceInfoCharValueDictionary setObject:firmwareRevisionString forKey:FIRMWARE_REVISION];
+        }
+    }
+    /* Read the software revision for the software within the device from characteristic
+     */
+    else if ([characteristic.UUID isEqual:DEVICE_SOFTWARE_REVISION_CHARACTERISTIC_UUID])
+    {
+        
+        NSString *softwareRevisionString = [[NSString alloc] initWithData:charData encoding:NSUTF8StringEncoding];
+        
+        if (softwareRevisionString != nil)
+        {
+            [_deviceInfoCharValueDictionary setObject:softwareRevisionString forKey:SOFTWARE_REVISION];
+        }
+    }
+    /* Read a structure containing an Organizationally Unique Identifier (OUI) followed by a manufacturer-defined identifier and is unique for each individual instance of the product from characteristic
+     */
+    else if ([characteristic.UUID isEqual:DEVICE_SYSTEMID_CHARACTERISTIC_UUID])
+    {
+        
+        NSString *systemID = [NSString stringWithFormat:@"%@",characteristic.value];
+        
+        if (systemID != nil)
+        {
+            [_deviceInfoCharValueDictionary setObject:systemID forKey:SYSTEM_ID];
+        }
+
+    }
+    /* Read the regulatory and certification information for the product in a list defined in IEEE 11073-20601 from characteristic
+     */
+    else if ([characteristic.UUID isEqual:DEVICE_CERTIFICATION_DATALIST_CHARACTERISTIC_UUID])
+    {
+        
+        NSString *certificationDataList = [NSString stringWithFormat:@"%@",charData];
+        
+        if (certificationDataList != nil)
+        {
+            [_deviceInfoCharValueDictionary setObject:certificationDataList forKey:REGULATORY_CERTIFICATION_DATA_LIST];
+        }
+    }
+    /* Read a set of values used to create a device ID value that is unique for this device from characteristic
+     */
+    else if ([characteristic.UUID isEqual:DEVICE_PNPID_CHARACTERISTIC_UUID])
+    {
+        
+        NSString *pnpID = [NSString stringWithFormat:@"%@",characteristic.value];
+        
+        if (pnpID != nil)
+        {
+            [_deviceInfoCharValueDictionary setObject:pnpID forKey:PNP_ID];
+
+        }
+    }
+    else
+    {
+        NSLog(@"Unknown characteristic");
+    }
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:DEVICE_INFO_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:charData]]];
+    
+    charCount ++;
+    
+    if (charCount == deviceInfoCharArray.count)
+    {
+        cbCharacteristicHandler(YES,nil);
+    }
+    
+}
+
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/FindMeModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/FindMeModel.h
new file mode 100644
index 0000000..545f746
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/FindMeModel.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+#import "CBMoralManager.h"
+
+
+@interface FindMeModel : NSObject
+
+/*!
+ *  @property isTransmissionPowerPresent
+ *
+ *  @discussion BOOL value idicates the presence of TransmissionPower
+ *
+ */
+@property(nonatomic) BOOL isTransmissionPowerPresent;
+
+/*!
+ *  @property isLinkLossServicePresent
+ *
+ *  @discussion BOOL value idicates the presence of LinkLoss
+ *
+ */
+@property(nonatomic) BOOL isLinkLossServicePresent;
+
+/*!
+ *  @property isImmediateAlertServicePresent
+ *
+ *  @discussion BOOL value idicates the presence of ImmediateAlert
+ *
+ */
+@property(nonatomic) BOOL isImmediateAlertServicePresent;
+
+/*!
+ *  @property transmissionPowerValue
+ *
+ *  @discussion float value hold the power value
+ *
+ */
+
+@property(nonatomic) float transmissionPowerValue;
+
+/*!
+ *  @property immediateAlertCharacteristic
+ *
+ *  @discussion characteristic for immediate alert
+ *
+ */
+@property (nonatomic) CBCharacteristic *immediateAlertCharacteristic;
+
+-(void)startDiscoverCharacteristicsForService:(CBService *)serviceUUID withCompletionHandler:(void (^) (CBService *foundService, BOOL success, NSError *error))handler;
+
+-(void)updateProximityCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)updateLinkLossCharacteristicValue:(enum alertOptions)option WithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)updateImmedieteALertCharacteristicValue:(enum alertOptions)option WithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)stopUpdate;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/FindMeModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/FindMeModel.m
new file mode 100644
index 0000000..b8761b8
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/FindMeModel.m
@@ -0,0 +1,293 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import "FindMeModel.h"
+
+/*!
+ *  @class FindMeModel
+ *
+ *  @discussion Class to handle the link loss, immediete alert and transmission power related operations
+ *
+ */
+
+@interface FindMeModel ()<cbCharacteristicManagerDelegate>
+{
+    void(^cbCharacteristicDiscoverHandler)(CBService *foundService,BOOL success, NSError *error);
+    void(^cbTransmissionPowerCharacteristicHandler)(BOOL success, NSError *error);
+    void(^cbLinkLossCharacteristicHandler)(BOOL success, NSError *error);
+    void(^cbImmedieteAlertCharacteristicHandler)(BOOL success, NSError *error);
+    
+    CBCharacteristic *transmissionPowerCharacteristic;
+    CBCharacteristic *linkLossCharacteristic;
+
+}
+
+@end
+
+
+
+@implementation FindMeModel
+
+/*!
+ *  @method startDiscoverChar:
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+
+
+-(void)startDiscoverCharacteristicsForService:(CBService *)service withCompletionHandler:(void (^) (CBService *foundService,BOOL success, NSError *error))handler
+{
+    cbCharacteristicDiscoverHandler = handler;
+    
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:service];;
+}
+
+/*!
+ *  @method updateProximityCharacteristicWithHandler:WithHandler
+ *
+ *  @discussion Write value to a specified characteristic.
+ */
+
+-(void)updateProximityCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbTransmissionPowerCharacteristicHandler = handler;
+    [self logFindMeDataWithService:transmissionPowerCharacteristic.service characteristic:transmissionPowerCharacteristic data:READ_REQUEST];
+    
+    [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:transmissionPowerCharacteristic];
+}
+
+/*!
+ *  @method updateLinkLossCharacteristicValue:WithHandler
+ *
+ *  @discussion Write value to a specified characteristic.
+ */
+
+-(void)updateLinkLossCharacteristicValue:(enum alertOptions)option WithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbLinkLossCharacteristicHandler = handler;
+    
+    uint8_t val = option; // The value which you want to write.
+    NSData* valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)];
+    
+    [self logFindMeDataWithService:linkLossCharacteristic.service characteristic:linkLossCharacteristic data:[NSString stringWithFormat:@"%@%@ %@",WRITE_REQUEST,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:valData]]];
+
+    [[[CBMoralManager sharedManager] myPeripheral] writeValue:valData forCharacteristic:linkLossCharacteristic type:CBCharacteristicWriteWithResponse];
+}
+
+/*!
+ *  @method updateImmedieteALertCharacteristicValue:WithHandler
+ *
+ *  @discussion Write value to a specified characteristic.
+ */
+
+-(void)updateImmedieteALertCharacteristicValue:(enum alertOptions)option WithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbImmedieteAlertCharacteristicHandler = handler;
+
+    uint8_t val = option; // The value which you want to write.
+    NSData* valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)];
+    
+    [[[CBMoralManager sharedManager] myPeripheral] writeValue:valData forCharacteristic:_immediateAlertCharacteristic type:CBCharacteristicWriteWithoutResponse];
+    [self logFindMeDataWithService:_immediateAlertCharacteristic.service characteristic:_immediateAlertCharacteristic data:[NSString stringWithFormat:@"%@%@ %@",WRITE_REQUEST,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:valData]]];
+    
+    cbImmedieteAlertCharacteristicHandler(YES,nil);
+}
+
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Stop notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)stopUpdate
+{
+    cbTransmissionPowerCharacteristicHandler = nil;
+    cbLinkLossCharacteristicHandler = nil;
+    cbImmedieteAlertCharacteristicHandler = nil;
+}
+
+
+#pragma mark - CBCharacteristicManagerDelegate
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void) peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:TRANSMISSION_POWER_SERVICE]|[service.UUID isEqual:LINK_LOSS_SERVICE_UUID] | [service.UUID isEqual:IMMEDIATE_ALERT_SERVICE_UUID])
+    {
+        
+        /* Read the Tx Power Level characteristic which represents the current transmit power level of a physical layer from the characteristic .
+         */
+        if ([service.UUID isEqual:TRANSMISSION_POWER_SERVICE])
+        {
+            for (CBCharacteristic *aChar in service.characteristics)
+            {
+                if ([aChar.UUID isEqual:TRANSMISSION_POWER_LEVEL_UUID])
+                {
+                    transmissionPowerCharacteristic = aChar;
+                    _isTransmissionPowerPresent = YES;
+                }
+            }
+        }
+        
+        /*
+         Read the Alert Level from characteristic, which is used to expose the current link loss alert level that is used to determine how the device alerts when the link is lost.
+         */
+        
+        if ([service.UUID isEqual:LINK_LOSS_SERVICE_UUID])
+        {
+            for (CBCharacteristic *aChar in service.characteristics)
+            {
+                if ([aChar.UUID isEqual:ALERT_CHARACTERISTIC_UUID])
+                {
+                    linkLossCharacteristic = aChar;
+                    _isLinkLossServicePresent = YES;
+                }
+            }
+        }
+        
+        /* Read the  Alert Level from characteristic, which is a control point that allows a peer to command this device to alert to a given leve
+         */
+        
+        if ([service.UUID isEqual:IMMEDIATE_ALERT_SERVICE_UUID])
+        {
+            for (CBCharacteristic *aChar in service.characteristics)
+            {
+                if ([aChar.UUID isEqual:ALERT_CHARACTERISTIC_UUID])
+                {
+                    _immediateAlertCharacteristic = aChar;
+                    _isImmediateAlertServicePresent = YES;
+                }
+            }
+        }
+
+        if (_isImmediateAlertServicePresent || _isLinkLossServicePresent || _isTransmissionPowerPresent)
+        {
+            cbCharacteristicDiscoverHandler(service,YES,nil);
+        }
+        else
+        {
+            cbCharacteristicDiscoverHandler(service, NO,error);
+        }
+        
+    }
+    else
+        cbCharacteristicDiscoverHandler(service,NO,error);
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes
+ *
+ */
+
+-(void) peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if ([characteristic.UUID isEqual:transmissionPowerCharacteristic.UUID])
+    {
+        NSData *data = [characteristic value];
+        SInt8 *dataPointer = (SInt8 *)[data bytes];
+        
+        _transmissionPowerValue = dataPointer[0];
+        
+        // Data logging
+        [self logFindMeDataWithService:transmissionPowerCharacteristic.service characteristic:transmissionPowerCharacteristic data:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+        
+        if (cbTransmissionPowerCharacteristicHandler != nil)
+        {
+            cbTransmissionPowerCharacteristicHandler(YES,nil);
+        }
+        
+        [self logFindMeDataWithService:transmissionPowerCharacteristic.service characteristic:transmissionPowerCharacteristic data:READ_REQUEST];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:transmissionPowerCharacteristic];
+
+    }
+    else if ([characteristic.UUID isEqual:_immediateAlertCharacteristic.UUID])
+    {
+        
+    }
+    else
+    {
+        if (cbTransmissionPowerCharacteristicHandler != nil)
+        {
+            cbTransmissionPowerCharacteristicHandler(NO,nil);
+        }
+    }
+}
+
+/*!
+ *  @method peripheral: didWriteValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when write value to the device with response
+ *
+ */
+
+-(void) peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if ([characteristic.UUID isEqual:linkLossCharacteristic.UUID])
+    {
+        if (error == nil)
+        {
+            [self logFindMeDataWithService:linkLossCharacteristic.service characteristic:linkLossCharacteristic data:[NSString stringWithFormat:@"%@- %@",WRITE_REQUEST_STATUS,WRITE_SUCCESS]];
+            cbLinkLossCharacteristicHandler(YES,nil);
+            
+        }
+        else
+        {
+            [self logFindMeDataWithService:linkLossCharacteristic.service characteristic:linkLossCharacteristic data:[NSString stringWithFormat:@"%@- %@%@",WRITE_REQUEST_STATUS,WRITE_ERROR,[error.userInfo objectForKey:NSLocalizedDescriptionKey]]];
+            cbLinkLossCharacteristicHandler(NO,error);
+            
+        }
+    }
+}
+
+/*!
+ *  @method logFindMeDataWithService: characteristic: data:
+ *
+ *  @discussion Method to log details of various operations
+ *
+ */
+-(void) logFindMeDataWithService:(CBService *)service characteristic:(CBCharacteristic *)characteristic data:(NSString *)dataString
+{
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:dataString];
+}
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/GlucoseModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/GlucoseModel.h
new file mode 100644
index 0000000..e3d1256
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/GlucoseModel.h
@@ -0,0 +1,85 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+
+@interface GlucoseModel : NSObject
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler;
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)stopUpdate;
+
+
+/*!
+ *  @property timeString
+ *
+ *  @discussion  time get from the peripheral
+ *
+ */
+@property(nonatomic,retain) NSString *timeString;
+
+
+/*!
+ *  @property concentrationUnitString
+ *
+ *  @discussion  unit of glucose concentration
+ *
+ */
+@property(nonatomic,retain) NSString *concentrationUnitString;
+
+
+/*!
+ *  @property glucoseConcentrationValue
+ *
+ *  @discussion Value of Glucose Concentration
+ *
+ */
+@property(nonatomic) float glucoseConcentrationValue;
+
+
+/*!
+ *  @property sensorLocation
+ *
+ *  @discussion Value of sample location
+ *
+ */
+@property(nonatomic,retain) NSString *sampleLocation;
+
+/*!
+ *  @property type
+ *
+ *  @discussion Value of Sample type
+ *
+ */
+@property(nonatomic,retain) NSString *type;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/GlucoseModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/GlucoseModel.m
new file mode 100644
index 0000000..53b8b01
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/GlucoseModel.m
@@ -0,0 +1,358 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import "GlucoseModel.h"
+#import "CBMoralManager.h"
+#import "Constants.h"
+
+/*!
+ *  @class GlucoseModel
+ *
+ *  @discussion Class to handle the glucose service related operations
+ *
+ */
+
+@interface GlucoseModel () <cbCharacteristicManagerDelegate>
+
+@end
+
+@implementation GlucoseModel
+{
+    void(^cbCharacteristicHandler)(BOOL success, NSError *error);
+    void(^cbcharacteristicDiscoverHandler)(BOOL success, NSError *error);
+    
+    CBCharacteristic *glucoseMeasurementChar;
+}
+
+
+/*!
+ *  @method startDiscoverChar:
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler
+{
+    cbcharacteristicDiscoverHandler = handler;
+    
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+}
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicHandler = handler;
+    
+    if (glucoseMeasurementChar)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:GLUCOSE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:GLUCOSE_MEASUREMENT_CHARACTERISTIC_UUID] descriptor:nil operation:START_NOTIFY];
+
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:glucoseMeasurementChar];
+    }
+}
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Stop notifications or indications for the value of a specified characteristic.
+ */
+
+
+-(void) stopUpdate
+{
+    if (glucoseMeasurementChar)
+    {
+        if (glucoseMeasurementChar.isNotifying)
+        {
+            [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:GLUCOSE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:GLUCOSE_MEASUREMENT_CHARACTERISTIC_UUID] descriptor:nil operation:STOP_NOTIFY];
+            [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:glucoseMeasurementChar];
+        }
+    }
+}
+
+
+
+
+#pragma mark - CBCharacteristicManager delegate
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:GLUCOSE_SERVICE_UUID])
+    {
+        for (CBCharacteristic *aChar in service.characteristics)
+        {
+            // Check for the required characteristic
+            if ([aChar.UUID isEqual:GLUCOSE_MEASUREMENT_CHARACTERISTIC_UUID])
+            {
+                glucoseMeasurementChar = aChar;
+                cbcharacteristicDiscoverHandler(YES,nil);
+            }
+        }
+    }
+    else
+    {
+        cbcharacteristicDiscoverHandler(NO,error);
+    }
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if ([characteristic.UUID isEqual:GLUCOSE_MEASUREMENT_CHARACTERISTIC_UUID])
+    {
+        if (error == nil)
+        {
+            [self getGlucoseData:characteristic];
+            cbCharacteristicHandler(YES,nil);
+        }
+        else
+        {
+            cbCharacteristicHandler(NO,error);
+        }
+    }
+}
+
+/*!
+ *  @method getGlucoseData:
+ *
+ *  @discussion  Instance method to parse the data received from the peripheral
+ */
+
+-(void) getGlucoseData:(CBCharacteristic *)characteristic
+{
+    NSData *charData = [characteristic value];
+    uint8_t *dataPointer = (uint8_t *)[charData bytes];
+    uint8_t flags = dataPointer[0];
+    
+    if (flags & 0x01)
+    {
+        // Time stamp data is present
+        
+        dataPointer+=2;
+        
+        uint16_t timeStamp = (uint16_t)CFSwapInt16LittleToHost(*((uint16_t *) dataPointer));
+        dataPointer+=2;
+        
+        NSLog(@"timestamp = %hu",timeStamp);
+    }
+    // Checking whether Glucose concentration,type or sample location present
+
+    else if (flags & 0x02)
+    {
+        // Checking Glucose concentration unit
+
+        uint16_t concentrationValue;
+        
+        if (!(flags & 0x04))
+        {
+            // Unit is kg/L
+            
+            _concentrationUnitString = @"kg/L";
+            concentrationValue = (uint16_t )CFSwapInt16LittleToHost(*((uint16_t *) dataPointer));
+            
+            dataPointer +=4;
+        }
+        else
+        {
+            // Unit is mol/L
+            
+            _concentrationUnitString = @"mol/L";
+            dataPointer +=2;
+            concentrationValue = (uint16_t )CFSwapInt16LittleToHost(*((uint16_t *) dataPointer));
+            dataPointer +=2;
+        }
+        
+        _glucoseConcentrationValue = concentrationValue;
+        
+        // Get type
+        
+        uint8_t tempValue = *(uint8_t *)dataPointer;
+        uint8_t typeValue = (tempValue >> 4) & 0x0F;
+        _type = [self getTypeNameForValue:typeValue];
+        
+        // Get sample location
+        
+        uint8_t locationValue = tempValue & 0x0F;
+        _sampleLocation = [self getSampleLocationForValue:locationValue];
+        
+        
+        // Get date
+       
+        dataPointer = (uint8_t *)[charData bytes];
+        dataPointer+=3;
+        uint16_t year = CFSwapInt16LittleToHost(*(uint16_t*)dataPointer); dataPointer += 2;
+        uint8_t month = *(uint8_t*)dataPointer; dataPointer++;
+        uint8_t day = *(uint8_t*)dataPointer; dataPointer++;
+        uint8_t hour = *(uint8_t*)dataPointer; dataPointer++;
+        uint8_t min = *(uint8_t*)dataPointer; dataPointer++;
+        uint8_t sec = *(uint8_t*)dataPointer; dataPointer++;
+        
+        NSString * dateString = [NSString stringWithFormat:@"%d %d %d %d %d %d", year, month, day, hour, min, sec];
+        
+        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
+        [dateFormat setDateFormat: @"yyyy MM dd HH mm ss"];
+        NSDate* date = [dateFormat dateFromString:dateString];
+        
+        /*EEE for day, yyyy for Year, dd for date, MM for month*/
+        
+        [dateFormat setDateFormat:@"yyyy MMM dd"];
+        NSString* dateFormattedString = [dateFormat stringFromDate:date];
+        
+        [dateFormat setDateFormat:@"hh:mm:ss"];
+        NSString* timeFormattedString = [dateFormat stringFromDate:date];
+        
+        
+        if( dateFormattedString && timeFormattedString )
+        {
+            _timeString = [NSString stringWithFormat:@"%@ %@", dateFormattedString, timeFormattedString];
+            NSLog(@"time string = %@",_timeString);
+        }
+        
+    }
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:GLUCOSE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:GLUCOSE_MEASUREMENT_CHARACTERISTIC_UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:charData]]];
+}
+
+
+/*!
+ *  @method getTypeNameForValue:
+ *
+ *  @discussion  Instance method to get the Type Name
+ */
+
+-(NSString *) getTypeNameForValue:(uint8_t)value
+{
+    NSString *typeName = nil;
+    
+    switch (value)
+    {
+        case 0x00:
+            typeName = @"Reserved for future use";
+            break;
+            
+        case 0x01:
+            typeName = @"Capillary Whole blood";
+            break;
+        case 0x02:
+            typeName = @"Capillary Plasma";
+            break;
+        case 0x03:
+            typeName = @"Venous Whole blood";
+            break;
+        case 0x04:
+            typeName = @"Venous Plasma";
+            break;
+        case 0x05:
+            typeName = @"Arterial Whole blood";
+            break;
+        case 0x06:
+            typeName = @"Arterial Plasma";
+            break;
+        case 0x07:
+            typeName = @"Undetermined Whole blood";
+            break;
+        case 0x08:
+            typeName = @"Undetermined Plasma";
+            break;
+        case 0x09:
+            typeName = @"Interstitial Fluid (ISF)";
+            break;
+        case 0x0A:
+            typeName = @"Control Solution";
+            break;
+        default:
+            typeName = @"Reserved for future use";
+            break;
+    }
+    
+    return typeName;
+}
+
+/*!
+ *  @method getSampleLocationForValue:
+ *
+ *  @discussion  Instance method to get the sample location
+ */
+
+-(NSString *) getSampleLocationForValue:(uint8_t)value
+{
+    NSString *locationName = nil;
+    
+    switch (value)
+    {
+        case 0x00:
+            locationName = @"Reserved for future use";
+            break;
+        case 0x01:
+            locationName = @"Finger";
+            break;
+        case 0x02:
+            locationName = @"Alternate Site Test (AST)";
+            break;
+        case 0x03:
+            locationName = @"Earlobe";
+            break;
+        case 0x04:
+            locationName = @"Control solution";
+            break;
+        case 0x0F:
+            locationName = @"Sample Location value not available";
+            break;
+        
+        default:
+            locationName = @" Reserved for future use ";
+            break;
+    }
+    
+    return locationName;
+}
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/HRMModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/HRMModel.h
new file mode 100644
index 0000000..2c0ad9e
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/HRMModel.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import <Foundation/Foundation.h>
+
+@interface HRMModel : NSObject
+
+
+/*!
+ *  @property bpmValue
+ *
+ *  @discussion The format of the Heart Rate Measurement Value
+ *
+ */
+@property(nonatomic,assign)NSInteger bpmValue;
+
+/*!
+ *  @property sensorLocation
+ *
+ *  @discussion The Body Sensor Location characteristic of the device is used to describe the intended location of the heart rate measurement for the device.
+ *
+ */
+@property(nonatomic,retain)NSString *sensorLocation;
+
+/*!
+ *  @property RR_Interval
+ *
+ *  @discussion The RR-Interval value represents the time between two R-Wave detections.
+ *
+ */
+@property(nonatomic,retain)NSString *RR_Interval;
+
+/*!
+ *  @property EnergyExpended
+ *
+ *  @discussion EnergyExpended.
+ *
+ */
+@property(nonatomic,retain)NSString *EnergyExpended;
+
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler;
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)stopUpdate;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/HRMModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/HRMModel.m
new file mode 100644
index 0000000..5843231
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/HRMModel.m
@@ -0,0 +1,347 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import "HRMModel.h"
+#import "CBMoralManager.h"
+
+// Body location
+
+#define OTHER         @"Other"
+#define CHEST         @"Chest"
+#define WRIST         @"Wrist"
+#define FINGER        @"Finger"
+#define HAND          @"Hand"
+#define EAR_LOBE      @"Ear Lobe"
+#define FOOT          @"Foot"
+#define LOCATION_NA   @"Body Location: N/A"
+
+/*!
+ *  @class HRMModel
+ *
+ *  @discussion Class to handle the heart rate measurement service related operations
+ *
+ */
+
+@interface HRMModel()<cbCharacteristicManagerDelegate>
+{
+    void (^cbCharacteristicHandler)(BOOL success, NSError *error);
+    void (^cbCharacteristicDiscoverHandler)(BOOL success, NSError *error);
+
+}
+
+@end
+
+
+@implementation HRMModel
+
+@synthesize bpmValue;
+@synthesize sensorLocation;
+@synthesize RR_Interval;
+@synthesize EnergyExpended;
+
+
+
+
+/*!
+ *  @method startDiscoverChar:
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicDiscoverHandler = handler;
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+    
+}
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicHandler = handler;
+    
+    
+}
+
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Stop notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)stopUpdate
+{
+    cbCharacteristicHandler = nil;
+    if ([[[CBMoralManager sharedManager] myService].UUID isEqual:HRM_HEART_RATE_SERVICE_UUID])
+    {
+        for (CBCharacteristic *aChar in [[CBMoralManager sharedManager] myService].characteristics)
+        {
+            if ([aChar.UUID isEqual:HRM_NOTIFICATIONS_CHARACTERISTIC_UUID])
+            {
+                if (aChar.isNotifying)
+                {
+                    [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO  forCharacteristic:aChar];
+                    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:HRM_HEART_RATE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:HRM_NOTIFICATIONS_CHARACTERISTIC_UUID] descriptor:nil operation:STOP_NOTIFY];
+                }
+                
+                cbCharacteristicDiscoverHandler(YES,nil);
+                break;
+            }
+        }
+    }
+
+    
+}
+
+
+#pragma mark - CBCharecteristicManger
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:HRM_HEART_RATE_SERVICE_UUID]){
+        for (CBCharacteristic *aChar in service.characteristics){
+            if ([aChar.UUID isEqual:HRM_NOTIFICATIONS_CHARACTERISTIC_UUID]){
+                
+                [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:aChar];
+                [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:HRM_HEART_RATE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:HRM_NOTIFICATIONS_CHARACTERISTIC_UUID] descriptor:nil operation:START_NOTIFY];
+                
+                cbCharacteristicDiscoverHandler(YES,nil);
+            }
+            else if([aChar.UUID isEqual:HRM_BODY_LOCATION_CHARACTERISTIC_UUID])
+            {
+                [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:aChar];
+                [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:HRM_HEART_RATE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:HRM_BODY_LOCATION_CHARACTERISTIC_UUID] descriptor:nil operation:READ_REQUEST];
+            }
+        }
+    }
+    
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+     if(error == nil)
+     {
+         if ([characteristic.UUID isEqual:HRM_NOTIFICATIONS_CHARACTERISTIC_UUID])
+         {
+             [self getHeartBPMData:characteristic error:error];
+         }
+         else if ([characteristic.UUID isEqual:HRM_BODY_LOCATION_CHARACTERISTIC_UUID])
+         {
+             [self getBodyLocation:characteristic];
+         }
+             
+        cbCharacteristicHandler(YES,nil);
+
+     }
+     else
+     {
+         cbCharacteristicHandler(NO,error);
+     }
+
+}
+
+
+/*!
+ *  @method getHeartBPMData:error
+ *
+ *  @discussion   Method to get the Heart Rate Measurement Value , Energy Expended, RR-Interval
+ *
+ */
+
+// Instance method to get the heart rate BPM information
+- (void) getHeartBPMData:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    // Get the BPM //
+    // https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml //
+    
+    // Convert the contents of the characteristic value to a data-object //
+    NSData *data = [characteristic value];
+    
+    // Get the byte sequence of the data-object //
+    const uint8_t *reportData = [data bytes];
+    
+    // Initialise the offset variable //
+    NSUInteger offset = 1;
+    // Initialise the bpm variable //
+    uint16_t bpm = 0;
+    
+    
+    // Next, obtain the first byte at index 0 in the array as defined by reportData[0] and mask out all but the 1st bit //
+    // The result returned will either be 0, which means that the 2nd bit is not set, or 1 if it is set //
+    // If the 2nd bit is not set, retrieve the BPM value at the second byte location at index 1 in the array //
+    if ((reportData[0] & 0x01) == 0) {
+        // Retrieve the BPM value for the Heart Rate Monitor
+        bpm = reportData[1];
+        
+        offset = offset + 1; // Plus 1 byte //
+    }
+    else {
+        // If the second bit is set, retrieve the BPM value at second byte location at index 1 in the array and //
+        // convert this to a 16-bit value based on the host���s native byte order //
+        bpm = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[1]));
+        
+        offset =  offset + 2; // Plus 2 bytes //
+    }
+    self.bpmValue = bpm;//[NSString stringWithFormat:@"%d",bpm];
+    
+    
+    
+    // Determine if EE data is present //
+    // If the 3rd bit of the first byte is 1 this means there is EE data //
+    // If so, increase offset with 2 bytes //
+    if (reportData[0] & 0x08)
+    {
+        uint16_t expendedEnergy = 0;
+        expendedEnergy = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[offset]));
+        offset =  offset + 2; // Plus 2 bytes //
+        self.EnergyExpended = [NSString stringWithFormat:@"%d",expendedEnergy];
+    }
+    else
+    {
+        self.EnergyExpended = @"0";
+    }
+    
+    
+    
+    // Determine if RR-interval data is present //
+    // If the 4th bit of the first byte is 1 this means there is RR data //
+    if (reportData[0] & 0x10)
+    {
+    
+        // The number of RR-interval values is total bytes left / 2 (size of uint16) //
+        
+        NSUInteger length = [data length];
+        NSUInteger count = (length - offset)/2;
+        uint16_t RRinterval = 0 ;
+        for (int i = 0; i < count; i++) {
+            
+            // The unit for RR interval is 1/1024 seconds //
+            RRinterval = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[offset]));
+            RRinterval = ((double)RRinterval / 1024.0 ) * 1000.0;
+            offset = offset + 2; // Plus 2 bytes //
+            self.RR_Interval = [NSString stringWithFormat:@"%d",RRinterval];
+
+            
+        }
+        
+        
+    }
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:HRM_HEART_RATE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:HRM_NOTIFICATIONS_CHARACTERISTIC_UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+
+}
+
+/*!
+ *  @method getSensorContactStatus:
+ *
+ *  @discussion   Instance method to get the body location of the device is available or not
+ *
+ */
+
+-(BOOL)getSensorContactStatus:(CBCharacteristic *)characteristic
+{
+    
+    NSData *data = [characteristic value];      // 1
+    const uint8_t *reportData = [data bytes];
+    if((reportData[0] & 0x02) == 4)
+        return YES;
+    return NO;
+}
+
+/*!
+ *  @method getBodyLocation:
+ *
+ *  @discussion   Instance method to get the body location of the device
+ *
+ */
+//
+- (void) getBodyLocation:(CBCharacteristic *)characteristic
+{
+    NSData *sensorData = [characteristic value];
+    uint8_t *bodyData = (uint8_t *)[sensorData bytes];
+    if (bodyData ) {
+        uint8_t bodyLocation = bodyData[0];
+        NSString *Sensloc = @"";
+        switch (bodyLocation)
+        {
+            case 0:
+                Sensloc = OTHER; break;
+            case 1:
+                Sensloc = CHEST; break;
+            case 2:
+                Sensloc = WRIST; break;
+            case 3:
+                Sensloc = FINGER; break;
+            case 4:
+                Sensloc = HAND; break;
+            case 5:
+                Sensloc = EAR_LOBE; break;
+            case 6:
+                Sensloc = FOOT; break;
+            default:
+                break;
+        }
+        self.sensorLocation = Sensloc;
+    }
+    else {
+        self.sensorLocation = LOCATION_NA;
+    }
+    
+     [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:sensorData]]];
+}
+
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RGBModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RGBModel.h
new file mode 100644
index 0000000..1f32e00
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RGBModel.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import <Foundation/Foundation.h>
+
+@interface RGBModel : NSObject
+
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)writeColor:(NSInteger)rColor BColor:(NSInteger)bColor GColor:(NSInteger)gColor Intensity:(NSInteger)lIntensity With:(void (^) (BOOL success, NSError *error))handler;
+-(void)stopUpdate;
+
+
+/*!
+ *  @property redColor
+ *
+ *  @discussion // 1.0, 0.0, 0.0 RGB
+ *
+ */
+@property (nonatomic , assign ) NSInteger redColor;
+
+/*!
+ *  @property greenColor
+ *
+ *  @discussion // 0.0, 1.0, 0.0 RGB
+ *
+ */
+@property (nonatomic , assign ) NSInteger greenColor;
+
+/*!
+ *  @property blueColor
+ *
+ *  @discussion // 0.0, 0.0, 1.0 RGB
+ *
+ */
+@property (nonatomic , assign ) NSInteger blueColor;
+
+/*!
+ *  @property intensity
+ *
+ *  @discussion // intensity of the light
+ *
+ */
+@property (nonatomic , assign ) NSInteger intensity;
+
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RGBModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RGBModel.m
new file mode 100644
index 0000000..956f75d
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RGBModel.m
@@ -0,0 +1,278 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import "RGBModel.h"
+#import "CBMoralManager.h"
+
+/*!
+ *  @class RGBModel
+ *
+ *  @discussion Class to handle the RGB service related operations
+ *
+ */
+
+@interface RGBModel()<cbCharacteristicManagerDelegate>
+{
+    void (^cbCharacteristicHandler)(BOOL success, NSError *error);
+     void (^cbWriteCharacteristicHandler)(BOOL success, NSError *error);
+    CBCharacteristic *RGBCharacteristics;
+    BOOL isWriteSuccess;
+}
+
+@end
+
+@implementation RGBModel
+
+@synthesize  redColor;
+@synthesize  greenColor;
+@synthesize  blueColor;
+@synthesize  intensity;
+
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+        
+        [self startDiscoverChar];
+        
+    }
+    return self;
+}
+
+
+/*!
+ *  @method startDiscoverChar
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+
+-(void)startDiscoverChar
+{
+    isWriteSuccess = YES ;
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    
+    for(CBService *service in [[CBMoralManager sharedManager] myPeripheral].services)
+    {
+        if([service.UUID isEqual:RGB_SERVICE_UUID] || [service.UUID isEqual:CUSTOM_RGB_SERVICE_UUID] )
+        {
+            [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:service];
+        }
+    }
+    
+}
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicHandler = handler;
+
+}
+
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Stop notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)stopUpdate
+{
+    cbCharacteristicHandler = nil;
+    if ([[[CBMoralManager sharedManager] myService].UUID isEqual:RGB_SERVICE_UUID] || [[[CBMoralManager sharedManager] myService].UUID isEqual:CUSTOM_RGB_SERVICE_UUID])
+    {
+        for (CBCharacteristic *aChar in [[CBMoralManager sharedManager] myService].characteristics)
+        {
+            if ([aChar.UUID isEqual:RGB_CHARACTERISTIC_UUID] || [aChar.UUID isEqual:CUSTOM_RGB_CHARACTERISTIC_UUID] )
+            {
+                
+                [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO  forCharacteristic:aChar];
+            }
+        }
+    }
+    
+    
+}
+
+/*!
+ *  @method writeColor:BColor:GColor:Intensity:With
+ *
+ *  @discussion Write RGB colors and current intensity to specified characteristic.
+ */
+
+-(void)writeColor:(NSInteger)rColor BColor:(NSInteger)bColor GColor:(NSInteger)gColor Intensity:(NSInteger)lIntensity With:(void (^) (BOOL success, NSError *error))handler
+{
+    cbWriteCharacteristicHandler = handler ;
+    if(isWriteSuccess && RGBCharacteristics)
+    {
+        
+        self.redColor = rColor ;
+        self.greenColor = gColor;
+        self.blueColor = bColor;
+        self.intensity = lIntensity;
+        
+        uint8_t val[] = {rColor,gColor,bColor,lIntensity}; //enter the value which you want to write.
+
+        NSData *valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)];
+        [[[CBMoralManager sharedManager] myPeripheral] writeValue:valData forCharacteristic:RGBCharacteristics type:CBCharacteristicWriteWithResponse];
+        [self logColourData:valData];
+        isWriteSuccess = NO;
+    }
+}
+
+
+#pragma mark - CBManagerDelagate
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:RGB_SERVICE_UUID] || [service.UUID isEqual:CUSTOM_RGB_SERVICE_UUID])
+    {
+        for (CBCharacteristic *aChar in service.characteristics){
+            if ([aChar.UUID isEqual:RGB_CHARACTERISTIC_UUID] || [aChar.UUID isEqual:CUSTOM_RGB_CHARACTERISTIC_UUID])
+            {
+                
+                RGBCharacteristics = aChar;
+                [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:aChar];
+            }
+            
+        }
+    }
+    
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    [self updateValues:characteristic error:error];
+}
+
+
+/*!
+ *  @method peripheral: didWriteVlueForCharacteristic: error:
+ *
+ *  @discussion Write acknowledgement for RGB colors and intensity to specified characteristic.
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    
+    if(error)
+    {
+        isWriteSuccess = NO ;
+        cbWriteCharacteristicHandler(NO,error);
+    }
+    else
+    {
+        isWriteSuccess = YES ;
+        cbWriteCharacteristicHandler(YES,error);
+    }
+    
+    [self logWriteStatusWithError:error];
+}
+
+/*!
+ *  @method updateValues:error
+ *
+ *  @discussion Initially get value from specified characteristic.
+ */
+
+-(void)updateValues:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if(error == nil)
+    {
+        if (([characteristic.UUID isEqual:RGB_CHARACTERISTIC_UUID] || [characteristic.UUID isEqual:CUSTOM_RGB_CHARACTERISTIC_UUID]) && characteristic.value)
+        {
+            NSData *data = [characteristic value];      // 1
+            const uint8_t *reportData = [data bytes];
+            
+            self.redColor =  reportData[0];
+            self.greenColor =  reportData[1];
+            self.blueColor =  reportData[2];
+            self.intensity =  reportData[3];
+            cbCharacteristicHandler(YES,nil);
+            
+            //RGB Set
+        }
+        else
+        {
+            cbCharacteristicHandler(NO,error);
+        }
+    }
+    else
+    {
+        cbCharacteristicHandler(NO,error);
+    }
+}
+
+/*!
+ *  @method logColourData:
+ *
+ *  @discussion Method to log the colour written to the device
+ *
+ */
+-(void) logColourData:(NSData *)data
+{
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:RGB_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:RGB_CHARACTERISTIC_UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",WRITE_REQUEST,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+    
+}
+
+-(void) logWriteStatusWithError:(NSError *)error
+{
+    if (error == nil)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:RGB_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:RGB_CHARACTERISTIC_UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@- %@",WRITE_REQUEST_STATUS,WRITE_SUCCESS]];
+    }
+    else
+    {
+       [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:RGB_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:RGB_CHARACTERISTIC_UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@- %@%@",WRITE_REQUEST_STATUS,WRITE_ERROR,[error.userInfo objectForKey:NSLocalizedDescriptionKey]]];
+    }
+}
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RSCModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RSCModel.h
new file mode 100644
index 0000000..c7270f9
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RSCModel.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+
+@interface RSCModel : NSObject
+
+/*!
+ *  @property InstantaneousSpeed
+ *
+ *  @discussion Speed at a particular moment, Unit is in m/s with a resolution of 1/256 s.
+    Converted to km/hr  ( m/s *3.6)
+ *
+ */
+@property(nonatomic ,assign )float InstantaneousSpeed;
+
+/*!
+ *  @property InstantaneousCadence
+ *
+ *  @discussion  Unit is in 1/minute (or RPM) with a resolutions of 1 1/min (or 1 RPM)
+ *
+ */
+@property(nonatomic ,assign )float InstantaneousCadence;
+
+/*!
+ *  @property InstantaneousStrideLength
+ *
+ *  @discussion   Unit is in meter with a resolution of 1/100 m (or centimeter).
+ *
+ */
+@property(nonatomic ,assign )float InstantaneousStrideLength;
+
+/*!
+ *  @property TotalDistance
+ *
+ *  @discussion   Unit is in meter with a resolution of 1/10 m (or decimeter).
+ *
+ */
+@property(nonatomic ,assign )float TotalDistance;
+
+/*!
+ *  @property IsWalking
+ *
+ *  @discussion   Walking or Running Status .
+ *
+ */
+@property(nonatomic ,assign )BOOL  IsWalking;
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler;
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)stopUpdate;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RSCModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RSCModel.m
new file mode 100644
index 0000000..4763747
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/RSCModel.m
@@ -0,0 +1,242 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import "RSCModel.h"
+#import "CBMoralManager.h"
+
+/*!
+ *  @class RSCModel
+ *
+ *  @discussion Class to handle the running speed and cadence service related operations
+ *
+ */
+
+@interface RSCModel () <cbCharacteristicManagerDelegate>
+{
+    void (^cbCharacteristicHandler)(BOOL success, NSError *error);
+    void (^cbCharacteristicDiscoverHandler)(BOOL success, NSError *error);
+    CBCharacteristic *RSCCharacter;
+
+}
+
+@end
+
+@implementation RSCModel
+
+
+
+@synthesize InstantaneousSpeed;
+@synthesize InstantaneousCadence;
+@synthesize InstantaneousStrideLength;
+@synthesize TotalDistance;
+
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+
+
+    }
+    return self;
+}
+
+
+/*!
+ *  @method startDiscoverChar:
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+
+
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicDiscoverHandler = handler;
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+
+}
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+
+
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicHandler = handler;
+    if(RSCCharacter)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:RSC_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:RSC_CHARACTERISTIC_UUID] descriptor:nil operation:START_NOTIFY];
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:RSCCharacter];
+    }
+
+    
+}
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Stop notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)stopUpdate
+{
+    cbCharacteristicHandler = nil;
+    if(RSCCharacter)
+    {
+        if (RSCCharacter.isNotifying)
+        {
+            [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:RSC_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:RSC_CHARACTERISTIC_UUID] descriptor:nil operation:STOP_NOTIFY];
+            [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:RSCCharacter];
+        }
+    }
+}
+
+
+#pragma mark - CBCharecteristicManger
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:RSC_SERVICE_UUID]){
+        for (CBCharacteristic *aChar in service.characteristics)
+        {
+            // Checking for required characteristic
+            if ([aChar.UUID isEqual:RSC_CHARACTERISTIC_UUID]){
+                RSCCharacter = aChar ;
+                cbCharacteristicDiscoverHandler(YES,nil);
+            }
+        }
+    }
+    
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes or read value
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if ([characteristic.UUID isEqual:RSC_CHARACTERISTIC_UUID])
+    {
+        if(error == nil)
+        {
+            [self getRSCData:characteristic];
+            cbCharacteristicHandler(YES,nil);
+        }
+        else
+        {
+            cbCharacteristicHandler(NO,error);
+        }
+    }
+}
+
+
+/*!
+ *  @method getRSCData:
+ *
+ *  @discussion   The RSC Measurement characteristic (RSC refers to Running Speed and Cadence) is a variable length structure containing a Flags field, an Instantaneous Speed field and an Instantaneous Cadence field and, based on the contents of the Flags field, may contain a Stride Length field and a Total Distance field.
+ *
+ */
+
+- (void)getRSCData:(CBCharacteristic *)characteristic
+{
+    NSData *data = [characteristic value];      // 1
+    const uint8_t *reportData = [data bytes];
+     NSInteger shiftVal = 1;
+
+    //    Instantaneous Speed ------ Unit is in m/s with a resolution of 1/256 s
+    uint16_t _instantaneousSpeed = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[shiftVal]));
+    //Unit is in m/s with a resolution of 1/256 s
+    //Convert to km/hr  ( m/s *3.6)
+    self.InstantaneousSpeed = 3.6*(_instantaneousSpeed/256.0);
+    
+    shiftVal+=2;
+    
+    //    Instantaneous Cadence ---- Unit is in 1/minute (or RPM) with a resolutions of 1 1/min (or 1 RPM)
+    
+    uint8_t _instantaneousCadence = reportData[shiftVal++];
+    self.InstantaneousCadence = (float)_instantaneousCadence;
+    
+    uint16_t _instantaneousStrideLength = 0;
+    uint32_t _totalDistancePresent = 0;
+    
+    
+   
+    self.InstantaneousStrideLength = 0.0f;
+
+    if ((reportData[0] & 0x01) == 1)
+    {
+        //Instantaneous Stride Length Present
+        // Instantaneous Stride Length ---- Unit is in meter with a resolution of 1/100 m (or centimeter).
+         _instantaneousStrideLength = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[shiftVal]));
+        self.InstantaneousStrideLength = ((float)_instantaneousStrideLength)/100.0f;
+        
+        shiftVal += 2 ;
+    }
+
+    if (reportData[0] & 0x02)
+    {
+        //Total Distance Present
+        // Unit is in meter with a resolution of 1/10 m (or decimeter)
+        _totalDistancePresent =(uint32_t)CFSwapInt32LittleToHost(*(uint32_t*)&reportData[shiftVal]);
+        
+        if (_totalDistancePresent)
+        {
+            self.TotalDistance = _totalDistancePresent/10.0;
+
+        }
+    }
+    
+    if ((reportData[0] & 0x04) == 0)
+    {
+        self.IsWalking = YES ;
+    }
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:RSC_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:RSC_CHARACTERISTIC_UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+    
+}
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/SensorHubModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/SensorHubModel.h
new file mode 100644
index 0000000..e152e08
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/SensorHubModel.h
@@ -0,0 +1,111 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+
+#import <Foundation/Foundation.h>
+#import "CBMoralManager.h"
+
+#import "AccelerometerModel.h"
+#import "BarometerModel.h"
+#import "TemperatureModel.h"
+#import "FindMeModel.h"
+#import "BatteryServiceModel.h"
+
+
+
+@interface SensorHubModel : NSObject
+
+/*!
+ *  @property accelerometer
+ *
+ *  @discussion model class for accelerometer
+ *
+ */
+@property (nonatomic, strong) AccelerometerModel *accelerometer;
+
+/*!
+ *  @property barometer
+ *
+ *  @discussion model class for barometer
+ *
+ */
+
+@property (nonatomic, strong) BarometerModel *barometer;
+
+/*!
+ *  @property temperatureSensor
+ *
+ *  @discussion model class for temperature sensor
+ *
+ */
+
+@property (nonatomic, strong) TemperatureModel *temperatureSensor;
+
+/*!
+ *  @property findMeModel
+ *
+ *  @discussion model class for find me service
+ *
+ */
+
+@property (nonatomic, strong) FindMeModel *findMeModel;
+
+/*!
+ *  @property batteryModel
+ *
+ *  @discussion model class for battery service
+ *
+ */
+@property (nonatomic, strong) BatteryServiceModel *batteryModel;
+
+-(void) startDiscoverBarometerCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void) startDiscoverAccelerometerCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void) startDiscoverTemperatureCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void) startDiscoverBatteryCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler;
+
+
+
+-(void) startUpdateAccelerometerXYZValueswithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void) readValuesForAccelerometerCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler;
+
+
+-(void) startUpdateBarometerPressureValueWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void) readValuesForBarometerCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler;
+
+
+-(void) startUpdateTemperatureValueCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void) readValuesForTemperatureCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler;
+
+-(void) startDiscoverImmediateAlertCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void) stopUpdate;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/SensorHubModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/SensorHubModel.m
new file mode 100644
index 0000000..c820d11
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/SensorHubModel.m
@@ -0,0 +1,416 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+
+#import "SensorHubModel.h"
+#import "Constants.h"
+
+/*!
+ *  @class SensorHubModel
+ *
+ *  @discussion Class to handle and co-ordinate all the sevices associated with sensor hub
+ *
+ */
+
+@interface SensorHubModel () <cbCharacteristicManagerDelegate>
+{
+    NSArray *servicesArray;
+    
+    
+    void(^accelerometerCharactristicDiscoverHandler)(BOOL success, NSError *error);
+    void(^barometerCharactristicDiscoverHandler)(BOOL success, NSError *error);
+    void(^temperatureCharactristicDiscoverHandler)(BOOL success, NSError *error);
+
+    
+    
+    void (^accelerometerXYZcharacteristicHandler)(BOOL success, NSError *error);
+    void (^accelerometerCharacteristicsHandler)(BOOL success, NSError *error);
+    
+    void (^barometerPressureValueUpdationHandler)(BOOL success, NSError *error);
+    void (^barometerCharacteristicsHandler)(BOOL success, NSError *error);
+    
+    void (^temperatureValueUpdationHandler)(BOOL success, NSError *error);
+    void (^temperatureCharacteristicsHandler)(BOOL success, NSError *error);
+
+    void (^immedieteAlertCharacteristicsDiscoverHandler)(BOOL success, NSError *error);
+    void (^batteryServiceCharacteristicsDiscoverHandler)(BOOL success, NSError *error);
+
+}
+
+@end
+
+
+
+@implementation SensorHubModel
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+        
+        [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+        servicesArray = [[CBMoralManager sharedManager] foundServices];
+        
+        _accelerometer = [[AccelerometerModel alloc] init];
+        _barometer = [[BarometerModel alloc] init];
+        _temperatureSensor = [[TemperatureModel alloc] init];
+        _findMeModel = [[FindMeModel alloc] init];
+    }
+    return self;
+}
+
+#pragma mark - Discover service characteristics
+
+/*!
+ *  @method startDiscoverBarometerCharacteristicsWithHandler:
+ *
+ *  @discussion Method to start discover characteristics for barometer service
+ *
+ */
+
+-(void) startDiscoverBarometerCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    barometerCharactristicDiscoverHandler = handler;
+    
+    for (CBService *service in servicesArray)
+    {
+        if ([service.UUID isEqual:BAROMETER_SERVICE_UUID])
+        {
+            [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:service];
+            break;
+        }
+    }
+
+}
+
+/*!
+ *  @method startDiscoverAccelerometerCharacteristicsWithHandler:
+ *
+ *  @discussion Method to start discover characteristics for acclerometer service
+ *
+ */
+-(void) startDiscoverAccelerometerCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    accelerometerCharactristicDiscoverHandler = handler;
+    
+    for (CBService *service in servicesArray)
+    {
+        if ([service.UUID isEqual:ACCELEROMETER_SERVICE_UUID])
+        {
+            [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:service];
+            break;
+        }
+    }
+}
+
+/*!
+ *  @method startDiscoverTemperatureCharacteristicsWithHandler:
+ *
+ *  @discussion Method to start discover characteristics for temperature service
+ *
+ */
+-(void) startDiscoverTemperatureCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    temperatureCharactristicDiscoverHandler = handler;
+    
+    for (CBService *service in servicesArray)
+    {
+        if ([service.UUID isEqual:ANALOG_TEMPERATURE_SERVICE_UUID])
+        {
+            [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:service];
+            break;
+        }
+    }
+
+}
+
+/*!
+ *  @method startDiscoverImmediateAlertCharacteristicsWithHandler:
+ *
+ *  @discussion Method to start discover characteristics for immediate alert service
+ *
+ */
+
+-(void) startDiscoverImmediateAlertCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    immedieteAlertCharacteristicsDiscoverHandler = handler;
+    
+    for (CBService *service in servicesArray)
+    {
+        if ([service.UUID isEqual:IMMEDIATE_ALERT_SERVICE_UUID])
+        {
+            [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:service];
+            break;
+        }
+    }
+}
+
+/*!
+ *  @method startDiscoverBatteryCharacteristicsWithHandler:
+ *
+ *  @discussion Method to start discover characteristics for battery service
+ *
+ */
+-(void) startDiscoverBatteryCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    batteryServiceCharacteristicsDiscoverHandler = handler;
+    
+    for (CBService *service in servicesArray)
+    {
+        if ([service.UUID isEqual:BATTERY_LEVEL_SERVICE_UUID])
+        {
+            [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:service];
+            break;
+        }
+    }
+}
+
+
+#pragma mark - Handling service characteristics
+
+/*!
+ *  @method startUpdateAccelerometerXYZValueswithHandler:
+ *
+ *  @discussion Method to start updating the accelerometer X,Y and Z coordinate values
+ *
+ */
+-(void) startUpdateAccelerometerXYZValueswithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    accelerometerXYZcharacteristicHandler = handler;
+    [_accelerometer updateXYZCharacteristics];
+}
+
+/*!
+ *  @method readValuesForAccelerometerCharacteristicsWithHandler:
+ *
+ *  @discussion Method to handle reading values for accelerometer characteristics
+ *
+ */
+
+-(void) readValuesForAccelerometerCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    accelerometerCharacteristicsHandler = handler;
+    [_accelerometer readAccelerometerCharacteristics];
+}
+
+/*!
+ *  @method startUpdateBarometerPressureValueWithHandler
+ *
+ *  @discussion Method to start updating barometer pressure value reading
+ *
+ */
+
+-(void) startUpdateBarometerPressureValueWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    barometerPressureValueUpdationHandler = handler;
+    [_barometer updateValueForPressure];
+}
+
+
+/*!
+ *  @method readValuesForBarometerCharacteristicsWithHandler:
+ *
+ *  @discussion Method to handle reading values for barometer characteristics
+ *
+ */
+
+-(void) readValuesForBarometerCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    barometerCharacteristicsHandler = handler;
+    [_barometer readValueForCharacteristics];
+}
+
+
+/*!
+ *  @method startUpdateTemperatureValueCharacteristicWithHandler:
+ *
+ *  @discussion Method to start updating temperature reading
+ *
+ */
+
+-(void) startUpdateTemperatureValueCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    temperatureValueUpdationHandler = handler;
+    [_temperatureSensor updateValueForTemperature];
+}
+
+
+/*!
+ *  @method readValuesForTemperatureCharacteristicsWithHandler:
+ *
+ *  @discussion Method to handle reading values for temperature characteristics
+ *
+ */
+
+-(void) readValuesForTemperatureCharacteristicsWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    temperatureCharacteristicsHandler = handler;
+    [_temperatureSensor readValueForTemperatureCharacteristics];
+}
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Method to stop updation of values of different characteristics
+ *
+ */
+
+-(void) stopUpdate
+{
+    accelerometerXYZcharacteristicHandler = nil;
+    [_accelerometer stopUpdate];
+    
+    barometerPressureValueUpdationHandler = nil;
+    [_barometer stopUpdate];
+    
+    temperatureValueUpdationHandler = nil;
+    [_temperatureSensor stopUpdate];
+    
+}
+
+
+
+#pragma mark - CBCharacteristicManagerDelegate
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:ACCELEROMETER_SERVICE_UUID])
+    {
+        [_accelerometer getCharacteristicsForAccelerometerService:service];
+        accelerometerCharactristicDiscoverHandler(YES,nil);
+    }
+    else if ([service.UUID isEqual:BAROMETER_SERVICE_UUID])
+    {
+        [_barometer getCharacteristicsForBarometerService:service];
+        barometerCharactristicDiscoverHandler(YES,nil);
+    }
+    else if ([service.UUID isEqual:ANALOG_TEMPERATURE_SERVICE_UUID])
+    {
+        [_temperatureSensor getCharacteristicsForTemperatureService:service];
+        temperatureCharactristicDiscoverHandler(YES,nil);
+    }
+    else if ([service.UUID isEqual:IMMEDIATE_ALERT_SERVICE_UUID])
+    {
+        for (CBCharacteristic *characteristic in service.characteristics)
+        {
+            if ([characteristic.UUID isEqual:ALERT_CHARACTERISTIC_UUID])
+            {
+                _findMeModel.immediateAlertCharacteristic = characteristic;
+                immedieteAlertCharacteristicsDiscoverHandler(YES,nil);
+            }
+        }
+        
+        immedieteAlertCharacteristicsDiscoverHandler(NO,error);
+    }
+    else if ([service.UUID isEqual:BATTERY_LEVEL_SERVICE_UUID])
+    {
+        for (CBCharacteristic *aChar in service.characteristics)
+        {
+            // Checking for the required characteristic
+            if ([aChar.UUID isEqual:BATTERY_LEVEL_CHARACTERISTIC_UUID])
+            {
+                _batteryModel.batteryCharacterisic = aChar;
+                batteryServiceCharacteristicsDiscoverHandler(YES,nil);
+            }
+            
+        }
+    }
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes or indicated
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if ([characteristic.service.UUID isEqual:ACCELEROMETER_SERVICE_UUID])
+    {
+        if ([characteristic.UUID isEqual:ACCELEROMETER_READING_X_CHARACTERISTIC_UUID] || [characteristic.UUID isEqual:ACCELEROMETER_READING_Y_CHARACTERISTIC_UUID] || [characteristic.UUID isEqual:ACCELEROMETER_READING_Z_CHARACTERISTIC_UUID])
+        {
+            [_accelerometer getXYZValuesWithCharacteristic:characteristic];
+            accelerometerXYZcharacteristicHandler(YES,nil);
+        }
+        else
+        {
+            [_accelerometer getValuesForAcclerometerCharacteristics:characteristic];
+            accelerometerCharacteristicsHandler(YES,nil);
+        }
+        
+    }
+    else if ([characteristic.service.UUID isEqual:BAROMETER_SERVICE_UUID])
+    {
+        
+        if ([characteristic.UUID isEqual:BAROMETER_READING_CHARACTERISTIC_UUID])
+        {
+            [_barometer getValuesForBarometerCharacteristics:characteristic];
+            barometerPressureValueUpdationHandler(YES,nil);
+        }
+        else
+        {
+            [_barometer getValuesForBarometerCharacteristics:characteristic];
+            barometerCharacteristicsHandler(YES,nil);
+        }
+    }
+    else if ([characteristic.service.UUID isEqual:ANALOG_TEMPERATURE_SERVICE_UUID])
+    {
+        if ([characteristic.UUID isEqual:TEMPERATURE_READING_CHARACTERISTIC_UUID])
+        {
+            [_temperatureSensor getValuesForTemperatureCharacteristics:characteristic];
+            temperatureValueUpdationHandler(YES,nil);
+        }
+        else
+        {
+            [_temperatureSensor getValuesForTemperatureCharacteristics:characteristic];
+            temperatureCharacteristicsHandler(YES,nil);
+        }
+    }
+    else if([characteristic.service.UUID isEqual:BATTERY_LEVEL_SERVICE_UUID])
+    {
+        if ([characteristic.UUID isEqual:BATTERY_LEVEL_CHARACTERISTIC_UUID])
+        {
+            [_batteryModel handleBatteryCharacteristicValueWithChar:characteristic];
+        }
+    }
+}
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/TemperatureModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/TemperatureModel.h
new file mode 100644
index 0000000..46986a9
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/TemperatureModel.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+
+#import <Foundation/Foundation.h>
+#import "CBMoralManager.h"
+
+
+@interface TemperatureModel : NSObject
+
+/*!
+ *  @property sensorTypeString
+ *
+ *  @discussion The temperature sensor type
+ *
+ */
+
+
+@property (strong,nonatomic) NSString *sensorTypeString;
+
+/*!
+ *  @property sensorScanIntervalString
+ *
+ *  @discussion The temperature sensor interval
+ *
+ */
+
+@property (strong,nonatomic) NSString *sensorScanIntervalString;
+
+/*!
+ *  @property temperatureValueString
+ *
+ *  @discussion The temperature value
+ *
+ */
+
+@property (strong,nonatomic) NSString *temperatureValueString;
+
+
+-(void) stopUpdate;
+
+-(void) getCharacteristicsForTemperatureService:(CBService *) service;
+-(void) getValuesForTemperatureCharacteristics:(CBCharacteristic *) characteristic;
+-(void) updateValueForTemperature;
+-(void) readValueForTemperatureCharacteristics;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/TemperatureModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/TemperatureModel.m
new file mode 100644
index 0000000..c1c7a6f
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/TemperatureModel.m
@@ -0,0 +1,194 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+
+#import "TemperatureModel.h"
+#import "Constants.h"
+
+/*!
+ *  @class TemperatureModel
+ *
+ *  @discussion Class to handle the temperature service related operations
+ *
+ */
+
+@interface TemperatureModel ()
+{
+    CBCharacteristic *sensorTypeCharacteristic, *sensorScanintervalCharacteristic, *temperatureReadCharacteristic;
+    
+}
+@end
+
+
+@implementation TemperatureModel
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Method to stop update
+ *
+ */
+
+-(void) stopUpdate
+{
+    
+    if (temperatureReadCharacteristic != nil)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:ANALOG_TEMPERATURE_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:temperatureReadCharacteristic.UUID] descriptor:nil operation:STOP_NOTIFY];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:temperatureReadCharacteristic];
+    }
+
+}
+
+/*!
+ *  @method writeValueForTemperatureSensorScanInterval:
+ *
+ *  @discussion Method to write value for temperature scan interval
+ *
+ */
+
+-(void) writeValueForTemperatureSensorScanInterval:(int) newScanInterval
+{
+    uint8_t val = newScanInterval; // The value which you want to write.
+    NSData  *valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)];
+    [[[CBMoralManager sharedManager] myPeripheral] writeValue:valData forCharacteristic:sensorScanintervalCharacteristic type:CBCharacteristicWriteWithoutResponse];
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:sensorScanintervalCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:sensorScanintervalCharacteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",WRITE_REQUEST,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:valData]]];
+}
+
+/*!
+ *  @method getCharacteristicsForTemperatureService:
+ *
+ *  @discussion Method to get characteristics for temperature service
+ *
+ */
+
+-(void) getCharacteristicsForTemperatureService:(CBService *) service
+{
+    for (CBCharacteristic *characteristic in service.characteristics)
+    {
+        if ([characteristic.UUID isEqual:TEMPERATURE_ANALOG_SENSOR_CHARACTERISTIC_UUID])
+        {
+            sensorTypeCharacteristic = characteristic;
+        }
+        else if([characteristic.UUID isEqual:TEMPERATURE_SENSOR_SCAN_INTERVAL_CHARACTERISTIC_UUID])
+        {
+            sensorScanintervalCharacteristic = characteristic;
+        }
+        else if([characteristic.UUID isEqual:TEMPERATURE_READING_CHARACTERISTIC_UUID])
+        {
+            temperatureReadCharacteristic = characteristic;
+        }
+    }
+
+}
+
+/*!
+ *  @method getValuesForTemperatureCharacteristics:
+ *
+ *  @discussion Method to get values for temperature characteristics
+ *
+ */
+
+-(void) getValuesForTemperatureCharacteristics:(CBCharacteristic *) characteristic
+{
+    NSData *dataValue = characteristic.value;
+    const uint8_t *reportData = (uint8_t *)[dataValue bytes];
+    
+    if ([characteristic.UUID isEqual:TEMPERATURE_ANALOG_SENSOR_CHARACTERISTIC_UUID])
+    {
+        _sensorTypeString = [NSString stringWithFormat:@"%d",reportData[0]];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:dataValue]]];
+
+    }
+    else if ([characteristic.UUID isEqual:TEMPERATURE_SENSOR_SCAN_INTERVAL_CHARACTERISTIC_UUID])
+    {
+        _sensorScanIntervalString = [NSString stringWithFormat:@"%d",reportData[0]];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:dataValue]]];
+
+    }
+    else if ([characteristic.UUID isEqual:TEMPERATURE_READING_CHARACTERISTIC_UUID])
+    {
+        double tempValue = CFSwapInt32LittleToHost(*(uint32_t *) &reportData[0]);
+        _temperatureValueString = [NSString stringWithFormat:@"%f",tempValue];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:dataValue]]];
+
+    }
+}
+
+/*!
+ *  @method updateValueForTemperature
+ *
+ *  @discussion Method to set notification for temperature value
+ *
+ */
+-(void) updateValueForTemperature
+{
+    if (temperatureReadCharacteristic != nil)
+    {
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:temperatureReadCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:temperatureReadCharacteristic.UUID] descriptor:nil operation:START_NOTIFY];
+        
+        [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:temperatureReadCharacteristic];
+    }
+}
+
+/*!
+ *  @method readValueFortemperatureCharacteristics
+ *
+ *  @discussion Method to read values for temperature sensor scan interval and sensor type
+ *
+ */
+-(void) readValueForTemperatureCharacteristics
+{
+    
+    if (sensorScanintervalCharacteristic != nil)
+    {
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:sensorScanintervalCharacteristic];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:sensorScanintervalCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:sensorScanintervalCharacteristic.UUID] descriptor:nil operation:READ_REQUEST];
+    }
+    
+    if (sensorTypeCharacteristic != nil)
+    {
+        [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:sensorTypeCharacteristic];
+        
+        [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:sensorTypeCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:sensorTypeCharacteristic.UUID] descriptor:nil operation:READ_REQUEST];
+    }
+    
+}
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/ThermometerModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/ThermometerModel.h
new file mode 100644
index 0000000..a827a78
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/ThermometerModel.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+
+@interface ThermometerModel : NSObject
+
+/*!
+ *  @property tempStringValue
+ *
+ *  @discussion Temperature Measurement Value (Celsius/Fahrenheit)
+ *
+ */
+@property(nonatomic ,retain )NSString* tempStringValue;
+
+/*!
+ *  @property mesurementType
+ *
+ *  @discussion Unit value in Celsius/Fahrenheit.
+ *
+ */
+@property(nonatomic ,retain )NSString* mesurementType;
+
+/*!
+ *  @property timeStampString
+ *
+ *  @discussion Time Stamp.
+ *
+ */
+@property(nonatomic ,retain )NSString* timeStampString;
+
+/*!
+ *  @property tempType
+ *
+ *  @discussion The Temperature Type characteristic is an enumeration that indicates where the temperature was measured.
+ *
+ */
+@property(nonatomic ,retain )NSString* tempType;
+
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler;
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)stopUpdate;
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/ThermometerModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/ThermometerModel.m
new file mode 100644
index 0000000..c74ab33
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/ThermometerModel.m
@@ -0,0 +1,400 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import "ThermometerModel.h"
+#import "CBMoralManager.h"
+
+/*!
+ *  @class ThermometerModel
+ *
+ *  @discussion Class to handle the thermometer service related operations
+ *
+ */
+
+
+@interface ThermometerModel () <cbCharacteristicManagerDelegate>
+{
+    void (^cbCharacteristicHandler)(BOOL success, NSError *error);
+    void (^cbCharacteristicDiscoverHandler)(BOOL success, NSError *error);
+    CBCharacteristic *RSCCharacter;
+    
+}
+
+@end
+
+@implementation ThermometerModel
+
+@synthesize tempStringValue;
+@synthesize mesurementType;
+@synthesize timeStampString;
+@synthesize tempType;
+
+
+- (instancetype)init
+{
+    self = [super init];
+    return self;
+}
+
+
+
+/*!
+ *  @method startDiscoverChar:
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+-(void)startDiscoverChar:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicDiscoverHandler = handler;
+    [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+    
+}
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicHandler = handler;
+    
+    
+}
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion Stop notifications or indications for the value of a specified characteristic.
+ */
+
+
+-(void)stopUpdate
+{
+    cbCharacteristicHandler = nil;
+    
+    if ([[[CBMoralManager sharedManager] myService].UUID isEqual:THM_SERVICE_UUID])
+    {
+        for (CBCharacteristic *aChar in [[CBMoralManager sharedManager] myService].characteristics)
+        {
+            if ([aChar.UUID isEqual:THM_TEMPERATURE_MEASUREMENT_CHARACTERISTIC_UUID]){
+                
+                if (aChar.isNotifying)
+                {
+                    [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO  forCharacteristic:aChar];
+                    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:THM_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:THM_TEMPERATURE_MEASUREMENT_CHARACTERISTIC_UUID] descriptor:nil operation:STOP_INDICATE];
+                }
+                cbCharacteristicDiscoverHandler(YES,nil);
+            }
+        }
+
+    }
+}
+
+
+#pragma mark - CBCharecteristicManger
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:THM_SERVICE_UUID]){
+        for (CBCharacteristic *aChar in service.characteristics){
+            if ([aChar.UUID isEqual:THM_TEMPERATURE_MEASUREMENT_CHARACTERISTIC_UUID]){
+                
+                [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:aChar];
+                
+                [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:THM_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:THM_TEMPERATURE_MEASUREMENT_CHARACTERISTIC_UUID] descriptor:nil operation:START_INDICATE];
+                
+                cbCharacteristicDiscoverHandler(YES,nil);
+            }
+            else if([aChar.UUID isEqual:THM_TEMPERATURE_TYPE_CHARACTERISTIC_UUID])
+            {
+                [[[CBMoralManager sharedManager] myPeripheral] readValueForCharacteristic:aChar];
+                
+                [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:THM_SERVICE_UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:THM_TEMPERATURE_TYPE_CHARACTERISTIC_UUID] descriptor:nil operation:READ_REQUEST];
+            }
+        }
+    }
+    else
+    {
+        cbCharacteristicDiscoverHandler(NO,nil);
+    }
+    
+}
+
+/*!
+ *  @method peripheral: didUpdateValueForCharacteristic: error:
+ *
+ *  @discussion Method invoked when the characteristic value changes
+ *
+ */
+
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    if(error == nil)
+    {
+        if ([characteristic.UUID isEqual:THM_TEMPERATURE_MEASUREMENT_CHARACTERISTIC_UUID] && characteristic.value)
+        {
+            [self getTHMtemp:characteristic];
+        }
+        else if ([characteristic.UUID isEqual:THM_TEMPERATURE_TYPE_CHARACTERISTIC_UUID] && characteristic.value)
+        {
+            [self getTempType:characteristic];
+        }
+        
+        cbCharacteristicHandler(YES,nil);
+        
+    }
+    else
+    {
+        cbCharacteristicHandler(NO,error);
+    }
+    
+}
+
+/*!
+ *  @method getTHMtemp:
+ *
+ *  @discussion   Instance method to get the temperature value
+ *
+ */
+
+
+-(void)getTHMtemp:(CBCharacteristic *)characteristic
+{
+  
+    // Convert the contents of the characteristic value to a data-object //
+    NSData *data = [characteristic value];
+    
+    // Get the byte sequence of the data-object //
+    const uint8_t *reportData = [data bytes];
+    
+    // Initialise the offset variable //
+    NSUInteger offset = 1;
+    // Initialise the bpm variable //
+   
+    if ((reportData[0] & 0x01) == 0) {
+        
+        [self calculateTemperaturefromCharacteristic:characteristic];
+
+        offset = offset + 4; // Plus 4 byte //
+        self.mesurementType = @"��C";
+    }
+    else {
+        
+        [self calculateTemperaturefromCharacteristic:characteristic];
+
+        offset =  offset + 4; // Plus 4 bytes //
+        self.mesurementType = @"��F";
+    }
+    
+    
+    /* timestamp */
+    if( (reportData[0] & 0x02) )
+    {
+        uint16_t year = CFSwapInt16LittleToHost(*(uint16_t*)offset); offset += 2;
+        uint8_t month = *(uint8_t*)offset; offset++;
+        uint8_t day = *(uint8_t*)offset; offset++;
+        uint8_t hour = *(uint8_t*)offset; offset++;
+        uint8_t min = *(uint8_t*)offset; offset++;
+        uint8_t sec = *(uint8_t*)offset; offset++;
+        
+        NSString * dateString = [NSString stringWithFormat:@"%d %d %d %d %d %d", year, month, day, hour, min, sec];
+        
+        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
+        [dateFormat setDateFormat: @"yyyy MM dd HH mm ss"];
+        NSDate* date = [dateFormat dateFromString:dateString];
+        
+        [dateFormat setDateFormat:@"EEE MMM dd, yyyy"];
+        NSString* dateFormattedString = [dateFormat stringFromDate:date];
+        
+        [dateFormat setDateFormat:@"h:mm a"];
+        NSString* timeFormattedString = [dateFormat stringFromDate:date];
+        
+        
+        if( dateFormattedString && timeFormattedString )
+        {
+            self.timeStampString = [NSString stringWithFormat:@"%@ at %@", dateFormattedString, timeFormattedString];
+        }
+    }
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+}
+
+/*!
+ *  @method calculateTemperaturefromCharacteristic
+ *
+ *  @discussion Method to calculate the temperature
+ *
+ */
+
+
+-(void) calculateTemperaturefromCharacteristic:(CBCharacteristic *)characteristic
+{
+    // Convert the contents of the characteristic value to a data-object //
+    NSData *data = [characteristic value];
+    
+    // Get the byte sequence of the data-object //
+    const uint8_t *reportData = [data bytes];
+    
+    unsigned char *commandPacket =  (unsigned char *)malloc(4 * sizeof(unsigned char));
+    
+    reportData++;
+    int32_t tempData ;
+    
+    if (reportData[2] != 0xff)
+    {
+        commandPacket[0] = reportData[0];
+        commandPacket[1] = reportData[1];
+        commandPacket[2] = reportData[2];
+        commandPacket[3] = 0x00;
+    }
+    else
+    {
+        commandPacket[0] = ~ (reportData[0] - 1);
+        commandPacket[1] = ~reportData[1];
+        commandPacket[2] = ~reportData[2];
+        commandPacket[3] = 0x00;
+    }
+    
+    NSData *testData = [NSData dataWithBytes:commandPacket length:4];
+    const uint8_t *re = [testData bytes];
+    tempData = (int32_t)CFSwapInt32LittleToHost(*(uint32_t*)re);
+
+    int8_t exponent = (int8_t)(tempData >> 24);
+    int32_t mantissa = (int32_t)(tempData & 0x00FFFFFF);
+    
+    if( tempData == 0x007FFFFF )
+    {
+        NSLog(@"Invalid temperature value received");
+        return;
+    }
+    
+    float tempValue = (float)(mantissa*pow(10, exponent));
+    
+    if (reportData[2] == 0xff)
+    {
+        tempValue = tempValue * -1;
+    }
+    self.tempStringValue = [NSString stringWithFormat:@"%.1f",(float) tempValue];
+    free(commandPacket);
+
+}
+
+/*!
+ *  @method isTempTypeValid:
+ *
+ *  @discussion   Instance method to check temperature type exist or not
+ *
+ */
+
+-(BOOL)isTempTypeValid:(CBCharacteristic *)characteristic
+{
+    NSData * updatedValue = characteristic.value;
+    uint8_t* dataPointer = (uint8_t*)[updatedValue bytes];
+    
+    uint8_t flags = dataPointer[0];
+    
+     if( flags & 0x04 )
+     {
+         return true;
+     }
+    return false;
+}
+
+/*!
+ *  @method getTempType:
+ *
+ *  @discussion   Instance method to get the Temperature Type characteristic is an enumeration that indicates where the temperature was measured
+ *
+ */
+
+-(void)getTempType:(CBCharacteristic *)characteristic
+{
+    /* temperature type */
+    
+    NSData * updatedValue = characteristic.value;
+    uint8_t* dataPointer = (uint8_t*)[updatedValue bytes];
+    uint8_t type = *(uint8_t*)dataPointer;
+    NSString* location = nil;
+    
+    switch (type)
+    {
+        case 0x01:
+            location = @"Armpit";
+            break;
+        case 0x02:
+            location = @"Body (general)";
+            break;
+        case 0x03:
+            location = @"Ear";
+            break;
+        case 0x04:
+            location = @"Finger";
+            break;
+        case 0x05:
+            location = @"Gastro-intenstinal Tract";
+            break;
+        case 0x06:
+            location = @"Mouth";
+            break;
+        case 0x07:
+            location = @"Rectum";
+            break;
+        case 0x08:
+            location = @"Toe";
+            break;
+        case 0x09:
+            location = @"Tympanum - ear drum";
+            break;
+        default:
+            break;
+    }
+    if (location)
+    {
+        self.tempType = [NSString stringWithFormat:@"%@", location];
+    }
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",READ_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:updatedValue]]];
+}
+
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/capsenseModel.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/capsenseModel.h
new file mode 100644
index 0000000..e58e1f3
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/capsenseModel.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+#import "CBMoralManager.h"
+
+
+@interface capsenseModel : NSObject
+
+/*!
+ *  @property proximityValue
+ *
+ *  @discussion Value for proximity
+ *
+ */
+@property (nonatomic) float proximityValue;
+
+/*!
+ *  @property capsenseButtonCount
+ *
+ *  @discussion The number of capsense buttons
+ *
+ */
+@property (nonatomic) float capsenseButtonCount;
+
+
+/*!
+ *  @property capsenseSliderValue
+ *
+ *  @discussion The value received when the user moves finger on the peripheral
+ *
+ */
+
+@property (nonatomic) float capsenseSliderValue;
+
+
+/*!
+ *  @property capsenseButtonStatusFlag
+ *
+ *  @discussion 16bit falg that shows the status of capsense buttons
+ *
+ */
+
+@property (nonatomic) uint8_t capsenseButtonFirstStatusFlag;
+@property (nonatomic) uint8_t capsenseButtonSecondStatusFlag;
+
+-(void)startDiscoverCharacteristicWithUUID:(CBUUID *)UUID withCompletionHandler:(void (^) (BOOL success,CBService *service, NSError *error))handler;
+
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler;
+-(void)stopUpdate;
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/capsenseModel.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/capsenseModel.m
new file mode 100644
index 0000000..3582aad
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/CharacterModel/capsenseModel.m
@@ -0,0 +1,214 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import "capsenseModel.h"
+#import "Constants.h"
+
+/*!
+ *  @class capsenseModel
+ *
+ *  @discussion Class to handle the capsense service related operations
+ *
+ */
+
+@interface capsenseModel() <cbCharacteristicManagerDelegate>
+{
+    void(^cbCharacteristicDiscoverHandler)(BOOL success,CBService *service, NSError *error);
+    void(^cbCharacteristicHandler)(BOOL success, NSError *error);
+
+    CBUUID *charUUID;
+    CBCharacteristic *capsenseCharacteristic;
+}
+
+@end
+
+@implementation capsenseModel
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self)
+    {
+        [[CBMoralManager sharedManager] setCbCharacteristicDelegate:self];
+    }
+    return self;
+}
+
+
+
+/*!
+ *  @method startDiscoverChar:withCompletionHandler
+ *
+ *  @discussion Discovers the specified characteristics of a service..
+ */
+
+-(void)startDiscoverCharacteristicWithUUID:(CBUUID *)UUID withCompletionHandler:(void (^) (BOOL success,CBService *service, NSError *error))handler
+{
+  
+    cbCharacteristicDiscoverHandler = handler;
+    charUUID = UUID;
+    [[[CBMoralManager sharedManager] myPeripheral] discoverCharacteristics:nil forService:[[CBMoralManager sharedManager] myService]];
+
+}
+
+/*!
+ *  @method updateCharacteristicWithHandler:
+ *
+ *  @discussion Sets notifications or indications for the value of a specified characteristic.
+ */
+
+-(void)updateCharacteristicWithHandler:(void (^) (BOOL success, NSError *error))handler
+{
+    cbCharacteristicHandler = handler;
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:capsenseCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:capsenseCharacteristic.UUID] descriptor:nil operation:START_NOTIFY];
+    [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:YES forCharacteristic:capsenseCharacteristic];
+}
+
+/*!
+ *  @method stopUpdate
+ *
+ *  @discussion stop notifications or indications for the value of a specified characteristic.
+ */
+
+
+-(void)stopUpdate
+{
+    cbCharacteristicHandler = nil;
+    if (capsenseCharacteristic != nil)
+    {
+        if (capsenseCharacteristic.isNotifying)
+        {
+            [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:capsenseCharacteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:capsenseCharacteristic.UUID] descriptor:nil operation:STOP_NOTIFY];
+            [[[CBMoralManager sharedManager] myPeripheral] setNotifyValue:NO forCharacteristic:capsenseCharacteristic];
+
+        }
+    }
+}
+
+
+
+
+
+#pragma mark - CBCharacteristic Manager delegate
+
+/*!
+ *  @method peripheral: didDiscoverCharacteristicsForService: error:
+ *
+ *  @discussion Method invoked when characteristics are discovered for a service
+ *
+ */
+
+-(void) peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
+{
+    if ([service.UUID isEqual:CAPSENSE_SERVICE_UUID] || [service.UUID isEqual:CUSTOM_CAPSENSE_SERVICE_UUID])
+    {
+        if (charUUID == nil && cbCharacteristicDiscoverHandler != nil)
+        {
+            cbCharacteristicDiscoverHandler(YES,service,nil);
+
+        }
+        
+        for (CBCharacteristic *aChar in service.characteristics)
+        {
+            if (charUUID != nil)
+            {
+                // Checking for the required characteristic
+                if ([aChar.UUID isEqual:charUUID])
+                {
+                    capsenseCharacteristic = aChar;
+                    cbCharacteristicDiscoverHandler(YES,nil,nil);
+                }
+            }
+        }
+        cbCharacteristicDiscoverHandler(NO,nil,nil);
+
+    }
+    else
+    {
+        cbCharacteristicDiscoverHandler(NO,nil,nil);
+    }
+}
+
+/*!
+ *  @method didUpdateValueForCharacteristic
+ *
+ *  @discussion Parse the CapSense value from the characteristic.
+ */
+-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
+{
+    
+    NSData *data = characteristic.value;
+    uint8_t *dataPointer = (uint8_t *)[data bytes];
+    
+    /**
+     * Parse the CapSense proximity value from the characteristic
+     */
+    if ([characteristic.UUID isEqual:CAPSENSE_PROXIMITY_CHARACTERISTIC_UUID] || [characteristic.UUID isEqual:CUSTOM_CAPSENSE_PROXIMITY_CHARACTERISTIC_UUID])
+    {
+        uint8_t value = dataPointer[0];
+        _proximityValue = value;
+        cbCharacteristicHandler(YES,nil);
+    }
+    /**
+     * Parse the CapSense slider value from the characteristic
+     */
+    else if ([characteristic.UUID isEqual:CAPSENSE_SLIDER_CHARACTERISTIC_UUID] || [characteristic.UUID isEqual:CUSTOM_CAPSENSE_SLIDER_CHARACTERISTIC_UUID])
+    {
+        uint8_t value = dataPointer[0];
+        
+        _capsenseSliderValue = value;
+        cbCharacteristicHandler(YES,nil);
+    }
+    /**
+     * Parse the CapSense buttons value from the characteristic
+     */
+   
+    else if ([characteristic.UUID isEqual:CAPSENSE_BUTTON_CHARACTERISTIC_UUID] || [characteristic.UUID isEqual:CUSTOM_CAPSENSE_BUTTONS_CHARACTERISTIC_UUID])
+    {
+        uint8_t numberOfButtons = dataPointer[0];
+        _capsenseButtonCount = numberOfButtons;
+        
+        // Getting the 16 bit button status flag        
+        _capsenseButtonFirstStatusFlag = dataPointer[2];
+        _capsenseButtonSecondStatusFlag = dataPointer[1];
+        cbCharacteristicHandler(YES,nil);        
+    }
+    else
+    {
+        cbCharacteristicHandler(NO,error);
+    }
+    
+    [Utilities logDataWithService:[ResourceHandler getServiceNameForUUID:characteristic.service.UUID] characteristic:[ResourceHandler getCharacteristicNameForUUID:characteristic.UUID] descriptor:nil operation:[NSString stringWithFormat:@"%@%@ %@",NOTIFY_RESPONSE,DATA_SEPERATOR,[Utilities convertDataToLoggerFormat:data]]];
+}
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/CharacteristicFormatPList.plist b/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/CharacteristicFormatPList.plist
new file mode 100644
index 0000000..3cca5f4
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/CharacteristicFormatPList.plist
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>0</key>
+	<string>Reserved For Future Use</string>
+	<key>1</key>
+	<string>Boolean</string>
+	<key>2</key>
+	<string>unsigned 2-bit integer</string>
+	<key>3</key>
+	<string>unsigned 4-bit integer</string>
+	<key>4</key>
+	<string>unsigned 8-bit integer</string>
+	<key>5</key>
+	<string>unsigned 12-bit integer</string>
+	<key>6</key>
+	<string>unsigned 16-bit integer</string>
+	<key>7</key>
+	<string>unsigned 24-bit integer</string>
+	<key>8</key>
+	<string>unsigned 32-bit integer</string>
+	<key>9</key>
+	<string>unsigned 48-bit integer</string>
+	<key>10</key>
+	<string>unsigned 64-bit integer</string>
+	<key>11</key>
+	<string>unsigned 128-bit integer</string>
+	<key>12</key>
+	<string>signed 8-bit integer</string>
+	<key>13</key>
+	<string>signed 12-bit integer</string>
+	<key>14</key>
+	<string>signed 16-bit integer</string>
+	<key>15</key>
+	<string>signed 24-bit integer</string>
+	<key>16</key>
+	<string>signed 32-bit integer</string>
+	<key>17</key>
+	<string>signed 48-bit integer</string>
+	<key>18</key>
+	<string>signed 64-bit integer</string>
+	<key>19</key>
+	<string>signed 128-bit integer</string>
+	<key>20</key>
+	<string>IEEE-754 32-bit floating point</string>
+	<key>21</key>
+	<string>IEEE-754 64-bit floating point</string>
+	<key>22</key>
+	<string>IEEE-11073 16-bit SFLOAT</string>
+	<key>23</key>
+	<string>IEEE-11073 32-bit FLOAT</string>
+	<key>24</key>
+	<string>IEEE-20601 format</string>
+	<key>25</key>
+	<string>UTF-8 string</string>
+	<key>26</key>
+	<string>UTF-16 string</string>
+	<key>27</key>
+	<string>Opaque Structure
+</string>
+</dict>
+</plist>
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/CharacteristicUUIDPList.plist b/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/CharacteristicUUIDPList.plist
new file mode 100644
index 0000000..143b322
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/CharacteristicUUIDPList.plist
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>Temperature_Type_Characteristic</key>
+	<string>00002a1d-0000-1000-8000-00805f9b34fb</string>
+	<key>Health_Temperature_Measurement_characterstic</key>
+	<string>00002a1c-0000-1000-8000-00805f9b34fb</string>
+	<key>Battery_Level_characteristic</key>
+	<string>00002a19-0000-1000-8000-00805f9b34fb</string>
+	<key>IEEE_Characteristic</key>
+	<string>00002a2a-0000-1000-8000-00805f9b34fb</string>
+	<key>PNP_ID_Characteristic</key>
+	<string>00002a50-0000-1000-8000-00805f9b34fb</string>
+	<key>Manufacture_Name_Characteristic</key>
+	<string>00002a29-0000-1000-8000-00805f9b34fb</string>
+	<key>Software_revision_characteristic</key>
+	<string>00002a28-0000-1000-8000-00805f9b34fb</string>
+	<key>Hardware_revision_characteristic</key>
+	<string>00002a27-0000-1000-8000-00805f9b34fb</string>
+	<key>Firmware_Revision_characteristic</key>
+	<string>00002a26-0000-1000-8000-00805f9b34fb</string>
+	<key>Seriel_Number_characteristic</key>
+	<string>00002a25-0000-1000-8000-00805f9b34fb</string>
+	<key>Model_Number_Characteristic</key>
+	<string>00002a24-0000-1000-8000-00805f9b34fb</string>
+	<key>System_ID_characteristic</key>
+	<string>00002a23-0000-1000-8000-00805f9b34fb</string>
+	<key>Heart_Rate_MeasureMent_Characteristic</key>
+	<string>00002a37-0000-1000-8000-00805f9b34fb</string>
+	<key>Body_Sensor_Location_Characteristic</key>
+	<string>00002a38-0000-1000-8000-00805f9b34fb</string>
+	<key>Heart_Rate_Control_Point_Characteristic</key>
+	<string>00002a39-0000-1000-8000-00805f9b34fb</string>
+	<key>Temperature_Intermediate_Characteristic</key>
+	<string>00002a1e-0000-1000-8000-00805f9b34fb</string>
+	<key>Temperature_Measurement_Interval_Characteristic</key>
+	<string>00002a21-0000-1000-8000-00805f9b34fb</string>
+	<key>Generic_Access_Service_Characteristic</key>
+	<string>00001800-0000-1000-8000-00805f9b34fb</string>
+	<key>Generic_Attribute_Service_Characteristic</key>
+	<string>00001801-0000-1000-8000-00805f9b34fb</string>
+	<key>Alert_Level_Characteristic</key>
+	<string>00002a06-0000-1000-8000-00805f9b34fb</string>
+	<key>transmission_Power_Level_Characteristic</key>
+	<string>00002a07-0000-1000-8000-00805f9b34fb</string>
+	<key>Capsense_Proximity_Characteristic</key>
+	<string>0000caa1-0000-1000-8000-00805f9b34fb</string>
+	<key>Capsense_Slider_Characteristic</key>
+	<string>0000caa2-0000-1000-8000-00805f9b34fb</string>
+	<key>Capsense_Button_Characteristic</key>
+	<string>0000caa3-0000-1000-8000-00805f9b34fb</string>
+	<key>RGB_LED_Characteristic</key>
+	<string>0000cbb1-0000-1000-8000-00805f9b34fb</string>
+	<key>Glucose_Concentration_Characteristic</key>
+	<string>00002a18-0000-1000-8000-00805f9b34fb</string>
+	<key>Glucose_Measurement_Context_Characteristic</key>
+	<string>00002a34-0000-1000-8000-00805f9b34fb</string>
+	<key>Glucose_Feature_Characteristic</key>
+	<string>00002a51-0000-1000-8000-00805f9b34fb</string>
+	<key>Record_Access_ControlPoint_Characteristic</key>
+	<string>00002a52-0000-1000-8000-00805f9b34fb</string>
+	<key>Blood_Pressure_Measurement_Characteristic</key>
+	<string>00002a35-0000-1000-8000-00805f9b34fb</string>
+	<key>Blood_Intermediete_Cuff_Pressure_Characteristic</key>
+	<string>00002a18-0000-1000-8000-00805f9b34fb</string>
+	<key>Blood_Pressure_Feature_Characteristic</key>
+	<string>00002a49-0000-1000-8000-00805f9b34fb</string>
+	<key>RSC_Measurement_Characteristic</key>
+	<string>00002a53-0000-1000-8000-00805f9b34fb</string>
+	<key>RSC_Feature_Characteristic</key>
+	<string>00002a54-0000-1000-8000-00805f9b34fb</string>
+	<key>SC_Sensor_Location_Characteristic</key>
+	<string>00002a5d-0000-1000-8000-00805f9b34fb</string>
+	<key>SC_Control_Point_Characteristic</key>
+	<string>00002a55-0000-1000-8000-00805f9b34fb</string>
+	<key>CSC_Measurement_Characteristic</key>
+	<string>00002a5b-0000-1000-8000-00805f9b34fb</string>
+	<key>CSC_Feature_Characteristic</key>
+	<string>00002a5c-0000-1000-8000-00805f9b34fb</string>
+	<key>Barometer_Digital_Sensor_Characteristic</key>
+	<string>00040002-0000-1000-8000-00805f9b0131</string>
+	<key>Barometer_Sensor_Scan_Interval_Characteristic</key>
+	<string>00040004-0000-1000-8000-00805f9b0131</string>
+	<key>Barometer_Data_Accumulation_Characteristic</key>
+	<string>00040007-0000-1000-8000-00805f9b0131</string>
+	<key>Barometer_Reading_Characteristic</key>
+	<string>00040009-0000-1000-8000-00805f9b0131</string>
+	<key>Barometer_Threshold_For_Indication_Characteristic</key>
+	<string>0004000d-0000-1000-8000-00805f9b0131</string>
+	<key>Accelerometer_Analog_Sensor_Characteristic</key>
+	<string>00040021-0000-1000-8000-00805f9b0131</string>
+	<key>Accelerometer_Sensor_Scan_Interval_Characteristic</key>
+	<string>00040023-0000-1000-8000-00805f9b0131</string>
+	<key>Accelerometer_Data_Accumulation_Characteristic</key>
+	<string>00040026-0000-1000-8000-00805f9b0131</string>
+	<key>Accelerometer_Reading_X_Characteristic</key>
+	<string>00040028-0000-1000-8000-00805f9b0131</string>
+	<key>Accelerometer_Reading_Y_Characteristic</key>
+	<string>0004002b-0000-1000-8000-00805f9b0131</string>
+	<key>Accelerometer_Reading_Z_Characteristic</key>
+	<string>0004002d-0000-1000-8000-00805f9b0131</string>
+	<key>Temperature_Analog_Sensor_Characteristic</key>
+	<string>00040031-0000-1000-8000-00805f9b0131</string>
+	<key>Temperature_Sensor_Scan_Interval_Characteristic</key>
+	<string>00040032-0000-1000-8000-00805f9b0131</string>
+	<key>Temperature_Reading_Characteristic</key>
+	<string>00040033-0000-1000-8000-00805f9b0131</string>
+</dict>
+</plist>
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/ServiceUUIDPList.plist b/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/ServiceUUIDPList.plist
new file mode 100644
index 0000000..2322c26
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/ServiceUUIDPList.plist
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>0000180a-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>device_info</string>
+		<key>Service_Name</key>
+		<string>Device Information</string>
+	</dict>
+	<key>0000cab5-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>capsense</string>
+		<key>Service_Name</key>
+		<string>CapSense Service</string>
+	</dict>
+	<key>0003cab5-0000-1000-8000-00805f9b0131</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>capsense</string>
+		<key>Service_Name</key>
+		<string>CapSense Service</string>
+	</dict>
+	<key>0000caa1-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>capsense_proximity</string>
+		<key>Service_Name</key>
+		<string>CapSense Proximity</string>
+	</dict>
+	<key>0000caa2-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>capsense_slider</string>
+		<key>Service_Name</key>
+		<string>CapSense Slider</string>
+	</dict>
+	<key>0000caa3-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>capsense_button</string>
+		<key>Service_Name</key>
+		<string>CapSense Button</string>
+	</dict>
+	<key>0000180d-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>heart_rate</string>
+		<key>Service_Name</key>
+		<string>Heart Rate Service</string>
+	</dict>
+	<key>0000180f-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>battery</string>
+		<key>Service_Name</key>
+		<string>Battery Service</string>
+	</dict>
+	<key>00001816-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>cyclingSpeed_Cadense</string>
+		<key>Service_Name</key>
+		<string>Cycling Speed and Cadence</string>
+	</dict>
+	<key>00001814-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>runningSpeed_cadense</string>
+		<key>Service_Name</key>
+		<string>Running Speed and Cadence</string>
+	</dict>
+	<key>00001810-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>blood_pressure</string>
+		<key>Service_Name</key>
+		<string>Blood Pressure</string>
+	</dict>
+	<key>00001802-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>find_me</string>
+		<key>Service_Name</key>
+		<string>Find Me</string>
+	</dict>
+	<key>00001808-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>glucose</string>
+		<key>Service_Name</key>
+		<string>Glucose Service</string>
+	</dict>
+	<key>0000cbbb-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>rgb_raw_view</string>
+		<key>Service_Name</key>
+		<string>RGB LED </string>
+	</dict>
+	<key>0003cbbb-0000-1000-8000-00805f9b0131</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>rgb_raw_view</string>
+		<key>Service_Name</key>
+		<string>RGB LED </string>
+	</dict>
+	<key>00001803-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>proximity</string>
+		<key>Service_Name</key>
+		<string>Proximity</string>
+	</dict>
+	<key>00001809-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>health_thermometer</string>
+		<key>Service_Name</key>
+		<string>Health Thermometer</string>
+	</dict>
+	<key>00001111-1111-0001-0008-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>unknown</string>
+		<key>Service_Name</key>
+		<string>UnKnown Service</string>
+	</dict>
+	<key>00001800-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>gatt_db</string>
+		<key>Service_Name</key>
+		<string>GattDB</string>
+	</dict>
+	<key>00001804-0000-1000-8000-00805f9b34fb</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>proximity</string>
+		<key>Service_Name</key>
+		<string>Proximity</string>
+	</dict>
+	<key>00040001-0000-1000-8000-00805f9b0131</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>sensor_hub</string>
+		<key>Service_Name</key>
+		<string>Sensor Hub</string>
+	</dict>
+	<key>0003cdd0-0000-1000-8000-00805f9b0131</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>usr_service</string>
+		<key>Service_Name</key>
+		<string>USR Service</string>
+	</dict>
+	<key>00060000-f8ce-11e4-abf4-0002a5d5c51b</key>
+	<dict>
+		<key>Service_Image</key>
+		<string>ota_update</string>
+		<key>Service_Name</key>
+		<string>Bootloader Service</string>
+	</dict>
+</dict>
+</plist>
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/serviceAndCharacteristicNames.plist b/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/serviceAndCharacteristicNames.plist
new file mode 100644
index 0000000..e2de742
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/PList/serviceAndCharacteristicNames.plist
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>180D</key>
+	<string>Heart Rate Service</string>
+	<key>180C</key>
+	<string>Glucose </string>
+	<key>180A</key>
+	<string>Device Information Service</string>
+	<key>2A7E</key>
+	<string>Aerobic Heart Rate Lower Limit</string>
+	<key>2A84</key>
+	<string>Aerobic Heart Rate Upper Limit</string>
+	<key>2A7F</key>
+	<string>Aerobic Threshold</string>
+	<key>2A80</key>
+	<string>Age</string>
+	<key>2A43</key>
+	<string>Alert Category ID</string>
+	<key>2A42</key>
+	<string>Alert Category ID Bit Mask</string>
+	<key>2A06</key>
+	<string>Alert Level</string>
+	<key>2A44</key>
+	<string>Alert Notification Control Point</string>
+	<key>2A3F</key>
+	<string>Alert Status</string>
+	<key>2A81</key>
+	<string>Anaerobic Heart Rate Lower Limit</string>
+	<key>2A82</key>
+	<string>Anaerobic Heart Rate Upper Limit</string>
+	<key>2A83</key>
+	<string>Anaerobic Threshold</string>
+	<key>2A01</key>
+	<string>Appearance</string>
+	<key>2A19</key>
+	<string>Battery Level</string>
+	<key>2A49</key>
+	<string>Blood Pressure Feature</string>
+	<key>2A35</key>
+	<string>Blood Pressure Measurement</string>
+	<key>2A38</key>
+	<string>Body Sensor Location</string>
+	<key>2A22</key>
+	<string>Boot Keyboard Input Report</string>
+	<key>2A32</key>
+	<string>Boot Keyboard Output Report</string>
+	<key>2A33</key>
+	<string>Boot Mouse Input Report</string>
+	<key>2A5C</key>
+	<string>Cycling Speed and Cadence Feature</string>
+	<key>2A5B</key>
+	<string>Cycling Speed and Cadence Measurement</string>
+	<key>2A2B</key>
+	<string>Current Time</string>
+	<key>2A66</key>
+	<string>Cycling Power Control Point</string>
+	<key>2A65</key>
+	<string>Cycling Power Feature</string>
+	<key>2A63</key>
+	<string>Cycling Power Measurement</string>
+	<key>2A64</key>
+	<string>Cycling Power Vector</string>
+	<key>2A99</key>
+	<string>Database Change Increment</string>
+	<key>2A85</key>
+	<string>Date of Birth</string>
+	<key>2A86</key>
+	<string>Date of Threshold Assessment</string>
+	<key>2A08</key>
+	<string>Date Time</string>
+	<key>2A0A</key>
+	<string>Day Date Time</string>
+	<key>2A09</key>
+	<string>Day of Week</string>
+	<key>2A00</key>
+	<string>Device Name</string>
+	<key>2A0D</key>
+	<string>DST Offset</string>
+	<key>2A87</key>
+	<string>Email Address</string>
+	<key>2A0C</key>
+	<string>Exact Time 256</string>
+	<key>2A88</key>
+	<string>Fat Burn Heart Rate Lower Limit</string>
+	<key>2A89</key>
+	<string>Fat Burn Heart Rate Upper Limit</string>
+	<key>2A26</key>
+	<string>Firmware Revision String</string>
+	<key>2A8A</key>
+	<string>First Name</string>
+	<key>2A8B</key>
+	<string>Five Zone Heart Rate Limits</string>
+	<key>2A8C</key>
+	<string>Gender</string>
+	<key>2A51</key>
+	<string>Glucose Feature</string>
+	<key>2A18</key>
+	<string>Glucose Measurement</string>
+	<key>2A34</key>
+	<string>Glucose Measurement Context</string>
+	<key>2A27</key>
+	<string>Hardware Revision String</string>
+	<key>2A39</key>
+	<string>Heart Rate Control Point</string>
+	<key>2A8D</key>
+	<string>Heart Rate Max</string>
+	<key>2A37</key>
+	<string>Heart Rate Measurement</string>
+	<key>2A8E</key>
+	<string>Height</string>
+	<key>2A4C</key>
+	<string>HID Control Point</string>
+	<key>2A4A</key>
+	<string>HID Information</string>
+	<key>2A8F</key>
+	<string>Hip Circumference</string>
+	<key>2A2A</key>
+	<string>IEEE 11073-20601 Regulatory Certification Data List</string>
+	<key>2A36</key>
+	<string>Intermediate Cuff Pressure</string>
+	<key>2A1E</key>
+	<string>Intermediate Temperature</string>
+	<key>2AA2</key>
+	<string>Language</string>
+	<key>2A90</key>
+	<string>Last Name</string>
+	<key>2A6B</key>
+	<string>LN Control Point</string>
+	<key>2A6A</key>
+	<string>LN Feature</string>
+	<key>2A0F</key>
+	<string>Local Time Information</string>
+	<key>2A67</key>
+	<string>Location and Speed</string>
+	<key>2A29</key>
+	<string>Manufacturer Name String</string>
+	<key>2A91</key>
+	<string>Maximum Recommended Heart Rate</string>
+	<key>2A21</key>
+	<string>Measurement Interval</string>
+	<key>2A24</key>
+	<string>Model Number String</string>
+	<key>2A68</key>
+	<string>Navigation</string>
+	<key>2A46</key>
+	<string>New Alert</string>
+	<key>2A04</key>
+	<string>Peripheral Preferred Connection Parameters</string>
+	<key>2A02</key>
+	<string>Peripheral Privacy Flag</string>
+	<key>2A50</key>
+	<string>PnP ID</string>
+	<key>2A69</key>
+	<string>Position Quality</string>
+	<key>2A4E</key>
+	<string>Protocol Mode</string>
+	<key>2A03</key>
+	<string>Reconnection Address</string>
+	<key>2A52</key>
+	<string>Record Access Control Point</string>
+	<key>2A14</key>
+	<string>Reference Time Information</string>
+	<key>2A4D</key>
+	<string>Report</string>
+	<key>2A4B</key>
+	<string>Report Map</string>
+	<key>2A92</key>
+	<string>Resting Heart Rate</string>
+	<key>2A40</key>
+	<string>Ringer Control Point</string>
+	<key>2A41</key>
+	<string>Ringer Setting</string>
+	<key>2A54</key>
+	<string>Running Speed and Cadence Feature</string>
+	<key>2A53</key>
+	<string>Running Speed and Cadence Measurement</string>
+	<key>2A55</key>
+	<string>Speed and Cadence Control Point</string>
+	<key>2A4F</key>
+	<string>Scan Interval Window</string>
+	<key>2A31</key>
+	<string>Scan Refresh</string>
+	<key>2A5D</key>
+	<string>Speed and Cadence Sensor Location</string>
+	<key>2A25</key>
+	<string>Serial Number String</string>
+	<key>2A05</key>
+	<string>Service Changed</string>
+	<key>2A28</key>
+	<string>Software Revision String</string>
+	<key>2A93</key>
+	<string>Sport Type for Aerobic and Anaerobic Thresholds</string>
+	<key>2A47</key>
+	<string>Supported New Alert Category</string>
+	<key>2A48</key>
+	<string>Supported Unread Alert Category</string>
+	<key>2A23</key>
+	<string>System ID</string>
+	<key>2A1C</key>
+	<string>Health Thermometer Measurement</string>
+	<key>2A1D</key>
+	<string>Temperature Type</string>
+	<key>2A94</key>
+	<string>Three Zone Heart Rate Limits</string>
+	<key>2A12</key>
+	<string>Time Accuracy</string>
+	<key>2A13</key>
+	<string>Time Source</string>
+	<key>1811</key>
+	<string>Alert Notification Service</string>
+	<key>180F</key>
+	<string>Battery Service</string>
+	<key>1810</key>
+	<string>Blood Pressure Service</string>
+	<key>1805</key>
+	<string>Current Time Service</string>
+	<key>1818</key>
+	<string>Cycling Power Service</string>
+	<key>1816</key>
+	<string>Cycling Speed and Cadence Service</string>
+	<key>1800</key>
+	<string>Generic Access</string>
+	<key>1801</key>
+	<string>Generic Attribute</string>
+	<key>1808</key>
+	<string>Glucose Service</string>
+	<key>1809</key>
+	<string>Health Thermometer Service</string>
+	<key>1812</key>
+	<string>Human Interface Device</string>
+	<key>1802</key>
+	<string>Immediate Alert</string>
+	<key>1803</key>
+	<string>Link Loss</string>
+	<key>1819</key>
+	<string>Location and Navigation</string>
+	<key>1807</key>
+	<string>Next DST Change Service</string>
+	<key>180E</key>
+	<string>Phone Alert Status Service</string>
+	<key>1806</key>
+	<string>Reference Time Update Service</string>
+	<key>1814</key>
+	<string>Running Speed and Cadence Service</string>
+	<key>1813</key>
+	<string>Scan Parameters</string>
+	<key>1804</key>
+	<string>Tx Power</string>
+	<key>181C</key>
+	<string>User Data</string>
+	<key>CAB6</key>
+	<string>CapSense Service</string>
+	<key>CAB5</key>
+	<string>CapSense Service</string>
+	<key>CAA1</key>
+	<string>CapSense Proximity</string>
+	<key>CAA2</key>
+	<string>CapSense Slider</string>
+	<key>CAA3</key>
+	<string>CapSense Buttons</string>
+	<key>CBBB</key>
+	<string>RGB LED service</string>
+	<key>CBB1</key>
+	<string>RGB LED Control</string>
+	<key>0000CAB5-0000-1000-8000-00805F9B34FB</key>
+	<string>CapSense Service</string>
+	<key>0000CAB6-0000-1000-8000-00805F9B34FB</key>
+	<string>CapSense Service</string>
+	<key>0000CAA1-0000-1000-8000-00805F9B34FB</key>
+	<string>CapSense Proximity</string>
+	<key>0000CAA2-0000-1000-8000-00805F9B34FB</key>
+	<string>CapSense Slider</string>
+	<key>0000CAA3-0000-1000-8000-00805F9B34FB</key>
+	<string>CapSense Buttons</string>
+	<key>0000CBBB-0000-1000-8000-00805F9B34FB</key>
+	<string>RGB LED Service</string>
+	<key>0000CBB1-0000-1000-8000-00805F9B34FB</key>
+	<string>RGB LED Control</string>
+	<key>0000CAB5</key>
+	<string>CapSense Service</string>
+	<key>0000CAB6</key>
+	<string>CapSense Service</string>
+	<key>0000CAA1</key>
+	<string>CapSense Proximity</string>
+	<key>0000CAA2</key>
+	<string>CapSense Slider</string>
+	<key>0000CAA3</key>
+	<string>CapSense Buttons</string>
+	<key>0000CBBB</key>
+	<string>RGB LED Service</string>
+	<key>0000CBB1</key>
+	<string>RGB LED Control</string>
+	<key>0003CAB5-0000-1000-8000-00805F9B0131</key>
+	<string>CapSense Service</string>
+	<key>0003CAA1-0000-1000-8000-00805F9B0131</key>
+	<string>CapSense Proximity</string>
+	<key>0003CAA2-0000-1000-8000-00805F9B0131</key>
+	<string>CapSense Slider</string>
+	<key>0003CAA3-0000-1000-8000-00805F9B0131</key>
+	<string>CapSense Buttons</string>
+	<key>0003CBBB-0000-1000-8000-00805F9B0131</key>
+	<string>RGB LED Service</string>
+	<key>0003CBB1-0000-1000-8000-00805F9B0131</key>
+	<string>RGB LED Control</string>
+	<key>2A07</key>
+	<string>Tx Power Level</string>
+	<key>00040001-0000-1000-8000-00805F9B0131</key>
+	<string>Barometer Service</string>
+	<key>00040002-0000-1000-8000-00805F9B0131</key>
+	<string>Barometer Digital Sensor</string>
+	<key>00040004-0000-1000-8000-00805F9B0131</key>
+	<string>Barometer Sensor Scan Interval</string>
+	<key>00040007-0000-1000-8000-00805F9B0131</key>
+	<string>Barometer Data Accumulation</string>
+	<key>00040009-0000-1000-8000-00805F9B0131</key>
+	<string>Barometer Reading</string>
+	<key>0004000D-0000-1000-8000-00805F9B0131</key>
+	<string>Barometer Threshold For Indication</string>
+	<key>00040020-0000-1000-8000-00805F9B0131</key>
+	<string>Accelerometer Service</string>
+	<key>00040021-0000-1000-8000-00805F9B0131</key>
+	<string>Accelerometer Analog Sensor</string>
+	<key>00040023-0000-1000-8000-00805F9B0131</key>
+	<string>Accelerometer Sensor Scan Interval</string>
+	<key>00040026-0000-1000-8000-00805F9B0131</key>
+	<string>Accelerometer Data Accumulation</string>
+	<key>00040028-0000-1000-8000-00805F9B0131</key>
+	<string>Accelrometer X Reading</string>
+	<key>0004002B-0000-1000-8000-00805F9B0131</key>
+	<string>Accelerometer Y Reading</string>
+	<key>0004002D-0000-1000-8000-00805F9B0131</key>
+	<string>Accelerometer Z Reading</string>
+	<key>00040030-0000-1000-8000-00805F9B0131</key>
+	<string>Analog Temperature Service</string>
+	<key>00040031-0000-1000-8000-00805F9B0131</key>
+	<string>Temperature Analog Sensor</string>
+	<key>00040032-0000-1000-8000-00805F9B0131</key>
+	<string>Temperature Sensor Scan Interval</string>
+	<key>00040033-0000-1000-8000-00805F9B0131</key>
+	<string>Temperature Reading</string>
+	<key>00001800-0000-1000-8000-00805F9B34FB</key>
+	<string>Gatt DB</string>
+	<key>00060000-0000-1000-8000-00805F9B34FB</key>
+	<string>BootLoader Service</string>
+	<key>00060001-0000-1000-8000-00805F9B34FB</key>
+	<string>BootLoader Data Characteristic</string>
+	<key>00060000-F8CE-11E4-ABF4-0002A5D5C51B</key>
+	<string>BootLoader Service</string>
+	<key>00060001-F8CE-11E4-ABF4-0002A5D5C51B</key>
+	<string>BootLoader Data Characteristic</string>
+</dict>
+</plist>
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Constants.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Constants.h
new file mode 100644
index 0000000..bb36037
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Constants.h
@@ -0,0 +1,382 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#ifndef CySmart_Constants_h
+#define CySmart_Constants_h
+
+
+#endif
+
+enum alertOptions
+{
+    kAlertNone,
+    kMidAlert,
+    kHighAlert
+};
+
+#define APP_NAME    @"CySmart"
+
+//Constant for enabling disabling OTA : To disable change YES to NO and vice versa
+#define ENABLE_OTA   [NSNumber numberWithBool:YES]
+
+//Constant for enabling disabling Glucose Service : To disable change YES to NO and vice versa
+#define ENABLE_GLUCOSE   [NSNumber numberWithBool:NO]
+
+#define BLUE_COLOR [UIColor colorWithRed:12.0f/255.0f green:55.0f/255.0f blue:123.0f/255.0f alpha:1.0f]
+
+#define BLE_PRODUCTS_URL        @"http://www.cypress.com/ble"
+#define CONTACT_URL             @"http://www.cypress.com/contactus/"
+#define CYPRESS_HOME_URL        @"http://www.cypress.com/"
+#define CYPRESS_MOBILE_URL      @"http://www.cypress.com/cysmartmobile"
+
+
+#define DEVICE_CONNECTION_TIMEOUT   10.0
+
+
+#define ABOUT_VIEW_NIB_NAME           @"AboutView"
+#define BUNDLE_VERSION_KEY            @"CFBundleShortVersionString"
+
+#define KEYBOARD_HEIGHT     305.0f
+#define STATUS_BAR_HEIGHT   20.0f
+#define NAV_BAR_HEIGHT      44.0f
+#define SEARCH_BAR_TAG      101
+
+#define DEFAULT_SIZE_NORMALISATION_CONSTANT_FOR_IPAD     80.0f
+
+#define RSC_SERVICE_UUID            [CBUUID UUIDWithString:@"1814"]
+#define RSC_CHARACTERISTIC_UUID     [CBUUID UUIDWithString:@"2A53"]
+
+
+#define POLARH7_HRM_DEVICE_INFO_SERVICE_UUID @"180A"       // 180A = Device Information
+
+
+#define HRM_HEART_RATE_SERVICE_UUID               [CBUUID UUIDWithString:@"180D"]
+#define HRM_NOTIFICATIONS_CHARACTERISTIC_UUID     [CBUUID UUIDWithString:@"2A37"]
+#define HRM_BODY_LOCATION_CHARACTERISTIC_UUID     [CBUUID UUIDWithString:@"2A38"]
+
+#define CSC_SERVICE_UUID            [CBUUID UUIDWithString:@"1816"]
+#define CSC_CHARACTERISTIC_UUID     [CBUUID UUIDWithString:@"2A5B"]
+
+#define BP_SERVICE_UUID                       [CBUUID UUIDWithString:@"1810"]
+#define BP_MEASUREMENT_CHARACTERISTIC_UUID    [CBUUID UUIDWithString:@"2A35"]
+
+
+#define GLUCOSE_SERVICE_UUID                        [CBUUID UUIDWithString:@"1808"]
+#define GLUCOSE_MEASUREMENT_CHARACTERISTIC_UUID     [CBUUID UUIDWithString:@"2A18"]
+
+
+#define THM_SERVICE_UUID                                      [CBUUID UUIDWithString:@"1809"]
+#define THM_TEMPERATURE_MEASUREMENT_CHARACTERISTIC_UUID       [CBUUID UUIDWithString:@"2A1C"]
+#define THM_TEMPERATURE_TYPE_CHARACTERISTIC_UUID              [CBUUID UUIDWithString:@"2A1D"]
+
+#define DEVICE_INFO_SERVICE_UUID                              [CBUUID UUIDWithString:@"180A"]
+#define DEVICE_MANUFACTURER_NAME_CHARACTERISTIC_UUID          [CBUUID UUIDWithString:@"2A29"]
+#define DEVICE_MODEL_NUMBER_CHARACTERISTIC_UUID               [CBUUID UUIDWithString:@"2A24"]
+#define DEVICE_SERIAL_NUMBER_CHARACTERISTIC_UUID              [CBUUID UUIDWithString:@"2A25"]
+#define DEVICE_HARDWARE_REVISION_CHARACTERISTIC_UUID          [CBUUID UUIDWithString:@"2A27"]
+#define DEVICE_FIRMWARE_REVISION_CHARACTERISTIC_UUID          [CBUUID UUIDWithString:@"2A26"]
+#define DEVICE_SOFTWARE_REVISION_CHARACTERISTIC_UUID          [CBUUID UUIDWithString:@"2A28"]
+#define DEVICE_SYSTEMID_CHARACTERISTIC_UUID                   [CBUUID UUIDWithString:@"2A23"]
+#define DEVICE_CERTIFICATION_DATALIST_CHARACTERISTIC_UUID     [CBUUID UUIDWithString:@"2A2A"]
+#define DEVICE_PNPID_CHARACTERISTIC_UUID                      [CBUUID UUIDWithString:@"2A50"]
+
+
+#define BATTERY_LEVEL_SERVICE_UUID         [CBUUID UUIDWithString:@"180F"]
+#define BATTERY_LEVEL_CHARACTERISTIC_UUID  [CBUUID UUIDWithString:@"2A19"]  
+
+
+#define CAPSENSE_SERVICE_UUID                        [CBUUID UUIDWithString:@"CAB5"]
+#define CAPSENSE_PROXIMITY_CHARACTERISTIC_UUID       [CBUUID UUIDWithString:@"CAA1"]
+#define CAPSENSE_SLIDER_CHARACTERISTIC_UUID          [CBUUID UUIDWithString:@"CAA2"]
+#define CAPSENSE_BUTTON_CHARACTERISTIC_UUID          [CBUUID UUIDWithString:@"CAA3"]
+
+#define CUSTOM_CAPSENSE_SERVICE_UUID                             [CBUUID UUIDWithString:@"0003cab5-0000-1000-8000-00805f9b0131"]
+#define CUSTOM_CAPSENSE_PROXIMITY_CHARACTERISTIC_UUID            [CBUUID UUIDWithString:@"0003caa1-0000-1000-8000-00805f9b0131"]
+#define CUSTOM_CAPSENSE_SLIDER_CHARACTERISTIC_UUID               [CBUUID UUIDWithString:@"0003caa2-0000-1000-8000-00805f9b0131"]
+#define CUSTOM_CAPSENSE_BUTTONS_CHARACTERISTIC_UUID              [CBUUID UUIDWithString:@"0003caa3-0000-1000-8000-00805f9b0131"]
+
+
+
+#define RGB_SERVICE_UUID            [CBUUID UUIDWithString:@"CBBB"]
+#define RGB_CHARACTERISTIC_UUID     [CBUUID UUIDWithString:@"CBB1"]
+
+#define CUSTOM_RGB_SERVICE_UUID               [CBUUID UUIDWithString:@"0003cbbb-0000-1000-8000-00805f9b0131"]
+#define CUSTOM_RGB_CHARACTERISTIC_UUID        [CBUUID UUIDWithString:@"0003cbb1-0000-1000-8000-00805f9b0131"]
+
+
+
+
+#define TRANSMISSION_POWER_SERVICE              [CBUUID UUIDWithString:@"1804"]
+#define TRANSMISSION_POWER_LEVEL_UUID           [CBUUID UUIDWithString:@"2A07"]
+#define LINK_LOSS_SERVICE_UUID                  [CBUUID UUIDWithString:@"1803"]
+#define IMMEDIATE_ALERT_SERVICE_UUID            [CBUUID UUIDWithString:@"1802"]
+#define ALERT_CHARACTERISTIC_UUID               [CBUUID UUIDWithString:@"2A06"]
+
+
+#define DESCRIPTOR_CHARACTERISTIC_EXTENDED_PROPERTY_UUID       [CBUUID UUIDWithString:@"2900"]
+#define DESCRIPTOR_CHARACTERISTIC_USER_DESCRIPTION_UUID        [CBUUID UUIDWithString:@"2901"]
+#define DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIG_UUID           [CBUUID UUIDWithString:@"2902"]
+#define DESCRIPTOR_SERVER_CHARACTERISTIC_CONFIG_UUID           [CBUUID UUIDWithString:@"2903"]
+#define DESCRIPTOR_CHARACTERISTIC_PRESENTATION_FORMAT_UUID     [CBUUID UUIDWithString:@"2904"]
+#define DESCRIPTOR_CHARACTERISTIC_AGGREGATE_FORMAT_UUID        [CBUUID UUIDWithString:@"2905"]
+#define DESCRIPTOR_VALID_RANGE_UUID                            [CBUUID UUIDWithString:@"2906"]
+#define DESCRIPTOR_EXTERNAL_REPORT_REFERENCE_UUID              [CBUUID UUIDWithString:@"2907"]
+#define DESCRIPTOR_REPORT_REFERENCE_UUID                       [CBUUID UUIDWithString:@"2908"]
+#define DESCRIPTOR_ENVIRONMENTAL_SENSING_CONFIG_UUID           [CBUUID UUIDWithString:@"290B"]
+#define DESCRIPTOR_ENVIRONMENTAL_SENSING_MEASUREMENT_UUID      [CBUUID UUIDWithString:@"290C"]
+#define DESCRIPTOR_ENVIRONMENTAL_SENSING_TRIGGER_SETTING_UUID  [CBUUID UUIDWithString:@"290D"]
+
+
+
+#define BAROMETER_SERVICE_UUID                                     [CBUUID UUIDWithString:@"00040001-0000-1000-8000-00805f9b0131"]
+#define BAROMETER_DIGITAL_SENSOR_CHARACTERISTIC_UUID               [CBUUID UUIDWithString:@"00040002-0000-1000-8000-00805f9b0131"]
+#define BAROMETER_SENSOR_SCAN_INTERVAL_CHARACTERISTIC_UUID         [CBUUID UUIDWithString:@"00040004-0000-1000-8000-00805f9b0131"]
+#define BAROMETER_DATA_ACCUMULATION_CHARACTERISTIC_UUID            [CBUUID UUIDWithString:@"00040007-0000-1000-8000-00805f9b0131"]
+#define BAROMETER_READING_CHARACTERISTIC_UUID                      [CBUUID UUIDWithString:@"00040009-0000-1000-8000-00805f9b0131"]
+#define BAROMETER_THRESHOLD_FOR_INDICATION_CHARACTERISTIC_UUID     [CBUUID UUIDWithString:@"0004000d-0000-1000-8000-00805f9b0131"]
+
+
+#define ACCELEROMETER_SERVICE_UUID                             [CBUUID UUIDWithString:@"00040020-0000-1000-8000-00805f9b0131"]
+#define ACCELEROMETER_ANALOG_SENSOR_CHARACTERISTIC_UUID        [CBUUID UUIDWithString:@"00040021-0000-1000-8000-00805f9b0131"]
+#define ACCELEROMETER_SENSOR_SCAN_INTERVAL_CHARACTERISTIC_UUID [CBUUID UUIDWithString:@"00040023-0000-1000-8000-00805f9b0131"]
+#define ACCELEROMETER_DATA_ACCUMULATION_CHARACTERISTIC_UUID    [CBUUID UUIDWithString:@"00040026-0000-1000-8000-00805f9b0131"]
+#define ACCELEROMETER_READING_X_CHARACTERISTIC_UUID            [CBUUID UUIDWithString:@"00040028-0000-1000-8000-00805f9b0131"]
+#define ACCELEROMETER_READING_Y_CHARACTERISTIC_UUID            [CBUUID UUIDWithString:@"0004002b-0000-1000-8000-00805f9b0131"]
+#define ACCELEROMETER_READING_Z_CHARACTERISTIC_UUID            [CBUUID UUIDWithString:@"0004002d-0000-1000-8000-00805f9b0131"]
+
+
+
+#define ANALOG_TEMPERATURE_SERVICE_UUID                          [CBUUID UUIDWithString:@"00040030-0000-1000-8000-00805f9b0131"]
+#define TEMPERATURE_ANALOG_SENSOR_CHARACTERISTIC_UUID            [CBUUID UUIDWithString:@"00040031-0000-1000-8000-00805f9b0131"]
+#define TEMPERATURE_SENSOR_SCAN_INTERVAL_CHARACTERISTIC_UUID     [CBUUID UUIDWithString:@"00040032-0000-1000-8000-00805f9b0131"]
+#define TEMPERATURE_READING_CHARACTERISTIC_UUID                  [CBUUID UUIDWithString:@"00040033-0000-1000-8000-00805f9b0131"]
+
+#define WARNING @"Warning!"
+#define UNKNOWN_ERROR @"An Unknown error occurred."
+
+
+#define CUSTOM_BOOT_LOADER_SERVICE_UUID          [CBUUID UUIDWithString:@"00060000-F8CE-11E4-ABF4-0002A5D5C51B"]
+#define BOOT_LOADER_CHARACTERISTIC_UUID          [CBUUID UUIDWithString:@"00060001-F8CE-11E4-ABF4-0002A5D5C51B"]
+
+#define COMMAND_START_BYTE    0x01
+#define COMMAND_END_BYTE      0x17
+//Bootloader command codes
+
+#define VERIFY_CHECKSUM       0x31
+#define GET_FLASH_SIZE        0x32
+#define SEND_DATA             0x37
+#define ENTER_BOOTLOADER      0x38
+#define PROGRAM_ROW           0x39
+#define VERIFY_ROW            0x3A
+#define EXIT_BOOTLOADER       0x3B
+
+
+// Bootloader status/Error codes
+
+#define SUCCESS               @"0x00"
+#define ERROR_FILE            @"0x01"
+#define ERROR_EOF             @"0x02"
+#define ERROR_LENGTH          @"0x03"
+#define ERROR_DATA            @"0x04"
+#define ERROR_COMMAND         @"0x05"
+#define ERROR_DEVICE          @"0x06"
+#define ERROR_VERSION         @"0x07"
+#define ERROR_CHECKSUM        @"0x08"
+#define ERROR_ARRAY           @"0x09"
+#define ERROR_ROW             @"0x0A"
+#define ERROR_BOOTLOADER      @"0x0B"
+#define ERROR_APPLICATION     @"0x0C"
+#define ERROR_ACTIVE          @"0x0D"
+#define ERROR_UNKNOWN         @"0x0F"
+#define ERROR_ABORT           @"0xFF"
+
+
+
+
+#define FLASH_ARRAY_ID   @"flashArrayID"
+#define FLASH_ROW_NUMBER  @"flashRowNumber"
+
+#define CHECK_SUM   @"chec.3kSum"
+#define CRC_16      @"crc_16"
+#define ROW_DATA    @"rowData"
+
+
+#define BLOOD_PRESSURE_UNIT_mmHg    @"mmHg"
+#define BLOOD_PRESSURE_UNIT_kPa     @"kPa"
+
+/*Carousel View Strings*/
+#pragma mark - Carousel View
+
+#define SERVICES @"Services"
+#define GENERIC_ACCESS_SERVICE_UUID  @"00001800-0000-1000-8000-00805f9b34fb"
+
+#define k_SERVICE_IMAGE_NAME_KEY    @"Service_Image"
+#define k_SERVICE_NAME_KEY          @"Service_Name"
+
+#define DEFAULT_FONT_BOLD               @"Roboto-Bold"
+
+#define HRM_VIEW_SB_ID                  @"HRMId"
+#define RSC_VIEW_SB_ID                  @"RSCID"
+#define CSC_VIEW_SB_ID                  @"CSCId"
+#define DEVICE_INFO_VIEW_SB_ID          @"DeviceInfoID"
+#define GLUCOSE_VIEW_SB_ID              @"glucoseVCID"
+#define BP_VIEW_SB_ID                   @"BloodPressureID"
+#define CAPSENSE_VIEW_SB_ID             @"CapsenseRootID"
+#define CAPSENSE_BTN_VIEW_SB_ID         @"CapsenseButtonID"
+#define PROXIMITY_VIEW_SB_ID            @"proximityVCId"
+#define CAPSENSE_SLIDER_VIEW_SB_ID      @"sliderVCId"
+#define RGB_VIEW_SB_ID                  @"RGBViewID"
+#define HEALTH_THERMO_VIEW_SB_ID        @"HealthThermometerID"
+#define BATTERY_VIEW_SB_ID              @"BatteryServiceID"
+#define FIND_ME_VIEW_SB_ID              @"findMeID"
+#define SENSOR_HUB_VIEW_SB_ID           @"sensorHubID"
+#define GATTDB_VIEW_SB_ID               @"ServicesID"
+#define FILE_SEL_VIEW_SB_ID             @"FileSelectionID"
+
+/*Navigation Bar Titles*/
+#pragma mark - Navigation Bar Titles
+
+// Device information strings
+
+#define MANUFACTURER_NAME                       @"Manufacturer Name"
+#define MODEL_NUMBER                            @"Model Number"
+#define SERIAL_NUMBER                           @"Serial Number"
+#define HARDWARE_REVISION                       @"Hardware Revision"
+#define FIRMWARE_REVISION                       @"Firmware Revision"
+#define SOFTWARE_REVISION                       @"Software Revision"
+#define SYSTEM_ID                               @"System ID"
+#define REGULATORY_CERTIFICATION_DATA_LIST      @"Regulatory Certification Data List"
+#define PNP_ID                                  @"PnP ID"
+
+
+#define BLE_DEVICE            @"BLE Devices"
+#define UNKNOWN_PERIPHERAL    @"Unknown Peripheral"
+#define BACK_BUTTON_IMAGE  @"backButton"
+
+
+/* characteristic properties*/
+
+#define READ @"Read"
+#define WRITE @"Write"
+#define NOTIFY @"Notify"
+#define INDICATE @"Indicate"
+
+/* firmware upgrade */
+
+#define FIRMWARE_DISCONNECTION_ERROR        @"You have application upgrade pending."
+
+
+
+/* log strings */
+
+#define CONNECTION_REQUEST          @"Connection request sent"
+#define CONNECTION_ESTABLISH        @"Connection established"
+#define PAIRING_REQUEST             @"Pairing request sent"
+#define PAIRING_RQUEST_RECEIVED     @"Pairing request received"
+#define PAIRED                      @"Paired"
+#define UNPAIRED                    @"Unpaired"
+#define SERVICE_DISCOVERY_REQUEST   @"Service discovery request sent"
+#define SERVICE_DISCOVERY_STATUS    @"Service discovery status "
+#define DISCONNECTION_REQUEST       @"Disconnection request sent"
+#define DISCONNECTED                @"Disconnected"
+
+#define SERVICE_DISCOVERED          @"Success"
+#define SERVICE_DISCOVERY_ERROR     @"Service discovery request failed with error : "
+
+// BLE operations
+
+#define WRITE_REQUEST               @"Write request sent with value "
+#define WRITE_REQUEST_STATUS        @"Write request status "
+#define WRITE_SUCCESS               @"Success"
+#define WRITE_ERROR                 @"Failed with error : "
+
+#define START_NOTIFY                @"Start notification request sent"
+#define STOP_NOTIFY                 @"Stop notification request sent"
+#define NOTIFY_RESPONSE             @"Notification received with value "
+
+#define READ_REQUEST                @"Read request sent"
+#define READ_RESPONSE               @"Read response received with value "
+#define READ_ERROR                  @"Failed with error : "
+
+
+#define START_INDICATE              @"Start indicate request sent"
+#define STOP_INDICATE               @"Stop indicate request sent"
+#define INDICATE_RESPONSE           @"Indicate response received with value "
+
+
+
+
+
+#define DATA_SEPERATOR      @"##"
+
+/* Date formats */
+
+#define DATE_FORMAT     @"dd-MMM-yyyy"
+#define TIME_FORMAT     @"HH:mm:ss"
+
+//Device Detection Macros
+#pragma mark - Device detection macros
+
+#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
+#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
+#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)
+
+#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
+#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
+#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
+#define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))
+
+#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
+#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
+#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
+#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)
+
+
+//OTA Upgrade
+#pragma mark - OTA Upgrade
+
+#define OTA_UPGRADE_STATUS                  @"UpgradeStatus"
+
+#define OTA_UPGRADE_CANCELLED_MSG           @"Firmware upgrade cancelled."
+#define OTA_FILES_SELECTED_MSG              @"Firmware File(s) Selected."
+#define OTA_UPGRADE_IN_PROGRESS_MSG         @"Firmware upgrade in progress."
+#define OTA_UPGRADE_COMPLETED_MSG           @"Firmware upgrade completed successfully."
+#define OTA_APP_UPGRADE_PENDING_MSG         @"Stack upgrade completed successfully. Application upgrade pending."
+#define OTA_ROW_NO_OUT_OF_BOUND_MSG         @"Error: The row number exceeds the bounds"
+#define OTA_INVALID_APPLICATION_FILE_MSG    @"Error: The application is invalid"
+#define OTA_CHECKSUM_MISMATCH_MSG           @"Error: The checksum do not match"
+#define OTA_WRITING_FAILED_MSG              @"Error: Failed writing data row"
+#define OTA_SEND_DATA_COMMAND_FAILED        @"Error: Failed writing data with SEND_DATA command"
+#define OTA_SILICON_ID_MISMATCH_MSG         @"Error: The SiliconID or SiliconRev does not match"
+#define OTA_UPGRADE_CANCEL_CONFIRM_MSG      @"Do you want to cancel the OTA update?"
+#define OTA_UPGRADE_RESUME_CONFIRM_MSG      @"Do you want to resume the OTA update?"
+#define OTA_APP_UPGRADE_PENDING_WARNIG      @"Warning! Application upgrade pending."
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ProgressHandler.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ProgressHandler.h
new file mode 100644
index 0000000..01784dc
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ProgressHandler.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+
+@interface ProgressHandler : NSObject
+
++ (id)sharedInstance;
+- (void)showWithDetailsLabel:(NSString *)title Detail:(NSString *)detailString;
+-(void)hideProgressView;
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ProgressHandler.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ProgressHandler.m
new file mode 100644
index 0000000..34832b6
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ProgressHandler.m
@@ -0,0 +1,103 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import "ProgressHandler.h"
+#import "MBProgressHUD.h"
+#import <unistd.h>
+
+
+#define SCREENSHOT_MODE 0
+
+#ifndef kCFCoreFoundationVersionNumber_iOS_8_0
+#define kCFCoreFoundationVersionNumber_iOS_7_0 847.20
+#endif
+
+/*!
+ *  @class ProgressHandler
+ *
+ *  @discussion Class to handle the progress indicator
+ *
+ */
+@interface ProgressHandler () <MBProgressHUDDelegate> {
+    
+    MBProgressHUD *ProgressView;
+}
+@end
+
+@implementation ProgressHandler
+
++ (id)sharedInstance {
+    static ProgressHandler *sharedMyManager = nil;
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        sharedMyManager = [[self alloc] init];
+    });
+    return sharedMyManager;
+}
+
+- (id)init {
+    if (self = [super init])
+    {
+        ProgressView = [[MBProgressHUD alloc] initWithView:[UIApplication sharedApplication].keyWindow];
+
+    }
+    return self;
+}
+
+
+- (void)showWithDetailsLabel:(NSString *)title Detail:(NSString *)detailString {
+    
+    [[UIApplication sharedApplication].keyWindow addSubview:ProgressView];
+    ProgressView.delegate = self;
+    ProgressView.labelText =title;
+    ProgressView.detailsLabelText = detailString;
+    ProgressView.square = YES;
+    
+    [ProgressView show:YES];
+}
+
+
+-(void)hideProgressView
+{
+    [ProgressView hide:YES];
+}
+
+#pragma mark - MBProgressHUDDelegate
+
+- (void)hudWasHidden:(MBProgressHUD *)hud {
+    // Remove HUD from screen when the HUD was hidded
+    [ProgressView removeFromSuperview];
+
+}
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ResourceHandler.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ResourceHandler.h
new file mode 100644
index 0000000..5f0d337
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ResourceHandler.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import <Foundation/Foundation.h>
+#import "CBMoralManager.h"
+
+@interface ResourceHandler : NSObject
+
++(NSDictionary *) getItemsFromPropertyList:(NSString *)PListName;
++(NSString *) getServiceNameForUUID:(CBUUID *)UUID;
++(NSString *) getCharacteristicNameForUUID:(CBUUID *)UUID;
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ResourceHandler.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ResourceHandler.m
new file mode 100644
index 0000000..71e6535
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/ResourceHandler.m
@@ -0,0 +1,98 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+#import "ResourceHandler.h"
+
+/*!
+ *  @class ResourceHandler
+ *
+ *  @discussion Class to handle the property lists
+ *
+ */
+
+@implementation ResourceHandler
+
+/*!
+ *  @method getItemsFromPropertyList:
+ *
+ *  @discussion Method that returns elements from the given plist
+ *
+ */
+
++(NSDictionary *) getItemsFromPropertyList:(NSString *)PListName
+{
+    NSDictionary *MenuItemDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:PListName ofType:@"plist"]];
+    return MenuItemDictionary;
+}
+
+/*!
+ *  @method getServiceNameForUUID:
+ *
+ *  @discussion Method that returns service name for a given UUID
+ *
+ */
++(NSString *) getServiceNameForUUID:(CBUUID *)UUID
+{
+    NSDictionary *allServicesAndCharacteristicsDict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"serviceAndCharacteristicNames" ofType:@"plist"]];
+    
+    NSString *serviceName = [allServicesAndCharacteristicsDict objectForKey:UUID.UUIDString];
+    
+    if (serviceName.length < 1)
+    {
+        serviceName = @"Unknown Service";
+    }
+    return serviceName;
+}
+
+/*!
+ *  @method getCharacteristicNameForUUID:
+ *
+ *  @discussion Method that returns characteristic name for a given UUID
+ *
+ */
+
++(NSString *) getCharacteristicNameForUUID:(CBUUID *)UUID
+{
+    NSDictionary *allServicesAndCharacteristicsDict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"serviceAndCharacteristicNames" ofType:@"plist"]];
+    
+    NSString *characteristicName = [allServicesAndCharacteristicsDict objectForKey:UUID.UUIDString];
+    
+    if (characteristicName.length < 1)
+    {
+        characteristicName = @"Unknown Characteristic";
+    }
+    return characteristicName;
+}
+
+
+
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/UIView+Toast.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/UIView+Toast.h
new file mode 100644
index 0000000..0c9830f
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/UIView+Toast.h
@@ -0,0 +1,57 @@
+/***************************************************************************
+ 
+UIView+Toast.h
+Toast
+
+Copyright (c) 2014 Charles Scalesse.
+ 
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+ 
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+ 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ 
+***************************************************************************/
+
+#import <UIKit/UIKit.h>
+
+extern NSString * const CSToastPositionTop;
+extern NSString * const CSToastPositionCenter;
+extern NSString * const CSToastPositionBottom;
+extern NSString * const CSToastPositionAboveBottom;
+
+
+@interface UIView (Toast)
+
+// each makeToast method creates a view and displays it as toast
+- (void)makeToast:(NSString *)message;
+- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position;
+- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position image:(UIImage *)image;
+- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title;
+- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title image:(UIImage *)image;
+
+// displays toast with an activity spinner
+- (void)makeToastActivity;
+- (void)makeToastActivity:(id)position;
+- (void)hideToastActivity;
+
+// the showToast methods display any view as toast
+- (void)showToast:(UIView *)toast;
+- (void)showToast:(UIView *)toast duration:(NSTimeInterval)interval position:(id)point;
+- (void)showToast:(UIView *)toast duration:(NSTimeInterval)interval position:(id)point
+      tapCallback:(void(^)(void))tapCallback;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/UIView+Toast.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/UIView+Toast.m
new file mode 100644
index 0000000..939d075
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/UIView+Toast.m
@@ -0,0 +1,386 @@
+//
+//  UIView+Toast.m
+//  Toast
+//
+//  Copyright 2014 Charles Scalesse.
+//
+
+
+#import "UIView+Toast.h"
+#import <QuartzCore/QuartzCore.h>
+#import <objc/runtime.h>
+
+/*
+ *  CONFIGURE THESE VALUES TO ADJUST LOOK & FEEL,
+ *  DISPLAY DURATION, ETC.
+ */
+
+// general appearance
+static const CGFloat CSToastMaxWidth            = 0.8;      // 80% of parent view width
+static const CGFloat CSToastMaxHeight           = 0.8;      // 80% of parent view height
+static const CGFloat CSToastHorizontalPadding   = 10.0;
+static const CGFloat CSToastVerticalPadding     = 10.0;
+static const CGFloat CSToastCornerRadius        = 10.0;
+static const CGFloat CSToastOpacity             = 0.8;
+static const CGFloat CSToastFontSize            = 16.0;
+static const CGFloat CSToastMaxTitleLines       = 0;
+static const CGFloat CSToastMaxMessageLines     = 0;
+static const NSTimeInterval CSToastFadeDuration = 0.2;
+
+// shadow appearance
+static const CGFloat CSToastShadowOpacity       = 0.8;
+static const CGFloat CSToastShadowRadius        = 6.0;
+static const CGSize  CSToastShadowOffset        = { 4.0, 4.0 };
+static const BOOL    CSToastDisplayShadow       = YES;
+
+// display duration
+static const NSTimeInterval CSToastDefaultDuration  = 3.0;
+
+// image view size
+static const CGFloat CSToastImageViewWidth      = 80.0;
+static const CGFloat CSToastImageViewHeight     = 80.0;
+
+// activity
+static const CGFloat CSToastActivityWidth       = 100.0;
+static const CGFloat CSToastActivityHeight      = 100.0;
+static const NSString * CSToastActivityDefaultPosition = @"center";
+
+// interaction
+static const BOOL CSToastHidesOnTap             = YES;     // excludes activity views
+
+// associative reference keys
+static const NSString * CSToastTimerKey         = @"CSToastTimerKey";
+static const NSString * CSToastActivityViewKey  = @"CSToastActivityViewKey";
+static const NSString * CSToastTapCallbackKey   = @"CSToastTapCallbackKey";
+
+// positions
+NSString * const CSToastPositionTop             = @"top";
+NSString * const CSToastPositionCenter          = @"center";
+NSString * const CSToastPositionBottom          = @"bottom";
+NSString * const CSToastPositionAboveBottom     = @"aboveBottom";
+
+@interface UIView (ToastPrivate)
+
+- (void)hideToast:(UIView *)toast;
+- (void)toastTimerDidFinish:(NSTimer *)timer;
+- (void)handleToastTapped:(UITapGestureRecognizer *)recognizer;
+- (CGPoint)centerPointForPosition:(id)position withToast:(UIView *)toast;
+- (UIView *)viewForMessage:(NSString *)message title:(NSString *)title image:(UIImage *)image;
+- (CGSize)sizeForString:(NSString *)string font:(UIFont *)font constrainedToSize:(CGSize)constrainedSize lineBreakMode:(NSLineBreakMode)lineBreakMode;
+
+@end
+
+
+@implementation UIView (Toast)
+
+#pragma mark - Toast Methods
+
+- (void)makeToast:(NSString *)message {
+    [self makeToast:message duration:CSToastDefaultDuration position:CSToastPositionAboveBottom];
+}
+
+- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position {
+    UIView *toast = [self viewForMessage:message title:nil image:nil];
+    [self showToast:toast duration:duration position:position];  
+}
+
+- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position title:(NSString *)title {
+    UIView *toast = [self viewForMessage:message title:title image:nil];
+    [self showToast:toast duration:duration position:position];  
+}
+
+- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position image:(UIImage *)image {
+    UIView *toast = [self viewForMessage:message title:nil image:image];
+    [self showToast:toast duration:duration position:position];  
+}
+
+- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration  position:(id)position title:(NSString *)title image:(UIImage *)image {
+    UIView *toast = [self viewForMessage:message title:title image:image];
+    [self showToast:toast duration:duration position:position];  
+}
+
+- (void)showToast:(UIView *)toast {
+    [self showToast:toast duration:CSToastDefaultDuration position:nil];
+}
+
+
+- (void)showToast:(UIView *)toast duration:(NSTimeInterval)duration position:(id)position {
+    [self showToast:toast duration:duration position:position tapCallback:nil];
+    
+}
+
+
+- (void)showToast:(UIView *)toast duration:(NSTimeInterval)duration position:(id)position
+      tapCallback:(void(^)(void))tapCallback
+{
+    toast.center = [self centerPointForPosition:position withToast:toast];
+    toast.alpha = 0.0;
+    
+    if (CSToastHidesOnTap) {
+        UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:toast action:@selector(handleToastTapped:)];
+        [toast addGestureRecognizer:recognizer];
+        toast.userInteractionEnabled = YES;
+        toast.exclusiveTouch = YES;
+    }
+    
+    [self addSubview:toast];
+    
+    [UIView animateWithDuration:CSToastFadeDuration
+                          delay:0.0
+                        options:(UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAllowUserInteraction)
+                     animations:^{
+                         toast.alpha = 1.0;
+                     } completion:^(BOOL finished) {
+                         NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:duration target:self selector:@selector(toastTimerDidFinish:) userInfo:toast repeats:NO];
+                         // associate the timer with the toast view
+                         objc_setAssociatedObject (toast, &CSToastTimerKey, timer, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+                         objc_setAssociatedObject (toast, &CSToastTapCallbackKey, tapCallback, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+                     }];
+}
+
+
+- (void)hideToast:(UIView *)toast {
+    [UIView animateWithDuration:CSToastFadeDuration
+                          delay:0.0
+                        options:(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState)
+                     animations:^{
+                         toast.alpha = 0.0;
+                     } completion:^(BOOL finished) {
+                         [toast removeFromSuperview];
+                     }];
+}
+
+#pragma mark - Events
+
+- (void)toastTimerDidFinish:(NSTimer *)timer {
+    [self hideToast:(UIView *)timer.userInfo];
+}
+
+- (void)handleToastTapped:(UITapGestureRecognizer *)recognizer {
+    NSTimer *timer = (NSTimer *)objc_getAssociatedObject(self, &CSToastTimerKey);
+    [timer invalidate];
+    
+    void (^callback)(void) = objc_getAssociatedObject(self, &CSToastTapCallbackKey);
+    if (callback) {
+        callback();
+    }
+    [self hideToast:recognizer.view];
+}
+
+#pragma mark - Toast Activity Methods
+
+- (void)makeToastActivity {
+    [self makeToastActivity:CSToastActivityDefaultPosition];
+}
+
+- (void)makeToastActivity:(id)position {
+    // sanity
+    UIView *existingActivityView = (UIView *)objc_getAssociatedObject(self, &CSToastActivityViewKey);
+    if (existingActivityView != nil) return;
+    
+    UIView *activityView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CSToastActivityWidth, CSToastActivityHeight)];
+    activityView.center = [self centerPointForPosition:position withToast:activityView];
+    activityView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:CSToastOpacity];
+    activityView.alpha = 0.0;
+    activityView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin);
+    activityView.layer.cornerRadius = CSToastCornerRadius;
+    
+    if (CSToastDisplayShadow) {
+        activityView.layer.shadowColor = [UIColor blackColor].CGColor;
+        activityView.layer.shadowOpacity = CSToastShadowOpacity;
+        activityView.layer.shadowRadius = CSToastShadowRadius;
+        activityView.layer.shadowOffset = CSToastShadowOffset;
+    }
+    
+    UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
+    activityIndicatorView.center = CGPointMake(activityView.bounds.size.width / 2, activityView.bounds.size.height / 2);
+    [activityView addSubview:activityIndicatorView];
+    [activityIndicatorView startAnimating];
+    
+    // associate the activity view with self
+    objc_setAssociatedObject (self, &CSToastActivityViewKey, activityView, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+    
+    [self addSubview:activityView];
+    
+    [UIView animateWithDuration:CSToastFadeDuration
+                          delay:0.0
+                        options:UIViewAnimationOptionCurveEaseOut
+                     animations:^{
+                         activityView.alpha = 1.0;
+                     } completion:nil];
+}
+
+- (void)hideToastActivity {
+    UIView *existingActivityView = (UIView *)objc_getAssociatedObject(self, &CSToastActivityViewKey);
+    if (existingActivityView != nil) {
+        [UIView animateWithDuration:CSToastFadeDuration
+                              delay:0.0
+                            options:(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState)
+                         animations:^{
+                             existingActivityView.alpha = 0.0;
+                         } completion:^(BOOL finished) {
+                             [existingActivityView removeFromSuperview];
+                             objc_setAssociatedObject (self, &CSToastActivityViewKey, nil, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+                         }];
+    }
+}
+
+#pragma mark - Helpers
+
+- (CGPoint)centerPointForPosition:(id)point withToast:(UIView *)toast {
+    if([point isKindOfClass:[NSString class]]) {
+        if([point caseInsensitiveCompare:CSToastPositionTop] == NSOrderedSame) {
+            return CGPointMake(self.bounds.size.width/2, (toast.frame.size.height / 2) + CSToastVerticalPadding);
+        } else if([point caseInsensitiveCompare:CSToastPositionCenter] == NSOrderedSame) {
+            return CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2);
+        }
+        else if ([point caseInsensitiveCompare:CSToastPositionAboveBottom] == NSOrderedSame){
+            return CGPointMake(self.bounds.size.width / 2, self.bounds.size.height * 0.75);
+        }
+    } else if ([point isKindOfClass:[NSValue class]]) {
+        return [point CGPointValue];
+    }
+    
+    // default to bottom
+    return CGPointMake(self.bounds.size.width/2, (self.bounds.size.height - (toast.frame.size.height / 2)) - CSToastVerticalPadding);
+}
+
+- (CGSize)sizeForString:(NSString *)string font:(UIFont *)font constrainedToSize:(CGSize)constrainedSize lineBreakMode:(NSLineBreakMode)lineBreakMode {
+    if ([string respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) {
+        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+        paragraphStyle.lineBreakMode = lineBreakMode;
+        NSDictionary *attributes = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle};
+        CGRect boundingRect = [string boundingRectWithSize:constrainedSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil];
+        return CGSizeMake(ceilf(boundingRect.size.width), ceilf(boundingRect.size.height));
+    }
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+    return [string sizeWithFont:font constrainedToSize:constrainedSize lineBreakMode:lineBreakMode];
+#pragma clang diagnostic pop
+}
+
+- (UIView *)viewForMessage:(NSString *)message title:(NSString *)title image:(UIImage *)image {
+    // sanity
+    if((message == nil) && (title == nil) && (image == nil)) return nil;
+
+    // dynamically build a toast view with any combination of message, title, & image.
+    UILabel *messageLabel = nil;
+    UILabel *titleLabel = nil;
+    UIImageView *imageView = nil;
+    
+    // create the parent view
+    UIView *wrapperView = [[UIView alloc] init];
+    wrapperView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin);
+    wrapperView.layer.cornerRadius = CSToastCornerRadius;
+    
+    if (CSToastDisplayShadow) {
+        wrapperView.layer.shadowColor = [UIColor blackColor].CGColor;
+        wrapperView.layer.shadowOpacity = CSToastShadowOpacity;
+        wrapperView.layer.shadowRadius = CSToastShadowRadius;
+        wrapperView.layer.shadowOffset = CSToastShadowOffset;
+    }
+
+    wrapperView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:CSToastOpacity];
+    
+    if(image != nil) {
+        imageView = [[UIImageView alloc] initWithImage:image];
+        imageView.contentMode = UIViewContentModeScaleAspectFit;
+        imageView.frame = CGRectMake(CSToastHorizontalPadding, CSToastVerticalPadding, CSToastImageViewWidth, CSToastImageViewHeight);
+    }
+    
+    CGFloat imageWidth, imageHeight, imageLeft;
+    
+    // the imageView frame values will be used to size & position the other views
+    if(imageView != nil) {
+        imageWidth = imageView.bounds.size.width;
+        imageHeight = imageView.bounds.size.height;
+        imageLeft = CSToastHorizontalPadding;
+    } else {
+        imageWidth = imageHeight = imageLeft = 0.0;
+    }
+    
+    if (title != nil) {
+        titleLabel = [[UILabel alloc] init];
+        titleLabel.numberOfLines = CSToastMaxTitleLines;
+        titleLabel.font = [UIFont boldSystemFontOfSize:CSToastFontSize];
+        titleLabel.textAlignment = NSTextAlignmentLeft;
+        titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
+        titleLabel.textColor = [UIColor whiteColor];
+        titleLabel.backgroundColor = [UIColor clearColor];
+        titleLabel.alpha = 1.0;
+        titleLabel.text = title;
+        
+        // size the title label according to the length of the text
+        CGSize maxSizeTitle = CGSizeMake((self.bounds.size.width * CSToastMaxWidth) - imageWidth, self.bounds.size.height * CSToastMaxHeight);
+        CGSize expectedSizeTitle = [self sizeForString:title font:titleLabel.font constrainedToSize:maxSizeTitle lineBreakMode:titleLabel.lineBreakMode];
+        titleLabel.frame = CGRectMake(0.0, 0.0, expectedSizeTitle.width, expectedSizeTitle.height);
+    }
+    
+    if (message != nil) {
+        messageLabel = [[UILabel alloc] init];
+        messageLabel.numberOfLines = CSToastMaxMessageLines;
+        messageLabel.font = [UIFont systemFontOfSize:CSToastFontSize];
+        messageLabel.lineBreakMode = NSLineBreakByWordWrapping;
+        messageLabel.textColor = [UIColor whiteColor];
+        messageLabel.backgroundColor = [UIColor clearColor];
+        messageLabel.alpha = 1.0;
+        messageLabel.text = message;
+        
+        // size the message label according to the length of the text
+        CGSize maxSizeMessage = CGSizeMake((self.bounds.size.width * CSToastMaxWidth) - imageWidth, self.bounds.size.height * CSToastMaxHeight);
+        CGSize expectedSizeMessage = [self sizeForString:message font:messageLabel.font constrainedToSize:maxSizeMessage lineBreakMode:messageLabel.lineBreakMode];
+        messageLabel.frame = CGRectMake(0.0, 0.0, expectedSizeMessage.width, expectedSizeMessage.height);
+    }
+    
+    // titleLabel frame values
+    CGFloat titleWidth, titleHeight, titleTop, titleLeft;
+    
+    if(titleLabel != nil) {
+        titleWidth = titleLabel.bounds.size.width;
+        titleHeight = titleLabel.bounds.size.height;
+        titleTop = CSToastVerticalPadding;
+        titleLeft = imageLeft + imageWidth + CSToastHorizontalPadding;
+    } else {
+        titleWidth = titleHeight = titleTop = titleLeft = 0.0;
+    }
+    
+    // messageLabel frame values
+    CGFloat messageWidth, messageHeight, messageLeft, messageTop;
+
+    if(messageLabel != nil) {
+        messageWidth = messageLabel.bounds.size.width;
+        messageHeight = messageLabel.bounds.size.height;
+        messageLeft = imageLeft + imageWidth + CSToastHorizontalPadding;
+        messageTop = titleTop + titleHeight + CSToastVerticalPadding;
+    } else {
+        messageWidth = messageHeight = messageLeft = messageTop = 0.0;
+    }
+
+    CGFloat longerWidth = MAX(titleWidth, messageWidth);
+    CGFloat longerLeft = MAX(titleLeft, messageLeft);
+    
+    // wrapper width uses the longerWidth or the image width, whatever is larger. same logic applies to the wrapper height
+    CGFloat wrapperWidth = MAX((imageWidth + (CSToastHorizontalPadding * 2)), (longerLeft + longerWidth + CSToastHorizontalPadding));    
+    CGFloat wrapperHeight = MAX((messageTop + messageHeight + CSToastVerticalPadding), (imageHeight + (CSToastVerticalPadding * 2)));
+                         
+    wrapperView.frame = CGRectMake(0.0, 0.0, wrapperWidth, wrapperHeight);
+    
+    if(titleLabel != nil) {
+        titleLabel.frame = CGRectMake(titleLeft, titleTop, titleWidth, titleHeight);
+        [wrapperView addSubview:titleLabel];
+    }
+    
+    if(messageLabel != nil) {
+        messageLabel.frame = CGRectMake(messageLeft, messageTop, messageWidth, messageHeight);
+        [wrapperView addSubview:messageLabel];
+    }
+    
+    if(imageView != nil) {
+        [wrapperView addSubview:imageView];
+    }
+        
+    return wrapperView;
+}
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Utilities.h b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Utilities.h
new file mode 100644
index 0000000..084e641
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Utilities.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import <Foundation/Foundation.h>
+#import <CoreBluetooth/CoreBluetooth.h>
+#import "Constants.h"
+#import <UIKit/UIKit.h>
+
+
+@interface Utilities : NSObject
+
++(NSString*)timeInFormat:(double)timeInterval;
++(double)secondsToHour:(double)timeInterval;
++(double)secondsToMinute:(double)timeInterval;
+
++(double)meterToKM:(double)meter;
+
++(NSString *) getCurrentTime;
++(NSString *) getCurrentDate;
++(void)alert:(NSString*)title Message:(NSString*)message;
+
++(NSString *)getDiscriptorNameForUUID:(CBUUID *)UUID;
++(NSString *)getDescriptorValueInformation:(CBUUID *)UUID andValue:(NSNumber *)value;
+
++ (NSMutableData *)dataFromHexString:(NSString *)string;
++(NSString *)convertCharacteristicValueToASCII:(NSData *)data;
++ (UIImage *)captureScreenShot;
++(unsigned int) getIntegerFromHexString:(NSString *)hexString;
++(NSString *)get128BitUUIDForUUID:(CBUUID *)UUID;
++(NSString *) convertDataToLoggerFormat:(NSData *)data;
++(void) logDataWithService:(NSString *)serviceName characteristic:(NSString *)characteristicName descriptor:(NSString *)descriptorName operation:(NSString *)operationInfo;
++(NSString*)bytesToHex:(NSData*) data;
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Utilities.m b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Utilities.m
new file mode 100644
index 0000000..0d8f65f
--- /dev/null
+++ b/pregnancy_guard/BaseProject/ThirdClass/CBManager/common/Utilities.m
@@ -0,0 +1,443 @@
+/*
+ * Copyright Cypress Semiconductor Corporation, 2014-2015 All rights reserved.
+ *
+ * This software, associated documentation and materials ("Software") is
+ * owned by Cypress Semiconductor Corporation ("Cypress") and is
+ * protected by and subject to worldwide patent protection (UnitedStates and foreign), United States copyright laws and international
+ * treaty provisions. Therefore, unless otherwise specified in a separate license agreement between you and Cypress, this Software
+ * must be treated like any other copyrighted material. Reproduction,
+ * modification, translation, compilation, or representation of this
+ * Software in any other form (e.g., paper, magnetic, optical, silicon)
+ * is prohibited without Cypress's express written permission.
+ *
+ * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ * NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes
+ * to the Software without notice. Cypress does not assume any liability
+ * arising out of the application or use of Software or any product or
+ * circuit described in the Software. Cypress does not authorize its
+ * products for use as critical components in any products where a
+ * malfunction or failure may reasonably be expected to result in
+ * significant injury or death ("High Risk Product"). By including
+ * Cypress's product in a High Risk Product, the manufacturer of such
+ * system or application assumes all risk of such use and in doing so
+ * indemnifies Cypress against all liability.
+ *
+ * Use of this Software may be limited by and subject to the applicable
+ * Cypress software license agreement.
+ *
+ *
+ */
+
+#import "Utilities.h"
+/*!
+ *  @class Utilities
+ *
+ *  @discussion Class that contains common reusable methods
+ *
+ */
+
+@implementation Utilities
+
+/*!
+ *  @method timeInFormat:
+ *
+ *  @discussion Method that converts seconds to minute:seconds format
+ *
+ */
++(NSString*)timeInFormat:(double)timeInterval
+{
+    int duration = (int)timeInterval; // cast timeInterval to int - note: some precision might be lost
+    int minutes = duration / 60; //get the elapsed minutes
+    int seconds = duration % 60; //get the elapsed seconds
+    return  [NSString stringWithFormat:@"%02d:%02d", minutes, seconds]; //create a string of the elapsed time in xx:xx format for example 01:15 as 1 minute 15 seconds
+}
+
+/*!
+ *  @method getCurrentDate
+ *
+ *  @discussion Method that returns the current date
+ *
+ */
++(NSString *) getCurrentDate
+{
+    NSDate *currentDate = [NSDate date];
+    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+    
+    [dateFormatter setDateFormat:DATE_FORMAT];
+    NSString *date = [dateFormatter stringFromDate:currentDate];
+    return date;
+}
+
+/*!
+ *  @method getCurrentTime
+ *
+ *  @discussion Method that returns the current time
+ *
+ */
++(NSString *) getCurrentTime
+{
+    NSDate *currentDate = [NSDate date];
+    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+    
+    [dateFormatter setDateFormat:TIME_FORMAT];
+    NSString *date = [dateFormatter stringFromDate:currentDate];
+    return date;
+}
+
+/*!
+ *  @method alert: Message:
+ *
+ *  @discussion Method to show alert
+ *
+ */
+
++(void)alert:(NSString*)title Message:(NSString*)message
+{
+    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
+    [alert show];
+}
+
+/*!
+ *  @method secondsToHour:
+ *
+ *  @discussion Method that converts seconds to hours
+ *
+ */
+
++(double)secondsToHour:(double)timeInterval
+{
+    if(timeInterval>0)
+        return (timeInterval/3600.0f);
+    return 0;
+}
+
+/*!
+ *  @method secondsToMinute:
+ *
+ *  @discussion Method that converts seconds to minute
+ *
+ */
++(double)secondsToMinute:(double)timeInterval
+{
+    if(timeInterval>0)
+        return (timeInterval/60.0f);
+    return 0;
+}
+
+/*!
+ *  @method meterToKM:
+ *
+ *  @discussion Method that converts meter to km
+ *
+ */
++(double)meterToKM:(double)meter
+{
+    if(meter>0)
+        return meter/1000.0f;
+    return 0;
+}
+
+/*!
+ *  @method getDiscriptorNameForUUID:
+ *
+ *  @discussion Method that returns descriptor name for given UUID
+ *
+ */
++(NSString *)getDiscriptorNameForUUID:(CBUUID *)UUID
+{
+    NSString * descriptorName;
+    if ([UUID isEqual:DESCRIPTOR_CHARACTERISTIC_EXTENDED_PROPERTY_UUID]) {
+        descriptorName = @"Characteristic Extended Properties";
+    }else if ([UUID isEqual:DESCRIPTOR_CHARACTERISTIC_USER_DESCRIPTION_UUID]) {
+        descriptorName = @"Characteristic User Description";
+    }else if ([UUID isEqual:DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIG_UUID]) {
+        descriptorName = @"Client Characteristic Configuration";
+    }else if ([UUID isEqual:DESCRIPTOR_SERVER_CHARACTERISTIC_CONFIG_UUID]) {
+        descriptorName = @"Server Characteristic Configuration";
+    }else if ([UUID isEqual:DESCRIPTOR_CHARACTERISTIC_PRESENTATION_FORMAT_UUID]) {
+        descriptorName = @"Characteristic Presentation Format";
+    }else if ([UUID isEqual:DESCRIPTOR_CHARACTERISTIC_AGGREGATE_FORMAT_UUID]) {
+        descriptorName = @"Characteristic Aggregate Format";
+    }else if ([UUID isEqual:DESCRIPTOR_VALID_RANGE_UUID]) {
+        descriptorName = @"Valid Range";
+    }else if ([UUID isEqual:DESCRIPTOR_EXTERNAL_REPORT_REFERENCE_UUID]) {
+        descriptorName = @"External Report Reference";
+    }else if ([UUID isEqual:DESCRIPTOR_REPORT_REFERENCE_UUID]) {
+        descriptorName = @"Report Reference";
+    }else if ([UUID isEqual:DESCRIPTOR_ENVIRONMENTAL_SENSING_CONFIG_UUID]) {
+        descriptorName = @"Environmental Sensing Configuration";
+    }else if ([UUID isEqual:DESCRIPTOR_ENVIRONMENTAL_SENSING_MEASUREMENT_UUID]) {
+        descriptorName = @"Environmental Sensing Measurement";
+    }else if ([UUID isEqual:DESCRIPTOR_ENVIRONMENTAL_SENSING_TRIGGER_SETTING_UUID]) {
+        descriptorName = @"Environmental Sensing Trigger Setting";
+    }
+    return descriptorName;
+}
+
+/*!
+ *  @method getDescriptorValueInformation: andValue:
+ *
+ *  @discussion Method that returns descriptorValueInformation for given UUID
+ *
+ */
+
++(NSString *)getDescriptorValueInformation:(CBUUID *)UUID andValue:(NSNumber *)value
+{
+    NSString * descriptorValueInformation;
+    if ([UUID isEqual:DESCRIPTOR_CHARACTERISTIC_EXTENDED_PROPERTY_UUID]) {
+       
+        switch ([value integerValue]){
+            case 0:
+                descriptorValueInformation = @"Reliable Write disabled \nWritable Auxiliaries disabled";
+                break;
+            case 1:
+                descriptorValueInformation = @"Reliable Write enabled";
+                break;
+            case 2:
+                descriptorValueInformation = @"Writable Auxiliaries enabled";
+                break;
+                
+            default:
+                break;
+        }
+        
+    }else if ([UUID isEqual:DESCRIPTOR_CHARACTERISTIC_USER_DESCRIPTION_UUID]) {
+        descriptorValueInformation = @"";
+    }else if ([UUID isEqual:DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIG_UUID]){
+       
+        switch ([value integerValue]){
+            case 0:
+                descriptorValueInformation = @"Indications disabled \nNotifications disabled";
+                break;
+            case 1:
+                descriptorValueInformation = @"Notifications enabled";
+                break;
+            case 2:
+                descriptorValueInformation = @"Indications enabled";
+                break;
+                
+            default:
+                break;
+        }
+    }else if ([UUID isEqual:DESCRIPTOR_SERVER_CHARACTERISTIC_CONFIG_UUID]) {
+        descriptorValueInformation = value ?@"Broadcasts enabled" :@"Broadcasts disabled";
+    }else if ([UUID isEqual:DESCRIPTOR_CHARACTERISTIC_PRESENTATION_FORMAT_UUID]) {
+        descriptorValueInformation = @"";
+    }else if ([UUID isEqual:DESCRIPTOR_CHARACTERISTIC_AGGREGATE_FORMAT_UUID]) {
+        descriptorValueInformation = @"";
+    }else if ([UUID isEqual:DESCRIPTOR_VALID_RANGE_UUID]) {
+        descriptorValueInformation = @"";
+    }else if ([UUID isEqual:DESCRIPTOR_EXTERNAL_REPORT_REFERENCE_UUID]) {
+        descriptorValueInformation = @"";
+    }else if ([UUID isEqual:DESCRIPTOR_REPORT_REFERENCE_UUID]) {
+        descriptorValueInformation = @"";
+    }else if ([UUID isEqual:DESCRIPTOR_ENVIRONMENTAL_SENSING_CONFIG_UUID]) {
+        descriptorValueInformation = @"";
+    }else if ([UUID isEqual:DESCRIPTOR_ENVIRONMENTAL_SENSING_MEASUREMENT_UUID]) {
+        descriptorValueInformation = @"";
+    }else if ([UUID isEqual:DESCRIPTOR_ENVIRONMENTAL_SENSING_TRIGGER_SETTING_UUID]) {
+        descriptorValueInformation = @"";
+    }
+    return descriptorValueInformation;
+}
+
+
+
+
++(NSString*)bytesToHex:(NSData*) data
+{
+    Byte *bytes = (Byte*)[data bytes];
+    NSString *str = @"";
+    NSString *str1 = @"";
+    for (int i=0; i<data.length; i++)
+    {
+        str1 = [NSString stringWithFormat:@"%02X",bytes[i]];
+       // str1 = [str1 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
+        if([str1 isEqualToString:@"5A"])
+        {
+            _curReceiveHexValue = @"";
+            _curReceiveHexValue = [_curReceiveHexValue stringByAppendingFormat:@"%@",str1];
+        }
+        else if ([str1 isEqualToString:@"5B"])
+        {
+            _curReceiveHexValue = [_curReceiveHexValue stringByAppendingFormat:@"%@",str1];
+            str = _curReceiveHexValue;
+            return str;
+        }
+        else
+            _curReceiveHexValue = [_curReceiveHexValue stringByAppendingFormat:@"%@",str1];
+    }
+    
+    return str;
+}
+
+
+
+/*!
+ *  @method dataFromHexString:
+ *
+ *  @discussion Method to handle conversion of user entered hex value
+ *
+ */
+
++ (NSMutableData *)dataFromHexString:(NSString *)string
+{
+    string = [string lowercaseString];
+    NSMutableData *data = [NSMutableData new];
+    unsigned char whole_byte;
+    char byte_chars[3] = {'\0','\0','\0'};
+    int i = 0;
+    int length = (int
+                  )string.length;
+    
+    while (i < length-1)
+    {
+        char c = [string characterAtIndex:i++];
+        
+        if (c < '0' || (c > '9' && c < 'a') || c > 'f')
+            continue;
+        byte_chars[0] = c;
+        byte_chars[1] = [string characterAtIndex:i++];
+        whole_byte = strtol(byte_chars, NULL, 16);
+        [data appendBytes:&whole_byte length:1];
+        
+    }
+    return data;
+}
+
+
+/*!
+ *  @method convertCharacteristicValueToASCII:
+ *
+ *  @discussion Method to handle ASCII conversion
+ *
+ */
+
++(NSString *)convertCharacteristicValueToASCII:(NSData *)data
+{
+    NSMutableString *string = [NSMutableString stringWithString:@""];
+    
+    for (int i = 0; i < data.length; i++)
+    {
+        unsigned char byte;
+        [data getBytes:&byte range:NSMakeRange(i, 1)];
+        
+        if (byte >= 32 && byte < 127)
+        {
+            [string appendFormat:@"%c", byte];
+        }
+        
+    }
+    return string;
+}
+
+
+
+/*!
+ *  @method captureScreenShot
+ *
+ *  @discussion Method to capture the currrent screen shot
+ *
+ */
+
++(UIImage *) captureScreenShot
+{
+    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
+        UIGraphicsBeginImageContextWithOptions([UIApplication sharedApplication].keyWindow.bounds.size, NO, [UIScreen mainScreen].scale);
+    else
+        UIGraphicsBeginImageContext([UIApplication sharedApplication].keyWindow.bounds.size);
+    
+    UIGraphicsBeginImageContext([UIApplication sharedApplication].keyWindow.bounds.size);
+    [[UIApplication sharedApplication].keyWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
+    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
+    UIGraphicsEndImageContext();
+    
+    return image;
+}
+
+/*!
+ *  @method getIntegerFromHexString:
+ *
+ *  @discussion Method that returns the integer from hex string
+ *
+ */
++(unsigned int) getIntegerFromHexString:(NSString *)hexString
+{
+    unsigned int integerValue;
+    NSScanner* scanner = [NSScanner scannerWithString:hexString];
+    [scanner scanHexInt:&integerValue];
+    
+    return integerValue;
+}
+
+/*!
+ *  @method get128BitUUIDForUUID:
+ *
+ *  @discussion Method that returns the 128 bit UUID
+ *
+ */
+
++(NSString *)get128BitUUIDForUUID:(CBUUID *)UUID
+{
+    NSString *uuidString = [NSString stringWithFormat:@"0000%@-0000-1000-8000-00805F9B34FB",UUID.UUIDString];
+    return [uuidString lowercaseString];
+}
+
+/*!
+ *  @method convertDataToLoggerFormat:
+ *
+ *  @discussion Method that returns the data to logger forma string
+ *
+ */
+
++(NSString *) convertDataToLoggerFormat:(NSData *)data
+{
+    NSString *dataString = [NSString stringWithFormat:@"%@",data];
+    dataString = [[[dataString stringByReplacingOccurrencesOfString:@"<" withString:@""] stringByReplacingOccurrencesOfString:@">" withString:@""] stringByReplacingOccurrencesOfString:@" " withString:@""];
+    NSString *tempString = @"";
+    
+    if (dataString.length != 0)
+    {
+        int i = 0;
+        for (; i < dataString.length-1; i++)
+        {
+            if ((i%2) != 0)
+            {
+                tempString = [tempString stringByAppendingString:[NSString stringWithFormat:@"%c ",[dataString characterAtIndex:i]]];
+            }
+            else
+                tempString = [tempString stringByAppendingString:[NSString stringWithFormat:@"%c",[dataString characterAtIndex:i]]];
+        }
+        tempString = [tempString stringByAppendingString:[NSString stringWithFormat:@"%c",[dataString characterAtIndex:i]]];
+
+    }
+    else
+        tempString = @" ";
+    
+    NSString *logString = [NSString stringWithFormat:@"[%@]",tempString];
+    return logString;
+}
+
+/*!
+ *  @method logDataWithService: characteristic: descriptor: operation:
+ *
+ *  @discussion Method to log the data 
+ *
+ */
+
++(void) logDataWithService:(NSString *)serviceName characteristic:(NSString *)characteristicName descriptor:(NSString *)descriptorName operation:(NSString *)operationInfo
+{
+    if (descriptorName != nil)
+    {
+        LOG_INFO(@"[%@|%@|%@] %@",serviceName,characteristicName,descriptorName,operationInfo);
+    }
+    else
+    {
+        LOG_INFO(@"[%@|%@] %@",serviceName,characteristicName,operationInfo);
+    }
+    
+}
+
+@end
diff --git a/pregnancy_guard/BaseProject/ThirdClass/JHChart/JHLineChart.m b/pregnancy_guard/BaseProject/ThirdClass/JHChart/JHLineChart.m
index 7ddfc55..c94310c 100755
--- a/pregnancy_guard/BaseProject/ThirdClass/JHChart/JHLineChart.m
+++ b/pregnancy_guard/BaseProject/ThirdClass/JHChart/JHLineChart.m
@@ -45,19 +45,19 @@
         _lineWidth = 0.5;
         _xyFontSize = 7.0;
         self.contentInsets = UIEdgeInsetsMake(10, 20, 10, 10);
-        _yLineDataArr  = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8"];//[NSMutableArray array];
+        _yLineDataArr  = @[@"100",@"200",@"300",@"400",@"500",@"600",@"700",@"800"];//[NSMutableArray array];
         _xLineDataArr  = [NSMutableArray array];
-//        _xAndYLineColor = [UIColor darkGrayColor];
-//        _pointNumberColorArr = @[[UIColor redColor]];
-//        _positionLineColorArr = @[[UIColor darkGrayColor]];
-//        _pointColorArr = @[[UIColor orangeColor]];
-//        _xAndYNumberColor = [UIColor darkGrayColor];
-//        _valueLineColorArr = @[[UIColor redColor]];
+        _xAndYLineColor = [UIColor darkGrayColor];
+        _pointNumberColorArr = @[[UIColor redColor]];
+        _positionLineColorArr = @[[UIColor darkGrayColor]];
+        _pointColorArr = @[[UIColor orangeColor]];
+        _xAndYNumberColor = [UIColor darkGrayColor];
+        _valueLineColorArr = @[[UIColor redColor]];
         _layerArr = [NSMutableArray array];
         _showYLine = YES;
         _showYLevelLine = NO;
         _showValueLeadingLine = YES;
-//        _contentFillColorArr = @[[UIColor lightGrayColor]];
+        _contentFillColorArr = @[[UIColor lightGrayColor]];
         [self configChartXAndYLength];
         [self configChartOrigin];
         [self configPerXAndPerY];
@@ -475,7 +475,8 @@
         case JHLineChartQuadrantTypeFirstQuardrant:{
             
             [self drawLineWithContext:context andStarPoint:self.chartOrigin andEndPoint:P_M(self.contentInsets.left+_xLength, self.chartOrigin.y) andIsDottedLine:NO andColor:_xAndYLineColor];
-            if (_showYLine) {
+            if (_showYLine)
+            {
                   [self drawLineWithContext:context andStarPoint:self.chartOrigin andEndPoint:P_M(self.chartOrigin.x,self.chartOrigin.y-_yLength) andIsDottedLine:NO andColor:_xAndYLineColor];
             }
           
@@ -487,7 +488,15 @@
                 {
                     CGPoint p = P_M(i*xPace+self.chartOrigin.x, self.chartOrigin.y);
                     CGFloat len = [self getTextWithWhenDrawWithText:_xLineDataArr[i]];
-                    [self drawLineWithContext:context andStarPoint:p andEndPoint:P_M(p.x, p.y-3) andIsDottedLine:NO andColor:_xAndYLineColor];
+                    if (_showYLevelLine)
+                    {
+                        _xLength = CGRectGetWidth(self.frame)-self.contentInsets.left-self.contentInsets.right;
+                        
+                        [self drawLineWithContext:context andStarPoint:p andEndPoint:P_M(self.chartOrigin.x+self.perXLen*i,self.chartOrigin.y-_yLength) andIsDottedLine:NO andColor:_xAndYLineColor];
+                        
+                    }
+                    else
+                        [self drawLineWithContext:context andStarPoint:p andEndPoint:P_M(p.x, p.y-3) andIsDottedLine:NO andColor:_xAndYLineColor];
                     
                     [self drawText:[NSString stringWithFormat:@"%@",_xLineDataArr[i]] andContext:context atPoint:P_M(p.x-len/2, p.y+2) WithColor:_xAndYNumberColor andFontSize:_xyFontSize];
                 }
@@ -496,26 +505,26 @@
                 
             }
             
-//            if (_yLineDataArr.count>0)
-//            {
-//                CGFloat yPace = (_yLength - kXandYSpaceForSuperView)/(_yLineDataArr.count);
-//                for (NSInteger i = 0; i<_yLineDataArr.count; i++)
-//                {
-//                    CGPoint p = P_M(self.chartOrigin.x, self.chartOrigin.y - (i+1)*yPace);
-//                    CGFloat len = [self getTextWithWhenDrawWithText:_yLineDataArr[i]];
-//                    if (_showYLevelLine)
-//                    {
-//                         [self drawLineWithContext:context andStarPoint:p andEndPoint:P_M(self.contentInsets.left+_xLength, p.y) andIsDottedLine:NO andColor:_xAndYLineColor];
-//                        
-//                    }
-//                    else
-//                    {
-//                        [self drawLineWithContext:context andStarPoint:p andEndPoint:P_M(p.x+3, p.y) andIsDottedLine:NO andColor:_xAndYLineColor];
-//                    }
-//                    
-//                    [self drawText:[NSString stringWithFormat:@"%@",_yLineDataArr[i]] andContext:context atPoint:P_M(p.x-len-3, p.y-3) WithColor:_xAndYNumberColor andFontSize:_xyFontSize];
-//                }
-//            }
+            if (_yLineDataArr.count>0)
+            {
+                CGFloat yPace = (_yLength - kXandYSpaceForSuperView)/(_yLineDataArr.count);
+                for (NSInteger i = 0; i<_yLineDataArr.count; i++)
+                {
+                    CGPoint p = P_M(self.chartOrigin.x, self.chartOrigin.y - (i+1)*yPace);
+                    CGFloat len = [self getTextWithWhenDrawWithText:_yLineDataArr[i]];
+                    if (_showYLevelLine)
+                   {
+                         [self drawLineWithContext:context andStarPoint:p andEndPoint:P_M(self.contentInsets.left+_xLength, p.y) andIsDottedLine:NO andColor:_xAndYLineColor];
+                       
+                    }
+                    else
+                    {
+                        [self drawLineWithContext:context andStarPoint:p andEndPoint:P_M(p.x+3, p.y) andIsDottedLine:NO andColor:_xAndYLineColor];
+                    }
+                    
+                    [self drawText:[NSString stringWithFormat:@"%@",_yLineDataArr[i]] andContext:context atPoint:P_M(p.x-len-3, p.y-3) WithColor:_xAndYNumberColor andFontSize:_xyFontSize];
+                }
+            }
             
         }break;
         case JHLineChartQuadrantTypeFirstAndSecondQuardrant:{
diff --git a/pregnancy_guard/BaseProject/Utility/AudioTool/CSAudioManager.h b/pregnancy_guard/BaseProject/Utility/AudioTool/CSAudioManager.h
new file mode 100644
index 0000000..13dcc9d
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Utility/AudioTool/CSAudioManager.h
@@ -0,0 +1,48 @@
+//
+//  CSAudioManager.h
+//  MusicVideos
+//
+//  Created by iOS_Chris on 16/8/8.
+//  Copyright �� 2016��� kyExpress. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <AVFoundation/AVFoundation.h>
+
+typedef void(^BlockPlayerDidFinishPlaying)(void);
+typedef void(^BlockPlayerStartPlay)(void);
+typedef void(^BlockPlayerStopPlay)(void);
+
+@interface CSAudioManager : NSObject
+
+
+@property (nonatomic,copy) BlockPlayerDidFinishPlaying blockPlayerDidFinishPlaying;
+@property (nonatomic,copy) BlockPlayerStartPlay blockPlayerStartPlay;
+@property (nonatomic,copy) BlockPlayerStopPlay blockPlayerStopPlay;
+
+//������������������������������ - ���������������������UniqueID���������
+//+ (NSString *)getPlayIDWithNoticeRecieveModel:(NoticeRecieveModel *)nrModel;
+
+-(void)setBlockPlayerStopPlay:(BlockPlayerStopPlay)blockPlayerStopPlay;
+-(void)setBlockPlayerStartPlay:(BlockPlayerStartPlay)blockPlayerStartPlay;
+-(void)setBlockPlayerDidFinishPlaying:(BlockPlayerDidFinishPlaying)blockPlayerDidFinishPlaying;
+
++ (instancetype)defaultManager;
+//������������
+//- (AVAudioPlayer *)playingMusicCacheWithPlayID:(NSString *)playID;
+- (AVAudioPlayer *)playingMusicWithURL:(NSURL *)url playID:(NSString *)playID;
+- (AVAudioPlayer *)playingMusicWithData:(NSData *)musicData playID:(NSString *)playID;
+
+- (void)pauseMusicWithPlayID:(NSString *)playID;
+- (void)stopMusicWithPlayID:(NSString *)playID;
+
+//���������������
+//- (BOOL)isHavePlayerCacheWithPlayID:(NSString *)playID;
+
+//������������
+- (void)playSoundWithSoundName:(NSString *)soundName PlayID:(NSString *)playID;
+//������������
+- (void)disposeSoundWithPlayID:(NSString *)playID;
+- (void)stopAllMusic;
+- (BOOL)isPlayingWithPlayID:(NSString *)playID;
+@end
diff --git a/pregnancy_guard/BaseProject/Utility/AudioTool/CSAudioManager.m b/pregnancy_guard/BaseProject/Utility/AudioTool/CSAudioManager.m
new file mode 100644
index 0000000..3d353bb
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Utility/AudioTool/CSAudioManager.m
@@ -0,0 +1,375 @@
+//
+//  CSAudioManager.m
+//  MusicVideos
+//
+//  Created by iOS_Chris on 16/8/8.
+//  Copyright �� 2016��� kyExpress. All rights reserved.
+//
+
+#import "CSAudioManager.h"
+#import <AVFoundation/AVFoundation.h>
+
+
+@interface CSAudioManager()<AVAudioPlayerDelegate>
+@property (nonatomic, strong) NSMutableDictionary *musicPlayers;
+@property (nonatomic, strong) NSMutableDictionary *soundIDs;
+@property (nonatomic, strong) AVAudioSession *session;
+@end
+
+
+static CSAudioManager *_instance = nil;
+
+@implementation CSAudioManager
++ (void)initialize
+{
+    // ������������
+    AVAudioSession *session = [AVAudioSession sharedInstance];
+    
+    // ������������������������������������������������,���������������������������������������
+    [session setCategory:AVAudioSessionCategoryPlayback error:nil];
+    
+    // ������������
+    [session setActive:YES error:nil];
+}
+
++ (instancetype)defaultManager
+{
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        _instance = [[self alloc] init];
+    });
+    return _instance;
+}
+
+- (instancetype)init
+{
+    __block CSAudioManager *temp = self;
+    
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        if ((temp = [super init]) != nil) {
+            _musicPlayers = [NSMutableDictionary dictionary];
+            _soundIDs = [NSMutableDictionary dictionary];
+        }
+    });
+    self = temp;
+    return self;
+}
+
++ (instancetype)allocWithZone:(struct _NSZone *)zone
+{
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        _instance = [super allocWithZone:zone];
+    });
+    return _instance;
+}
+
+
+////������������������������������ - ���������������������UniqueID���������
+//+ (NSString *)getPlayIDWithNoticeRecieveModel:(NoticeRecieveModel *)nrModel
+//{
+//    NSString *playId = [NSString stringWithFormat:@"%@%@",nrModel.UniqueId,nrModel.AddTime];
+//    return playId;
+//}
+
+
+#pragma mark - ������
+//������������
+- (AVAudioPlayer *)playingMusicWithURL:(NSURL *)url playID:(NSString *)playID{
+    
+    NSLog(@"playingMusicWithURL-----------");
+    
+    if (playID.length == 0) {
+        NSLog(@"���������playID");
+        return nil;
+    }
+    
+    if (url == nil ) {
+        NSLog(@"url���������������������������");
+        return nil;
+    }
+   
+    NSData *data = [NSData dataWithContentsOfURL:url];
+    return [self playingMusicWithData:data playID:playID];
+
+}
+
+
+
+
+
+- (AVAudioPlayer *)playingMusicWithData:(NSData *)musicData playID:(NSString *)playID
+{
+    
+    if (playID.length == 0) {
+        NSLog(@"���������playID");
+        return nil;
+    }
+    
+    if (musicData == nil || musicData.length == 0) {
+        NSLog(@"���������������������������������");
+        return nil;
+    }
+    
+    AVAudioPlayer *player = self.musicPlayers[playID];      //������������������������������
+    player.delegate = self;
+    
+    if (!player) {
+
+        NSError *error = nil;
+        player = [[AVAudioPlayer alloc] initWithData:musicData error:&error];
+        player.delegate = self;
+        
+        if (![player prepareToPlay]){
+            NSLog(@"���������������������");
+            return nil;
+        }
+        
+        self.musicPlayers[playID] = player;  //���������������������������������������������������������
+    }
+    
+    NSLog(@"delegate : %@",player.delegate);
+    
+    if (![player isPlaying]) {//������������������������������������������������������������������������������������������������
+        NSLog(@"================= ������������ =================");
+        
+        if (_blockPlayerStartPlay) {
+            _blockPlayerStartPlay();
+        }
+        [_session setCategory:AVAudioSessionCategoryPlayback error:nil];
+        [_session setActive:YES error:nil];
+        [player play];
+      
+        
+    }else{
+        NSLog(@"���������������������,������������");
+        [player stop];
+        [self.musicPlayers removeObjectForKey:playID];
+        if (_blockPlayerStopPlay) {
+            _blockPlayerStopPlay();
+        }
+//        [player play];
+   
+    }
+    return player;
+}
+
+- (BOOL)isPlayingWithPlayID:(NSString *)playID
+{
+    if ([self.musicPlayers.allKeys containsObject:playID]) {
+        AVAudioPlayer *player=self.musicPlayers[playID];
+         NSLog(@"������������������������������������%d",[player isPlaying]);
+        return [player isPlaying];
+        
+    }else{
+        NSLog(@"���������������������,������������������������������");
+        return NO;
+    }
+}
+
+-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
+{
+     NSLog(@"������������-----------");
+    if (_blockPlayerDidFinishPlaying) {
+        _blockPlayerDidFinishPlaying();
+    }
+}
+
+
+- (void)stopAllMusic
+{
+    if (self.musicPlayers.allKeys.count > 0) {
+        for ( NSString *playID in self.musicPlayers.allKeys) {
+            
+            AVAudioPlayer *player=self.musicPlayers[playID];
+            [player stop];
+            if (_blockPlayerStopPlay) {
+                _blockPlayerStopPlay();
+            }
+        }
+    }
+}
+
+
+-(void)setBlockPlayerStartPlay:(BlockPlayerStartPlay)blockPlayerStartPlay
+{
+    _blockPlayerStartPlay = blockPlayerStartPlay;
+}
+
+-(void)setBlockPlayerStopPlay:(BlockPlayerStopPlay)blockPlayerStopPlay
+{
+    _blockPlayerStopPlay = blockPlayerStopPlay;
+}
+
+-(void)setBlockPlayerDidFinishPlaying:(BlockPlayerDidFinishPlaying)blockPlayerDidFinishPlaying
+{
+   
+    _blockPlayerDidFinishPlaying = blockPlayerDidFinishPlaying;
+}
+
+
+- (void)pauseMusicWithPlayID:(NSString *)playID
+{
+    if (playID == nil || playID.length == 0) {
+        NSLog(@"���������playID");
+        return ;
+    }
+    
+    AVAudioPlayer *player = self.musicPlayers[playID];
+    
+    if ([player isPlaying]) {
+        [player pause];
+    }
+}
+- (void)stopMusicWithPlayID:(NSString *)playID
+{
+    if (playID == nil || playID.length == 0) {
+        NSLog(@"���������playID");
+        return ;
+    }
+    AVAudioPlayer *player = self.musicPlayers[playID];
+    
+    [player stop];
+    [self.musicPlayers removeObjectForKey:playID];
+    if (_blockPlayerStopPlay) {
+        _blockPlayerStopPlay();
+    }
+    
+}
+
+
+#pragma mark - ������
+//������������
+- (void)playSoundWithSoundName:(NSString *)soundName PlayID:(NSString *)playID
+{
+    if (playID == nil || playID.length == 0) {
+        NSLog(@"���������playID");
+        return ;
+    }
+    
+    if (!soundName){
+        NSLog(@"���������soundName");
+        return;
+    }
+    
+    //���������������������ID
+    SystemSoundID soundID = (int)[self.soundIDs[playID] unsignedLongValue];
+    
+    if (!soundID) {//������soundID������������������������
+        
+         NSString *path = [NSString stringWithFormat:@"/System/Library/Audio/UISounds/%@.caf",soundName];
+        NSURL *url = [NSURL fileURLWithPath:path];
+        
+        OSStatus error = AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID);
+        
+        if (error != kAudioServicesNoError) {//���������������������������������������
+            NSLog(@"������������������������������,������������");
+            soundID = nil;
+            return;
+        }
+        
+        self.soundIDs[playID] = @(soundID);
+    }
+    
+    // ������
+    AudioServicesPlaySystemSound(soundID);
+}
+
+
+
+//������������
+- (void)disposeSoundWithPlayID:(NSString *)playID
+{
+    if (!playID) return;
+    
+    
+    SystemSoundID soundID = (int)[self.soundIDs[playID] unsignedLongValue];
+    
+    if (soundID) {
+        AudioServicesDisposeSystemSoundID(soundID);
+        
+        [self.soundIDs removeObjectForKey:playID];    //���������������������������������������������������������������
+    }
+}
+
+-(AVAudioSession *)session
+{
+    if (!_session) {
+        _session = [AVAudioSession sharedInstance];
+        
+        // ������������������������������������������������,���������������������������������������
+        [_session setCategory:AVAudioSessionCategoryPlayback error:nil];
+        
+        // ������������
+        [_session setActive:YES error:nil];
+    }
+    return _session;
+}
+
+/*
+1.���������������MP3���m4r���������������caf���������������������aif , aiff������������������������
+2.���������/System/Library/Audio/UISounds ���������������������������������������������������������
+3���������������
+������
+ReceivedMessage.caf--���������������������������������������������������
+sms-received1.caf-------���������
+sms-received2.caf-------���������
+sms-received3.caf-------������
+sms-received4.caf-------������
+sms-received5.caf-------������
+sms-received6.caf-------���������
+SentMessage.caf--------������������
+
+������
+mail-sent.caf----������������
+new-mail.caf-----���������������
+
+������
+dtmf-0.caf----------������������0������
+dtmf-1.caf----------������������1������
+dtmf-2.caf----------������������2������
+dtmf-3.caf----------������������3������
+dtmf-4.caf----------������������4������
+dtmf-5.caf----------������������5������
+dtmf-6.caf----------������������6������
+dtmf-7.caf----------������������7������
+dtmf-8.caf----------������������8������
+dtmf-9.caf----------������������9������
+dtmf-pound.caf---���������������������
+dtmf-star.caf------������������*������
+Voicemail.caf-----���������������
+
+������������������������
+Tock.caf-----------------------������������
+begin_record.caf-----------������������
+begin_video_record.caf--������������
+photoShutter.caf------------���������
+end_record.caf--------------������������
+end_video_record.caf-----������������
+
+������
+beep-beep.caf--������������������������������
+lock.caf------------������������
+shake.caf---------���������������������������
+unlock.caf--------������������
+low_power.caf--���������������
+
+������������
+jbl_ambiguous.caf--������������������
+jbl_begin.caf------���������������������
+jbl_cancel.caf-----������
+jbl_confirm.caf----������
+jbl_no_match.caf---������������������
+
+������
+alarm.caf--������������
+
+iPod Touch 1G
+sq_alarm.caf
+sq_beep-beep.caf
+sq_lock.caf
+sq_tock.caf
+
+*/
+@end
diff --git a/pregnancy_guard/BaseProject/Utility/DateUtil.h b/pregnancy_guard/BaseProject/Utility/DateUtil.h
index 2a5aa9a..6f80ca3 100644
--- a/pregnancy_guard/BaseProject/Utility/DateUtil.h
+++ b/pregnancy_guard/BaseProject/Utility/DateUtil.h
@@ -48,4 +48,7 @@
 + (NSString *)getMonth:(NSDate *)date;
 + (NSString *)getDay:(NSDate *)date;
 
+//���������������������n������������������ 2015-10-30
++ (NSString *)stringFromOffDateYMD:(NSDate *)date dayCount:(int)day;
+
 @end
diff --git a/pregnancy_guard/BaseProject/Utility/DateUtil.m b/pregnancy_guard/BaseProject/Utility/DateUtil.m
index e6c8512..40a6638 100644
--- a/pregnancy_guard/BaseProject/Utility/DateUtil.m
+++ b/pregnancy_guard/BaseProject/Utility/DateUtil.m
@@ -170,4 +170,15 @@
     
     return dateString;
 }
+
+//���������������������n������������������ 2015-10-30
++ (NSString *)stringFromOffDateYMD:(NSDate *)date dayCount:(int)day
+{
+    NSTimeInterval time = day * 24 * 60 * 60;//n������������
+    //������������������������������������-���������������������������������������������������������������������������������������������������������������
+    NSDate * lastDateTime = [date dateByAddingTimeInterval:time];
+    
+    return [DateUtil stringFromDateYMD:lastDateTime];
+}
+
 @end
diff --git a/pregnancy_guard/BaseProject/Utility/XZPickView/UIView+Category.h b/pregnancy_guard/BaseProject/Utility/XZPickView/UIView+Category.h
new file mode 100755
index 0000000..6fb5352
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Utility/XZPickView/UIView+Category.h
@@ -0,0 +1,18 @@
+//
+//  UIView+Category.h
+//  XZPickView
+//
+//  Created by ��������� on 2017/6/21.
+//  Copyright �� 2017��� zhaoyongjie. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface UIView (Category)
+
+@property (nonatomic, assign)CGFloat width;
+@property (nonatomic, assign)CGFloat height;
+@property (nonatomic, assign)CGFloat x;
+@property (nonatomic, assign)CGFloat y;
+
+@end
diff --git a/pregnancy_guard/BaseProject/Utility/XZPickView/UIView+Category.m b/pregnancy_guard/BaseProject/Utility/XZPickView/UIView+Category.m
new file mode 100755
index 0000000..aa1236b
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Utility/XZPickView/UIView+Category.m
@@ -0,0 +1,53 @@
+//
+//  UIView+Category.m
+//  XZPickView
+//
+//  Created by ��������� on 2017/6/21.
+//  Copyright �� 2017��� zhaoyongjie. All rights reserved.
+//
+
+#import "UIView+Category.h"
+
+@implementation UIView (Category)
+
+- (void)setX:(CGFloat)x{
+    CGRect rect = self.frame;
+    rect.origin.x = x;
+    self.frame = rect;
+}
+
+- (void)setY:(CGFloat)y{
+    CGRect rect = self.frame;
+    rect.origin.y = y;
+    self.frame = rect;
+}
+
+- (void)setWidth:(CGFloat)width{
+    CGRect rect = self.frame;
+    rect.size.width = width;
+    self.frame = rect;
+}
+
+- (void)setHeight:(CGFloat)height{
+    CGRect rect = self.frame;
+    rect.size.height = height;
+    self.frame = rect;
+}
+
+- (CGFloat)x{
+    return self.frame.origin.x;
+}
+
+- (CGFloat)y{
+    return self.frame.origin.y;
+}
+
+- (CGFloat)width{
+    return self.frame.size.width;
+}
+
+- (CGFloat)height{
+    return self.frame.size.height;
+}
+
+@end
diff --git a/pregnancy_guard/BaseProject/Utility/XZPickView/XZPickView.h b/pregnancy_guard/BaseProject/Utility/XZPickView/XZPickView.h
new file mode 100755
index 0000000..78c71b2
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Utility/XZPickView/XZPickView.h
@@ -0,0 +1,52 @@
+//
+//  XZPickView.h
+//  XZPickView
+//
+//  Created by ��������� on 17/3/24.
+//  Copyright �� 2017��� zhaoyongjie. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class XZPickView;
+
+@protocol XZPickViewDataSource <NSObject>
+
+@required
+
+- (NSInteger)numberOfComponentsInPickerView:(XZPickView *)pickerView;
+
+- (NSInteger)pickerView:(XZPickView *)pickerView numberOfRowsInComponent:(NSInteger)component;
+
+@end
+
+@protocol XZPickViewDelegate <NSObject>
+
+- (NSString *)pickerView:(XZPickView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
+
+- (void)pickView:(XZPickView *)pickerView confirmButtonClick:(UIButton *)button;
+
+@optional
+- (NSAttributedString *)pickerView:(XZPickView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)componen;
+
+- (void)pickerView:(XZPickView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
+
+@end
+
+@interface XZPickView : UIView
+
+@property (nonatomic, weak) id<XZPickViewDelegate> delegate;
+@property (nonatomic, weak) id<XZPickViewDataSource> dataSource;
+- (instancetype)initWithFrame:(CGRect)frame title:(NSString *)title;
+- (void)show;
+- (void)dismiss;
+// ���������������
+- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;
+// ���������������������row
+- (NSInteger)selectedRowInComponent:(NSInteger)component;
+
+//������������������
+-(void)pickReloadComponent:(NSInteger)component;
+//������������
+-(void)reloadData;
+
+@end
diff --git a/pregnancy_guard/BaseProject/Utility/XZPickView/XZPickView.m b/pregnancy_guard/BaseProject/Utility/XZPickView/XZPickView.m
new file mode 100755
index 0000000..206950e
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Utility/XZPickView/XZPickView.m
@@ -0,0 +1,246 @@
+//
+//  XZPickView.m
+//  XZPickView
+//
+//  Created by ��������� on 17/3/24.
+//  Copyright �� 2017��� zhaoyongjie. All rights reserved.
+//
+
+#import "XZPickView.h"
+#import "Masonry.h"
+#import "UIView+Category.h"
+
+// ������������
+#define kScreenW [UIScreen mainScreen].bounds.size.width
+// ������������
+#define kScreenH [UIScreen mainScreen].bounds.size.height
+
+#define XZColor(r, g, b) [UIColor colorWithRed:(r) / 255.0 green:(g) / 255.0 blue:(b) / 255.0 alpha:1]
+
+@interface XZPickView ()<UIPickerViewDelegate,UIPickerViewDataSource>
+
+@property (nonatomic, strong) UIButton *cancelBtn;
+
+@property (nonatomic, strong) UIButton *confirmBtn;
+
+@property (nonatomic, strong) UIView *naviContainView;
+
+@property (nonatomic, strong) UILabel *titleLabel;
+
+@property (nonatomic, strong) UIPickerView *pickView;
+
+@property (nonatomic, strong) UIButton *bgBtn;
+
+@property (nonatomic, strong) UIView *mainView;
+
+@end
+
+@implementation XZPickView
+
+- (instancetype)initWithFrame:(CGRect)frame title:(NSString *)title {
+    self = [super initWithFrame:frame];
+    if (self) {
+        [self setupChildViews];
+        self.titleLabel.text = title;
+    }
+    return self;
+}
+
+- (void)setupChildViews {
+    
+    [self addSubview:self.bgBtn];
+    [self addSubview:self.mainView];
+    
+    [self.mainView addSubview:self.naviContainView];
+    [self.naviContainView addSubview:self.cancelBtn];
+    [self.naviContainView addSubview:self.titleLabel];
+    [self.naviContainView addSubview:self.confirmBtn];
+    [self.mainView addSubview:self.pickView];
+    
+    [self.bgBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.equalTo(self);
+    }];
+    
+    [self.mainView setFrame:CGRectMake(0, kScreenH, kScreenW, 260)];
+    
+    [self.naviContainView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.left.right.equalTo(self.mainView);
+        make.height.mas_equalTo(44);
+    }];
+    
+    [self.cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(12);
+        make.centerY.equalTo(self.naviContainView);
+    }];
+    
+    [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.center.equalTo(self.naviContainView);
+    }];
+    
+    [self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.right.mas_equalTo(-12);
+        make.centerY.equalTo(self.naviContainView);
+    }];
+    
+    [self.pickView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.equalTo(self.naviContainView.mas_bottom);
+        make.left.right.bottom.equalTo(self.mainView);
+    }];
+}
+
+#pragma mark - private methods
+
+- (void)cancelAction:(UIButton *)btn {
+    [self dismiss];
+}
+
+- (void)confirmAction:(UIButton *)btn {
+    [self dismiss];
+    if ([self.delegate respondsToSelector:@selector(pickView:confirmButtonClick:)]) {
+        [self.delegate pickView:self confirmButtonClick:btn];
+    }
+}
+
+#pragma mark - public methods
+
+- (void)show {
+    
+    self.bgBtn.alpha = 0.3;
+    [UIView animateWithDuration:0.3 animations:^{
+        self.mainView.y = kScreenH - 260;
+    }];
+}
+
+- (void)dismiss {
+    
+    [UIView animateWithDuration:0.3 animations:^{
+        self.mainView.y = kScreenH;
+        self.bgBtn.alpha = 0;
+    } completion:^(BOOL finished) {
+        [self removeFromSuperview];
+    }];
+}
+
+- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated {
+    [self.pickView selectRow:row inComponent:component animated:animated];
+}
+
+- (NSInteger)selectedRowInComponent:(NSInteger)component {
+    return [self.pickView selectedRowInComponent:component];
+}
+
+#pragma mark - UIPickViewDelegate, UIPickViewDataSource
+
+- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
+    return [self.dataSource numberOfComponentsInPickerView:self];
+}
+
+- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
+    return [self.dataSource pickerView:self numberOfRowsInComponent:component];
+}
+
+- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
+    if ([self.delegate respondsToSelector:@selector(pickerView:titleForRow:forComponent:)]) {
+        return [self.delegate pickerView:self titleForRow:row forComponent:component];
+    }else{
+        return @"";
+    }
+}
+
+- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
+    if ([self.delegate respondsToSelector:@selector(pickerView:didSelectRow:inComponent:)]) {
+        return [self.delegate pickerView:self didSelectRow:row inComponent:component];
+    }
+}
+
+- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component {
+    if ([self.delegate respondsToSelector:@selector(pickerView:attributedTitleForRow:forComponent:)]) {
+        return [self.delegate pickerView:self attributedTitleForRow:row forComponent:component];
+    }else{
+        return nil;
+    }
+}
+
+
+
+#pragma mark - getter methods
+
+- (UIButton *)cancelBtn {
+    if (!_cancelBtn) {
+        _cancelBtn = [[UIButton alloc] init];
+        [_cancelBtn setTitle:@"������" forState:UIControlStateNormal];
+        [_cancelBtn setTitleColor:XZColor(85, 85, 85) forState:UIControlStateNormal];
+        [_cancelBtn addTarget:self action:@selector(cancelAction:) forControlEvents:UIControlEventTouchUpInside];
+        _cancelBtn.titleLabel.font = [UIFont systemFontOfSize:14];
+        [_cancelBtn sizeToFit];
+    }
+    return _cancelBtn;
+}
+
+- (UIButton *)confirmBtn {
+    if (!_confirmBtn) {
+        _confirmBtn = [[UIButton alloc] init];
+        [_confirmBtn setTitle:@"������" forState:UIControlStateNormal];
+        [_confirmBtn setTitleColor:XZColor(255, 126, 0) forState:UIControlStateNormal];
+        [_confirmBtn addTarget:self action:@selector(confirmAction:) forControlEvents:UIControlEventTouchUpInside];
+        _confirmBtn.titleLabel.font = [UIFont systemFontOfSize:14];
+        [_confirmBtn sizeToFit];
+        
+    }
+    return _confirmBtn;
+}
+
+- (UIView *)naviContainView {
+    if (!_naviContainView) {
+        _naviContainView = [[UIView alloc] init];
+        _naviContainView.backgroundColor = [UIColor whiteColor];
+    }
+    return _naviContainView;
+}
+
+- (UILabel *)titleLabel {
+    if (!_titleLabel) {
+        _titleLabel = [[UILabel alloc] init];
+        _titleLabel.text = @"title";
+        _titleLabel.textColor = [UIColor darkGrayColor];
+        _titleLabel.font = [UIFont systemFontOfSize:17];
+    }
+    return _titleLabel;
+}
+
+- (UIPickerView *)pickView {
+    if (!_pickView) {
+        _pickView = [[UIPickerView alloc] init];
+        _pickView.delegate = self;
+        _pickView.dataSource = self;
+    }
+    return _pickView;
+}
+
+- (UIButton *)bgBtn {
+    if (!_bgBtn) {
+        _bgBtn = [[UIButton alloc] init];
+        _bgBtn.backgroundColor = [UIColor blackColor];
+        _bgBtn.alpha = 0.3;
+        [_bgBtn addTarget:self action:@selector(dismiss) forControlEvents:UIControlEventTouchUpInside];
+    }
+    return _bgBtn;
+}
+
+- (UIView *)mainView {
+    if (!_mainView) {
+        _mainView = [[UIView alloc] init];
+        _mainView.backgroundColor = [UIColor whiteColor];
+    }
+    return _mainView;
+}
+
+-(void)pickReloadComponent:(NSInteger)component{
+    [self.pickView reloadComponent:component];
+}
+
+-(void)reloadData{
+    [self.pickView reloadAllComponents];
+}
+
+@end
diff --git a/pregnancy_guard/BaseProject/Views/Cell/DevicesTableViewCell.h b/pregnancy_guard/BaseProject/Views/Cell/DevicesTableViewCell.h
new file mode 100644
index 0000000..5b4fd6e
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Views/Cell/DevicesTableViewCell.h
@@ -0,0 +1,13 @@
+
+
+#import <UIKit/UIKit.h>
+#import <CoreBluetooth/CoreBluetooth.h>
+#import "CBPeripheralExt.h"
+
+@interface DevicesTableViewCell : UITableViewCell
+
+-(void)setDiscoveredPeripheralDataFromPeripheral:(CBPeripheralExt*) discoveredPeripheral ;
+
+-(void)updateRSSIWithValue:(NSString*) newRSSI;
+
+@end
diff --git a/pregnancy_guard/BaseProject/Views/Cell/DevicesTableViewCell.m b/pregnancy_guard/BaseProject/Views/Cell/DevicesTableViewCell.m
new file mode 100644
index 0000000..26c5f77
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Views/Cell/DevicesTableViewCell.m
@@ -0,0 +1,145 @@
+
+
+#import "DevicesTableViewCell.h"
+#import "CBPeripheralExt.h"
+#import "Constants.h"
+
+/*!
+ *  @class ScannedPeripheralTableViewCell
+ *
+ *  @discussion Model class for handling operations related to peripheral table cell
+ *
+ */
+
+@implementation DevicesTableViewCell
+{
+    /*  Data fields  */
+    __weak IBOutlet UILabel *RSSIValueLabel;
+    __weak IBOutlet UILabel *peripheralAdressLabel;
+    __weak IBOutlet UILabel *peripheralName;
+}
+- (void)awakeFromNib {
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+/*!
+ *  @method nameForPeripheral:
+ *
+ *  @discussion Method to get the peripheral name
+ *
+ */
+-(NSString *)nameForPeripheral:(CBPeripheralExt *)ble
+{
+    NSString *bleName ;
+    
+    if ([ble.mAdvertisementData valueForKey:CBAdvertisementDataLocalNameKey] != nil)
+    {
+        bleName = [ble.mAdvertisementData valueForKey:CBAdvertisementDataLocalNameKey];
+    }
+    
+    if(bleName.length < 1 )
+        bleName = ble.mPeripheral.name;
+    
+    if(bleName.length < 1 )
+        bleName = UNKNOWN_PERIPHERAL;
+    
+    return bleName;
+}
+
+
+/*!
+ *  @method UUIDStringfromPeripheral:
+ *
+ *  @discussion Method to get the UUID from the peripheral
+ *
+ */
+-(NSString *)UUIDStringfromPeripheral:(CBPeripheralExt *)ble
+{
+    
+    NSString *bleUUID = ble.mPeripheral.identifier.UUIDString;
+    if(bleUUID.length < 1 )
+        bleUUID = @"Nil";
+    else
+        bleUUID = [NSString stringWithFormat:@"UUID: %@",bleUUID];
+    
+    return bleUUID;
+}
+
+/*!
+ *  @method ServiceCountfromPeripheral:
+ *
+ *  @discussion Method to get the number of services present in a device
+ *
+ */
+-(NSString *)ServiceCountfromPeripheral:(CBPeripheralExt *)ble
+{
+    NSString *bleService =@"";
+    NSInteger serViceCount = [[ble.mAdvertisementData valueForKey:CBAdvertisementDataServiceUUIDsKey] count];
+    if(serViceCount < 1 )
+        bleService = @"No Services";
+    else
+        bleService = [NSString stringWithFormat:@" %ld Service Advertised ",(long)serViceCount];
+    
+    return bleService;
+}
+
+#define RSSI_UNDEFINED_VALUE 127
+
+
+/*!
+ *  @method RSSIValue:
+ *
+ *  @discussion Method to get the RSSI value
+ *
+ */
+-(NSString *)RSSIValue:(CBPeripheralExt *)ble
+{
+    
+    NSString *deviceRSSI=[ble.mRSSI stringValue];
+    
+    if(deviceRSSI.length < 1 )
+    {
+        if([ble.mPeripheral respondsToSelector:@selector(RSSI)])
+            deviceRSSI = ble.mPeripheral.RSSI.stringValue;
+    }
+    
+    if([deviceRSSI intValue]>=RSSI_UNDEFINED_VALUE)
+        deviceRSSI = @"Undefined";
+    else
+        deviceRSSI=[NSString stringWithFormat:@"%@ dBm",deviceRSSI];
+    
+    return deviceRSSI;
+}
+
+
+/*!
+ *  @method setDiscoveredPeripheralDataFromPeripheral:
+ *
+ *  @discussion Method to display the device details
+ *
+ */
+-(void)setDiscoveredPeripheralDataFromPeripheral:(CBPeripheralExt*) discoveredPeripheral
+{
+    peripheralName.text         = [self nameForPeripheral:discoveredPeripheral];
+    peripheralAdressLabel.text  = [self ServiceCountfromPeripheral:discoveredPeripheral];
+    RSSIValueLabel.text         = [self RSSIValue:discoveredPeripheral];
+
+}
+
+/*!
+ *  @method updateRSSIWithValue:
+ *
+ *  @discussion Method to update the RSSI value of a device
+ *
+ */
+-(void)updateRSSIWithValue:(NSString*) newRSSI
+{
+    RSSIValueLabel.text=newRSSI;
+}
+@end
diff --git a/pregnancy_guard/BaseProject/Views/Cell/HotelAccountCell.m b/pregnancy_guard/BaseProject/Views/Cell/HotelAccountCell.m
index 179c498..c357ef6 100644
--- a/pregnancy_guard/BaseProject/Views/Cell/HotelAccountCell.m
+++ b/pregnancy_guard/BaseProject/Views/Cell/HotelAccountCell.m
@@ -163,9 +163,9 @@
 - (void)setItemView:(HotelAccount*)model
 {
     self.model = model;
-    [self.hotelnameLabel setText:model.hotel_id.name];
-    [self.usernameLabel setText:model.username];
-    [self.nicknameLabel setText:model.nickname];
+    //[self.hotelnameLabel setText:model.hotel_id.name];
+    //[self.usernameLabel setText:model.username];
+    //[self.nicknameLabel setText:model.nickname];
 }
 
 @end
diff --git a/pregnancy_guard/BaseProject/Views/Cell/MusicPlayCell.m b/pregnancy_guard/BaseProject/Views/Cell/MusicPlayCell.m
index c3f4375..46bc282 100644
--- a/pregnancy_guard/BaseProject/Views/Cell/MusicPlayCell.m
+++ b/pregnancy_guard/BaseProject/Views/Cell/MusicPlayCell.m
@@ -36,7 +36,8 @@
     [super layoutSubviews];
     
     self.NumberLabel.frame = CGRectMake(20, 10, 40, 30);
-    self.musicNameLabel.frame = CGRectMake(20, 40, SCREEN_WIDTH/2, 30);
+    
+    self.musicNameLabel.frame = CGRectMake(20+40, 10, SCREEN_WIDTH/2, 30);
    
     self.personalLikeBtn.frame = CGRectMake(SCREEN_WIDTH-20-15, 17, 15, 15);
     self.userPlayBtn.frame     = CGRectMake(SCREEN_WIDTH-20-15-50-15, 17, 15, 15);
@@ -60,7 +61,8 @@
 {
     if ( _delegate && [_delegate respondsToSelector:@selector(musicPlaySection:)])
     {
-        self.model.cmd = 2;
+        self.model.playStatus = (self.model.playStatus == 1 ? 2:1);
+        self.model.cmd = 1;
         [_delegate musicPlaySection:self.model];
     }
 }
@@ -83,7 +85,8 @@
 {
     if ( _delegate && [_delegate respondsToSelector:@selector(musicPlaySection:)])
     {
-        self.model.cmd = 1;
+        self.model.setStatus = (self.model.setStatus == 1 ? 2:1);
+        self.model.cmd = 2;
         [_delegate musicPlaySection:self.model];
     }
 }
@@ -119,8 +122,11 @@
 - (void)setItemView:(HotelAccount*)model
 {
     self.model = model;
-    [self.NumberLabel setText:model.hotel_id.name];
-    [self.musicNameLabel setText:model.username];
+    
+    [self.userPlayBtn setBackgroundImage:[UIImage imageNamed: model.playStatus == 1 ?@"icon_play":@"icon_start" ] forState:UIControlStateNormal];
+    [self.personalLikeBtn setBackgroundImage:[UIImage imageNamed: model.setStatus == 1 ?@"icon_like":@"icon_unlike" ] forState:UIControlStateNormal];
+    [self.NumberLabel setText:model.xuhaoIndex];
+    [self.musicNameLabel setText:@"���������������������"];
 }
 
 @end
diff --git a/pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.h b/pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.h
index d902952..07a55fa 100644
--- a/pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.h
+++ b/pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.h
@@ -7,12 +7,11 @@
 //
 
 #import "BaseTableViewCell.h"
-#import "DeviceSpareModel.h"
 
 @interface SearchDeviceCell : BaseTableViewCell
 
 
 /** ������������*/
-- (void)setItemView:(DeviceSpareModel *) model;
+- (void)setItemView:(NSString *) bleName;
 
 @end
diff --git a/pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.m b/pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.m
index d2bf241..4844b08 100644
--- a/pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.m
+++ b/pregnancy_guard/BaseProject/Views/Cell/SearchDeviceCell.m
@@ -34,7 +34,7 @@
     [super layoutSubviews];
     
     self.deviceName.frame = CGRectMake(20+20, 10, SCREEN_WIDTH/2, 20);
-    self.deviceLink.frame = CGRectMake(SCREEN_WIDTH-40, 10, SCREEN_WIDTH/3, 20);
+    self.deviceLink.frame = CGRectMake(SCREEN_WIDTH-100-20, 10, 100, 20);
     self.imageTag.frame = CGRectMake(20, 15, 10, 10);
 }
 
@@ -70,18 +70,18 @@
         _deviceLink = [[GloriaLabel alloc] initWithFrame:CGRectMake(10+50+10+80, 28,150, 14)];
         _deviceLink.font = [UIFont systemFontOfSize:16];
         _deviceLink.textAlignment = UITextAlignmentRight;
-        _deviceLink.textColor = kUIColorFromRGB(0x5a5a5a);
+        _deviceLink.textColor = [UIColor redColor];
         [self.contentView addSubview:_deviceLink];
     }
     
     return _deviceLink;
 }
 
-- (void)setItemView:(DeviceSpareModel*)model
+- (void)setItemView:(NSString *) bleName
 {
     self.imageTag.image = [UIImage imageNamed:@"icon_lanya_tag"];
-    [self.deviceName setText:@"USR-BLE101"];
-    [self.deviceLink setText:@"������"];
+    [self.deviceName setText:bleName];
+    [self.deviceLink setText:@"������ >"];
 }
 
 @end
diff --git a/pregnancy_guard/BaseProject/Views/Cell/SearchTipsCell.h b/pregnancy_guard/BaseProject/Views/Cell/SearchTipsCell.h
new file mode 100644
index 0000000..4f1fc9a
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Views/Cell/SearchTipsCell.h
@@ -0,0 +1,17 @@
+//
+//  SearchTipsCell.h
+//  istanbul
+//
+//  Created by WindShan on 2017/6/16.
+//  Copyright �� 2017��� WindShan. All rights reserved.
+//
+
+#import "BaseTableViewCell.h"
+
+@interface SearchTipsCell : BaseTableViewCell
+
+
+/** ������������*/
+- (void)setItemView:(NSString *) tips imgName:(NSString *) name ;
+
+@end
diff --git a/pregnancy_guard/BaseProject/Views/Cell/SearchTipsCell.m b/pregnancy_guard/BaseProject/Views/Cell/SearchTipsCell.m
new file mode 100644
index 0000000..063b9ce
--- /dev/null
+++ b/pregnancy_guard/BaseProject/Views/Cell/SearchTipsCell.m
@@ -0,0 +1,70 @@
+//
+//  SearchTipsCell.m
+//  istanbul
+//
+//  Created by WindShan on 2017/6/16.
+//  Copyright �� 2017��� WindShan. All rights reserved.
+//
+
+#import "SearchTipsCell.h"
+#import "GloriaLabel.h"
+
+@interface SearchTipsCell()
+{
+    
+}
+
+@property (nonatomic, strong)     GloriaLabel * titleLabel;
+@property (nonatomic, strong)     UIImageView * imageIcon;
+@end
+
+@implementation SearchTipsCell
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+- (void)layoutSubviews
+{
+    [super layoutSubviews];
+    
+    self.titleLabel.frame = CGRectMake(10+22+10, 15,SCREEN_WIDTH-(10+22+10), 22);
+    self.imageIcon.frame = CGRectMake(10, 11, 22, 22);
+}
+
+- (UIImageView *)imageIcon
+{
+    if (!_imageIcon)
+    {
+        _imageIcon =  [[UIImageView alloc] initWithFrame:CGRectMake(10, 0, SCREEN_WIDTH-20, 60)];
+        [self.contentView addSubview:_imageIcon];
+    }
+    
+    return _imageIcon;
+}
+
+- (GloriaLabel *) titleLabel
+{
+    if(!_titleLabel)
+    {
+        _titleLabel = [[GloriaLabel alloc] initWithFrame:CGRectMake(10+50+10+80, 28,150, 14)];
+        _titleLabel.font = [UIFont systemFontOfSize:14];
+        _titleLabel.textAlignment = UITextAlignmentLeft;
+        _titleLabel.textColor = kUIColorFromRGB(0x595959);
+        [self.contentView addSubview:_titleLabel];
+    }
+    
+    return _titleLabel;
+}
+
+- (void)setItemView:(NSString *) tips imgName:(NSString *) name
+{
+    self.imageIcon.image = [UIImage imageNamed:name];
+    [self.titleLabel setText:tips];
+}
+
+@end
diff --git a/pregnancy_guard/pregnancy_guard.xcodeproj/project.pbxproj b/pregnancy_guard/pregnancy_guard.xcodeproj/project.pbxproj
index d9f075d..6cd6ea4 100644
--- a/pregnancy_guard/pregnancy_guard.xcodeproj/project.pbxproj
+++ b/pregnancy_guard/pregnancy_guard.xcodeproj/project.pbxproj
@@ -313,6 +313,8 @@
 		E52142371EFBA9A0003867B8 /* DirectoryWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E52142361EFBA9A0003867B8 /* DirectoryWatcher.m */; };
 		E52297911F0CB2AC00D79A31 /* NSTimer+timerBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = E522978D1F0CB2AC00D79A31 /* NSTimer+timerBlock.m */; };
 		E52297931F0CB2AC00D79A31 /* ZZCircleProgress.m in Sources */ = {isa = PBXBuildFile; fileRef = E52297901F0CB2AC00D79A31 /* ZZCircleProgress.m */; };
+		E5274A671F33182600E3883C /* UIView+Category.m in Sources */ = {isa = PBXBuildFile; fileRef = E5274A641F33182600E3883C /* UIView+Category.m */; };
+		E5274A681F33182600E3883C /* XZPickView.m in Sources */ = {isa = PBXBuildFile; fileRef = E5274A661F33182600E3883C /* XZPickView.m */; };
 		E52D8C441DF78F5F007D8714 /* MJExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E52D8C431DF78F5F007D8714 /* MJExampleViewController.m */; };
 		E52D8C471DF78FC0007D8714 /* MJExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E52D8C461DF78FC0007D8714 /* MJExample.m */; };
 		E52D8C4A1DF7904A007D8714 /* MJTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E52D8C491DF7904A007D8714 /* MJTableViewController.m */; };
@@ -346,11 +348,46 @@
 		E52F9BDA1E514BEC00A5F789 /* HomePage.m in Sources */ = {isa = PBXBuildFile; fileRef = E52F9BD91E514BEC00A5F789 /* HomePage.m */; };
 		E52F9BE91E51569900A5F789 /* app_logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E52F9BE81E51569900A5F789 /* app_logo@2x.png */; };
 		E52F9BEB1E515A8D00A5F789 /* ic_more@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E52F9BEA1E515A8D00A5F789 /* ic_more@2x.png */; };
+		E53038381F38571F003F63DE /* music.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = E53038371F38571F003F63DE /* music.mp3 */; };
+		E53081F51F1C415C001555FE /* ic_anquan_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081EB1F1C415C001555FE /* ic_anquan_bk.png */; };
+		E53081F61F1C415C001555FE /* ic_anquan_tips.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081EC1F1C415C001555FE /* ic_anquan_tips.png */; };
+		E53081F71F1C415C001555FE /* ic_radia_bottom_bg.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081ED1F1C415C001555FE /* ic_radia_bottom_bg.png */; };
+		E53081F81F1C415C001555FE /* ic_head_bg.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081EE1F1C415C001555FE /* ic_head_bg.png */; };
+		E53081F91F1C415C001555FE /* ic_line.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081EF1F1C415C001555FE /* ic_line.png */; };
+		E53081FA1F1C415C001555FE /* ic_weixian_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081F01F1C415C001555FE /* ic_weixian_bk.png */; };
+		E53081FB1F1C415C001555FE /* ic_weixin_tips.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081F11F1C415C001555FE /* ic_weixin_tips.png */; };
+		E53081FC1F1C415C001555FE /* ic_zhishu_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081F21F1C415C001555FE /* ic_zhishu_bk.png */; };
+		E53081FD1F1C415C001555FE /* icon_anquan.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081F31F1C415C001555FE /* icon_anquan.png */; };
+		E53081FE1F1C415C001555FE /* icon_weixian.png in Resources */ = {isa = PBXBuildFile; fileRef = E53081F41F1C415C001555FE /* icon_weixian.png */; };
 		E530D3551F0C772500B193EC /* LJInstrumentView.m in Sources */ = {isa = PBXBuildFile; fileRef = E530D3521F0C772500B193EC /* LJInstrumentView.m */; };
 		E530D3561F0C772500B193EC /* UICountingLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E530D3541F0C772500B193EC /* UICountingLabel.m */; };
-		E530D3591F0C780100B193EC /* RadiaDetectionPage.m in Sources */ = {isa = PBXBuildFile; fileRef = E530D3581F0C780100B193EC /* RadiaDetectionPage.m */; };
 		E530D35D1F0C7ADD00B193EC /* ic_zhuanpan_bk@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E530D35C1F0C7ADD00B193EC /* ic_zhuanpan_bk@2x.png */; };
 		E530D35F1F0C837500B193EC /* ic_pointer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E530D35E1F0C837500B193EC /* ic_pointer@2x.png */; };
+		E531000D1F1D8E8900625049 /* CBMoralManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFE91F1D8E8900625049 /* CBMoralManager.m */; };
+		E531000E1F1D8E8900625049 /* CBPeripheralExt.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFEB1F1D8E8900625049 /* CBPeripheralExt.m */; };
+		E531000F1F1D8E8900625049 /* AccelerometerModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFEE1F1D8E8900625049 /* AccelerometerModel.m */; };
+		E53100101F1D8E8900625049 /* BarometerModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFF01F1D8E8900625049 /* BarometerModel.m */; };
+		E53100111F1D8E8900625049 /* BatteryServiceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFF21F1D8E8900625049 /* BatteryServiceModel.m */; };
+		E53100121F1D8E8900625049 /* BootLoaderServiceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFF41F1D8E8900625049 /* BootLoaderServiceModel.m */; };
+		E53100131F1D8E8900625049 /* BPModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFF61F1D8E8900625049 /* BPModel.m */; };
+		E53100141F1D8E8900625049 /* capsenseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFF81F1D8E8900625049 /* capsenseModel.m */; };
+		E53100151F1D8E8900625049 /* CSCModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFFA1F1D8E8900625049 /* CSCModel.m */; };
+		E53100161F1D8E8900625049 /* DevieInformationModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFFC1F1D8E8900625049 /* DevieInformationModel.m */; };
+		E53100171F1D8E8900625049 /* FindMeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531FFFE1F1D8E8900625049 /* FindMeModel.m */; };
+		E53100181F1D8E8900625049 /* GlucoseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100001F1D8E8900625049 /* GlucoseModel.m */; };
+		E53100191F1D8E8900625049 /* HRMModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100021F1D8E8900625049 /* HRMModel.m */; };
+		E531001A1F1D8E8900625049 /* RGBModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100041F1D8E8900625049 /* RGBModel.m */; };
+		E531001B1F1D8E8900625049 /* RSCModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100061F1D8E8900625049 /* RSCModel.m */; };
+		E531001C1F1D8E8900625049 /* SensorHubModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100081F1D8E8900625049 /* SensorHubModel.m */; };
+		E531001D1F1D8E8900625049 /* TemperatureModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531000A1F1D8E8900625049 /* TemperatureModel.m */; };
+		E531001E1F1D8E8900625049 /* ThermometerModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E531000C1F1D8E8900625049 /* ThermometerModel.m */; };
+		E53100231F1D8F4B00625049 /* ResourceHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100221F1D8F4B00625049 /* ResourceHandler.m */; };
+		E53100261F1D8F6300625049 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100251F1D8F6300625049 /* Utilities.m */; };
+		E531002C1F1D913D00625049 /* MBleService.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100291F1D913D00625049 /* MBleService.m */; };
+		E531002D1F1D913D00625049 /* Option.m in Sources */ = {isa = PBXBuildFile; fileRef = E531002B1F1D913D00625049 /* Option.m */; };
+		E53100301F1D994A00625049 /* DevicesTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E531002F1F1D994A00625049 /* DevicesTableViewCell.m */; };
+		E53100331F1D9A8100625049 /* ProgressHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100321F1D9A8100625049 /* ProgressHandler.m */; };
+		E53100361F1D9ACA00625049 /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = E53100351F1D9ACA00625049 /* UIView+Toast.m */; };
 		E53196DD1F15A58C0020972E /* icon_lanya_tag.png in Resources */ = {isa = PBXBuildFile; fileRef = E53196DC1F15A58C0020972E /* icon_lanya_tag.png */; };
 		E53196E01F15A6380020972E /* SearchDeviceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E53196DF1F15A6380020972E /* SearchDeviceCell.m */; };
 		E53196E51F15AE7A0020972E /* icon_like.png in Resources */ = {isa = PBXBuildFile; fileRef = E53196E11F15AE7A0020972E /* icon_like.png */; };
@@ -372,7 +409,12 @@
 		E532F66F1E70D8F000B43476 /* ReconnectControl.m in Sources */ = {isa = PBXBuildFile; fileRef = E532F6691E70D8F000B43476 /* ReconnectControl.m */; };
 		E532F6701E70D8F000B43476 /* Socket.m in Sources */ = {isa = PBXBuildFile; fileRef = E532F66B1E70D8F000B43476 /* Socket.m */; };
 		E532F6751E70E78F00B43476 /* NSString+HexToBytes.m in Sources */ = {isa = PBXBuildFile; fileRef = E532F6741E70E78F00B43476 /* NSString+HexToBytes.m */; };
+		E539CB961F39580900D55670 /* DataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E539CB951F39580900D55670 /* DataModel.m */; };
+		E539CB991F39585000D55670 /* UploadModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E539CB981F39585000D55670 /* UploadModel.m */; };
 		E539CE361F0B1EBA00634EEB /* ic_device_lw_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E539CE351F0B1EBA00634EEB /* ic_device_lw_bk.png */; };
+		E53B943C1F258CDE00800478 /* icon_arraw_left@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E53B943A1F258CDE00800478 /* icon_arraw_left@2x.png */; };
+		E53B943D1F258CDE00800478 /* icon_arraw_right@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E53B943B1F258CDE00800478 /* icon_arraw_right@2x.png */; };
+		E53B94411F25C94000800478 /* CSAudioManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E53B94401F25C94000800478 /* CSAudioManager.m */; };
 		E542E5471F1457B300D35387 /* ic_jiance_sel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E5411F1457B300D35387 /* ic_jiance_sel@2x.png */; };
 		E542E5481F1457B300D35387 /* ic_jiance_unsel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E5421F1457B300D35387 /* ic_jiance_unsel@2x.png */; };
 		E542E5491F1457B300D35387 /* ic_set_sel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E5431F1457B300D35387 /* ic_set_sel@2x.png */; };
@@ -401,12 +443,11 @@
 		E542E5861F1473F200D35387 /* icon_one.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E5791F1473F100D35387 /* icon_one.png */; };
 		E542E5871F1473F200D35387 /* icon_story@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E57A1F1473F100D35387 /* icon_story@2x.png */; };
 		E542E58A1F1482C100D35387 /* HistoryRecordPage.m in Sources */ = {isa = PBXBuildFile; fileRef = E542E5891F1482C100D35387 /* HistoryRecordPage.m */; };
-		E542E5941F14841100D35387 /* ic_bottom_bg.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E58C1F14841100D35387 /* ic_bottom_bg.png */; };
+		E542E5941F14841100D35387 /* ic_bottom_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E58C1F14841100D35387 /* ic_bottom_bg@2x.png */; };
 		E542E5951F14841100D35387 /* ic_line.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E58D1F14841100D35387 /* ic_line.png */; };
 		E542E5961F14841100D35387 /* ic_time_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E58E1F14841100D35387 /* ic_time_bk.png */; };
 		E542E5971F14841100D35387 /* ic_time_item_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E58F1F14841100D35387 /* ic_time_item_bk.png */; };
 		E542E5981F14841100D35387 /* icon_address.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E5901F14841100D35387 /* icon_address.png */; };
-		E542E5991F14841100D35387 /* icon_arraw.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E5911F14841100D35387 /* icon_arraw.png */; };
 		E542E59A1F14841100D35387 /* icon_down_up_arraw.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E5921F14841100D35387 /* icon_down_up_arraw.png */; };
 		E542E59B1F14841100D35387 /* icon_time.png in Resources */ = {isa = PBXBuildFile; fileRef = E542E5931F14841100D35387 /* icon_time.png */; };
 		E54875571E5D1A47009D5EEF /* NSBundle+TZImagePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = E548753D1E5D1A47009D5EEF /* NSBundle+TZImagePicker.m */; };
@@ -691,6 +732,12 @@
 		E55D457F1EC3EF5500A93E8D /* edit_tel_no_tag.png in Resources */ = {isa = PBXBuildFile; fileRef = E55D45721EC3EF5500A93E8D /* edit_tel_no_tag.png */; };
 		E55D45811EC3F04900A93E8D /* login_btn_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E55D45801EC3F04900A93E8D /* login_btn_bk.png */; };
 		E55D458E1EC40E3C00A93E8D /* top_bar_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E55D45881EC40E3C00A93E8D /* top_bar_bk.png */; };
+		E55F8DF91F2C19B9009779B9 /* SearchTipsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E55F8DF81F2C19B9009779B9 /* SearchTipsCell.m */; };
+		E55F8DFC1F2C283D009779B9 /* RadiaDetectionPage.m in Sources */ = {isa = PBXBuildFile; fileRef = E55F8DFB1F2C283D009779B9 /* RadiaDetectionPage.m */; };
+		E55F8E021F2C80A7009779B9 /* CharacteristicFormatPList.plist in Resources */ = {isa = PBXBuildFile; fileRef = E55F8DFE1F2C80A7009779B9 /* CharacteristicFormatPList.plist */; };
+		E55F8E031F2C80A7009779B9 /* CharacteristicUUIDPList.plist in Resources */ = {isa = PBXBuildFile; fileRef = E55F8DFF1F2C80A7009779B9 /* CharacteristicUUIDPList.plist */; };
+		E55F8E041F2C80A7009779B9 /* serviceAndCharacteristicNames.plist in Resources */ = {isa = PBXBuildFile; fileRef = E55F8E001F2C80A7009779B9 /* serviceAndCharacteristicNames.plist */; };
+		E55F8E051F2C80A7009779B9 /* ServiceUUIDPList.plist in Resources */ = {isa = PBXBuildFile; fileRef = E55F8E011F2C80A7009779B9 /* ServiceUUIDPList.plist */; };
 		E56217EA1EF0BD95008CE3D2 /* ad_context_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E56217DF1EF0BD95008CE3D2 /* ad_context_bk.png */; };
 		E56217EB1EF0BD95008CE3D2 /* ad_context_line.png in Resources */ = {isa = PBXBuildFile; fileRef = E56217E01EF0BD95008CE3D2 /* ad_context_line.png */; };
 		E56217EC1EF0BD95008CE3D2 /* ad_context_tag.png in Resources */ = {isa = PBXBuildFile; fileRef = E56217E11EF0BD95008CE3D2 /* ad_context_tag.png */; };
@@ -720,6 +767,7 @@
 		E582726D1EF20E4500878643 /* ChangeDevicePage.m in Sources */ = {isa = PBXBuildFile; fileRef = E582726C1EF20E4500878643 /* ChangeDevicePage.m */; };
 		E582726F1EF212A000878643 /* ic_device_change.png in Resources */ = {isa = PBXBuildFile; fileRef = E582726E1EF212A000878643 /* ic_device_change.png */; };
 		E58272711EF2217200878643 /* ic_change_device_btn_bk.png in Resources */ = {isa = PBXBuildFile; fileRef = E58272701EF2217200878643 /* ic_change_device_btn_bk.png */; };
+		E5914F08206B469A009AB768 /* NavigationBar128@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E5914F07206B4699009AB768 /* NavigationBar128@2x.png */; };
 		E5AB0DEE1EFA390800169298 /* HotelSelModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E5AB0DED1EFA390800169298 /* HotelSelModel.m */; };
 		E5CFD3661F02382300737872 /* HotelAccountCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E5CFD3651F02382300737872 /* HotelAccountCell.m */; };
 		E5CFD36A1F02481200737872 /* icon_bianji@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E5CFD3671F02481200737872 /* icon_bianji@2x.png */; };
@@ -1256,6 +1304,10 @@
 		E522978D1F0CB2AC00D79A31 /* NSTimer+timerBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSTimer+timerBlock.m"; sourceTree = "<group>"; };
 		E522978F1F0CB2AC00D79A31 /* ZZCircleProgress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZZCircleProgress.h; sourceTree = "<group>"; };
 		E52297901F0CB2AC00D79A31 /* ZZCircleProgress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZZCircleProgress.m; sourceTree = "<group>"; };
+		E5274A631F33182600E3883C /* UIView+Category.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Category.h"; sourceTree = "<group>"; };
+		E5274A641F33182600E3883C /* UIView+Category.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Category.m"; sourceTree = "<group>"; };
+		E5274A651F33182600E3883C /* XZPickView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XZPickView.h; sourceTree = "<group>"; };
+		E5274A661F33182600E3883C /* XZPickView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XZPickView.m; sourceTree = "<group>"; };
 		E52D8C421DF78F5F007D8714 /* MJExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJExampleViewController.h; sourceTree = "<group>"; };
 		E52D8C431DF78F5F007D8714 /* MJExampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJExampleViewController.m; sourceTree = "<group>"; };
 		E52D8C451DF78FC0007D8714 /* MJExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJExample.h; sourceTree = "<group>"; };
@@ -1309,14 +1361,51 @@
 		E52F9BD91E514BEC00A5F789 /* HomePage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomePage.m; sourceTree = "<group>"; };
 		E52F9BE81E51569900A5F789 /* app_logo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "app_logo@2x.png"; sourceTree = "<group>"; };
 		E52F9BEA1E515A8D00A5F789 /* ic_more@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_more@2x.png"; sourceTree = "<group>"; };
+		E53038371F38571F003F63DE /* music.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = music.mp3; sourceTree = "<group>"; };
+		E53081EB1F1C415C001555FE /* ic_anquan_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_anquan_bk.png; sourceTree = "<group>"; };
+		E53081EC1F1C415C001555FE /* ic_anquan_tips.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_anquan_tips.png; sourceTree = "<group>"; };
+		E53081ED1F1C415C001555FE /* ic_radia_bottom_bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_radia_bottom_bg.png; sourceTree = "<group>"; };
+		E53081EE1F1C415C001555FE /* ic_head_bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_head_bg.png; sourceTree = "<group>"; };
+		E53081EF1F1C415C001555FE /* ic_line.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_line.png; sourceTree = "<group>"; };
+		E53081F01F1C415C001555FE /* ic_weixian_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_weixian_bk.png; sourceTree = "<group>"; };
+		E53081F11F1C415C001555FE /* ic_weixin_tips.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_weixin_tips.png; sourceTree = "<group>"; };
+		E53081F21F1C415C001555FE /* ic_zhishu_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_zhishu_bk.png; sourceTree = "<group>"; };
+		E53081F31F1C415C001555FE /* icon_anquan.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_anquan.png; sourceTree = "<group>"; };
+		E53081F41F1C415C001555FE /* icon_weixian.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_weixian.png; sourceTree = "<group>"; };
 		E530D3511F0C772500B193EC /* LJInstrumentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LJInstrumentView.h; sourceTree = "<group>"; };
 		E530D3521F0C772500B193EC /* LJInstrumentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LJInstrumentView.m; sourceTree = "<group>"; };
 		E530D3531F0C772500B193EC /* UICountingLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICountingLabel.h; sourceTree = "<group>"; };
 		E530D3541F0C772500B193EC /* UICountingLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICountingLabel.m; sourceTree = "<group>"; };
-		E530D3571F0C780100B193EC /* RadiaDetectionPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RadiaDetectionPage.h; sourceTree = "<group>"; };
-		E530D3581F0C780100B193EC /* RadiaDetectionPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RadiaDetectionPage.m; sourceTree = "<group>"; };
 		E530D35C1F0C7ADD00B193EC /* ic_zhuanpan_bk@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_zhuanpan_bk@2x.png"; sourceTree = "<group>"; };
 		E530D35E1F0C837500B193EC /* ic_pointer@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_pointer@2x.png"; sourceTree = "<group>"; };
+		E53100001F1D8E8900625049 /* GlucoseModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlucoseModel.m; sourceTree = "<group>"; };
+		E53100011F1D8E8900625049 /* HRMModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HRMModel.h; sourceTree = "<group>"; };
+		E53100021F1D8E8900625049 /* HRMModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HRMModel.m; sourceTree = "<group>"; };
+		E53100031F1D8E8900625049 /* RGBModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RGBModel.h; sourceTree = "<group>"; };
+		E53100041F1D8E8900625049 /* RGBModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RGBModel.m; sourceTree = "<group>"; };
+		E53100051F1D8E8900625049 /* RSCModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSCModel.h; sourceTree = "<group>"; };
+		E53100061F1D8E8900625049 /* RSCModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSCModel.m; sourceTree = "<group>"; };
+		E53100071F1D8E8900625049 /* SensorHubModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SensorHubModel.h; sourceTree = "<group>"; };
+		E53100081F1D8E8900625049 /* SensorHubModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SensorHubModel.m; sourceTree = "<group>"; };
+		E53100091F1D8E8900625049 /* TemperatureModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TemperatureModel.h; sourceTree = "<group>"; };
+		E531000A1F1D8E8900625049 /* TemperatureModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TemperatureModel.m; sourceTree = "<group>"; };
+		E531000B1F1D8E8900625049 /* ThermometerModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThermometerModel.h; sourceTree = "<group>"; };
+		E531000C1F1D8E8900625049 /* ThermometerModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ThermometerModel.m; sourceTree = "<group>"; };
+		E53100201F1D8EE100625049 /* Constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Constants.h; sourceTree = "<group>"; };
+		E53100211F1D8F4B00625049 /* ResourceHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceHandler.h; sourceTree = "<group>"; };
+		E53100221F1D8F4B00625049 /* ResourceHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResourceHandler.m; sourceTree = "<group>"; };
+		E53100241F1D8F6300625049 /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
+		E53100251F1D8F6300625049 /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
+		E53100281F1D913D00625049 /* MBleService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MBleService.h; sourceTree = "<group>"; };
+		E53100291F1D913D00625049 /* MBleService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MBleService.m; sourceTree = "<group>"; };
+		E531002A1F1D913D00625049 /* Option.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Option.h; sourceTree = "<group>"; };
+		E531002B1F1D913D00625049 /* Option.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Option.m; sourceTree = "<group>"; };
+		E531002E1F1D994A00625049 /* DevicesTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DevicesTableViewCell.h; sourceTree = "<group>"; };
+		E531002F1F1D994A00625049 /* DevicesTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DevicesTableViewCell.m; sourceTree = "<group>"; };
+		E53100311F1D9A8100625049 /* ProgressHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProgressHandler.h; sourceTree = "<group>"; };
+		E53100321F1D9A8100625049 /* ProgressHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProgressHandler.m; sourceTree = "<group>"; };
+		E53100341F1D9ACA00625049 /* UIView+Toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Toast.h"; sourceTree = "<group>"; };
+		E53100351F1D9ACA00625049 /* UIView+Toast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Toast.m"; sourceTree = "<group>"; };
 		E53196DC1F15A58C0020972E /* icon_lanya_tag.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_lanya_tag.png; sourceTree = "<group>"; };
 		E53196DE1F15A6380020972E /* SearchDeviceCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchDeviceCell.h; sourceTree = "<group>"; };
 		E53196DF1F15A6380020972E /* SearchDeviceCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchDeviceCell.m; sourceTree = "<group>"; };
@@ -1328,6 +1417,29 @@
 		E53196EA1F15AF0D0020972E /* MusicPlayCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MusicPlayCell.m; sourceTree = "<group>"; };
 		E53196EC1F15B3E50020972E /* MusicSetPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MusicSetPage.h; sourceTree = "<group>"; };
 		E53196ED1F15B3E50020972E /* MusicSetPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MusicSetPage.m; sourceTree = "<group>"; };
+		E531FFE81F1D8E8900625049 /* CBMoralManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CBMoralManager.h; sourceTree = "<group>"; };
+		E531FFE91F1D8E8900625049 /* CBMoralManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CBMoralManager.m; sourceTree = "<group>"; };
+		E531FFEA1F1D8E8900625049 /* CBPeripheralExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CBPeripheralExt.h; sourceTree = "<group>"; };
+		E531FFEB1F1D8E8900625049 /* CBPeripheralExt.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CBPeripheralExt.m; sourceTree = "<group>"; };
+		E531FFED1F1D8E8900625049 /* AccelerometerModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccelerometerModel.h; sourceTree = "<group>"; };
+		E531FFEE1F1D8E8900625049 /* AccelerometerModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AccelerometerModel.m; sourceTree = "<group>"; };
+		E531FFEF1F1D8E8900625049 /* BarometerModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BarometerModel.h; sourceTree = "<group>"; };
+		E531FFF01F1D8E8900625049 /* BarometerModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BarometerModel.m; sourceTree = "<group>"; };
+		E531FFF11F1D8E8900625049 /* BatteryServiceModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BatteryServiceModel.h; sourceTree = "<group>"; };
+		E531FFF21F1D8E8900625049 /* BatteryServiceModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BatteryServiceModel.m; sourceTree = "<group>"; };
+		E531FFF31F1D8E8900625049 /* BootLoaderServiceModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BootLoaderServiceModel.h; sourceTree = "<group>"; };
+		E531FFF41F1D8E8900625049 /* BootLoaderServiceModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BootLoaderServiceModel.m; sourceTree = "<group>"; };
+		E531FFF51F1D8E8900625049 /* BPModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BPModel.h; sourceTree = "<group>"; };
+		E531FFF61F1D8E8900625049 /* BPModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BPModel.m; sourceTree = "<group>"; };
+		E531FFF71F1D8E8900625049 /* capsenseModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = capsenseModel.h; sourceTree = "<group>"; };
+		E531FFF81F1D8E8900625049 /* capsenseModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = capsenseModel.m; sourceTree = "<group>"; };
+		E531FFF91F1D8E8900625049 /* CSCModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSCModel.h; sourceTree = "<group>"; };
+		E531FFFA1F1D8E8900625049 /* CSCModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSCModel.m; sourceTree = "<group>"; };
+		E531FFFB1F1D8E8900625049 /* DevieInformationModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DevieInformationModel.h; sourceTree = "<group>"; };
+		E531FFFC1F1D8E8900625049 /* DevieInformationModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DevieInformationModel.m; sourceTree = "<group>"; };
+		E531FFFD1F1D8E8900625049 /* FindMeModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FindMeModel.h; sourceTree = "<group>"; };
+		E531FFFE1F1D8E8900625049 /* FindMeModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FindMeModel.m; sourceTree = "<group>"; };
+		E531FFFF1F1D8E8900625049 /* GlucoseModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlucoseModel.h; sourceTree = "<group>"; };
 		E5325D021EFA208A00F13A48 /* LHDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LHDB.h; sourceTree = "<group>"; };
 		E5325D031EFA208A00F13A48 /* LHDBBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LHDBBlock.h; sourceTree = "<group>"; };
 		E5325D041EFA208A00F13A48 /* LHDBPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LHDBPath.h; sourceTree = "<group>"; };
@@ -1356,7 +1468,15 @@
 		E532F66B1E70D8F000B43476 /* Socket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Socket.m; sourceTree = "<group>"; };
 		E532F6731E70E78F00B43476 /* NSString+HexToBytes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+HexToBytes.h"; sourceTree = "<group>"; };
 		E532F6741E70E78F00B43476 /* NSString+HexToBytes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+HexToBytes.m"; sourceTree = "<group>"; };
+		E539CB941F39580900D55670 /* DataModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataModel.h; sourceTree = "<group>"; };
+		E539CB951F39580900D55670 /* DataModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataModel.m; sourceTree = "<group>"; };
+		E539CB971F39585000D55670 /* UploadModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UploadModel.h; sourceTree = "<group>"; };
+		E539CB981F39585000D55670 /* UploadModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UploadModel.m; sourceTree = "<group>"; };
 		E539CE351F0B1EBA00634EEB /* ic_device_lw_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_device_lw_bk.png; sourceTree = "<group>"; };
+		E53B943A1F258CDE00800478 /* icon_arraw_left@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_arraw_left@2x.png"; sourceTree = "<group>"; };
+		E53B943B1F258CDE00800478 /* icon_arraw_right@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_arraw_right@2x.png"; sourceTree = "<group>"; };
+		E53B943F1F25C94000800478 /* CSAudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSAudioManager.h; sourceTree = "<group>"; };
+		E53B94401F25C94000800478 /* CSAudioManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSAudioManager.m; sourceTree = "<group>"; };
 		E542E5411F1457B300D35387 /* ic_jiance_sel@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_jiance_sel@2x.png"; sourceTree = "<group>"; };
 		E542E5421F1457B300D35387 /* ic_jiance_unsel@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_jiance_unsel@2x.png"; sourceTree = "<group>"; };
 		E542E5431F1457B300D35387 /* ic_set_sel@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_set_sel@2x.png"; sourceTree = "<group>"; };
@@ -1387,12 +1507,11 @@
 		E542E57A1F1473F100D35387 /* icon_story@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_story@2x.png"; sourceTree = "<group>"; };
 		E542E5881F1482C100D35387 /* HistoryRecordPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryRecordPage.h; sourceTree = "<group>"; };
 		E542E5891F1482C100D35387 /* HistoryRecordPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryRecordPage.m; sourceTree = "<group>"; };
-		E542E58C1F14841100D35387 /* ic_bottom_bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_bottom_bg.png; sourceTree = "<group>"; };
+		E542E58C1F14841100D35387 /* ic_bottom_bg@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_bottom_bg@2x.png"; sourceTree = "<group>"; };
 		E542E58D1F14841100D35387 /* ic_line.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_line.png; sourceTree = "<group>"; };
 		E542E58E1F14841100D35387 /* ic_time_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_time_bk.png; sourceTree = "<group>"; };
 		E542E58F1F14841100D35387 /* ic_time_item_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_time_item_bk.png; sourceTree = "<group>"; };
 		E542E5901F14841100D35387 /* icon_address.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_address.png; sourceTree = "<group>"; };
-		E542E5911F14841100D35387 /* icon_arraw.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_arraw.png; sourceTree = "<group>"; };
 		E542E5921F14841100D35387 /* icon_down_up_arraw.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_down_up_arraw.png; sourceTree = "<group>"; };
 		E542E5931F14841100D35387 /* icon_time.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_time.png; sourceTree = "<group>"; };
 		E548753C1E5D1A47009D5EEF /* NSBundle+TZImagePicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSBundle+TZImagePicker.h"; sourceTree = "<group>"; };
@@ -1954,6 +2073,14 @@
 		E55D45721EC3EF5500A93E8D /* edit_tel_no_tag.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = edit_tel_no_tag.png; sourceTree = "<group>"; };
 		E55D45801EC3F04900A93E8D /* login_btn_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = login_btn_bk.png; sourceTree = "<group>"; };
 		E55D45881EC40E3C00A93E8D /* top_bar_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = top_bar_bk.png; sourceTree = "<group>"; };
+		E55F8DF71F2C19B9009779B9 /* SearchTipsCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchTipsCell.h; sourceTree = "<group>"; };
+		E55F8DF81F2C19B9009779B9 /* SearchTipsCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchTipsCell.m; sourceTree = "<group>"; };
+		E55F8DFA1F2C283D009779B9 /* RadiaDetectionPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RadiaDetectionPage.h; sourceTree = "<group>"; };
+		E55F8DFB1F2C283D009779B9 /* RadiaDetectionPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RadiaDetectionPage.m; sourceTree = "<group>"; };
+		E55F8DFE1F2C80A7009779B9 /* CharacteristicFormatPList.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = CharacteristicFormatPList.plist; sourceTree = "<group>"; };
+		E55F8DFF1F2C80A7009779B9 /* CharacteristicUUIDPList.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = CharacteristicUUIDPList.plist; sourceTree = "<group>"; };
+		E55F8E001F2C80A7009779B9 /* serviceAndCharacteristicNames.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = serviceAndCharacteristicNames.plist; sourceTree = "<group>"; };
+		E55F8E011F2C80A7009779B9 /* ServiceUUIDPList.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = ServiceUUIDPList.plist; sourceTree = "<group>"; };
 		E56217DF1EF0BD95008CE3D2 /* ad_context_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ad_context_bk.png; sourceTree = "<group>"; };
 		E56217E01EF0BD95008CE3D2 /* ad_context_line.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ad_context_line.png; sourceTree = "<group>"; };
 		E56217E11EF0BD95008CE3D2 /* ad_context_tag.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ad_context_tag.png; sourceTree = "<group>"; };
@@ -1996,6 +2123,7 @@
 		E582726C1EF20E4500878643 /* ChangeDevicePage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ChangeDevicePage.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
 		E582726E1EF212A000878643 /* ic_device_change.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_device_change.png; sourceTree = "<group>"; };
 		E58272701EF2217200878643 /* ic_change_device_btn_bk.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_change_device_btn_bk.png; sourceTree = "<group>"; };
+		E5914F07206B4699009AB768 /* NavigationBar128@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "NavigationBar128@2x.png"; sourceTree = "<group>"; };
 		E5AB0DEC1EFA390800169298 /* HotelSelModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HotelSelModel.h; sourceTree = "<group>"; };
 		E5AB0DED1EFA390800169298 /* HotelSelModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HotelSelModel.m; sourceTree = "<group>"; };
 		E5CFD3641F02382300737872 /* HotelAccountCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HotelAccountCell.h; sourceTree = "<group>"; };
@@ -2641,6 +2769,8 @@
 		E51CFF271DF505CE006A0462 /* Home */ = {
 			isa = PBXGroup;
 			children = (
+				E55F8DFA1F2C283D009779B9 /* RadiaDetectionPage.h */,
+				E55F8DFB1F2C283D009779B9 /* RadiaDetectionPage.m */,
 				E52F9BC81E51493300A5F789 /* MinePage.h */,
 				E52F9BC91E51493300A5F789 /* MinePage.m */,
 				E52F9BD81E514BEC00A5F789 /* HomePage.h */,
@@ -2713,8 +2843,6 @@
 				E548756C1E5D1AFA009D5EEF /* PhotosPage.m */,
 				E51984F31F0A0E9200F59285 /* HotelSelPage.h */,
 				E51984F41F0A0E9200F59285 /* HotelSelPage.m */,
-				E530D3571F0C780100B193EC /* RadiaDetectionPage.h */,
-				E530D3581F0C780100B193EC /* RadiaDetectionPage.m */,
 				E542E5881F1482C100D35387 /* HistoryRecordPage.h */,
 				E542E5891F1482C100D35387 /* HistoryRecordPage.m */,
 				E53196EC1F15B3E50020972E /* MusicSetPage.h */,
@@ -2782,6 +2910,10 @@
 				E5AB0DED1EFA390800169298 /* HotelSelModel.m */,
 				E51D73251F00AA8500E2476E /* DeviceSpareModel.h */,
 				E51D73261F00AA8500E2476E /* DeviceSpareModel.m */,
+				E539CB941F39580900D55670 /* DataModel.h */,
+				E539CB951F39580900D55670 /* DataModel.m */,
+				E539CB971F39585000D55670 /* UploadModel.h */,
+				E539CB981F39585000D55670 /* UploadModel.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -2789,6 +2921,7 @@
 		E51CFF351DF505CE006A0462 /* Resources */ = {
 			isa = PBXGroup;
 			children = (
+				E53038361F38571F003F63DE /* Music */,
 				E51CFF361DF505CE006A0462 /* Assets.xcassets */,
 				E51CFF371DF505CE006A0462 /* Config */,
 				E51CFF391DF505CE006A0462 /* images */,
@@ -2820,6 +2953,7 @@
 		E51CFF3A1DF505CE006A0462 /* ThirdClass */ = {
 			isa = PBXGroup;
 			children = (
+				E531FFE71F1D8E8900625049 /* CBManager */,
 				E5566DD21F09CB47001B34C5 /* ZXingCode */,
 				E51F64331EEFB1E40066F95F /* BaiduMapAPI */,
 				E548753B1E5D1A47009D5EEF /* TZImagePickerController */,
@@ -2894,6 +3028,8 @@
 		E51CFF641DF505CE006A0462 /* Utility */ = {
 			isa = PBXGroup;
 			children = (
+				E5274A621F33182600E3883C /* XZPickView */,
+				E53B943E1F25C94000800478 /* AudioTool */,
 				E530D3501F0C772500B193EC /* LJProgress */,
 				E52142351EFBA9A0003867B8 /* DirectoryWatcher.h */,
 				E52142361EFBA9A0003867B8 /* DirectoryWatcher.m */,
@@ -2924,6 +3060,10 @@
 		E51CFF6C1DF505CE006A0462 /* Cell */ = {
 			isa = PBXGroup;
 			children = (
+				E55F8DF71F2C19B9009779B9 /* SearchTipsCell.h */,
+				E55F8DF81F2C19B9009779B9 /* SearchTipsCell.m */,
+				E531002E1F1D994A00625049 /* DevicesTableViewCell.h */,
+				E531002F1F1D994A00625049 /* DevicesTableViewCell.m */,
 				E53196E91F15AF0D0020972E /* MusicPlayCell.h */,
 				E53196EA1F15AF0D0020972E /* MusicPlayCell.m */,
 				E53196DE1F15A6380020972E /* SearchDeviceCell.h */,
@@ -3283,6 +3423,17 @@
 			path = BaseProject/Utility/ZZCircleProgress;
 			sourceTree = SOURCE_ROOT;
 		};
+		E5274A621F33182600E3883C /* XZPickView */ = {
+			isa = PBXGroup;
+			children = (
+				E5274A631F33182600E3883C /* UIView+Category.h */,
+				E5274A641F33182600E3883C /* UIView+Category.m */,
+				E5274A651F33182600E3883C /* XZPickView.h */,
+				E5274A661F33182600E3883C /* XZPickView.m */,
+			);
+			path = XZPickView;
+			sourceTree = "<group>";
+		};
 		E52D8C511DF798DE007D8714 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -3317,6 +3468,7 @@
 		E52F27CB1E4BF6E20022CA1D /* loginpage */ = {
 			isa = PBXGroup;
 			children = (
+				E5914F07206B4699009AB768 /* NavigationBar128@2x.png */,
 				E52F27D61E4C08B60022CA1D /* NavigationBar64@2x.png */,
 			);
 			path = loginpage;
@@ -3367,6 +3519,14 @@
 			path = common;
 			sourceTree = "<group>";
 		};
+		E53038361F38571F003F63DE /* Music */ = {
+			isa = PBXGroup;
+			children = (
+				E53038371F38571F003F63DE /* music.mp3 */,
+			);
+			path = Music;
+			sourceTree = "<group>";
+		};
 		E530D3501F0C772500B193EC /* LJProgress */ = {
 			isa = PBXGroup;
 			children = (
@@ -3390,10 +3550,101 @@
 		E530D35B1F0C7ADD00B193EC /* radiadection */ = {
 			isa = PBXGroup;
 			children = (
+				E53081EB1F1C415C001555FE /* ic_anquan_bk.png */,
+				E53081EC1F1C415C001555FE /* ic_anquan_tips.png */,
+				E53081ED1F1C415C001555FE /* ic_radia_bottom_bg.png */,
+				E53081EE1F1C415C001555FE /* ic_head_bg.png */,
+				E53081EF1F1C415C001555FE /* ic_line.png */,
+				E53081F01F1C415C001555FE /* ic_weixian_bk.png */,
+				E53081F11F1C415C001555FE /* ic_weixin_tips.png */,
+				E53081F21F1C415C001555FE /* ic_zhishu_bk.png */,
+				E53081F31F1C415C001555FE /* icon_anquan.png */,
+				E53081F41F1C415C001555FE /* icon_weixian.png */,
 				E530D35E1F0C837500B193EC /* ic_pointer@2x.png */,
 				E530D35C1F0C7ADD00B193EC /* ic_zhuanpan_bk@2x.png */,
 			);
 			path = radiadection;
+			sourceTree = "<group>";
+		};
+		E531001F1F1D8EE100625049 /* common */ = {
+			isa = PBXGroup;
+			children = (
+				E53100341F1D9ACA00625049 /* UIView+Toast.h */,
+				E53100351F1D9ACA00625049 /* UIView+Toast.m */,
+				E53100311F1D9A8100625049 /* ProgressHandler.h */,
+				E53100321F1D9A8100625049 /* ProgressHandler.m */,
+				E53100241F1D8F6300625049 /* Utilities.h */,
+				E53100251F1D8F6300625049 /* Utilities.m */,
+				E53100211F1D8F4B00625049 /* ResourceHandler.h */,
+				E53100221F1D8F4B00625049 /* ResourceHandler.m */,
+				E53100201F1D8EE100625049 /* Constants.h */,
+			);
+			path = common;
+			sourceTree = "<group>";
+		};
+		E53100271F1D913D00625049 /* BLEModel */ = {
+			isa = PBXGroup;
+			children = (
+				E53100281F1D913D00625049 /* MBleService.h */,
+				E53100291F1D913D00625049 /* MBleService.m */,
+				E531002A1F1D913D00625049 /* Option.h */,
+				E531002B1F1D913D00625049 /* Option.m */,
+			);
+			path = BLEModel;
+			sourceTree = "<group>";
+		};
+		E531FFE71F1D8E8900625049 /* CBManager */ = {
+			isa = PBXGroup;
+			children = (
+				E55F8DFD1F2C80A7009779B9 /* PList */,
+				E53100271F1D913D00625049 /* BLEModel */,
+				E531001F1F1D8EE100625049 /* common */,
+				E531FFE81F1D8E8900625049 /* CBMoralManager.h */,
+				E531FFE91F1D8E8900625049 /* CBMoralManager.m */,
+				E531FFEA1F1D8E8900625049 /* CBPeripheralExt.h */,
+				E531FFEB1F1D8E8900625049 /* CBPeripheralExt.m */,
+				E531FFEC1F1D8E8900625049 /* CharacterModel */,
+			);
+			path = CBManager;
+			sourceTree = "<group>";
+		};
+		E531FFEC1F1D8E8900625049 /* CharacterModel */ = {
+			isa = PBXGroup;
+			children = (
+				E531FFED1F1D8E8900625049 /* AccelerometerModel.h */,
+				E531FFEE1F1D8E8900625049 /* AccelerometerModel.m */,
+				E531FFEF1F1D8E8900625049 /* BarometerModel.h */,
+				E531FFF01F1D8E8900625049 /* BarometerModel.m */,
+				E531FFF11F1D8E8900625049 /* BatteryServiceModel.h */,
+				E531FFF21F1D8E8900625049 /* BatteryServiceModel.m */,
+				E531FFF31F1D8E8900625049 /* BootLoaderServiceModel.h */,
+				E531FFF41F1D8E8900625049 /* BootLoaderServiceModel.m */,
+				E531FFF51F1D8E8900625049 /* BPModel.h */,
+				E531FFF61F1D8E8900625049 /* BPModel.m */,
+				E531FFF71F1D8E8900625049 /* capsenseModel.h */,
+				E531FFF81F1D8E8900625049 /* capsenseModel.m */,
+				E531FFF91F1D8E8900625049 /* CSCModel.h */,
+				E531FFFA1F1D8E8900625049 /* CSCModel.m */,
+				E531FFFB1F1D8E8900625049 /* DevieInformationModel.h */,
+				E531FFFC1F1D8E8900625049 /* DevieInformationModel.m */,
+				E531FFFD1F1D8E8900625049 /* FindMeModel.h */,
+				E531FFFE1F1D8E8900625049 /* FindMeModel.m */,
+				E531FFFF1F1D8E8900625049 /* GlucoseModel.h */,
+				E53100001F1D8E8900625049 /* GlucoseModel.m */,
+				E53100011F1D8E8900625049 /* HRMModel.h */,
+				E53100021F1D8E8900625049 /* HRMModel.m */,
+				E53100031F1D8E8900625049 /* RGBModel.h */,
+				E53100041F1D8E8900625049 /* RGBModel.m */,
+				E53100051F1D8E8900625049 /* RSCModel.h */,
+				E53100061F1D8E8900625049 /* RSCModel.m */,
+				E53100071F1D8E8900625049 /* SensorHubModel.h */,
+				E53100081F1D8E8900625049 /* SensorHubModel.m */,
+				E53100091F1D8E8900625049 /* TemperatureModel.h */,
+				E531000A1F1D8E8900625049 /* TemperatureModel.m */,
+				E531000B1F1D8E8900625049 /* ThermometerModel.h */,
+				E531000C1F1D8E8900625049 /* ThermometerModel.m */,
+			);
+			path = CharacterModel;
 			sourceTree = "<group>";
 		};
 		E5325D011EFA208A00F13A48 /* LHDB */ = {
@@ -3443,6 +3694,15 @@
 			path = SocketControl;
 			sourceTree = "<group>";
 		};
+		E53B943E1F25C94000800478 /* AudioTool */ = {
+			isa = PBXGroup;
+			children = (
+				E53B943F1F25C94000800478 /* CSAudioManager.h */,
+				E53B94401F25C94000800478 /* CSAudioManager.m */,
+			);
+			path = AudioTool;
+			sourceTree = "<group>";
+		};
 		E542E56D1F1473F100D35387 /* search */ = {
 			isa = PBXGroup;
 			children = (
@@ -3467,12 +3727,13 @@
 		E542E58B1F14841100D35387 /* history */ = {
 			isa = PBXGroup;
 			children = (
-				E542E58C1F14841100D35387 /* ic_bottom_bg.png */,
+				E53B943A1F258CDE00800478 /* icon_arraw_left@2x.png */,
+				E53B943B1F258CDE00800478 /* icon_arraw_right@2x.png */,
+				E542E58C1F14841100D35387 /* ic_bottom_bg@2x.png */,
 				E542E58D1F14841100D35387 /* ic_line.png */,
 				E542E58E1F14841100D35387 /* ic_time_bk.png */,
 				E542E58F1F14841100D35387 /* ic_time_item_bk.png */,
 				E542E5901F14841100D35387 /* icon_address.png */,
-				E542E5911F14841100D35387 /* icon_arraw.png */,
 				E542E5921F14841100D35387 /* icon_down_up_arraw.png */,
 				E542E5931F14841100D35387 /* icon_time.png */,
 			);
@@ -4414,6 +4675,17 @@
 			path = regist;
 			sourceTree = "<group>";
 		};
+		E55F8DFD1F2C80A7009779B9 /* PList */ = {
+			isa = PBXGroup;
+			children = (
+				E55F8DFE1F2C80A7009779B9 /* CharacteristicFormatPList.plist */,
+				E55F8DFF1F2C80A7009779B9 /* CharacteristicUUIDPList.plist */,
+				E55F8E001F2C80A7009779B9 /* serviceAndCharacteristicNames.plist */,
+				E55F8E011F2C80A7009779B9 /* ServiceUUIDPList.plist */,
+			);
+			path = PList;
+			sourceTree = "<group>";
+		};
 		E56217DE1EF0BD95008CE3D2 /* fabuad */ = {
 			isa = PBXGroup;
 			children = (
@@ -4485,7 +4757,7 @@
 		E51CFEFB1DF4EC57006A0462 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 0820;
+				LastUpgradeCheck = 0920;
 				ORGANIZATIONNAME = WindShan;
 				TargetAttributes = {
 					E51CFF021DF4EC57006A0462 = {
@@ -4519,6 +4791,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				E55D457C1EC3EF5500A93E8D /* login_bk.png in Resources */,
+				E53081FB1F1C415C001555FE /* ic_weixin_tips.png in Resources */,
 				E517F3B11DF5A9DE00C08331 /* dropdown_anim__0004@2x.png in Resources */,
 				E51F64711EEFC0E60066F95F /* sign_noout_bk.png in Resources */,
 				E517F3AB1DF5A9DE00C08331 /* dropdown_anim__00036@2x.png in Resources */,
@@ -4548,9 +4821,11 @@
 				E542E5821F1473F200D35387 /* ic_top_bk.png in Resources */,
 				E542E5861F1473F200D35387 /* icon_one.png in Resources */,
 				E517F3A41DF5A9DE00C08331 /* dropdown_anim__0002@2x.png in Resources */,
+				E53081F51F1C415C001555FE /* ic_anquan_bk.png in Resources */,
 				E517F3911DF5A9DE00C08331 /* dropdown_anim__00012@2x.png in Resources */,
 				E517F3981DF5A9DE00C08331 /* dropdown_anim__00019@2x.png in Resources */,
 				E56217F21EF0BD95008CE3D2 /* ad_scroll_type_bk.png in Resources */,
+				E53B943C1F258CDE00800478 /* icon_arraw_left@2x.png in Resources */,
 				E51D4C461EF37EEE006E849E /* icon_lianxi.png in Resources */,
 				E51F646D1EEFC0E60066F95F /* sign_in_bk.png in Resources */,
 				E5187A731DFA5C0A00E867B7 /* Info.plist in Resources */,
@@ -4560,6 +4835,8 @@
 				E51F64051EEF6EC30066F95F /* lw_normal_bk.png in Resources */,
 				E517F3A01DF5A9DE00C08331 /* dropdown_anim__00026@2x.png in Resources */,
 				E542E5531F14609100D35387 /* exit_btn.png in Resources */,
+				E53081F71F1C415C001555FE /* ic_radia_bottom_bg.png in Resources */,
+				E53081F61F1C415C001555FE /* ic_anquan_tips.png in Resources */,
 				E539CE361F0B1EBA00634EEB /* ic_device_lw_bk.png in Resources */,
 				E542E5951F14841100D35387 /* ic_line.png in Resources */,
 				E51F63FB1EEF6EC30066F95F /* ic_change_device_tag@2x.png in Resources */,
@@ -4584,6 +4861,7 @@
 				E51F64041EEF6EC30066F95F /* lw_chaneg_bk.png in Resources */,
 				E55D45731EC3EF5500A93E8D /* back_arraw.png in Resources */,
 				E52E1CCF1EEE24AA000520FB /* ico_make.png in Resources */,
+				E53081FA1F1C415C001555FE /* ic_weixian_bk.png in Resources */,
 				E53196E51F15AE7A0020972E /* icon_like.png in Resources */,
 				E517F3921DF5A9DE00C08331 /* dropdown_anim__00013@2x.png in Resources */,
 				E517F39E1DF5A9DE00C08331 /* dropdown_anim__00024@2x.png in Resources */,
@@ -4595,6 +4873,8 @@
 				E51F64031EEF6EC30066F95F /* ic_sign_tag@2x.png in Resources */,
 				E517F3961DF5A9DE00C08331 /* dropdown_anim__00017@2x.png in Resources */,
 				E517F39B1DF5A9DE00C08331 /* dropdown_anim__00021@2x.png in Resources */,
+				E53038381F38571F003F63DE /* music.mp3 in Resources */,
+				E5914F08206B469A009AB768 /* NavigationBar128@2x.png in Resources */,
 				E517F39C1DF5A9DE00C08331 /* dropdown_anim__00022@2x.png in Resources */,
 				E52F839C1EC944860069F64E /* file_download_process.png in Resources */,
 				E542E5541F14609100D35387 /* icon_arraw.png in Resources */,
@@ -4603,10 +4883,12 @@
 				E517F3931DF5A9DE00C08331 /* dropdown_anim__00014@2x.png in Resources */,
 				E52F839B1EC944860069F64E /* file_download_item_bk.png in Resources */,
 				E517F3A71DF5A9DE00C08331 /* dropdown_anim__00032@2x.png in Resources */,
+				E55F8E031F2C80A7009779B9 /* CharacteristicUUIDPList.plist in Resources */,
 				E542E5571F14609100D35387 /* icon_police.png in Resources */,
 				E51D4C471EF37EEE006E849E /* icon_spare_list.png in Resources */,
 				E51F63FA1EEF6EC30066F95F /* add_device_btn@2x.png in Resources */,
 				E51D732A1F00ADE800E2476E /* spare1.png in Resources */,
+				E53081FC1F1C415C001555FE /* ic_zhishu_bk.png in Resources */,
 				E505FBAB1ECBD91600C1B672 /* file_havedown_look_btn.png in Resources */,
 				E52F9BE91E51569900A5F789 /* app_logo@2x.png in Resources */,
 				E51F64741EEFC0E60066F95F /* sign_user_btn_bk@2x.png in Resources */,
@@ -4630,8 +4912,10 @@
 				E55D457E1EC3EF5500A93E8D /* edit_code_tag.png in Resources */,
 				E56217F01EF0BD95008CE3D2 /* ad_scroll_speed_tag.png in Resources */,
 				E542E5961F14841100D35387 /* ic_time_bk.png in Resources */,
+				E53081FD1F1C415C001555FE /* icon_anquan.png in Resources */,
 				E55D45791EC3EF5500A93E8D /* edit_line.png in Resources */,
 				E56217F11EF0BD95008CE3D2 /* ad_scroll_tag.png in Resources */,
+				E53081FE1F1C415C001555FE /* icon_weixian.png in Resources */,
 				E5CFD36B1F02481200737872 /* icon_dianhua@2x.png in Resources */,
 				E51F64021EEF6EC30066F95F /* ic_search_tag.png in Resources */,
 				E542E5801F1473F200D35387 /* ic_search_stop_btn.png in Resources */,
@@ -4640,12 +4924,12 @@
 				E542E54B1F1457B300D35387 /* ic_shop_sel@2x.png in Resources */,
 				E51F63FF1EEF6EC30066F95F /* ic_laba_scroll_bk.png in Resources */,
 				E53196DD1F15A58C0020972E /* icon_lanya_tag.png in Resources */,
-				E542E5991F14841100D35387 /* icon_arraw.png in Resources */,
 				E542E5841F1473F200D35387 /* icon-three.png in Resources */,
 				E55D457A1EC3EF5500A93E8D /* edit_name_tag.png in Resources */,
+				E53B943D1F258CDE00800478 /* icon_arraw_right@2x.png in Resources */,
 				E517F3B71DF5A9DE00C08331 /* dropdown_loading_01@2x.png in Resources */,
 				E542E5551F14609100D35387 /* icon_data.png in Resources */,
-				E542E5941F14841100D35387 /* ic_bottom_bg.png in Resources */,
+				E542E5941F14841100D35387 /* ic_bottom_bg@2x.png in Resources */,
 				E51F646A1EEFC0E60066F95F /* sign_daka_bk.png in Resources */,
 				E542E54A1F1457B300D35387 /* ic_set_unsel@2x.png in Resources */,
 				E51F646B1EEFC0E60066F95F /* sign_edit_bk.png in Resources */,
@@ -4660,10 +4944,12 @@
 				E542E59B1F14841100D35387 /* icon_time.png in Resources */,
 				E51F64251EEF851C0066F95F /* ic_device_line@2x.png in Resources */,
 				E517F3AF1DF5A9DE00C08331 /* dropdown_anim__0003@2x.png in Resources */,
+				E53081F91F1C415C001555FE /* ic_line.png in Resources */,
 				E5CFD36A1F02481200737872 /* icon_bianji@2x.png in Resources */,
 				E542E5581F14609100D35387 /* icon_refresh.png in Resources */,
 				E56217F31EF0BD95008CE3D2 /* ad_scroll_up_down_bk1.png in Resources */,
 				E51F64731EEFC0E60066F95F /* sign_prove_tag@2x.png in Resources */,
+				E55F8E021F2C80A7009779B9 /* CharacteristicFormatPList.plist in Resources */,
 				E505FBA91ECBD91600C1B672 /* file_havedown_delete_btn.png in Resources */,
 				E51212C91E52963B00AABF1E /* right_menu_QR@2x.png in Resources */,
 				E55D45741EC3EF5500A93E8D /* edit_long_bk.png in Resources */,
@@ -4678,17 +4964,20 @@
 				E542E5481F1457B300D35387 /* ic_jiance_unsel@2x.png in Resources */,
 				E542E59A1F14841100D35387 /* icon_down_up_arraw.png in Resources */,
 				E56217F41EF0BD95008CE3D2 /* ad_scroll_up_down_bk2.png in Resources */,
+				E55F8E051F2C80A7009779B9 /* ServiceUUIDPList.plist in Resources */,
 				E55D45761EC3EF5500A93E8D /* edit_short_bk.png in Resources */,
 				E542E5691F1460D100D35387 /* ic_item_bk.png in Resources */,
 				E542E57E1F1473F200D35387 /* ic_search_done.png in Resources */,
 				E56217ED1EF0BD95008CE3D2 /* ad_fabu_btn_bk.png in Resources */,
 				E51F63FE1EEF6EC30066F95F /* ic_fabu_gg_tag@2x.png in Resources */,
+				E55F8E041F2C80A7009779B9 /* serviceAndCharacteristicNames.plist in Resources */,
 				E52F83991EC944860069F64E /* file_cmd_line@2x.png in Resources */,
 				E505FBAA1ECBD91600C1B672 /* file_havedown_item_bk.png in Resources */,
 				E51F63FD1EEF6EC30066F95F /* ic_devicename_tag@2x.png in Resources */,
 				E569B44C1E6E9F63008D9FB8 /* page_icon_empty@2x.png in Resources */,
 				E53196E61F15AE7A0020972E /* icon_play.png in Resources */,
 				E51F63FC1EEF6EC30066F95F /* ic_close_gg_tag@2x.png in Resources */,
+				E53081F81F1C415C001555FE /* ic_head_bg.png in Resources */,
 				E517F3B91DF5A9DF00C08331 /* dropdown_loading_03@2x.png in Resources */,
 				E5566FF81F09CB48001B34C5 /* LICENSE in Resources */,
 				E51C7E8E1EFA04E3009B4F70 /* PDF Document.pdf in Resources */,
@@ -4731,12 +5020,15 @@
 				E55670B21F09CB48001B34C5 /* ZXModulusGF.m in Sources */,
 				E5133A681E56C02000C89EA5 /* DeviceDetailsPage.m in Sources */,
 				E55670C91F09CB48001B34C5 /* ZXPDF417ResultMetadata.m in Sources */,
+				E55F8DFC1F2C283D009779B9 /* RadiaDetectionPage.m in Sources */,
 				E55670881F09CB48001B34C5 /* ZXRSSExpandedDecodedChar.m in Sources */,
 				E51D73271F00AA8500E2476E /* DeviceSpareModel.m in Sources */,
+				E531000D1F1D8E8900625049 /* CBMoralManager.m in Sources */,
 				E55670251F09CB48001B34C5 /* ZXISBNParsedResult.m in Sources */,
 				E52D8C471DF78FC0007D8714 /* MJExample.m in Sources */,
 				E556705D1F09CB48001B34C5 /* ZXPlanarYUVLuminanceSource.m in Sources */,
 				E55670C51F09CB48001B34C5 /* ZXPDF417ErrorCorrection.m in Sources */,
+				E531002C1F1D913D00625049 /* MBleService.m in Sources */,
 				E5E06F341EF9177900012A6D /* MCURLRequest.m in Sources */,
 				E51C00021DF56905006A0462 /* NetworkTestPage.m in Sources */,
 				E556706C1F09CB48001B34C5 /* ZXDataMatrixEncoderContext.m in Sources */,
@@ -4746,6 +5038,7 @@
 				E52D8C501DF790A8007D8714 /* MJWebViewViewController.m in Sources */,
 				E5761E631EF3701F0037A976 /* NoticePage.m in Sources */,
 				E55670971F09CB48001B34C5 /* ZXRSSUtils.m in Sources */,
+				E539CB991F39585000D55670 /* UploadModel.m in Sources */,
 				E51212FC1E52A00900AABF1E /* JHWaveChart.m in Sources */,
 				E55670671F09CB48001B34C5 /* ZXDataMatrixASCIIEncoder.m in Sources */,
 				E55670411F09CB48001B34C5 /* ZXGenericGF.m in Sources */,
@@ -4753,11 +5046,13 @@
 				E51CFFE81DF56334006A0462 /* AFNetworkReachabilityManager.m in Sources */,
 				E55670001F09CB48001B34C5 /* LBXScanView.m in Sources */,
 				E532F66F1E70D8F000B43476 /* ReconnectControl.m in Sources */,
+				E53100111F1D8E8900625049 /* BatteryServiceModel.m in Sources */,
 				E54875631E5D1A47009D5EEF /* TZVideoPlayerController.m in Sources */,
 				E55670691F09CB48001B34C5 /* ZXDataMatrixC40Encoder.m in Sources */,
 				E556700E1F09CB48001B34C5 /* ZXAztecCode.m in Sources */,
 				E51212D21E52968A00AABF1E /* PopoverView.m in Sources */,
 				E51CFFEE1DF56334006A0462 /* AFImageDownloader.m in Sources */,
+				E53100361F1D9ACA00625049 /* UIView+Toast.m in Sources */,
 				E52F27D31E4BFF920022CA1D /* RegistPage.m in Sources */,
 				E55670061F09CB48001B34C5 /* MyQRViewController.m in Sources */,
 				E55670461F09CB48001B34C5 /* ZXBitMatrix.m in Sources */,
@@ -4775,6 +5070,7 @@
 				E51CFFF31DF56334006A0462 /* UIProgressView+AFNetworking.m in Sources */,
 				E51D6DEE1EC545450005B0E8 /* ICCommonItem.m in Sources */,
 				E55670831F09CB48001B34C5 /* ZXAI01decoder.m in Sources */,
+				E53100101F1D8E8900625049 /* BarometerModel.m in Sources */,
 				E55670321F09CB48001B34C5 /* ZXURIParsedResult.m in Sources */,
 				E5325D101EFA208A00F13A48 /* LHPredicate.m in Sources */,
 				E55670521F09CB48001B34C5 /* ZXPerspectiveTransform.m in Sources */,
@@ -4788,12 +5084,15 @@
 				E55670371F09CB48001B34C5 /* ZXVINParsedResult.m in Sources */,
 				E55670051F09CB48001B34C5 /* ZXingWrapper.m in Sources */,
 				E556706A1F09CB48001B34C5 /* ZXDataMatrixDefaultPlacement.m in Sources */,
+				E531001D1F1D8E8900625049 /* TemperatureModel.m in Sources */,
 				E5133A661E56C02000C89EA5 /* AddDevicePage.m in Sources */,
 				E517F3DA1DF5B01300C08331 /* MJPropertyType.m in Sources */,
 				E55670161F09CB48001B34C5 /* ZXAztecWriter.m in Sources */,
+				E53B94411F25C94000800478 /* CSAudioManager.m in Sources */,
 				E5187A791DFA5C0A00E867B7 /* MASViewConstraint.m in Sources */,
 				E5AB0DEE1EFA390800169298 /* HotelSelModel.m in Sources */,
 				E556708D1F09CB48001B34C5 /* ZXRSSExpandedGeneralAppIdDecoder.m in Sources */,
+				E531001E1F1D8E8900625049 /* ThermometerModel.m in Sources */,
 				E5187A8F1DFA7ABB00E867B7 /* view3.m in Sources */,
 				E556700C1F09CB48001B34C5 /* ZXAztecDetector.m in Sources */,
 				E5187A8E1DFA7ABB00E867B7 /* view2.m in Sources */,
@@ -4836,6 +5135,7 @@
 				E55670A21F09CB48001B34C5 /* ZXEAN8Writer.m in Sources */,
 				E51F64231EEF79770066F95F /* NoticeModel.m in Sources */,
 				E55670351F09CB48001B34C5 /* ZXVCardResultParser.m in Sources */,
+				E53100181F1D8E8900625049 /* GlucoseModel.m in Sources */,
 				E56217F71EF0BED6008CE3D2 /* AdvertisePage.m in Sources */,
 				E52F27CA1E4BF5E00022CA1D /* LoginPage.m in Sources */,
 				E556707B1F09CB48001B34C5 /* ZXAbstractExpandedDecoder.m in Sources */,
@@ -4854,12 +5154,14 @@
 				E5566FF71F09CB48001B34C5 /* LBXAlertAction.m in Sources */,
 				E556702D1F09CB48001B34C5 /* ZXSMSTOMMSTOResultParser.m in Sources */,
 				E51CFF7F1DF505CE006A0462 /* BaseInfo.m in Sources */,
+				E531000E1F1D8E8900625049 /* CBPeripheralExt.m in Sources */,
 				E52D8C4A1DF7904A007D8714 /* MJTableViewController.m in Sources */,
 				E52297931F0CB2AC00D79A31 /* ZZCircleProgress.m in Sources */,
 				E51CFF8E1DF505CE006A0462 /* UIButton+WebCache.m in Sources */,
 				E51C00391DF56A52006A0462 /* MJRefreshAutoStateFooter.m in Sources */,
 				E55670891F09CB48001B34C5 /* ZXRSSExpandedDecodedInformation.m in Sources */,
 				E5566FFF1F09CB48001B34C5 /* LBXScanVideoZoomView.m in Sources */,
+				E53100331F1D9A8100625049 /* ProgressHandler.m in Sources */,
 				E55670D51F09CB48001B34C5 /* ZXQRCodeAlignmentPattern.m in Sources */,
 				E55670DA1F09CB48001B34C5 /* ZXQRCodeFinderPatternInfo.m in Sources */,
 				E55670201F09CB48001B34C5 /* ZXEmailDoCoMoResultParser.m in Sources */,
@@ -4879,9 +5181,12 @@
 				E55670861F09CB48001B34C5 /* ZXRSSExpandedBlockParsedResult.m in Sources */,
 				E5566FFB1F09CB48001B34C5 /* LBXScanLineAnimation.m in Sources */,
 				E5676B571F03395800B19E0F /* AddHotelAccountPage.m in Sources */,
+				E531001A1F1D8E8900625049 /* RGBModel.m in Sources */,
 				E55670451F09CB48001B34C5 /* ZXBitArray.m in Sources */,
 				E556706D1F09CB48001B34C5 /* ZXDataMatrixErrorCorrection.m in Sources */,
 				E51F642D1EEF8CFF0066F95F /* HBdansLable.m in Sources */,
+				E53100131F1D8E8900625049 /* BPModel.m in Sources */,
+				E53100171F1D8E8900625049 /* FindMeModel.m in Sources */,
 				E556700D1F09CB48001B34C5 /* ZXAztecBinaryShiftToken.m in Sources */,
 				E55670A61F09CB48001B34C5 /* ZXMultiFormatOneDReader.m in Sources */,
 				E55670E71F09CB48001B34C5 /* README.md in Sources */,
@@ -4894,6 +5199,7 @@
 				E55670791F09CB48001B34C5 /* ZXByQuadrantReader.m in Sources */,
 				E52E1CD01EEE24AA000520FB /* JSDropDownMenu.m in Sources */,
 				E5676B5D1F0347AA00B19E0F /* HotelDevicePage.m in Sources */,
+				E531001C1F1D8E8900625049 /* SensorHubModel.m in Sources */,
 				E51F642F1EEF8CFF0066F95F /* UIView+WHB.m in Sources */,
 				E556704C1F09CB48001B34C5 /* ZXDefaultGridSampler.m in Sources */,
 				E55670771F09CB48001B34C5 /* ZXMaxiCodeDecoder.m in Sources */,
@@ -4917,7 +5223,9 @@
 				E55670D41F09CB48001B34C5 /* ZXQRCodeVersion.m in Sources */,
 				E5761E601EF36EC50037A976 /* NoticeCell.m in Sources */,
 				E51CFF7B1DF505CE006A0462 /* BaseNavPage.m in Sources */,
+				E531001B1F1D8E8900625049 /* RSCModel.m in Sources */,
 				E556704A1F09CB48001B34C5 /* ZXCharacterSetECI.m in Sources */,
+				E5274A671F33182600E3883C /* UIView+Category.m in Sources */,
 				E55670211F09CB48001B34C5 /* ZXExpandedProductParsedResult.m in Sources */,
 				E517F3DB1DF5B01300C08331 /* NSObject+MJClass.m in Sources */,
 				E51CFF831DF505CE006A0462 /* MBProgressHUD+Add.m in Sources */,
@@ -4946,6 +5254,7 @@
 				E51CFF8A1DF505CE006A0462 /* SDWebImageDownloader.m in Sources */,
 				E55670D81F09CB48001B34C5 /* ZXQRCodeFinderPattern.m in Sources */,
 				E556703B1F09CB48001B34C5 /* ZXCapture.m in Sources */,
+				E5274A681F33182600E3883C /* XZPickView.m in Sources */,
 				E55670901F09CB48001B34C5 /* ZXRSSExpandedReader.m in Sources */,
 				E55670D21F09CB48001B34C5 /* ZXQRCodeFormatInformation.m in Sources */,
 				E5CFD36F1F024A8500737872 /* HotelAccounPage.m in Sources */,
@@ -4953,6 +5262,8 @@
 				E517F3D81DF5B01300C08331 /* MJProperty.m in Sources */,
 				E51CFF9B1DF505CE006A0462 /* UILabel+DynamicFrame.m in Sources */,
 				E51212F31E52A00900AABF1E /* JHLineChart.m in Sources */,
+				E53100301F1D994A00625049 /* DevicesTableViewCell.m in Sources */,
+				E531002D1F1D913D00625049 /* Option.m in Sources */,
 				E51C00381DF56A52006A0462 /* MJRefreshAutoNormalFooter.m in Sources */,
 				E5187AA61DFA873000E867B7 /* NSObject+BAMJParse.m in Sources */,
 				E51C00361DF56A52006A0462 /* MJRefreshHeader.m in Sources */,
@@ -4962,6 +5273,7 @@
 				E55670A91F09CB48001B34C5 /* ZXOneDReader.m in Sources */,
 				E5325D0E1EFA208A00F13A48 /* LHDBPath.m in Sources */,
 				E55670821F09CB48001B34C5 /* ZXAI01AndOtherAIs.m in Sources */,
+				E53100161F1D8E8900625049 /* DevieInformationModel.m in Sources */,
 				E51CFF881DF505CE006A0462 /* SDWebImageCompat.m in Sources */,
 				E5187A781DFA5C0A00E867B7 /* MASViewAttribute.m in Sources */,
 				E55670541F09CB48001B34C5 /* ZXBinarizer.m in Sources */,
@@ -4974,6 +5286,7 @@
 				E5E06F381EF9177900012A6D /* MCWiFiManager.m in Sources */,
 				E55670871F09CB48001B34C5 /* ZXRSSExpandedCurrentParsingState.m in Sources */,
 				E51212F61E52A00900AABF1E /* JHPieItemsView.m in Sources */,
+				E53100141F1D8E8900625049 /* capsenseModel.m in Sources */,
 				E52F83871EC9306C0069F64E /* FileListPage.m in Sources */,
 				E52297911F0CB2AC00D79A31 /* NSTimer+timerBlock.m in Sources */,
 				E51C00451DF56A52006A0462 /* UIView+MJExtension.m in Sources */,
@@ -4986,6 +5299,7 @@
 				E55670C71F09CB48001B34C5 /* ZXPDF417Common.m in Sources */,
 				E51212FA1E52A00900AABF1E /* JHTableChart.m in Sources */,
 				E5CFD3661F02382300737872 /* HotelAccountCell.m in Sources */,
+				E53100151F1D8E8900625049 /* CSCModel.m in Sources */,
 				E51D6DED1EC545450005B0E8 /* ICCommonGroup.m in Sources */,
 				E556709D1F09CB48001B34C5 /* ZXCode39Writer.m in Sources */,
 				E54875621E5D1A47009D5EEF /* TZProgressView.m in Sources */,
@@ -5039,6 +5353,7 @@
 				E532F66E1E70D8F000B43476 /* DataControl.m in Sources */,
 				E55670E51F09CB48001B34C5 /* ZXMultiFormatReader.m in Sources */,
 				E556701D1F09CB48001B34C5 /* ZXCalendarParsedResult.m in Sources */,
+				E539CB961F39580900D55670 /* DataModel.m in Sources */,
 				E51C00421DF56A52006A0462 /* NSBundle+MJRefresh.m in Sources */,
 				E510079C1E559474008A01CE /* KTPageControl.m in Sources */,
 				E55670241F09CB48001B34C5 /* ZXGeoResultParser.m in Sources */,
@@ -5064,6 +5379,7 @@
 				E51212FB1E52A00900AABF1E /* JHTableDataRowModel.m in Sources */,
 				E54875671E5D1A87009D5EEF /* TZTestCell.m in Sources */,
 				E51CFFF01DF56334006A0462 /* UIActivityIndicatorView+AFNetworking.m in Sources */,
+				E531000F1F1D8E8900625049 /* AccelerometerModel.m in Sources */,
 				E55670C21F09CB48001B34C5 /* ZXPDF417BarcodeMatrix.m in Sources */,
 				E51B8E901DF943EF00D0AC45 /* UIViewController+BAAlertView.m in Sources */,
 				E5566FF41F09CB48001B34C5 /* UIActionSheet+LBXAlertAction.m in Sources */,
@@ -5078,6 +5394,7 @@
 				E55670DC1F09CB48001B34C5 /* ZXQRCodeBlockPair.m in Sources */,
 				E51CFFF21DF56334006A0462 /* UIImageView+AFNetworking.m in Sources */,
 				E51CFF961DF505CE006A0462 /* DateUtil.m in Sources */,
+				E55F8DF91F2C19B9009779B9 /* SearchTipsCell.m in Sources */,
 				E556709C1F09CB48001B34C5 /* ZXCode39Reader.m in Sources */,
 				E55670311F09CB48001B34C5 /* ZXTextParsedResult.m in Sources */,
 				E51CFF901DF505CE006A0462 /* UIImage+GIF.m in Sources */,
@@ -5097,6 +5414,7 @@
 				E556705F1F09CB48001B34C5 /* ZXResultPoint.m in Sources */,
 				E50EA1B31E53E1060076A3BE /* RadioButton.m in Sources */,
 				E556707C1F09CB48001B34C5 /* ZXAI013103decoder.m in Sources */,
+				E53100231F1D8F4B00625049 /* ResourceHandler.m in Sources */,
 				E556704B1F09CB48001B34C5 /* ZXDecoderResult.m in Sources */,
 				E55670B41F09CB48001B34C5 /* ZXPDF417ECErrorCorrection.m in Sources */,
 				E55670DF1F09CB48001B34C5 /* ZXQRCodeMatrixUtil.m in Sources */,
@@ -5158,6 +5476,7 @@
 				E55670E61F09CB48001B34C5 /* ZXMultiFormatWriter.m in Sources */,
 				E55670B91F09CB48001B34C5 /* ZXPDF417CodewordDecoder.m in Sources */,
 				E51007961E5585A7008A01CE /* BaseTableViewCell.m in Sources */,
+				E53100121F1D8E8900625049 /* BootLoaderServiceModel.m in Sources */,
 				E51CFF981DF505CE006A0462 /* StringUtil.m in Sources */,
 				E55670A81F09CB48001B34C5 /* ZXOneDimensionalCodeWriter.m in Sources */,
 				E5153F3D1E5A75B500314414 /* FileStatus.m in Sources */,
@@ -5180,6 +5499,7 @@
 				E5761E551EF365B50037A976 /* HotelCell.m in Sources */,
 				E55670C41F09CB48001B34C5 /* ZXPDF417Dimensions.m in Sources */,
 				E5761E5B1EF36DA30037A976 /* RoomSelPage.m in Sources */,
+				E53100261F1D8F6300625049 /* Utilities.m in Sources */,
 				E556701B1F09CB48001B34C5 /* ZXBizcardResultParser.m in Sources */,
 				E51CFFE91DF56334006A0462 /* AFSecurityPolicy.m in Sources */,
 				E55670DD1F09CB48001B34C5 /* ZXQRCodeEncoder.m in Sources */,
@@ -5214,7 +5534,7 @@
 				E517F3611DF5A76000C08331 /* MJChiBaoZiHeader.m in Sources */,
 				E51CFFEB1DF56334006A0462 /* AFURLResponseSerialization.m in Sources */,
 				E51CFF081DF4EC57006A0462 /* main.m in Sources */,
-				E530D3591F0C780100B193EC /* RadiaDetectionPage.m in Sources */,
+				E53100191F1D8E8900625049 /* HRMModel.m in Sources */,
 				E55670CE1F09CB48001B34C5 /* ZXQRCodeDecodedBitStreamParser.m in Sources */,
 				E55670561F09CB48001B34C5 /* ZXByteMatrix.m in Sources */,
 				E556703D1F09CB48001B34C5 /* ZXImage.m in Sources */,
@@ -5247,7 +5567,9 @@
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
@@ -5255,7 +5577,11 @@
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 				CLANG_WARN_SUSPICIOUS_MOVES = YES;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
@@ -5295,7 +5621,9 @@
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
@@ -5303,7 +5631,11 @@
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 				CLANG_WARN_SUSPICIOUS_MOVES = YES;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
diff --git a/pregnancy_guard/pregnancy_guard.xcodeproj/project.xcworkspace/xcuserdata/WindShan.xcuserdatad/UserInterfaceState.xcuserstate b/pregnancy_guard/pregnancy_guard.xcodeproj/project.xcworkspace/xcuserdata/WindShan.xcuserdatad/UserInterfaceState.xcuserstate
index 79327d5..79bd57d 100644
--- a/pregnancy_guard/pregnancy_guard.xcodeproj/project.xcworkspace/xcuserdata/WindShan.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/pregnancy_guard/pregnancy_guard.xcodeproj/project.xcworkspace/xcuserdata/WindShan.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
index 4686594..b2a50b1 100644
--- a/pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
+++ b/pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -10,11 +10,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
+            timestampString = "522566435.730841"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "704"
-            endingLineNumber = "704"
+            startingLineNumber = "713"
+            endingLineNumber = "713"
             landmarkName = "-showAnimation"
             landmarkType = "7">
          </BreakpointContent>
@@ -26,87 +26,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "862"
-            endingLineNumber = "862"
-            landmarkName = "-drawAnimation"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "825"
-            endingLineNumber = "825"
-            landmarkName = "-configValueDataArray"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "807"
-            endingLineNumber = "807"
-            landmarkName = "-configValueDataArray"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "776"
-            endingLineNumber = "776"
-            landmarkName = "-configValueDataArray"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "771"
-            endingLineNumber = "771"
-            landmarkName = "-configValueDataArray"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
+            timestampString = "522566435.730841"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "871"
@@ -118,15 +38,79 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
+            timestampString = "522566435.730841"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "834"
+            endingLineNumber = "834"
+            landmarkName = "-configValueDataArray"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
+            timestampString = "522566435.730841"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "816"
+            endingLineNumber = "816"
+            landmarkName = "-configValueDataArray"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
+            timestampString = "522566435.730841"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "785"
+            endingLineNumber = "785"
+            landmarkName = "-configValueDataArray"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
+            timestampString = "522566435.730841"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "874"
-            endingLineNumber = "874"
+            startingLineNumber = "780"
+            endingLineNumber = "780"
+            landmarkName = "-configValueDataArray"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
+            timestampString = "522566435.730841"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "880"
+            endingLineNumber = "880"
             landmarkName = "-drawAnimation"
             landmarkType = "7">
          </BreakpointContent>
@@ -138,11 +122,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
+            timestampString = "522566435.730841"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "879"
-            endingLineNumber = "879"
+            startingLineNumber = "883"
+            endingLineNumber = "883"
             landmarkName = "-drawAnimation"
             landmarkType = "7">
          </BreakpointContent>
@@ -154,11 +138,27 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
+            timestampString = "522566435.730841"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "904"
-            endingLineNumber = "904"
+            startingLineNumber = "888"
+            endingLineNumber = "888"
+            landmarkName = "-drawAnimation"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
+            timestampString = "522566435.730841"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "913"
+            endingLineNumber = "913"
             landmarkName = "-drawPathWithDataArr:andIndex:"
             landmarkType = "7">
          </BreakpointContent>
@@ -170,11 +170,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
-            timestampString = "510037659.688"
+            timestampString = "522566435.730841"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "766"
-            endingLineNumber = "766"
+            startingLineNumber = "775"
+            endingLineNumber = "775"
             landmarkName = "-configValueDataArray"
             landmarkType = "7">
          </BreakpointContent>
@@ -1641,28 +1641,12 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Login/LoginPage.m"
-            timestampString = "516159688.273833"
+            timestampString = "543910008.753916"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "82"
             endingLineNumber = "82"
             landmarkName = "-viewDidLoad"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/MinePage.m"
-            timestampString = "521431359.097829"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "152"
-            endingLineNumber = "152"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -1833,11 +1817,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "572"
-            endingLineNumber = "572"
+            startingLineNumber = "580"
+            endingLineNumber = "580"
             landmarkName = "-menu:didSelectRowAtIndexPath:"
             landmarkType = "7">
          </BreakpointContent>
@@ -1849,11 +1833,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "578"
-            endingLineNumber = "578"
+            startingLineNumber = "586"
+            endingLineNumber = "586"
             landmarkName = "-menu:didSelectRowAtIndexPath:"
             landmarkType = "7">
          </BreakpointContent>
@@ -1929,11 +1913,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "311"
-            endingLineNumber = "311"
+            startingLineNumber = "319"
+            endingLineNumber = "319"
             landmarkName = "-myFileViewList"
             landmarkType = "7">
          </BreakpointContent>
@@ -2057,11 +2041,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "313"
-            endingLineNumber = "313"
+            startingLineNumber = "321"
+            endingLineNumber = "321"
             landmarkName = "-myFileViewList"
             landmarkType = "7">
          </BreakpointContent>
@@ -2457,7 +2441,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Login/LoginPage.m"
-            timestampString = "521343352.034505"
+            timestampString = "543910008.754603"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "199"
@@ -2473,7 +2457,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Login/LoginPage.m"
-            timestampString = "521343352.034505"
+            timestampString = "543910008.754655"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "191"
@@ -2489,11 +2473,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/AppDelegate.m"
-            timestampString = "521435385.932585"
+            timestampString = "523954164.796338"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "229"
-            endingLineNumber = "229"
+            startingLineNumber = "284"
+            endingLineNumber = "284"
             landmarkName = "-getUserInfo"
             landmarkType = "7">
          </BreakpointContent>
@@ -2505,11 +2489,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/AppDelegate.m"
-            timestampString = "521435385.932585"
+            timestampString = "523954164.796338"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "232"
-            endingLineNumber = "232"
+            startingLineNumber = "287"
+            endingLineNumber = "287"
             landmarkName = "-getUserInfo"
             landmarkType = "7">
          </BreakpointContent>
@@ -2521,11 +2505,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/AppDelegate.m"
-            timestampString = "521435385.932585"
+            timestampString = "523954164.796338"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "237"
-            endingLineNumber = "237"
+            startingLineNumber = "292"
+            endingLineNumber = "292"
             landmarkName = "-getUserInfo"
             landmarkType = "7">
          </BreakpointContent>
@@ -2537,11 +2521,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Mine/ChangePwdPage.m"
-            timestampString = "519549235.706342"
+            timestampString = "523441454.572798"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "146"
-            endingLineNumber = "146"
+            startingLineNumber = "145"
+            endingLineNumber = "145"
             landmarkName = "-resetUserPwdAction"
             landmarkType = "7">
          </BreakpointContent>
@@ -2553,11 +2537,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Mine/ChangePwdPage.m"
-            timestampString = "519549249.80497"
+            timestampString = "523441454.572798"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "148"
-            endingLineNumber = "148"
+            startingLineNumber = "147"
+            endingLineNumber = "147"
             landmarkName = "-resetUserPwdAction"
             landmarkType = "7">
          </BreakpointContent>
@@ -2569,23 +2553,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Mine/ChangePwdPage.m"
-            timestampString = "519550303.668148"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "157"
-            endingLineNumber = "157"
-            landmarkName = "-resetUserPwdAction"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Mine/ChangePwdPage.m"
-            timestampString = "519550304.223702"
+            timestampString = "523441454.572798"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "156"
@@ -2601,11 +2569,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Mine/ChangePwdPage.m"
-            timestampString = "519550323.553568"
+            timestampString = "523441454.572798"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "151"
-            endingLineNumber = "151"
+            startingLineNumber = "155"
+            endingLineNumber = "155"
             landmarkName = "-resetUserPwdAction"
             landmarkType = "7">
          </BreakpointContent>
@@ -2617,11 +2585,27 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Mine/ChangePwdPage.m"
-            timestampString = "519550526.083627"
+            timestampString = "523441454.572798"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "152"
-            endingLineNumber = "152"
+            startingLineNumber = "150"
+            endingLineNumber = "150"
+            landmarkName = "-resetUserPwdAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/ChangePwdPage.m"
+            timestampString = "523441454.572798"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "151"
+            endingLineNumber = "151"
             landmarkName = "-resetUserPwdAction"
             landmarkType = "7">
          </BreakpointContent>
@@ -3048,199 +3032,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "282"
-            endingLineNumber = "282"
-            landmarkName = "-get_hotel_list"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "273"
-            endingLineNumber = "273"
-            landmarkName = "-get_hotel_list"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "274"
-            endingLineNumber = "274"
-            landmarkName = "-get_hotel_list"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "277"
-            endingLineNumber = "277"
-            landmarkName = "-get_hotel_list"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Login/LoginPage.m"
-            timestampString = "519714657.896707"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "43"
-            endingLineNumber = "43"
-            landmarkName = "-viewWillAppear:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Login/LoginPage.m"
-            timestampString = "519714670.728564"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "40"
-            endingLineNumber = "40"
-            landmarkName = "-viewWillAppear:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Login/LoginPage.m"
-            timestampString = "521343352.034505"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "207"
-            endingLineNumber = "207"
-            landmarkName = "-userLogin"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "304"
-            endingLineNumber = "304"
-            landmarkName = "-get_hotel_list"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "305"
-            endingLineNumber = "305"
-            landmarkName = "-get_hotel_list"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "307"
-            endingLineNumber = "307"
-            landmarkName = "-get_hotel_list"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "298"
-            endingLineNumber = "298"
-            landmarkName = "-get_hotel_list"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "291"
-            endingLineNumber = "291"
-            landmarkName = "-get_hotel_list"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "290"
@@ -3256,11 +3048,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "287"
-            endingLineNumber = "287"
+            startingLineNumber = "281"
+            endingLineNumber = "281"
             landmarkName = "-get_hotel_list"
             landmarkType = "7">
          </BreakpointContent>
@@ -3272,11 +3064,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "288"
-            endingLineNumber = "288"
+            startingLineNumber = "282"
+            endingLineNumber = "282"
             landmarkName = "-get_hotel_list"
             landmarkType = "7">
          </BreakpointContent>
@@ -3288,11 +3080,203 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "140"
-            endingLineNumber = "140"
+            startingLineNumber = "285"
+            endingLineNumber = "285"
+            landmarkName = "-get_hotel_list"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/LoginPage.m"
+            timestampString = "543910008.755159"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "43"
+            endingLineNumber = "43"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/LoginPage.m"
+            timestampString = "543910008.75521"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "40"
+            endingLineNumber = "40"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/LoginPage.m"
+            timestampString = "543910008.7552561"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "207"
+            endingLineNumber = "207"
+            landmarkName = "-userLogin"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
+            timestampString = "522038946.636497"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "312"
+            endingLineNumber = "312"
+            landmarkName = "-get_hotel_list"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
+            timestampString = "522038946.636497"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "313"
+            endingLineNumber = "313"
+            landmarkName = "-get_hotel_list"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
+            timestampString = "522038946.636497"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "315"
+            endingLineNumber = "315"
+            landmarkName = "-get_hotel_list"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
+            timestampString = "522038946.636497"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "306"
+            endingLineNumber = "306"
+            landmarkName = "-get_hotel_list"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
+            timestampString = "522038946.636497"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "299"
+            endingLineNumber = "299"
+            landmarkName = "-get_hotel_list"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
+            timestampString = "522038946.636497"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "298"
+            endingLineNumber = "298"
+            landmarkName = "-get_hotel_list"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
+            timestampString = "522038946.636497"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "295"
+            endingLineNumber = "295"
+            landmarkName = "-get_hotel_list"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
+            timestampString = "522038946.636497"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "296"
+            endingLineNumber = "296"
+            landmarkName = "-get_hotel_list"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
+            timestampString = "522038946.636497"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "146"
+            endingLineNumber = "146"
             landmarkName = "-viewDidLoad"
             landmarkType = "7">
          </BreakpointContent>
@@ -3304,11 +3288,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "523"
-            endingLineNumber = "523"
+            startingLineNumber = "531"
+            endingLineNumber = "531"
             landmarkName = "-menu:numberOfRowsInColumn:leftOrRight:leftRow:"
             landmarkType = "7">
          </BreakpointContent>
@@ -3320,11 +3304,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "527"
-            endingLineNumber = "527"
+            startingLineNumber = "535"
+            endingLineNumber = "535"
             landmarkName = "-menu:numberOfRowsInColumn:leftOrRight:leftRow:"
             landmarkType = "7">
          </BreakpointContent>
@@ -3336,11 +3320,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "237"
-            endingLineNumber = "237"
+            startingLineNumber = "245"
+            endingLineNumber = "245"
             landmarkName = "-get_latest_list"
             landmarkType = "7">
          </BreakpointContent>
@@ -3464,11 +3448,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "483"
-            endingLineNumber = "483"
+            startingLineNumber = "491"
+            endingLineNumber = "491"
             landmarkName = "-didDetailSection:"
             landmarkType = "7">
          </BreakpointContent>
@@ -3480,11 +3464,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "410"
-            endingLineNumber = "410"
+            startingLineNumber = "418"
+            endingLineNumber = "418"
             landmarkName = "-didDetailSection:"
             landmarkType = "7">
          </BreakpointContent>
@@ -3496,11 +3480,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "425"
-            endingLineNumber = "425"
+            startingLineNumber = "433"
+            endingLineNumber = "433"
             landmarkName = "-didDetailSection:"
             landmarkType = "7">
          </BreakpointContent>
@@ -3512,11 +3496,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "411"
-            endingLineNumber = "411"
+            startingLineNumber = "419"
+            endingLineNumber = "419"
             landmarkName = "-didDetailSection:"
             landmarkType = "7">
          </BreakpointContent>
@@ -3528,11 +3512,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "387"
-            endingLineNumber = "387"
+            startingLineNumber = "395"
+            endingLineNumber = "395"
             landmarkName = "-update_admode:"
             landmarkType = "7">
          </BreakpointContent>
@@ -3544,11 +3528,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "386"
-            endingLineNumber = "386"
+            startingLineNumber = "394"
+            endingLineNumber = "394"
             landmarkName = "-update_admode:"
             landmarkType = "7">
          </BreakpointContent>
@@ -3560,11 +3544,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "388"
-            endingLineNumber = "388"
+            startingLineNumber = "396"
+            endingLineNumber = "396"
             landmarkName = "-update_admode:"
             landmarkType = "7">
          </BreakpointContent>
@@ -4088,11 +4072,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "349"
-            endingLineNumber = "349"
+            startingLineNumber = "357"
+            endingLineNumber = "357"
             landmarkName = "-update_RETURN_BACK:"
             landmarkType = "7">
          </BreakpointContent>
@@ -4696,11 +4680,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760821.120438"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "76"
-            endingLineNumber = "76"
+            startingLineNumber = "82"
+            endingLineNumber = "82"
             landmarkName = "-viewDidLoad"
             landmarkType = "7">
          </BreakpointContent>
@@ -4952,11 +4936,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/DeviceListMgrPage.m"
-            timestampString = "520760816.173822"
+            timestampString = "522038946.636497"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "50"
-            endingLineNumber = "50"
+            startingLineNumber = "53"
+            endingLineNumber = "53"
             landmarkName = "-viewWillAppear:"
             landmarkType = "7">
          </BreakpointContent>
@@ -4980,15 +4964,15 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            shouldBeEnabled = "Yes"
+            shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Login/LoginPage.m"
-            timestampString = "521343352.034505"
+            timestampString = "543910008.756717"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "217"
-            endingLineNumber = "217"
+            startingLineNumber = "215"
+            endingLineNumber = "215"
             landmarkName = "-userLogin"
             landmarkType = "7">
          </BreakpointContent>
@@ -4996,11 +4980,11 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            shouldBeEnabled = "Yes"
+            shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Login/LoginPage.m"
-            timestampString = "521343352.034505"
+            timestampString = "543910008.756768"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "202"
@@ -5032,11 +5016,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Home/MinePage.m"
-            timestampString = "521433024.663753"
+            timestampString = "543891700.316872"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "293"
-            endingLineNumber = "293"
+            startingLineNumber = "451"
+            endingLineNumber = "451"
             landmarkName = "-get_straner"
             landmarkType = "7">
          </BreakpointContent>
@@ -5096,7 +5080,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "BaseProject/Controller/Login/LoginPage.m"
-            timestampString = "521343067.519766"
+            timestampString = "543910008.756881"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "129"
@@ -5105,5 +5089,1925 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/RadiaDetectionPage.m"
+            timestampString = "522042049.92536"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "216"
+            endingLineNumber = "216"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
+            timestampString = "522566435.730841"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "517"
+            endingLineNumber = "517"
+            landmarkName = "-drawXAndYLineWithContext:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
+            timestampString = "522566435.730841"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "521"
+            endingLineNumber = "521"
+            landmarkName = "-drawXAndYLineWithContext:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
+            timestampString = "522566937.249722"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "495"
+            endingLineNumber = "495"
+            landmarkName = "-drawXAndYLineWithContext:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/JHChart/JHLineChart.m"
+            timestampString = "522567810.760543"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "493"
+            endingLineNumber = "493"
+            landmarkName = "-drawXAndYLineWithContext:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.756996"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "396"
+            endingLineNumber = "396"
+            landmarkName = "SearchDevicePage"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.757044"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "439"
+            endingLineNumber = "439"
+            landmarkName = "-connectPeripheral:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.7570879"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "160"
+            endingLineNumber = "160"
+            landmarkName = "-numberOfSectionsInTableView:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.757129"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "413"
+            endingLineNumber = "413"
+            landmarkName = "SearchDevicePage"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Views/Cell/DevicesTableViewCell.m"
+            timestampString = "522817525.654808"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "129"
+            endingLineNumber = "129"
+            landmarkName = "-setDiscoveredPeripheralDataFromPeripheral:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/CBManager/CBMoralManager.m"
+            timestampString = "522819699.842463"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "147"
+            endingLineNumber = "147"
+            landmarkName = "-peripheralWithPeripheral:advertisementData:RSSI:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/CBManager/CBMoralManager.m"
+            timestampString = "522818057.954847"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "84"
+            endingLineNumber = "84"
+            landmarkName = "-startScanning"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.757215"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "281"
+            endingLineNumber = "281"
+            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.7572581"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "291"
+            endingLineNumber = "291"
+            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.757303"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "454"
+            endingLineNumber = "454"
+            landmarkName = "-connectPeripheral:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.757345"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "501"
+            endingLineNumber = "501"
+            landmarkName = "-backAticon"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.757387"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "450"
+            endingLineNumber = "450"
+            landmarkName = "-connectPeripheral:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.7574331"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "429"
+            endingLineNumber = "429"
+            landmarkName = "-viewDidDisappear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.75779"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "436"
+            endingLineNumber = "436"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.758057"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "433"
+            endingLineNumber = "433"
+            landmarkName = "RadiaDetectionPage"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.758335"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "435"
+            endingLineNumber = "435"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.758604"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "144"
+            endingLineNumber = "144"
+            landmarkName = "RadiaDetectionPage"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.758878"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "252"
+            endingLineNumber = "252"
+            landmarkName = "-peripheral:didUpdateValueForCharacteristic:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.759148"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "371"
+            endingLineNumber = "371"
+            landmarkName = "RadiaDetectionPage"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.7594219"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "382"
+            endingLineNumber = "382"
+            landmarkName = "-notifyOption"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.759691"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "175"
+            endingLineNumber = "175"
+            landmarkName = "-peripheral:didDiscoverCharacteristicsForService:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.759955"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "143"
+            endingLineNumber = "143"
+            landmarkName = "RadiaDetectionPage"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.760232"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "265"
+            endingLineNumber = "265"
+            landmarkName = "-peripheral:didUpdateValueForCharacteristic:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.760488"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "264"
+            endingLineNumber = "264"
+            landmarkName = "-peripheral:didUpdateValueForCharacteristic:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.760743"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "254"
+            endingLineNumber = "254"
+            landmarkName = "-peripheral:didUpdateValueForCharacteristic:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.760995"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "167"
+            endingLineNumber = "167"
+            landmarkName = "-peripheral:didDiscoverCharacteristicsForService:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.761248"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "164"
+            endingLineNumber = "164"
+            landmarkName = "-peripheral:didDiscoverCharacteristicsForService:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.761495"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "318"
+            endingLineNumber = "318"
+            landmarkName = "-writeOption:"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[RadiaDetectionPage writeOption:]"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.m"
+                  timestampString = "523154770.065211"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "226"
+                  endingLineNumber = "226"
+                  offsetFromSymbolStart = "468">
+               </Location>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "__34-[RadiaDetectionPage writeOption:]_block_invoke"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/Controller/Home/RadiaDetectionPage.m"
+                  timestampString = "523154770.06679"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "227"
+                  endingLineNumber = "227"
+                  offsetFromSymbolStart = "56">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.761744"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "304"
+            endingLineNumber = "304"
+            landmarkName = "-readOption"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.761992"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "319"
+            endingLineNumber = "319"
+            landmarkName = "-writeOption:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/CBManager/CBMoralManager.m"
+            timestampString = "523155419.46686"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "299"
+            endingLineNumber = "299"
+            landmarkName = "-centralManager:didDisconnectPeripheral:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/CBManager/CBMoralManager.m"
+            timestampString = "523155662.190468"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "277"
+            endingLineNumber = "277"
+            landmarkName = "-centralManager:didDisconnectPeripheral:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/CBManager/CBMoralManager.m"
+            timestampString = "523155682.38609"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "283"
+            endingLineNumber = "283"
+            landmarkName = "-centralManager:didDisconnectPeripheral:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.7622859"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "820"
+            endingLineNumber = "820"
+            landmarkName = "-viewDidLoad"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.762545"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "498"
+            endingLineNumber = "498"
+            landmarkName = "RadiaDetectionPage"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.762808"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "421"
+            endingLineNumber = "421"
+            landmarkName = "RadiaDetectionPage"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.763065"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "449"
+            endingLineNumber = "449"
+            landmarkName = "-connectPeripheral:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.763115"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "496"
+            endingLineNumber = "496"
+            landmarkName = "RadiaDetectionPage"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.763366"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "483"
+            endingLineNumber = "483"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.763615"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "462"
+            endingLineNumber = "462"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.763863"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "461"
+            endingLineNumber = "461"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/SearchDevicePage.m"
+            timestampString = "543910008.764109"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "400"
+            endingLineNumber = "400"
+            landmarkName = "-discoveryDidRefresh"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.7641571"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "482"
+            endingLineNumber = "482"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.764402"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "484"
+            endingLineNumber = "484"
+            landmarkName = "-viewWillAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/CBManager/common/Utilities.m"
+            timestampString = "523171510.451391"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "251"
+            endingLineNumber = "251"
+            landmarkName = "+bytesToHex:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.764663"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "191"
+            endingLineNumber = "191"
+            landmarkName = "-peripheral:didDiscoverDescriptorsForCharacteristic:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.764906"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "205"
+            endingLineNumber = "205"
+            landmarkName = "-peripheral:didUpdateValueForCharacteristic:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.765148"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "192"
+            endingLineNumber = "192"
+            landmarkName = "-peripheral:didDiscoverDescriptorsForCharacteristic:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/AppDelegate.m"
+            timestampString = "523954164.796338"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "131"
+            endingLineNumber = "131"
+            landmarkName = "-application:didFinishLaunchingWithOptions:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.765407"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "209"
+            endingLineNumber = "209"
+            landmarkName = "-peripheral:didUpdateValueForCharacteristic:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/RadiaDetectionPage.m"
+            timestampString = "543910008.765656"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "780"
+            endingLineNumber = "780"
+            landmarkName = "-viewDidLoad"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.765913"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "314"
+            endingLineNumber = "314"
+            landmarkName = "-getCheckCodeAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.765965"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "332"
+            endingLineNumber = "332"
+            landmarkName = "-getCheckCodeAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFHTTPSessionManager.m"
+            timestampString = "523244671.075645"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "162"
+            endingLineNumber = "162"
+            landmarkName = "-POST:parameters:progress:success:failure:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFHTTPSessionManager.m"
+            timestampString = "523246401.460296"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "261"
+            endingLineNumber = "261"
+            landmarkName = "-dataTaskWithHTTPMethod:URLString:parameters:uploadProgress:downloadProgress:success:failure:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.7660511"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "316"
+            endingLineNumber = "316"
+            landmarkName = "-getCheckCodeAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.766101"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "330"
+            endingLineNumber = "330"
+            landmarkName = "-getCheckCodeAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFHTTPSessionManager.m"
+            timestampString = "523246682.779399"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "263"
+            endingLineNumber = "263"
+            landmarkName = "-dataTaskWithHTTPMethod:URLString:parameters:uploadProgress:downloadProgress:success:failure:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFHTTPSessionManager.m"
+            timestampString = "523246682.779399"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "321"
+            endingLineNumber = "321"
+            landmarkName = "-initWithCoder:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.766187"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "317"
+            endingLineNumber = "317"
+            landmarkName = "-getCheckCodeAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/LoginPage.m"
+            timestampString = "543910008.76624"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "193"
+            endingLineNumber = "193"
+            landmarkName = "-userLogin"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/LoginPage.m"
+            timestampString = "543910008.766291"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "238"
+            endingLineNumber = "238"
+            landmarkName = "-userLogin"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+            timestampString = "523246176.537419"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "355"
+            endingLineNumber = "355"
+            landmarkName = "-requestWithMethod:URLString:parameters:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+            timestampString = "523246178.803586"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "352"
+            endingLineNumber = "352"
+            landmarkName = "-requestWithMethod:URLString:parameters:error:"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:]"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+                  timestampString = "523247589.552429"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "352"
+                  endingLineNumber = "352"
+                  offsetFromSymbolStart = "172">
+               </Location>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:]"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+                  timestampString = "523247589.554085"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "352"
+                  endingLineNumber = "352"
+                  offsetFromSymbolStart = "193">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFHTTPSessionManager.m"
+            timestampString = "523246682.779399"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "262"
+            endingLineNumber = "262"
+            landmarkName = "-dataTaskWithHTTPMethod:URLString:parameters:uploadProgress:downloadProgress:success:failure:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFHTTPSessionManager.m"
+            timestampString = "523246682.779399"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "261"
+            endingLineNumber = "261"
+            landmarkName = "-dataTaskWithHTTPMethod:URLString:parameters:uploadProgress:downloadProgress:success:failure:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Global/Global.m"
+            timestampString = "523246905.383752"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "183"
+            endingLineNumber = "183"
+            landmarkName = "+toBaseModel:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.766413"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "318"
+            endingLineNumber = "318"
+            landmarkName = "-getCheckCodeAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+            timestampString = "523247403.92601"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "470"
+            endingLineNumber = "470"
+            landmarkName = "-requestBySerializingRequest:withParameters:error:"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[AFHTTPRequestSerializer requestBySerializingRequest:withParameters:error:]"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+                  timestampString = "523251517.924171"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "470"
+                  endingLineNumber = "470"
+                  offsetFromSymbolStart = "94">
+               </Location>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[AFHTTPRequestSerializer requestBySerializingRequest:withParameters:error:]"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+                  timestampString = "523251517.925605"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "470"
+                  endingLineNumber = "470"
+                  offsetFromSymbolStart = "112">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+            timestampString = "523247411.629522"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1241"
+            endingLineNumber = "1241"
+            landmarkName = "-requestBySerializingRequest:withParameters:error:"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[AFJSONRequestSerializer requestBySerializingRequest:withParameters:error:]"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+                  timestampString = "523251517.92901"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1241"
+                  endingLineNumber = "1241"
+                  offsetFromSymbolStart = "94">
+               </Location>
+               <Location
+                  shouldBeEnabled = "No"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[AFJSONRequestSerializer requestBySerializingRequest:withParameters:error:]"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+                  timestampString = "523251517.930408"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1241"
+                  endingLineNumber = "1241"
+                  offsetFromSymbolStart = "112">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+            timestampString = "523249229.267666"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1324"
+            endingLineNumber = "1324"
+            landmarkName = "-requestBySerializingRequest:withParameters:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+            timestampString = "523249229.267666"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1323"
+            endingLineNumber = "1323"
+            landmarkName = "-requestBySerializingRequest:withParameters:error:"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[AFPropertyListRequestSerializer requestBySerializingRequest:withParameters:error:]"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+                  timestampString = "543910008.978935"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1323"
+                  endingLineNumber = "1323"
+                  offsetFromSymbolStart = "94">
+               </Location>
+               <Location
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[AFPropertyListRequestSerializer requestBySerializingRequest:withParameters:error:]"
+                  moduleName = "pregnancy_guard"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/WindShan/Documents/ios/oc/pregnancy_guard_ios/pregnancy_guard/BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+                  timestampString = "543910008.98087"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1323"
+                  endingLineNumber = "1323"
+                  offsetFromSymbolStart = "129">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Global/Global.m"
+            timestampString = "523247976.861352"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "186"
+            endingLineNumber = "186"
+            landmarkName = "+toBaseModel:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Global/Global.m"
+            timestampString = "523247976.861352"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "194"
+            endingLineNumber = "194"
+            landmarkName = "+toBaseModel:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+            timestampString = "523249202.822379"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1259"
+            endingLineNumber = "1259"
+            landmarkName = "-requestBySerializingRequest:withParameters:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFHTTPSessionManager.m"
+            timestampString = "523249502.554603"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "119"
+            endingLineNumber = "119"
+            landmarkName = "-GET:parameters:progress:success:failure:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.766571"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "283"
+            endingLineNumber = "283"
+            landmarkName = "-registAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.7666219"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "280"
+            endingLineNumber = "280"
+            landmarkName = "-registAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/ThirdClass/AFNetworking/AFNetworking/AFURLRequestSerialization.m"
+            timestampString = "523251600.027291"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "512"
+            endingLineNumber = "512"
+            landmarkName = "-requestBySerializingRequest:withParameters:error:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.7666841"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "296"
+            endingLineNumber = "296"
+            landmarkName = "-registAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/RegistPage.m"
+            timestampString = "543910008.7667331"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "284"
+            endingLineNumber = "284"
+            landmarkName = "-registAction"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Login/LoginPage.m"
+            timestampString = "543910008.766781"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "197"
+            endingLineNumber = "197"
+            landmarkName = "-userLogin"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/MinePage.m"
+            timestampString = "543891700.3181601"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "160"
+            endingLineNumber = "160"
+            landmarkName = "-LHGetStartTime"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/MinePage.m"
+            timestampString = "543891700.31838"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "56"
+            endingLineNumber = "56"
+            landmarkName = "-pickView:confirmButtonClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/MinePage.m"
+            timestampString = "543891700.318621"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "51"
+            endingLineNumber = "51"
+            landmarkName = "-pickView:confirmButtonClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/MinePage.m"
+            timestampString = "543891700.318839"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "52"
+            endingLineNumber = "52"
+            landmarkName = "-pickView:confirmButtonClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/MinePage.m"
+            timestampString = "543891700.31906"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "55"
+            endingLineNumber = "55"
+            landmarkName = "-pickView:confirmButtonClick:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/MinePage.m"
+            timestampString = "543891700.31928"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "114"
+            endingLineNumber = "114"
+            landmarkName = "-update_is_open_upload"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/MinePage.m"
+            timestampString = "543891700.31949"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "112"
+            endingLineNumber = "112"
+            landmarkName = "-update_is_open_upload"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Home/MinePage.m"
+            timestampString = "543891700.319698"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "76"
+            endingLineNumber = "76"
+            landmarkName = "-update_refresh_frequency"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/MusicSetPage.m"
+            timestampString = "523850267.136004"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "54"
+            endingLineNumber = "54"
+            landmarkName = "-viewDidLoad"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/MusicSetPage.m"
+            timestampString = "523850513.912804"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "124"
+            endingLineNumber = "124"
+            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/MusicSetPage.m"
+            timestampString = "523850513.912804"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "107"
+            endingLineNumber = "107"
+            landmarkName = "-numberOfSectionsInTableView:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/MusicSetPage.m"
+            timestampString = "523850818.277132"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "168"
+            endingLineNumber = "168"
+            landmarkName = "-musicPlaySection:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/MusicSetPage.m"
+            timestampString = "523850818.277132"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "144"
+            endingLineNumber = "144"
+            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/MusicSetPage.m"
+            timestampString = "523850818.277132"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "185"
+            endingLineNumber = "185"
+            landmarkName = "-musicPlaySection:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/MusicSetPage.m"
+            timestampString = "523850818.277132"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "249"
+            endingLineNumber = "249"
+            landmarkName = "-update_video:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/HistoryRecordPage.m"
+            timestampString = "543910008.767019"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "239"
+            endingLineNumber = "239"
+            landmarkName = "-unitMonthLogin"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/HistoryRecordPage.m"
+            timestampString = "543910008.767071"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "254"
+            endingLineNumber = "254"
+            landmarkName = "-unitWeekLogin"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/HistoryRecordPage.m"
+            timestampString = "543910008.767118"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "314"
+            endingLineNumber = "314"
+            landmarkName = "-drawHistoryRecordLine"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/AppDelegate.m"
+            timestampString = "523954164.796338"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "109"
+            endingLineNumber = "109"
+            landmarkName = "-application:didFinishLaunchingWithOptions:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/HistoryRecordPage.m"
+            timestampString = "543910008.76718"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "214"
+            endingLineNumber = "214"
+            landmarkName = "-GetUserDataList"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/HistoryRecordPage.m"
+            timestampString = "543910008.767228"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "215"
+            endingLineNumber = "215"
+            landmarkName = "-GetUserDataList"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/HistoryRecordPage.m"
+            timestampString = "543910008.767276"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "212"
+            endingLineNumber = "212"
+            landmarkName = "-GetUserDataList"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "BaseProject/Controller/Mine/HistoryRecordPage.m"
+            timestampString = "543910008.767323"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "213"
+            endingLineNumber = "213"
+            landmarkName = "-GetUserDataList"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>
diff --git a/pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcschemes/pregnancy_guard.xcscheme b/pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcschemes/pregnancy_guard.xcscheme
index f1f0cc1..1885c30 100644
--- a/pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcschemes/pregnancy_guard.xcscheme
+++ b/pregnancy_guard/pregnancy_guard.xcodeproj/xcuserdata/WindShan.xcuserdatad/xcschemes/pregnancy_guard.xcscheme
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0820"
+   LastUpgradeVersion = "0920"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
@@ -26,6 +26,7 @@
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      language = ""
       shouldUseLaunchSchemeArgsEnv = "YES">
       <Testables>
       </Testables>
@@ -45,6 +46,7 @@
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      language = ""
       launchStyle = "0"
       useCustomWorkingDirectory = "NO"
       ignoresPersistentStateOnLaunch = "NO"

--
Gitblit v1.8.0