/** * @covers \PhiKettle\Config::getInitStateType */ public function testGetInitStateType() { $config = new Config(); foreach (array_keys($config::$systemStatusKeys) as $bit) { if ($bit < 3) { $this->assertEquals(Config::INIT_STAT_STATE, $config->getInitStateType($bit)); } else { $this->assertEquals(Config::INIT_STAT_TEMPERATURE, $config->getInitStateType($bit)); } } }
/** * Handle initial state response from the kettle and update kettle status * * @param string $data ASCII character * * @return void */ public function setInitialState($data) { $ascii = ord($data); if ($ascii === 0) { $this->state->setStatus(Config::$systemStatusKeys[0]); return; } $values = array_filter(str_split(strrev(decbin($ascii))), function ($value) { return $value == 1; }); $state = $this->state; array_walk($values, function (&$value, $key) use(&$state) { $value = Config::$systemStatusKeys[$key + 1]; $config = new Config(); if ($config->getInitStateType($key + 1) == Config::INIT_STAT_STATE) { $state->setStatus($value); } if ($config->getInitStateType($key + 1) == Config::INIT_STAT_TEMPERATURE) { $state->setTemperature($value); } }); return; }