     var sensorLogDataChar:       CBCharacteristic
 
     var logData: [T] = []
-    var prevousLogDataDateTime: NSDate = NSDate()
+
+    // delegate.didUpdatelogData()の過度な呼び出しを防止するためのフラグ
+    var _flag:Bool = false
+    var flag: Bool {
+        get {
+            objc_sync_enter(self)
+            let val = _flag
+            objc_sync_exit(self)
+            return val
+        }
+        set(newValue) {
+            objc_sync_enter(self)
+            _flag = newValue
+            objc_sync_enter(self)
+        }
+    }
     
     // Properties
     public private(set) var settingData:  SensorSettingData<S>? {

        updateLogMetaData()
        
        device.setNotify(self.sensorLogDataChar, enabled: true)
    }
    
    // メタデータの更新

                    self.logData.appendContentsOf(d)
                    objc_sync_exit(self)
                
                    // 過度な通知をしないよう、フラグでデリゲートが確実に実行されてから、次のデリゲート呼び出しを行う
                    // semaphoreではwaitしちゃうから、フラグで実装。
                    if(self.flag == false) {
                        self.flag = true
                        dispatch_async(dispatch_get_main_queue(), {
                            self.delegate?.didUpdateLogData(self)
                            self.flag = false
                        })
                    }
                }
