Add endurance power limit
This commit is contained in:
		@ -11,7 +11,7 @@ extern "C" {
 | 
				
			|||||||
#include "util.h"
 | 
					#include "util.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CountedEnum(ParamType, size_t, PF_BBAL, PF_SLIPREF, PF_MUMAX, PF_ASRP, PF_ASRON,
 | 
					CountedEnum(ParamType, size_t, PF_BBAL, PF_SLIPREF, PF_MUMAX, PF_ASRP, PF_ASRON,
 | 
				
			||||||
            PF_ASRI);
 | 
					            PF_ASRI, PF_PLIM);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
  float bbal;
 | 
					  float bbal;
 | 
				
			||||||
@ -20,6 +20,7 @@ typedef struct {
 | 
				
			|||||||
  unsigned asrp;
 | 
					  unsigned asrp;
 | 
				
			||||||
  unsigned asri;
 | 
					  unsigned asri;
 | 
				
			||||||
  unsigned asron;
 | 
					  unsigned asron;
 | 
				
			||||||
 | 
					  unsigned plim;
 | 
				
			||||||
} Params;
 | 
					} Params;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern Params params;
 | 
					extern Params params;
 | 
				
			||||||
 | 
				
			|||||||
@ -4,7 +4,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Params params = {0};
 | 
					Params params = {0};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void params_init() { params.bbal = 50; }
 | 
					void params_init() {
 | 
				
			||||||
 | 
					  params.bbal = 50;
 | 
				
			||||||
 | 
					  params.plim = 20;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void params_inc(ParamType param) {
 | 
					void params_inc(ParamType param) {
 | 
				
			||||||
  switch (param) {
 | 
					  switch (param) {
 | 
				
			||||||
@ -29,6 +32,9 @@ void params_inc(ParamType param) {
 | 
				
			|||||||
  case PF_ASRON:
 | 
					  case PF_ASRON:
 | 
				
			||||||
    params.asron = 1;
 | 
					    params.asron = 1;
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
 | 
					  case PF_PLIM:
 | 
				
			||||||
 | 
					    params.plim = (params.plim < 80) ? params.plim + 1 : 80;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -63,6 +69,9 @@ void params_dec(ParamType param) {
 | 
				
			|||||||
  case PF_ASRON:
 | 
					  case PF_ASRON:
 | 
				
			||||||
    params.asron = 0;
 | 
					    params.asron = 0;
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
 | 
					  case PF_PLIM:
 | 
				
			||||||
 | 
					    params.plim = (params.plim > 2) ? params.plim - 1 : 2;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -87,6 +96,8 @@ void params_broadcast(ParamType param) {
 | 
				
			|||||||
  case PF_ASRON:
 | 
					  case PF_ASRON:
 | 
				
			||||||
    value = params.asron;
 | 
					    value = params.asron;
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
 | 
					  case PF_PLIM:
 | 
				
			||||||
 | 
					    value = params.plim;
 | 
				
			||||||
  default:
 | 
					  default:
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
@ -316,6 +316,7 @@ NamedFieldDescription paramFieldDescs[] = {
 | 
				
			|||||||
    [PF_ASRP] = {NamedFieldKind::Int, "ASR-P", 2, 0, PARAM_FIELD(asrp)},
 | 
					    [PF_ASRP] = {NamedFieldKind::Int, "ASR-P", 2, 0, PARAM_FIELD(asrp)},
 | 
				
			||||||
    [PF_ASRON] = {NamedFieldKind::Int, "ASR-ON", 2, 0, PARAM_FIELD(asron)},
 | 
					    [PF_ASRON] = {NamedFieldKind::Int, "ASR-ON", 2, 0, PARAM_FIELD(asron)},
 | 
				
			||||||
    [PF_ASRI] = {NamedFieldKind::Int, "ASR-I", 2, 0, PARAM_FIELD(asri)},
 | 
					    [PF_ASRI] = {NamedFieldKind::Int, "ASR-I", 2, 0, PARAM_FIELD(asri)},
 | 
				
			||||||
 | 
					    [PF_PLIM] = {NamedFieldKind::Int, "PLIM", 2, 0, PARAM_FIELD(plim)},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static_assert(sizeof(paramFieldDescs) / sizeof(paramFieldDescs[0]) ==
 | 
					static_assert(sizeof(paramFieldDescs) / sizeof(paramFieldDescs[0]) ==
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user