code: def control(self, controlCode, bytes=[]):
          
          Observable.setChanged(self)
          Observable.notifyObservers(self,
                                     CardConnectionEvent(
                                         'command',
                                         [controlCode, bytes]))
          data = self.doControl(controlCode, bytes)
          Observable.setChanged(self)
          Observable.notifyObservers(self,
                                     CardConnectionEvent(
                                         'response',
                                         data))
          if self.errorcheckingchain is not None:
              self.errorcheckingchain[0](data)
          return data
docs: Send a control command and buffer.  Internally calls doControl()
          class method and notify observers upon command/response events.
          Subclasses must override the doControl() class method.
  
          @param controlCode: command code
  
          @param bytes:       list of bytes to transmit