Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Friday, 19 July 2019

Tiny UK startup takes on Google’s Wing in the race to a drone traffic control system

A future where drones can easily and cheaply do many useful things such as deliver packages, undertake search and rescue missions, deliver urgent medical supplies, not to mention unclogging our roads with flying taxis seems like a future worth shooting for. But before all this can happen, we need to make sure the thousands of drones in the sky are operating safely. A drone needs to be able to automatically detect when entering into the flight path of another drone, manned aircraft or restricted area and to alter its course accordingly to safely continue its journey. The alternative is the chaos and danger of the recent incidences of drones buzzing major airports, for instance.

There is a race on to produce just such a system. Wing LLC, an offshoot of the Alphabet / Google-owned X company, has announced a platform it calls OpenSky that it hopes will become the basis for a full-fledged air-traffic control system for drones. So far, it’s only been approved to manage drone flights in Australia, although it is also working on demonstration programs with the US Federal Aviation Administration.

But this week Altitude Angel a UK-based startup backed by Seraphim Capital and with $4.9M in funding has launched it’s own UTM (Unmanned Traffic Management) system.

Its ‘Conflict Resolution System’ (anti-collision) system is basically an automatic collision avoidance technology. This means that any drone flying beyond the line of sight, will remain safe in the sky and not cross existing flight plans or into restricted areas. By being automated, Altitude Angel says this technology will prevent any mid-air collisions, simply because by knowing where everything else is in the sky, there’ll be no surprises.

Altitude Angel’s CRS has both ‘Strategic’ and ‘Tactical’ aspects.

The Strategic part happens during the planning stages of a flight, i.e. when someone is submitting flight plans and requesting airspace permission. The system analyses the proposed route and cross-references it with any other flight plans that have been submitted, along with any restricted areas on the ground, to then propose a reroute to eliminate any flight plan conflicts. Eventually, what happens is that a drone operator does this from an app on their phone, and the approval to flight is automated.

The next stage is Tactical. This happens while the drone is actually in-flight. The dynamic system continuously monitors the airspace around the aircraft both for other aircraft or for changes in the airspace (such as a temporary flight restriction around police incident) and automatically adjusts the route.

The key aspect of this CRS is that drones and drone pilots can store flight plans with a globally-distributed service without needing to exchange private or potentially sensitive data with each other while benefiting from an immediate pre-flight conflict resolution advice.

Richard Parker, Altitude Angel, CEO and founder says: “The ability for drones and automated aircraft to strategically plan flights, be made aware of potential conflict, and alter their route accordingly is critical in ensuring safety in our skies. This first step is all about pre-flight coordination, between drone pilots, fleet operators and other UTM companies. Being able to predict and resolve conflict mid-flight by providing appropriate and timely guidance will revolutionize automated flight. CRS is one of the critical building blocks on which the drone and automated flight industries will grow.”

Altitude Angel wone be the last to unveil a CRS of this type, but it’s instructive that there are startups confident of taking on the mighty Google and Amazon – which also has similar drone delivery plans – to achieve this type of platform.



from TechCrunch https://ift.tt/2SnmjjU
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support