|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
|
|
|
|
use App\Http\Services\CommonService;
|
|
|
|
use Illuminate\Routing\Controller as BaseController;
|
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
use Illuminate\Support\Facades\Redis;
|
|
|
|
|
|
|
|
class IndexController extends BaseController
|
|
|
|
{
|
|
|
|
public function index()
|
|
|
|
{
|
|
|
|
return view('http.index');
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function tabularData()
|
|
|
|
{
|
|
|
|
$request_data = request()->all();
|
|
|
|
|
|
|
|
$vague = 2;
|
|
|
|
$datas = [
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 2, 2, 4, 4, 4, 4, 4, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 6, 6, 8, 4, 2, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 2, 4, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 4, 2, 2, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 2, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 4, 2, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 2, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 2, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 2, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 2, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 2, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 2, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 2, 2, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 4, 2, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 4, 2, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 8, 8, 8, 6, 4, 2, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 8, 8, 8, 6, 4, 2, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 4, 2, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 1, 2, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 4, 2, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 1, 2, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 4, 2, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 1, 2, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 4, 2, 1, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 1, 2, 1, 1, 1, 1, 1, 1, 2, 6, 8, 8, 8, 8, 6, 4, 2, 2, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 1, 2, 1, 1, 1, 1, 1, 2, 1, 6, 8, 8, 8, 8, 6, 6, 4, 2, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 6, 8, 9, 8, 6, 6, 4, 1, 2, 1, 1, 1, 1, 1, 2, 4, 6, 8, 8, 8, 8, 6, 6, 4, 2, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 1, 8, 9, 8, 6, 6, 4, 4, 2, 1, 1, 1, 1, 1, 2, 4, 6, 8, 8, 8, 8, 6, 6, 4, 2, 1, 1,
|
|
|
|
1, 1, 1, 2, 4, 4, 4, 9, 8, 6, 6, 4, 4, 2, 1, 1, 1, 1, 1, 2, 4, 6, 8, 8, 8, 6, 6, 2, 2, 2, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 2, 2, 4, 4, 6, 6, 4, 2, 2, 1, 1, 1, 1, 1, 2, 4, 6, 4, 4, 4, 2, 2, 2, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 4, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 2, 2, 2, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
];
|
|
|
|
|
|
|
|
for ($i = 0; $i < 1024; $i++){
|
|
|
|
$datas2[intval($i / 32)][$i % 32] = $datas[$i];
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach ($datas2 as $key1 => $data){
|
|
|
|
foreach ($data as $key2 => $datum){
|
|
|
|
if (!empty($datas2[$key1][$key2 - 1])){
|
|
|
|
$num = $datum - $datas2[$key1][$key2 - 1];
|
|
|
|
$temp = $datum;
|
|
|
|
for ($i = $vague; $i >= 1; $i--) {
|
|
|
|
$chunk[$key1][] = $temp - ($num / ($vague + 1)) * $i;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$chunk[$key1][] = $datum;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$chunk2 = [];
|
|
|
|
$key3 = 0;
|
|
|
|
$number = 1;
|
|
|
|
foreach ($chunk as $key1 => $data){
|
|
|
|
foreach ($data as $key2 => $datum){
|
|
|
|
|
|
|
|
$number++;
|
|
|
|
if (!empty($chunk[$key1 - 1][$key2])){
|
|
|
|
$num = $datum - $chunk[$key1 - 1][$key2];
|
|
|
|
$temp = $datum;
|
|
|
|
for ($i = $vague; $i >= 1; $i--) {
|
|
|
|
$chunk2[$key3 - $i][$key2] = $temp - ($num / ($vague + 1)) * $i;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$chunk2[$key3][$key2] = $datum;
|
|
|
|
}
|
|
|
|
$key3 = $key3 + ($vague + 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
$chunk3 = [];
|
|
|
|
foreach ($chunk2 as $key1 => $value) {
|
|
|
|
foreach ($value as $key2 => $value2) {
|
|
|
|
$chunk3[] = [
|
|
|
|
$key2,
|
|
|
|
$key1,
|
|
|
|
$value2 / 10,
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return [
|
|
|
|
'pressure' => $chunk3,
|
|
|
|
'foot' => [36.2, 80, 36.1, 75, 35.9, 79, 36.3, 80]
|
|
|
|
];
|
|
|
|
// $chunk = [
|
|
|
|
// // data1[0],
|
|
|
|
// // data1[1],
|
|
|
|
// // data1[2],
|
|
|
|
// // data1[3],
|
|
|
|
// // data1[4],
|
|
|
|
// // data1[5],
|
|
|
|
// // data1[6],
|
|
|
|
// // data1[7],
|
|
|
|
// // data1[8],
|
|
|
|
// // data1[9],
|
|
|
|
// // data1[10],
|
|
|
|
// // data1[11],
|
|
|
|
// // data1[12],
|
|
|
|
// [
|
|
|
|
// 1,1,0
|
|
|
|
// ],
|
|
|
|
// [
|
|
|
|
// 10,10,0.1
|
|
|
|
// ],
|
|
|
|
// [
|
|
|
|
// 20,20,0.2
|
|
|
|
// ],
|
|
|
|
// [
|
|
|
|
// 30,30,0.3
|
|
|
|
// ],
|
|
|
|
// [
|
|
|
|
// 40,40,0.4
|
|
|
|
// ], [40,40,0.4], [50,50,0.5], [60,60,0.6], [70,70,0.7], [80,80,0.8], [90,90,0.9], [99,99,1],
|
|
|
|
//
|
|
|
|
// ];
|
|
|
|
//
|
|
|
|
// $data = [$request_data['item']*50, 0, 0, 50, 100, 150, 200, 200, 150,100, 0,
|
|
|
|
// 2, 0, 100, 100, 100, 100, 100, 100, 100,100, 0,
|
|
|
|
// 3, 0, 100, 200, 300, 100, 100, 0, 0, 0, 0,
|
|
|
|
// 4, 0, 100, 200, 300, 100, 100, 0, 0, 0, 0,
|
|
|
|
// 5, 0, 100, 200, 300, 100, 100, 0, 0, 0, 0,
|
|
|
|
// 6, 0, 100, 200, 300, 100, 100, 0, 0, 0, 0,
|
|
|
|
// 7, 0, 100, 200, 300, 100, 100, 0, 0, 0, 0,
|
|
|
|
// 8, 0, 100, 200, 300, 100, 100, 0, 0, 0, 0,
|
|
|
|
// 9, 0, 100, 200, 300, 100, 100, 0, 0, 0, 0,
|
|
|
|
// 10, 0, 100, 200, 300, 100, 100, 0, 0, 0, 0,
|
|
|
|
// 11, 0, 100, 200, 300, 100, 100, 0, 0, 0, 0,
|
|
|
|
// ];
|
|
|
|
//
|
|
|
|
//// for ($i = 0; $i < 121; $i++){
|
|
|
|
////
|
|
|
|
////
|
|
|
|
//// $chunk[intval($i / 11)][$i % 11] = [
|
|
|
|
//// $i % 11,
|
|
|
|
//// intval($i / 11),
|
|
|
|
//// $data[$i],
|
|
|
|
//// ];
|
|
|
|
//// }
|
|
|
|
// $chunk = [];
|
|
|
|
//
|
|
|
|
// for ($i = 0; $i < 121; $i++){
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// $chunk[] = [
|
|
|
|
// $i % 11,
|
|
|
|
// intval($i / 11),
|
|
|
|
// $data[$i] / 300,
|
|
|
|
// ];
|
|
|
|
// }
|
|
|
|
|
|
|
|
// dump($chunk);
|
|
|
|
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// $chunk2 = [];
|
|
|
|
// foreach ($chunk as $key1 => $items){
|
|
|
|
// foreach ($items as $key2 => $cell){
|
|
|
|
// $chunk2[$key1][$key2] = $cell[2];
|
|
|
|
//
|
|
|
|
// if (($key2 - 1) >= 0){
|
|
|
|
// $value = $cell[2] - $chunk[$key1][$key2 - 1][2];
|
|
|
|
//
|
|
|
|
// $increase = $value / 3;
|
|
|
|
// for ($i = 1; $i <= 3; $i++){
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// $chunk2[$key1][$key2 + $i] = $cell[2] + $increase * $i;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// dump($chunk2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 模拟数据3
|
|
|
|
// $chunk = [];
|
|
|
|
// for ($i = 0; $i <= 32; $i++){
|
|
|
|
// for ($j = 0; $j <= 32; $j++){
|
|
|
|
// $num1 = $num2 = 0;
|
|
|
|
// if ($j > 6 && $j <= 16){
|
|
|
|
// $num1 = $j - 6;
|
|
|
|
// } elseif ($j > 16 && $j <= 26){
|
|
|
|
// $num1 = 27 - $j;
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if ($i > 6 && $i <= 16){
|
|
|
|
// $num2 = $i - 6;
|
|
|
|
// } elseif ($i > 16 && $i <= 26){
|
|
|
|
// $num2 = 27 - $i;
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if (!empty($num1) && !empty($num2)){
|
|
|
|
// $chunk[] = [
|
|
|
|
// $j,
|
|
|
|
// $i,
|
|
|
|
// ($num1 + $num2) / 30,
|
|
|
|
// ];
|
|
|
|
// } else {
|
|
|
|
// $chunk[] = [
|
|
|
|
// $j,
|
|
|
|
// $i,
|
|
|
|
// 0,
|
|
|
|
// ];
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// return [
|
|
|
|
// 'pressure' => $chunk,
|
|
|
|
// 'foot' => [36.2, 80, 36.1, 75, 35.9, 79, 36.3, 80]
|
|
|
|
// ];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function lora()
|
|
|
|
{
|
|
|
|
return view('http.lora');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function lora2()
|
|
|
|
{
|
|
|
|
Cache::flush();
|
|
|
|
|
|
|
|
return view('http.lora2');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getPelmaStore()
|
|
|
|
{
|
|
|
|
echo Cache::get('pelma');
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function store()
|
|
|
|
{
|
|
|
|
|
|
|
|
$time = time();
|
|
|
|
// echo Cache::get('pelma');
|
|
|
|
$pelma_key = "pelma:1";
|
|
|
|
|
|
|
|
//按时间添加
|
|
|
|
// Redis::zadd($pelma_key, $time, 'a' . $time);
|
|
|
|
|
|
|
|
// Redis::zadd($pelma_key, 1, 'a' . $time);
|
|
|
|
|
|
|
|
//删除过期
|
|
|
|
// Redis::ZREMRANGEBYSCORE($pelma_key, 0, ($time - 60));
|
|
|
|
|
|
|
|
//获取最大时间
|
|
|
|
// $data = Redis::ZREVRANGE($pelma_key, 0, 0);
|
|
|
|
//获得指定时间
|
|
|
|
// $data = Redis::ZRANGEBYSCORE($pelma_key, 19, 29);
|
|
|
|
|
|
|
|
// var_dump($data);
|
|
|
|
|
|
|
|
|
|
|
|
$data = request('pelma');
|
|
|
|
Cache::put('pelma', $data);
|
|
|
|
Log::info($data);
|
|
|
|
return 'ok';
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getBlood()
|
|
|
|
{
|
|
|
|
$blood = Cache::get('blood');
|
|
|
|
|
|
|
|
return $blood;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 上传血压数据
|
|
|
|
* http://127.0.0.1:8001/storeBlood?node=616162626365&data=0090243050005500
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function storeBlood()
|
|
|
|
{
|
|
|
|
// echo Cache::get('blood');
|
|
|
|
|
|
|
|
$request_data = request()->all();
|
|
|
|
|
|
|
|
$lora_mac = config("custom.lora_mac");
|
|
|
|
|
|
|
|
if (empty($request_data['node']) || empty($request_data['data'])){
|
|
|
|
return 'error';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!in_array($request_data['node'], $lora_mac)){
|
|
|
|
return 'error';
|
|
|
|
}
|
|
|
|
//血氧80.1
|
|
|
|
$blood = substr($request_data['data'], 0, 4);
|
|
|
|
$blood1 = hexdec(substr($blood, 0, 2));
|
|
|
|
$blood2 = substr($blood, 2, 2);
|
|
|
|
$blood2 = CommonService::customHex2dec($blood2);
|
|
|
|
Cache::put('blood' . $request_data['node'], ($blood1 + $blood2) * 100);
|
|
|
|
|
|
|
|
//体温36.1
|
|
|
|
$temperature = substr($request_data['data'], 4, 4);
|
|
|
|
$temperature1 = hexdec(substr($temperature, 0, 2));
|
|
|
|
$temperature2 = substr($temperature, 2, 2);
|
|
|
|
$temperature2 = CommonService::customHex2dec($temperature2);
|
|
|
|
Cache::put('temperature' . $request_data['node'], $temperature1 + $temperature2);
|
|
|
|
//心跳70
|
|
|
|
$heart = substr($request_data['data'], 8, 4);
|
|
|
|
$heart = hexdec(substr($heart, 0, 2));
|
|
|
|
Cache::put('heart' . $request_data['node'], $heart);
|
|
|
|
//脉搏70
|
|
|
|
$heart2 = substr($request_data['data'], 12, 4);
|
|
|
|
$heart2 = hexdec(substr($heart2, 0, 2));
|
|
|
|
Cache::put('heart2' . $request_data['node'], $heart2);
|
|
|
|
|
|
|
|
return 'ok';
|
|
|
|
}
|
|
|
|
|
|
|
|
public function loraData()
|
|
|
|
{
|
|
|
|
$request_data = request()->all();
|
|
|
|
|
|
|
|
// if (!empty($request_data['item']) && $request_data['item'] == '温度'){
|
|
|
|
// $temperature = rand(359, 366) / 10;
|
|
|
|
//
|
|
|
|
// $data = [[$temperature, 0, 0, "温度", date('m:s')]];
|
|
|
|
//
|
|
|
|
// } elseif (!empty($request_data['item']) && $request_data['item'] == '血氧'){
|
|
|
|
// $oxygen = rand(70, 100);
|
|
|
|
//
|
|
|
|
// $data = [[$oxygen, 0, 0, "血氧", date('m:s')]];
|
|
|
|
//
|
|
|
|
// } else {
|
|
|
|
// $temperature = rand(359, 366) / 10;
|
|
|
|
// $oxygen = rand(70, 100);
|
|
|
|
//
|
|
|
|
// $data = [[$temperature, 0, 0, "温度", date('m:s')],
|
|
|
|
// [$oxygen, 0, 0, "血氧", date('m:s')]];
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
|
|
|
|
$temperature = rand(359, 366) / 10;
|
|
|
|
$oxygen = rand(70, 100);
|
|
|
|
|
|
|
|
$oxygen = 80 + ((time() % 3) + 1) * 5;
|
|
|
|
|
|
|
|
$data = [[$temperature, 0, 0, "温度", date('m:s')],
|
|
|
|
[$oxygen, 0, 0, "血氧", date('m:s')]];
|
|
|
|
|
|
|
|
return $data;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 设备列表
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function loraDeviceList()
|
|
|
|
{
|
|
|
|
$lora_mac = config("custom.lora_mac");
|
|
|
|
|
|
|
|
$devices = [];
|
|
|
|
foreach ($lora_mac as $key => $mac){
|
|
|
|
$devices[] = [
|
|
|
|
'name' => '设备' . ($key + 1),
|
|
|
|
'mac' => $mac,
|
|
|
|
'online' => 0,
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
return $devices;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function loraData2()
|
|
|
|
{
|
|
|
|
$time = (int)(time() . '000');
|
|
|
|
|
|
|
|
$request_data = request()->all();
|
|
|
|
|
|
|
|
$node = $request_data['node'] ?? config("custom.lora_mac")[0];
|
|
|
|
|
|
|
|
$return_data = [];
|
|
|
|
$blood_data = Cache::get('blood' . $node, '');
|
|
|
|
if ($blood_data){
|
|
|
|
$return_data['blood'] = [
|
|
|
|
[
|
|
|
|
$time,
|
|
|
|
$blood_data,
|
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
$temperature_data = Cache::get('temperature' . $node, '');
|
|
|
|
if ($temperature_data){
|
|
|
|
$return_data['temperature'] = [
|
|
|
|
[
|
|
|
|
$time,
|
|
|
|
$temperature_data,
|
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
$heart_data = Cache::get('heart' . $node, '');
|
|
|
|
if ($heart_data){
|
|
|
|
$return_data['heart'] = [
|
|
|
|
[
|
|
|
|
$time,
|
|
|
|
$heart_data,
|
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
$heart2_data = Cache::get('heart2' . $node, '');
|
|
|
|
if ($heart2_data){
|
|
|
|
$return_data['humidity'] = [
|
|
|
|
[
|
|
|
|
$time,
|
|
|
|
$heart2_data,
|
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
$total = [50, 70, 90, 85, 80, 75, 70, 65, 60, 55];
|
|
|
|
|
|
|
|
$total_data = [];
|
|
|
|
foreach ($total as $key => $item){
|
|
|
|
$item_time = $time + 100 * $key;
|
|
|
|
$total_data[] = [
|
|
|
|
$item_time,
|
|
|
|
$item
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
return $return_data;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 专项对比数据
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function getSpecialCompare()
|
|
|
|
{
|
|
|
|
$request_data = request()->all();
|
|
|
|
|
|
|
|
$compare_type = $request_data['compare_type'] ?? 1;
|
|
|
|
|
|
|
|
$time = (int)(time() . '000');
|
|
|
|
|
|
|
|
$nodes = config("custom.lora_mac");
|
|
|
|
|
|
|
|
$return_data = [];
|
|
|
|
|
|
|
|
foreach ($nodes as $key => $node){
|
|
|
|
switch ($compare_type) {
|
|
|
|
case 1:
|
|
|
|
$device_data = Cache::get('blood' . $node, '');
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
$device_data = Cache::get('temperature' . $node, '');
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
$device_data = Cache::get('heart' . $node, '');
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
$device_data = Cache::get('heart2' . $node, '');
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
$device_data = Cache::get('blood' . $node, '');
|
|
|
|
}
|
|
|
|
if (empty($device_data)){
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
$device_id = $key + 1;
|
|
|
|
$device_name = '设备' . $device_id;
|
|
|
|
$return_data[$device_name] = [
|
|
|
|
[
|
|
|
|
$time,
|
|
|
|
$device_data
|
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
return $return_data;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return [
|
|
|
|
'设备1' => [
|
|
|
|
[
|
|
|
|
$time,
|
|
|
|
70,
|
|
|
|
]
|
|
|
|
],
|
|
|
|
// '设备2' => [
|
|
|
|
// [
|
|
|
|
// $time,
|
|
|
|
// 80,
|
|
|
|
// ]
|
|
|
|
// ],
|
|
|
|
'设备3' => [
|
|
|
|
[
|
|
|
|
$time,
|
|
|
|
90,
|
|
|
|
]
|
|
|
|
],
|
|
|
|
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|