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();

Tuesday, 27 April 2021

Wingcopter debuts a triple-drop drone to create “logistical highways in the sky”

German startup Wingcopter has launched a new autonomous delivery drone designed to remove a technical bottleneck hindering the growth of drone transport services.

The Wingcopter 198, which was revealed Tuesday, is capable of making three separate deliveries per flight, the company said. Wingcopter has couched this multi-stop capability as a critical feature that will allow it to grow a cost-efficient — and hopefully profitable — drone delivery as a service business.

The company, which was founded in 2017, got its start manufacturing drones. It used the revenue to scale and now expand its business model to include drone-delivery-as-a-service. “That’s actually our next mission, to not just build drones, but to build networks,” CEO Tom Plümmer told TechCrunch. The company’s website is now promoting the delivery business, which aims to provide healthcare, e-commerce and grocery delivery among other services. It’s ultimate aim is to create “logistical highways in the sky,” according to a statement by Plümmer.

The key to this delivery nirvana, the company claims, is its patented tilt-rotor propellant mechanism that combines the advantages of two drone types — the multicopter, which gives drones their smooth vertical take-off and landing capabilities and the ability to hover precisely in the air, with the fixed wing, which provides fast flight times over long distances.

The new model Wingcopter 198 has a top speed of 93 miles an hour and can carry payloads up to 13 pounds for a distance of about 47 miles from a single battery charge. It can travel up to 68 miles when carrying lighter cargo, the company said.

Plümmer explained that the tilt-rotors can also automatically respond to gusts of wind and other inclement weather conditions. Its architecture includes eight motors for redundancy and safety reasons.

Image Credits: Wingcopter

 

The drones, which are equipped with sensors and software to avoid obstacles and drop parcels at designated sites, are all automated. This level of automation allows one human operator to monitor and control up to 10 of these new drones from a computer equipped with Wingcopter’s control station software anywhere in the world. Plümmer explained that running the drones is a simple as the operator pressing ‘start’ on the software program from anywhere in the world.

Plümmer also touted the scalability of the tilt-rotor system, noting that it could be applied (theoretically) to a larger aircraft to carry cargo, or even human passengers.

“It’s just a cost factor,” Plümmer said, noting that the company already employs people who have the experience in aviation and aerial engineering required to one day take the tilt-rotor aircraft to scale. “However, we thought, let’s start with the smaller version … get these 1000s of [flight] hours, 1000s of kilometers, and take these learnings into every next generation of Wingcopter so they will constantly get bigger, first for cargo, later for mobility.”

Plümmer said they’ve drawn a hard line at working with any company or government institution that would use their drones for military or surveillance purposes.

“It’s mainly moral,” he said of the objection. “We believe it would be really not fitting to our vision. Our vision is to save lives and improve life by using drone technology and drone solutions.”

Looking to the future, the company is currently pursuing a type certification from the Federal Aviation Administration, which would allow it to operate commercial flights in the United States. If they receive this certification, they will be one of only a handful of competitors operating in the space. They’ve also set their sights on another funding round, fresh of the heels of a $22 million Series A round in January. The company has around 120 employees but with an additional injection of capital in a Series B, it could hire people with expertise in AI, piloting and production.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support