     
     func read(afterReadSuccessCallback:() -> (), afterReadFailedCallback:((error:NSError)->())?) {
         if self.propertyEnabled(.Read) {
+            Logger.debug("Characteristic#read: \(self.uuid.UUIDString)")
             self.afterUpdateSuccessCallback = afterReadSuccessCallback
             self.afterUpdateFailedCallback = afterReadFailedCallback
             self.service.perpheral.cbPeripheral.readValueForCharacteristic(self.cbCharacteristic)

    func didWrite(error:NSError!) {
        self.writing = false
        if error {
            if let afterWriteFailedCallback = self.afterWriteFailedCallback {
                CentralManager.asyncCallback(){afterWriteFailedCallback(error:error)}
            }
        } else {
            if let afterWriteSuccessCallback = self.afterWriteSuccessCallback {
                CentralManager.asyncCallback(afterWriteSuccessCallback)
            }

    func didUpdate(error:NSError!) {
        self.reading = false
        if error {
            Logger.debug("Characteristic#didUpdate Failed:  uuid=\(self.uuid.UUIDString), name=\(self.name)")
            if let afterUpdateFailedCallback = self.afterUpdateFailedCallback {
                CentralManager.asyncCallback(){afterUpdateFailedCallback(error:error)}
            }
        } else {
            Logger.debug("Characteristic#didUpdate Success:  uuid=\(self.uuid.UUIDString), name=\(self.name)")
            if let afterUpdateSuccessCallback = self.afterUpdateSuccessCallback {
                CentralManager.asyncCallback(afterUpdateSuccessCallback)
            }
