From 83cdbd81338fb73de8d95bef767abdbde2ba4cc0 Mon Sep 17 00:00:00 2001 From: lijunjie Date: Sat, 8 Oct 2022 16:56:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=B3=E5=BA=95=E6=B8=A9=E5=BA=A6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/IndexController.php | 142 +++++++++++------------ public/script/http/index.js | 24 ++-- 2 files changed, 84 insertions(+), 82 deletions(-) diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index db85991..bcdb1fc 100644 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -18,11 +18,10 @@ class IndexController extends BaseController public function getPelmaData() { $request_data = request()->all(); + $timer_shaft = $request_data['timer_shaft']; - - + //足底压力图 $pelma_key = "pelma:" . $request_data['item']; - $timer_shaft = $request_data['timer_shaft']; if ($timer_shaft == 0 ){ //获取最大时间 @@ -32,66 +31,78 @@ class IndexController extends BaseController $data = Redis::ZREVRANGEBYSCORE($pelma_key, $timer_shaft, $timer_shaft - 60); } - if (empty($data)){ - return; - } - - $pelmaArr = str_split($data[0], 2); + if(!empty($data)){ + $pelmaArr = str_split($data[0], 2); - $vague = 2; + $vague = 2; - //格式化成二维数组 - for ($i = 0; $i < 1024; $i++){ - $datas2[intval($i / 32)][$i % 32] = hexdec($pelmaArr[$i]); - } + //格式化成二维数组 + for ($i = 0; $i < 1024; $i++){ + $datas2[intval($i / 32)][$i % 32] = hexdec($pelmaArr[$i]); + } // dd($datas2); - foreach ($datas2 as $key1 => $data){ - foreach ($data as $key2 => $datum){ - if (isset($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; + foreach ($datas2 as $key1 => $data){ + foreach ($data as $key2 => $datum){ + if (isset($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; } - $chunk[$key1][] = $datum; } - } - $chunk2 = []; - $key3 = 0; - $number = 1; - foreach ($chunk as $key1 => $data){ - foreach ($data as $key2 => $datum){ - - $number++; - if (isset($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 = 0; + $number = 1; + foreach ($chunk as $key1 => $data){ + foreach ($data as $key2 => $datum){ + + $number++; + if (isset($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; } - $chunk2[$key3][$key2] = $datum; + $key3 = $key3 + ($vague + 1); } - $key3 = $key3 + ($vague + 1); - } - $chunk3 = []; - foreach ($chunk2 as $key1 => $value) { - foreach ($value as $key2 => $value2) { - $chunk3[] = [ - $key2, - $key1, - $value2 / 10, - ]; + $chunk3 = []; + foreach ($chunk2 as $key1 => $value) { + foreach ($value as $key2 => $value2) { + $chunk3[] = [ + $key2, + $key1, + $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 [ - 'pressure' => $chunk3, + 'pressure' => $chunk3 ?? '', 'foot' => [36.2, 80, 36.1, 75, 35.9, 79, 36.3, 80] ]; } @@ -106,21 +117,24 @@ class IndexController extends BaseController $time = time(); // echo Cache::get('pelma'); - $pelma_key = "pelma:" . $req['device']; - //按时间添加 - Redis::zadd($pelma_key, $time, $req['pelma']); + if ($req['type'] == 1){ + $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); - //获得指定时间 -// $data = Redis::ZRANGEBYSCORE($pelma_key, 19, 29); + //删除过期 + Redis::ZREMRANGEBYSCORE($pelma_key, 0, ($time - 120)); + } elseif ($req['type'] == 2) { + $pelma_key = "foot"; -// var_dump($data); + //按时间添加 + Redis::zadd($pelma_key, $time, $req['send_data']); + //删除过期 + Redis::ZREMRANGEBYSCORE($pelma_key, 0, ($time - 120)); + } // $data = request('pelma'); // Cache::put('pelma', $data); @@ -141,20 +155,6 @@ class IndexController extends BaseController 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 diff --git a/public/script/http/index.js b/public/script/http/index.js index c55a31a..a27a7a2 100644 --- a/public/script/http/index.js +++ b/public/script/http/index.js @@ -103,7 +103,6 @@ function pressure(dom, item) { let timer = null $.get('/getPelmaData?item=' + item + "&timer_shaft=" + timer_shaft).done(function (data) { if (data) {//根据返回状态判断 - console.log('a') let pressure = data.pressure myChart.setOption({ series: [ @@ -113,19 +112,22 @@ function pressure(dom, item) { ] }); - var myDate = new Date(); - var mytime = myDate.toLocaleTimeString(); - let original = mytime + ' '; - pressure.forEach((elem, index) => { - if (index > 600) { - // console.log(index) + if (pressure && pressure.length > 0){ + //原始数据 + var myDate = new Date(); + var mytime = myDate.toLocaleTimeString(); + let original = mytime + ' '; + pressure.forEach((elem, index) => { + if (index > 600) { + // console.log(index) - original += Math.trunc(elem[2] * 100) + ' ' - } + original += Math.trunc(elem[2] * 100) + ' ' + } - }) + }) + $(".sound-code-chunk-default-content").html(original); + } - $(".sound-code-chunk-default-content").html(original); $("#foot-content1").html(data['foot'][0] + '℃'); $("#foot-content2").html(data['foot'][1] + '%'); $("#foot-content3").html(data['foot'][2] + '℃');