auto-sync
This commit is contained in:
parent
0b98f1d9fc
commit
a611130271
|
@ -330,10 +330,32 @@ static void setUserOutput(const char *indexStr, const char *quotedLine, Engine *
|
|||
strcpy(engine->engineConfiguration->bc.le_formulas[index], l);
|
||||
}
|
||||
|
||||
static void setFloat(const char *offsetStr, const char *valueStr) {
|
||||
static void setInt(const char *offsetStr, const char *valueStr) {
|
||||
|
||||
}
|
||||
|
||||
static void getFloat(int offset) {
|
||||
float *ptr = (float *)(((char *) engine->engineConfiguration)[offset]);
|
||||
float value = *ptr;
|
||||
scheduleMsg(&logger, "float @%d is %f", offset, value);
|
||||
}
|
||||
|
||||
static void setFloat(const char *offsetStr, const char *valueStr) {
|
||||
int offset = atoi(offsetStr);
|
||||
if (absI(offset) == absI(ERROR_CODE)) {
|
||||
scheduleMsg(&logger, "invalid offset [%s]", offsetStr);
|
||||
return;
|
||||
}
|
||||
float value = atoff(valueStr);
|
||||
if (cisnan(value)) {
|
||||
scheduleMsg(&logger, "invalid value [%s]", valueStr);
|
||||
return;
|
||||
}
|
||||
float *ptr = (float *)(((char *) engine->engineConfiguration)[offset]);
|
||||
*ptr = value;
|
||||
scheduleMsg(&logger, "setting float @%d to %f", offset, value);
|
||||
}
|
||||
|
||||
static pin_output_mode_e d = OM_DEFAULT;
|
||||
|
||||
void initEngineContoller(Engine *engine) {
|
||||
|
@ -443,6 +465,8 @@ void initEngineContoller(Engine *engine) {
|
|||
}
|
||||
|
||||
addConsoleActionSSP("set_user_out", (VoidCharPtrCharPtrVoidPtr) setUserOutput, engine);
|
||||
addConsoleActionSS("set_float", (VoidCharPtrCharPtr)setFloat);
|
||||
addConsoleActionSS("set_float", (VoidCharPtrCharPtr) setFloat);
|
||||
addConsoleActionSS("set_int", (VoidCharPtrCharPtr) setInt);
|
||||
addConsoleActionI("get_float", getFloat);
|
||||
initEval(engine);
|
||||
}
|
||||
|
|
|
@ -304,7 +304,7 @@ void handleActionWithParameter(TokenCallback *current, char *parameter) {
|
|||
return;
|
||||
parameter[spaceIndex] = 0;
|
||||
int value1 = atoi(parameter);
|
||||
if (absI(value1) == absI(ERROR_CODE)) {
|
||||
if (absI(value1) == ERROR_CODE) {
|
||||
#if (EFI_PROD_CODE || EFI_SIMULATOR) || defined(__DOXYGEN__)
|
||||
scheduleMsg(&logging, "not an integer [%s]", parameter);
|
||||
#endif
|
||||
|
@ -312,7 +312,7 @@ void handleActionWithParameter(TokenCallback *current, char *parameter) {
|
|||
}
|
||||
parameter += spaceIndex + 1;
|
||||
int value2 = atoi(parameter);
|
||||
if (absI(value2) == absI(ERROR_CODE)) {
|
||||
if (absI(value2) == ERROR_CODE) {
|
||||
#if (EFI_PROD_CODE || EFI_SIMULATOR) || defined(__DOXYGEN__)
|
||||
scheduleMsg(&logging, "not an integer [%s]", parameter);
|
||||
#endif
|
||||
|
@ -351,7 +351,7 @@ void handleActionWithParameter(TokenCallback *current, char *parameter) {
|
|||
}
|
||||
|
||||
int value = atoi(parameter);
|
||||
if (value == ERROR_CODE) {
|
||||
if (absI(value) == ERROR_CODE) {
|
||||
print("invalid integer [%s]\r\n", parameter);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -147,7 +147,11 @@ bool isSameF(float v1, float v2) {
|
|||
return absF(v1 - v2) < EPS;
|
||||
}
|
||||
|
||||
// string to float
|
||||
/**
|
||||
* string to float
|
||||
* @return NAN in case of invalid string
|
||||
* todo: explicit value for error code?
|
||||
*/
|
||||
float atoff(const char *param) {
|
||||
uint32_t totallen = strlen(param);
|
||||
if (totallen > sizeof(todofixthismesswithcopy) - 1)
|
||||
|
@ -161,14 +165,20 @@ float atoff(const char *param) {
|
|||
if (dotIndex == -1) {
|
||||
// just an integer
|
||||
int result = atoi(string);
|
||||
if (absI(result) == ERROR_CODE)
|
||||
return (float) NAN;
|
||||
return (float) result;
|
||||
}
|
||||
// todo: this needs to be fixed
|
||||
string[dotIndex] = 0;
|
||||
int integerPart = atoi(string);
|
||||
if (absI(integerPart) == ERROR_CODE)
|
||||
return (float) NAN;
|
||||
string += (dotIndex + 1);
|
||||
int decimalLen = strlen(string);
|
||||
int decimal = atoi(string);
|
||||
if (absI(decimal) == ERROR_CODE)
|
||||
return (float) NAN;
|
||||
float divider = 1.0;
|
||||
// todo: reuse 'pow10' function which we have anyway
|
||||
for (int i = 0; i < decimalLen; i++) {
|
||||
|
|
|
@ -29,7 +29,7 @@ extern "C"
|
|||
{
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#define ERROR_CODE -11223344
|
||||
#define ERROR_CODE 311223344
|
||||
|
||||
const char * boolToString(bool value);
|
||||
|
||||
|
|
Loading…
Reference in New Issue