code: def _on_unexpected_disconnection(self, success, result, failure_reason, context):
          
          connection_id = context['connection_id']
  
          self._logger.warn('Unexpected disconnection event, handle=%d, reason=0x%X, state=%s',
                            result['connection_handle'],
                            result['code'],
                            self.connections.get_state(connection_id))
  
          self.connections.unexpected_disconnect(connection_id)
          self._trigger_callback('on_disconnect', self.id, connection_id)
docs: Callback function called when an unexpected disconnection occured (meaning that we didn't previously send
          a `disconnect` request).
          It is executed in the baBLE working thread: should not be blocking.
  
          Args:
              success (bool): A bool indicating that the operation is successful or not
              result (dict): Disconnection information (if successful)
                - connection_handle (int): The connection handle that just disconnected
                - code (int): The reason code
                - reason (str): A message explaining the reason code in plain text
              failure_reason (any): An object indicating the reason why the operation is not successful (else None)
              context (dict): The connection context