package com.muyu.fault.service.impl.faultDetectionStrategy;


import com.muyu.fault.domain.CarFaultRule;
import com.muyu.fault.domain.FaultReport;
import com.muyu.fault.service.FaultDetectionStrategy;
import org.springframework.stereotype.Service;

/**
 * @className: CarFaultRule  ️✈️
 * @author: Yang 鹏  🦅
 * @date: 2024/9/23 22:06 ⏰
 * @Version: 1.0
 * @description:
 */

/**
 * 针对纯电车的故障检测逻辑
 */
@Service(value = "PureElectricCar")
public class PureElectricCarFaultDetectionStrategy implements FaultDetectionStrategy {



    @Override
    public FaultReport detectFaults(CarFaultRule carFaultRule) {


        //检测车速是否处于正常范围
        if (carFaultRule.getSpeed()>200 || carFaultRule.getSpeed()<0){
            return new FaultReport("纯电车","车速不在正常范围内,请注意");
        }
        //检测总里程数是否超过正常数
        if (carFaultRule.getTM()>5000000){
            return new FaultReport("纯电车","总里程数已超标,请注意");
        }
        //检测总电压是否正常
        if (carFaultRule.getTV()>650){
            return new FaultReport("纯电车","总电压过高,请注意");
        }
        //检测电流是否超标
        if (carFaultRule.getCC()>50){
            return new FaultReport("纯电车","电流过高,请注意");
        }
        //检测绝缘电阻
        if (carFaultRule.getIR()>100000){
            return new FaultReport("纯电车","绝缘电阻过高,请注意");
        }
//        //检测加速踏板行程值
//        if (carFaultRule.getAPTV()){
//
//        }
//        //检测制动踏板行程值
//        if (carFaultRule.getBPTV()){
//
//        }
//        //检测燃料消耗率
//        if (carFaultRule.getSFC()){
//
//        }
//        //检测电机控制器温度
//        if (carFaultRule.getMCT()){
//
//        }
//        //检测电机转速
//        if (carFaultRule.getMS()){
//
//        }
//        //检测电机转矩
//        if (carFaultRule.getMTO()){
//
//        }
//        //检测电机温度
//        if (carFaultRule.getMTE()){
//
//        }
//        //检测电机电压
//        if (carFaultRule.getMV()){
//
//        }
//        //检测电机电流
//        if (carFaultRule.getMC()){
//
//        }
//        //检测动力电池剩余电量SOC
//        if (carFaultRule.getPBRSOC()){
//
//        }
//        //检测当前状态允许的最大反馈功率
//        if (carFaultRule.getMACSFP()){
//
//        }
//        //检测当前状态允许最大放电功率
//        if (carFaultRule.getCSATMDP()) {
//
//        }
//        //检测BMS自检计数器
//        if (carFaultRule.getBMS()) {
//
//        }
//        //检测动力电池充放电电流
//        if (carFaultRule.getCADC()) {
//
//        }
//        //检测动力电池负载端总电压V3
//        if (carFaultRule.getPBLETVV3()) {
//
//        }
//        //检测单次最大电压
//        if (carFaultRule.getSMV()) {
//
//        }
//        //检测单体电池最低电压
//        if (carFaultRule.getMVOAB()) {
//
//        }
//        //检测单体电池最高温度
//        if (carFaultRule.getMAXBT()) {
//
//        }
//        //检测单体电池最低温度
//        if (carFaultRule.getMINBT()) {
//
//        }
//        //检测动力电池可用容量
//        if (carFaultRule.getPBAC()) {
//
//        }
//        //检测车辆状态
//        if (carFaultRule.getVS()) {
//
//        }
//        //检测充电状态
//        if (carFaultRule.getCS()) {
//
//        }
//        //检测运行状态
//        if (carFaultRule.getRS()) {
//
//        }
//        //检测SOC
//        if (carFaultRule.getSOC()) {
//
//        }
//        //检测可充电储能装置工作状态
//        if (carFaultRule.getRESDWC()) {
//
//        }
//        //检测驱动电机状态
//        if (carFaultRule.getEAS()) {
//
//        }
//        //检测定位是否有效
//        if (carFaultRule.getPTC()) {
//
//        }
//        //检测EAS
//        if (carFaultRule.getEPS()) {
//
//        }
//        //检测PTC
//        if (carFaultRule.getABS()) {
//
//        }
//        //检测EPS
//        if (carFaultRule.getMCU()) {
//
//        }
//        //检测ABS
//        if (carFaultRule.getPBHS()) {
//
//        }
//        //检测MCU
//        if (carFaultRule.getPBCS()) {
//
//        }
//        //检测动力电池加热状态
//        if (carFaultRule.getPBIS()) {
//
//        }
//        //检测动力电池当前状态
//        if (carFaultRule.getDCDC()) {
//
//        }
//        //检测动力电池保温状态
//        if (carFaultRule.getCHG()) {
//
//        }
//        //检测DCDC
//        if (carFaultRule.getCHB()) {
//
//        }
//        //检测CHG
//        if (carFaultRule.getCUB()) {
//
//        }
        return null;
    }
}
