Example #1
0
 /**
  * @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));
         }
     }
 }
Example #2
0
 /**
  * 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;
 }