From 10fd9f5d972c20db657d9fab414cb2508400685f Mon Sep 17 00:00:00 2001 From: lijunjie Date: Fri, 9 Sep 2022 11:04:33 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BB=E5=8F=96=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 +++++++++++++++-------- app/Http/Services/CommonService.php | 40 +++++++ config/custom.php | 9 ++ public/image/lora2/kk1_2.png | Bin 979 -> 3727 bytes resources/views/http/lora22.blade.php | 10 +- 5 files changed, 145 insertions(+), 56 deletions(-) create mode 100644 app/Http/Services/CommonService.php create mode 100644 config/custom.php diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index e4db2e9..3c57fe5 100644 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -3,6 +3,7 @@ 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; @@ -248,7 +249,9 @@ class IndexController extends BaseController public function lora2() { - return view('http.lora22'); + Cache::flush(); + + return view('http.lora2'); } public function getPelmaStore() @@ -279,9 +282,39 @@ class IndexController extends BaseController { // echo Cache::get('blood'); - $data = request('blood'); - Cache::put('blood', $data); - Log::info($data); + $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'; } @@ -325,55 +358,68 @@ class IndexController extends BaseController */ public function loraDeviceList() { - return [ - [ - 'name' => '设备1', - 'mac' => '61', - 'online' => 0, - ], - [ - 'name' => '设备2', - 'mac' => '62', - 'online' => 0, - ], - [ - 'name' => '设备3', - 'mac' => '63', + $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'); - $blood = [ - [ - $time, - 80, - ] - ]; - $temperature = [ - [ - $time, - 36.1, - ] - ]; + $request_data = request()->all(); - $heart = [ - [ - $time, - 78, - ] - ]; + $node = $request_data['node'] ?? config("custom.lora_mac")[0]; - $humidity = [ - [ - $time, - 81.4, - ] - ]; + $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]; @@ -386,13 +432,7 @@ class IndexController extends BaseController ]; } - return [ - 'blood' => $blood, - 'temperature' => $temperature, - 'heart' => $heart, - 'humidity' => $humidity, - 'total_data' => $total_data, - ]; + return $return_data; } /** diff --git a/app/Http/Services/CommonService.php b/app/Http/Services/CommonService.php new file mode 100644 index 0000000..f187385 --- /dev/null +++ b/app/Http/Services/CommonService.php @@ -0,0 +1,40 @@ + [ +// "616162626364", +// "616162626365", + "616162626366", + ], +]; diff --git a/public/image/lora2/kk1_2.png b/public/image/lora2/kk1_2.png index c50984998dfc8ee421ba19ca47da3dbe224619d4..e3d74644228e556964078a4aef641e1cee478a0c 100644 GIT binary patch delta 3101 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 GYySdC8@#Om delta 288 zcmeB|z05vAoU4k1iGhKk*NWxaAWMGP1aVoOqHGnB{!l`H?FWe+& zoQf{;I>m2`xa1FXy0fQ?V@SoVH#Y(~859IqF79;>5aFJ2gvV?{J)h%Vna%e7YYm data_temperature.push(value)); _rawData.heart.forEach(value => data_heart.push(value)); _rawData.humidity.forEach(value => data_humidity.push(value)); - _rawData.total_data.forEach(value => data_total.push(value)); + // _rawData.total_data.forEach(value => data_total.push(value)); myChart.setOption({ series: [ @@ -401,10 +401,10 @@ name: '湿度', data: data_humidity }, - { - name: '总体', - data: data_total - } + // { + // name: '总体', + // data: data_total + // } ] }); });