/** * @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; }