123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Mead
- * Date: 2019/9/9
- * Time: 2:49 PM
- */
- namespace App\Handlers;
- class BatteryHandler
- {
- const max_ride_v = 10;
- const fangans = [
- [
- 'min' => 0,
- 'max' => 43,
- 'electric' => 0,
- 'mileage' => 0
- ],
- [
- 'min' => 43,
- 'max' => 44,
- 'electric' => 10,
- 'mileage' => 5
- ],
- [
- 'min' => 44,
- 'max' => 46,
- 'electric' => 20,
- 'mileage' => 10
- ],
- [
- 'min' => 46,
- 'max' => 47,
- 'electric' => 30,
- 'mileage' => 15
- ],
- [
- 'min' => 47,
- 'max' => 48,
- 'electric' => 40,
- 'mileage' => 20
- ],
- [
- 'min' => 48,
- 'max' => 49,
- 'electric' => 50,
- 'mileage' => 25
- ],
- [
- 'min' => 49,
- 'max' => 50,
- 'electric' => 60,
- 'mileage' => 30
- ],
- [
- 'min' => 50,
- 'max' => 51,
- 'electric' => 70,
- 'mileage' => 35
- ],
- [
- 'min' => 51,
- 'max' => 52,
- 'electric' => 80,
- 'mileage' => 40
- ],
- [
- 'min' => 52,
- 'max' => 53,
- 'electric' => 90,
- 'mileage' => 45
- ],
- [
- 'min' => 53,
- 'max' => false,
- 'electric' => 100,
- 'mileage' => 50
- ],
- ];
- public function byVoltageGetElectric($v)
- {
- foreach (self::fangans as $fangan) {
- if ($fangan['min'] === false && $fangan['max'] > $v) {
- return $fangan['electric'];
- }
- if ($fangan['max'] === false && $v['max'] <= $v) {
- return $fangan['electric'];
- }
- if ($fangan['min'] <= $v && $fangan['max'] > $v) {
- return $fangan['electric'];
- }
- }
- }
- public function byElectricGetMileage($e)
- {
- $eles = array_column(self::fangans, 'electric');
- $mils = array_column(self::fangans, 'mileage');
- $mil = 0;
- foreach ($eles as $key => $ele) {
- if ($ele > $e) {
- $k = $key - 1;
- $m = round(($e - $eles[$k]) / 10 * 5);
- $mil = (int)$mils[$k] + $m;
- break;
- }
- }
- return $mil;
- }
- }
|