Browse Source

足底温度数据数据

master
lijunjie 3 years ago
parent
commit
83cdbd8133
  1. 142
      app/Http/Controllers/IndexController.php
  2. 24
      public/script/http/index.js

142
app/Http/Controllers/IndexController.php

@ -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

24
public/script/http/index.js

@ -103,7 +103,6 @@ function pressure(dom, item) {
let timer = null let timer = null
$.get('/getPelmaData?item=' + item + "&timer_shaft=" + timer_shaft).done(function (data) { $.get('/getPelmaData?item=' + item + "&timer_shaft=" + timer_shaft).done(function (data) {
if (data) {//根据返回状态判断 if (data) {//根据返回状态判断
console.log('a')
let pressure = data.pressure let pressure = data.pressure
myChart.setOption({ myChart.setOption({
series: [ series: [
@ -113,19 +112,22 @@ function pressure(dom, item) {
] ]
}); });
var myDate = new Date(); if (pressure && pressure.length > 0){
var mytime = myDate.toLocaleTimeString(); //原始数据
let original = mytime + ' '; var myDate = new Date();
pressure.forEach((elem, index) => { var mytime = myDate.toLocaleTimeString();
if (index > 600) { let original = mytime + ' ';
// console.log(index) 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-content1").html(data['foot'][0] + '℃');
$("#foot-content2").html(data['foot'][1] + '%'); $("#foot-content2").html(data['foot'][1] + '%');
$("#foot-content3").html(data['foot'][2] + '℃'); $("#foot-content3").html(data['foot'][2] + '℃');

Loading…
Cancel
Save