public function __call($name, $arguments)
{
if (in_array($name, Config::$commands)) {
if ($name === 'takeoff' || $name === 'land') {
// process callback function
$callback = count($arguments) === 1 ? $arguments[0] : function () {
};
$eventName = $name === 'takeoff' ? 'hovering' : 'landed';
$this->once($eventName, $callback);
$this->udpControl->emit($name);
} elseif ($name === 'stop' || $name === 'ftrim' || $name === 'flip') {
$this->udpControl->emit($name);
// Control commands
} else {
if (count($arguments) > 1) {
new \Exception('There are too many arguments');
}
$this->udpControl->emit($name, [$arguments[0]]);
}
} else {
new \Exception('Invalid function');
}
}