/**
  * @return bool|MindWaveHeadsetData
  */
 public function getLastMessage()
 {
     // need to send default configuration first?
     if (false === $this->isConfigured) {
         $this->sendConfiguration();
     }
     // authorization done?
     if (false === $this->isAuthorized && false === $this->requestAuthorization()) {
         return false;
     }
     do {
         // read data
         $message = ThinkGearMessage::fromString($this->connection->read(31457280));
         // read 32M max
         // put the message into the data wrapper
         $headsetData = new MindWaveHeadsetData($message);
     } while (!$headsetData->isValid() || $headsetData->isHeadsetOff());
     // reaturn the headset data
     return $headsetData;
 }
 /**
  * @return bool
  */
 public function isValid()
 {
     return $this->message->count() > 0;
 }