|
|
@ -18,11 +18,10 @@ class IndexController extends BaseController |
|
|
public function getPelmaData() |
|
|
public function getPelmaData() |
|
|
{ |
|
|
{ |
|
|
$request_data = request()->all(); |
|
|
$request_data = request()->all(); |
|
|
|
|
|
$timer_shaft = $request_data['timer_shaft']; |
|
|
|
|
|
|
|
|
|
|
|
//足底压力图 |
|
|
|
|
|
|
|
|
$pelma_key = "pelma:" . $request_data['item']; |
|
|
$pelma_key = "pelma:" . $request_data['item']; |
|
|
$timer_shaft = $request_data['timer_shaft']; |
|
|
|
|
|
|
|
|
|
|
|
if ($timer_shaft == 0 ){ |
|
|
if ($timer_shaft == 0 ){ |
|
|
//获取最大时间 |
|
|
//获取最大时间 |
|
|
@ -32,66 +31,78 @@ class IndexController extends BaseController |
|
|
$data = Redis::ZREVRANGEBYSCORE($pelma_key, $timer_shaft, $timer_shaft - 60); |
|
|
$data = Redis::ZREVRANGEBYSCORE($pelma_key, $timer_shaft, $timer_shaft - 60); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (empty($data)){ |
|
|
if(!empty($data)){ |
|
|
return; |
|
|
$pelmaArr = str_split($data[0], 2); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$pelmaArr = str_split($data[0], 2); |
|
|
|
|
|
|
|
|
|
|
|
$vague = 2; |
|
|
$vague = 2; |
|
|
|
|
|
|
|
|
//格式化成二维数组 |
|
|
//格式化成二维数组 |
|
|
for ($i = 0; $i < 1024; $i++){ |
|
|
for ($i = 0; $i < 1024; $i++){ |
|
|
$datas2[intval($i / 32)][$i % 32] = hexdec($pelmaArr[$i]); |
|
|
$datas2[intval($i / 32)][$i % 32] = hexdec($pelmaArr[$i]); |
|
|
} |
|
|
} |
|
|
// dd($datas2); |
|
|
// dd($datas2); |
|
|
|
|
|
|
|
|
foreach ($datas2 as $key1 => $data){ |
|
|
foreach ($datas2 as $key1 => $data){ |
|
|
foreach ($data as $key2 => $datum){ |
|
|
foreach ($data as $key2 => $datum){ |
|
|
if (isset($datas2[$key1][$key2 - 1])){ |
|
|
if (isset($datas2[$key1][$key2 - 1])){ |
|
|
$num = $datum - $datas2[$key1][$key2 - 1]; |
|
|
$num = $datum - $datas2[$key1][$key2 - 1]; |
|
|
$temp = $datum; |
|
|
$temp = $datum; |
|
|
for ($i = $vague; $i >= 1; $i--) { |
|
|
for ($i = $vague; $i >= 1; $i--) { |
|
|
$chunk[$key1][] = $temp - ($num / ($vague + 1)) * $i; |
|
|
$chunk[$key1][] = $temp - ($num / ($vague + 1)) * $i; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
$chunk[$key1][] = $datum; |
|
|
} |
|
|
} |
|
|
$chunk[$key1][] = $datum; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$chunk2 = []; |
|
|
$chunk2 = []; |
|
|
$key3 = 0; |
|
|
$key3 = 0; |
|
|
$number = 1; |
|
|
$number = 1; |
|
|
foreach ($chunk as $key1 => $data){ |
|
|
foreach ($chunk as $key1 => $data){ |
|
|
foreach ($data as $key2 => $datum){ |
|
|
foreach ($data as $key2 => $datum){ |
|
|
|
|
|
|
|
|
$number++; |
|
|
$number++; |
|
|
if (isset($chunk[$key1 - 1][$key2])){ |
|
|
if (isset($chunk[$key1 - 1][$key2])){ |
|
|
$num = $datum - $chunk[$key1 - 1][$key2]; |
|
|
$num = $datum - $chunk[$key1 - 1][$key2]; |
|
|
$temp = $datum; |
|
|
$temp = $datum; |
|
|
for ($i = $vague; $i >= 1; $i--) { |
|
|
for ($i = $vague; $i >= 1; $i--) { |
|
|
$chunk2[$key3 - $i][$key2] = $temp - ($num / ($vague + 1)) * $i; |
|
|
$chunk2[$key3 - $i][$key2] = $temp - ($num / ($vague + 1)) * $i; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
$chunk2[$key3][$key2] = $datum; |
|
|
} |
|
|
} |
|
|
$chunk2[$key3][$key2] = $datum; |
|
|
$key3 = $key3 + ($vague + 1); |
|
|
} |
|
|
} |
|
|
$key3 = $key3 + ($vague + 1); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$chunk3 = []; |
|
|
$chunk3 = []; |
|
|
foreach ($chunk2 as $key1 => $value) { |
|
|
foreach ($chunk2 as $key1 => $value) { |
|
|
foreach ($value as $key2 => $value2) { |
|
|
foreach ($value as $key2 => $value2) { |
|
|
$chunk3[] = [ |
|
|
$chunk3[] = [ |
|
|
$key2, |
|
|
$key2, |
|
|
$key1, |
|
|
$key1, |
|
|
$value2 / 10, |
|
|
$value2 / 10, |
|
|
]; |
|
|
]; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
// dd($chunk3); |
|
|
|
|
|
|
|
|
//足底温度图 |
|
|
|
|
|
$foot_key = "foot"; |
|
|
|
|
|
|
|
|
|
|
|
if ($timer_shaft == 0 ){ |
|
|
|
|
|
//获取最大时间 |
|
|
|
|
|
$foot_data = Redis::ZREVRANGE($foot_key, 0, 0); |
|
|
|
|
|
} else { |
|
|
|
|
|
//获得指定时间 |
|
|
|
|
|
$foot_data = Redis::ZREVRANGEBYSCORE($foot_key, $timer_shaft, $timer_shaft - 60); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!empty($foot_data)){ |
|
|
|
|
|
$foot = $foot_data; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return [ |
|
|
return [ |
|
|
'pressure' => $chunk3, |
|
|
'pressure' => $chunk3 ?? '', |
|
|
'foot' => [36.2, 80, 36.1, 75, 35.9, 79, 36.3, 80] |
|
|
'foot' => [36.2, 80, 36.1, 75, 35.9, 79, 36.3, 80] |
|
|
]; |
|
|
]; |
|
|
} |
|
|
} |
|
|
@ -106,21 +117,24 @@ class IndexController extends BaseController |
|
|
|
|
|
|
|
|
$time = time(); |
|
|
$time = time(); |
|
|
// echo Cache::get('pelma'); |
|
|
// echo Cache::get('pelma'); |
|
|
$pelma_key = "pelma:" . $req['device']; |
|
|
|
|
|
|
|
|
|
|
|
//按时间添加 |
|
|
if ($req['type'] == 1){ |
|
|
Redis::zadd($pelma_key, $time, $req['pelma']); |
|
|
$pelma_key = "pelma:" . $req['device']; |
|
|
|
|
|
|
|
|
//删除过期 |
|
|
//按时间添加 |
|
|
Redis::ZREMRANGEBYSCORE($pelma_key, 0, ($time - 120)); |
|
|
Redis::zadd($pelma_key, $time, $req['send_data']); |
|
|
|
|
|
|
|
|
//获取最大时间 |
|
|
//删除过期 |
|
|
// $data = Redis::ZREVRANGE($pelma_key, 0, 0); |
|
|
Redis::ZREMRANGEBYSCORE($pelma_key, 0, ($time - 120)); |
|
|
//获得指定时间 |
|
|
} elseif ($req['type'] == 2) { |
|
|
// $data = Redis::ZRANGEBYSCORE($pelma_key, 19, 29); |
|
|
$pelma_key = "foot"; |
|
|
|
|
|
|
|
|
// var_dump($data); |
|
|
//按时间添加 |
|
|
|
|
|
Redis::zadd($pelma_key, $time, $req['send_data']); |
|
|
|
|
|
|
|
|
|
|
|
//删除过期 |
|
|
|
|
|
Redis::ZREMRANGEBYSCORE($pelma_key, 0, ($time - 120)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// $data = request('pelma'); |
|
|
// $data = request('pelma'); |
|
|
// Cache::put('pelma', $data); |
|
|
// Cache::put('pelma', $data); |
|
|
@ -141,20 +155,6 @@ class IndexController extends BaseController |
|
|
return view('http.lora2'); |
|
|
return view('http.lora2'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function getPelmaStore() |
|
|
|
|
|
{ |
|
|
|
|
|
echo Cache::get('pelma'); |
|
|
|
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function getBlood() |
|
|
|
|
|
{ |
|
|
|
|
|
$blood = Cache::get('blood'); |
|
|
|
|
|
|
|
|
|
|
|
return $blood; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 上传血压数据 |
|
|
* 上传血压数据 |
|
|
* http://127.0.0.1:8001/storeBlood?node=616162626365&data=0090243050005500 |
|
|
* http://127.0.0.1:8001/storeBlood?node=616162626365&data=0090243050005500 |
|
|
|