Fixed YAML GVAR based values

This commit is contained in:
Raphael Coeffic
2021-12-31 10:53:11 +01:00
parent c8cd009ea2
commit 7a66c3413a
2 changed files with 11 additions and 11 deletions
@@ -23,7 +23,6 @@
#include "datastructs_220.h"
#include "myeeprom_220.h"
#define GVAR_SMALL 128
#define VOLUME_LEVEL_DEF 12
bool w_board(void* user, uint8_t* data, uint32_t bitoffs,
@@ -38,12 +37,13 @@ bool in_write_weight(const YamlNode* node, uint32_t val, yaml_writer_func wf,
void* opaque)
{
int32_t sval = yaml_to_signed(val, node->size);
int32_t gvar = (node->size > 8 ? GV1_LARGE : GV1_SMALL);
if (sval > GVAR_SMALL - 11 && sval < GVAR_SMALL - 1) {
char n = GVAR_SMALL - sval + '0';
if (sval >= gvar - 10 && sval <= gvar) {
char n = gvar - sval + '0';
return wf(opaque, "-GV", 3) && wf(opaque, &n, 1);
} else if (sval < -GVAR_SMALL + 11 && sval > -GVAR_SMALL + 1) {
char n = val - GVAR_SMALL + '1';
} else if (sval <= -gvar + 10 && sval >= -gvar) {
char n = val - gvar + '1';
return wf(opaque, "GV", 2) && wf(opaque, &n, 1);
}
@@ -143,10 +143,10 @@ static bool w_board(void* user, uint8_t* data, uint32_t bitoffs,
return yaml_conv_220::w_board(user, data, bitoffs, wf, opaque);
}
#define GVAR_SMALL 128
static uint32_t in_read_weight(const YamlNode* node, const char* val, uint8_t val_len)
{
int gvar = (node->size > 8 ? GV1_LARGE : GV1_SMALL);
if ((val_len == 4)
&& (val[0] == '-')
&& (val[1] == 'G')
@@ -154,8 +154,8 @@ static uint32_t in_read_weight(const YamlNode* node, const char* val, uint8_t va
&& (val[3] >= '1')
&& (val[3] <= '9')) {
TRACE("%.*s -> %i\n", val_len, val, GVAR_SMALL - (val[3] - '0'));
return GVAR_SMALL - (val[3] - '0'); // -GVx => 128 - x
TRACE("%.*s -> %i\n", val_len, val, gvar - (val[3] - '0'));
return gvar - (val[3] - '0'); // -GVx => 128 - x
}
if ((val_len == 3)
@@ -164,8 +164,8 @@ static uint32_t in_read_weight(const YamlNode* node, const char* val, uint8_t va
&& (val[2] >= '1')
&& (val[2] <= '9')) {
TRACE("%.*s -> %i\n", val_len, val, -GVAR_SMALL + (val[2] - '1'));
return -GVAR_SMALL + (val[2] - '1'); // GVx => -128 + (x-1)
TRACE("%.*s -> %i\n", val_len, val, -gvar + (val[2] - '1'));
return -gvar + (val[2] - '1'); // GVx => -128 + (x-1)
}
return (uint32_t)yaml_str2int(val, val_len);