|
|
@@ -11,20 +11,10 @@
|
|
|
// - obj has attrs - TODO: config for calculations like XPATH or in x3d
|
|
|
// Task Object attrs - like xsd element attrs of type (int value, other object)
|
|
|
|
|
|
-// TODO: CALC_ enum?
|
|
|
-const int CALC_DEFINE = 0; // attr[i] = { value } // regVal[i] = value
|
|
|
-const int CALC_GET_DATA = 1; // attr[i] = { data_idx }; // regVal[i] = data[data_idx]
|
|
|
-const int CALC_SET_DATA = 2; // attr[i] = { data_idx, reg_idx } // data[data_idx] = regVal[reg_idx]
|
|
|
-const int CALC_COMP_EQ = 3; // attr[i] = { a, b, false_idx } // if (reg[a] == reg[b]) then go to + 1, else go to false_idx
|
|
|
-const int CALC_COMP_GT = 4; // attr[i] = { a, b, false_idx } // if (reg[a] > reg[b]) then go to + 1, else go to false_idx
|
|
|
-const int CALC_COMP_LT = 5; // attr[i] = { a, b, false_idx } // if (reg[a] < reg[b]) then go to + 1, else go to false_idx
|
|
|
-const int CALC_FUNC_ABS = 6; // attr[i] = { idx } // regVal[i] = abs(reg[idx])
|
|
|
-const int CALC_FUNC_DIV = 7; // attr[i] = { a, b } // regVal[i] = regVal[a] / regVal[b]
|
|
|
-const int CALC_FUNC_MULTI = 8; // attr[i] = { a, b } // regVal[i] = regVal[a] * regVal[b]
|
|
|
-const int CALC_FUNC_ADD = 9; // attr[i] = { a, b } // regVal[i] = regVal[a] + regVal[b]
|
|
|
-const int CALC_FUNC_SUB = 10; // attr[i] = { a, b } // regVal[i] = regVal[a] - regVal[b]
|
|
|
-const int CALC_FUNC_OPPOSITE = 11; // attr[i] = { a, b } // regVal[i] = -1 * regVal[a]
|
|
|
-const int CALC_FINISH = 12;
|
|
|
+#define DBG_OBJ_LEVEL 3
|
|
|
+
|
|
|
+#include "const_calc.h" //attributes avialable to calculate
|
|
|
+
|
|
|
|
|
|
const int DB_OBJ_MAX = 10; // Object list -> Conf -> Attr
|
|
|
int DB_OBJ_IDX = 0;
|
|
|
@@ -38,257 +28,11 @@ const int DB_ATTR_MAX = 100; // Attr list
|
|
|
int DB_ATTR_IDX = 0;
|
|
|
int DB_ATTR[DB_ATTR_MAX][3]; // { relIdxConf, value, idObj }
|
|
|
|
|
|
-void calc__db_init() {
|
|
|
- int i;
|
|
|
- for (i = 0; i < DB_OBJ_MAX; i++) {
|
|
|
- DB_OBJ[i][0] = 0;
|
|
|
- DB_OBJ[i][1] = 0;
|
|
|
- DB_OBJ[i][2] = 0;
|
|
|
- DB_OBJ[i][3] = 0;
|
|
|
- }
|
|
|
- for (i = 0; i < DB_CONF_MAX; i++) {
|
|
|
- DB_CONF[i] = 0;
|
|
|
- }
|
|
|
- for (i = 0; i < DB_ATTR_MAX; i++) {
|
|
|
- DB_ATTR[i][0] = 0;
|
|
|
- DB_ATTR[i][1] = 0;
|
|
|
- DB_ATTR[i][2] = -1;
|
|
|
- }
|
|
|
-}
|
|
|
-int calc__db_create_obj() {
|
|
|
- int idObj = DB_OBJ_IDX;
|
|
|
- DB_OBJ[DB_OBJ_IDX][0] = DB_CONF_IDX;
|
|
|
- DB_OBJ[DB_OBJ_IDX][1] = 0; // last conf idx
|
|
|
- DB_OBJ[DB_OBJ_IDX][2] = DB_ATTR_IDX; // first conf idx
|
|
|
- DB_OBJ[DB_OBJ_IDX][3] = 0; // last attr idx
|
|
|
- DB_OBJ_IDX++;
|
|
|
- return idObj;
|
|
|
-}
|
|
|
-void calc__db_attr_add(int idObj, int val) {
|
|
|
- DB_ATTR[DB_ATTR_IDX][0] = DB_CONF_IDX - DB_OBJ[idObj][0];
|
|
|
- DB_ATTR[DB_ATTR_IDX][1] = val;
|
|
|
- DB_ATTR[DB_ATTR_IDX][2] = idObj;
|
|
|
- DB_OBJ[idObj][3] = DB_ATTR_IDX; // last attr idx
|
|
|
- DB_ATTR_IDX++;
|
|
|
-}
|
|
|
-void calc__db_conf_add0(int idObj, int idType) {
|
|
|
- if (DB_CONF_IDX >= DB_CONF_MAX) {
|
|
|
- Serial.println("BUG:DB_CONF_MAX reached!");
|
|
|
- return;
|
|
|
- }
|
|
|
+#include "calc_db.h"
|
|
|
+#include "calc_db_conf.h"
|
|
|
|
|
|
- DB_CONF[DB_CONF_IDX] = idType;
|
|
|
+#include "calc.h"
|
|
|
|
|
|
- DB_OBJ[idObj][1] = DB_CONF_IDX;
|
|
|
- DB_CONF_IDX++;
|
|
|
-}
|
|
|
-void calc__db_conf_add1(int idObj, int idType, int a) {
|
|
|
- if (DB_CONF_IDX >= DB_CONF_MAX) {
|
|
|
- Serial.println("BUG:DB_CONF_MAX reached!");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- DB_CONF[DB_CONF_IDX] = idType;
|
|
|
- calc__db_attr_add(idObj, a);
|
|
|
-
|
|
|
- DB_OBJ[idObj][1] = DB_CONF_IDX;
|
|
|
- DB_CONF_IDX++;
|
|
|
-}
|
|
|
-void calc__db_conf_add2(int idObj, int idType, int a, int b) {
|
|
|
- if (DB_CONF_IDX >= DB_CONF_MAX) {
|
|
|
- Serial.println("BUG:DB_CONF_MAX reached!");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- DB_CONF[DB_CONF_IDX] = idType;
|
|
|
- calc__db_attr_add(idObj, a);
|
|
|
- calc__db_attr_add(idObj, b);
|
|
|
-
|
|
|
- DB_OBJ[idObj][1] = DB_CONF_IDX;
|
|
|
- DB_CONF_IDX++;
|
|
|
-}
|
|
|
-void calc__db_conf_add3(int idObj, int idType, int a, int b, int c) {
|
|
|
- if (DB_CONF_IDX >= DB_CONF_MAX) {
|
|
|
- Serial.println("BUG:DB_CONF_MAX reached!");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- DB_CONF[DB_CONF_IDX] = idType;
|
|
|
- calc__db_attr_add(idObj, a);
|
|
|
- calc__db_attr_add(idObj, b);
|
|
|
- calc__db_attr_add(idObj, c);
|
|
|
-
|
|
|
- DB_OBJ[idObj][1] = DB_CONF_IDX;
|
|
|
- DB_CONF_IDX++;
|
|
|
-}
|
|
|
-void calc__db_conf_add4(int idObj, int idType, int a, int b, int c, int d) {
|
|
|
- if (DB_CONF_IDX >= DB_CONF_MAX) {
|
|
|
- Serial.println("BUG:DB_CONF_MAX reached!");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- DB_CONF[DB_CONF_IDX] = idType;
|
|
|
- calc__db_attr_add(idObj, a);
|
|
|
- calc__db_attr_add(idObj, b);
|
|
|
- calc__db_attr_add(idObj, c);
|
|
|
- calc__db_attr_add(idObj, d);
|
|
|
-
|
|
|
- DB_OBJ[idObj][1] = DB_CONF_IDX;
|
|
|
- DB_CONF_IDX++;
|
|
|
-}
|
|
|
-int calc__get_firstConf( int idObj ) { return DB_OBJ[idObj][0]; }
|
|
|
-int calc__get_lastConf( int idObj ) { return DB_OBJ[idObj][1]; }
|
|
|
-int calc__get_firstAttr( int idObj ) { return DB_OBJ[idObj][2]; }
|
|
|
-int calc__get_lastAttr( int idObj ) { return DB_OBJ[idObj][3]; }
|
|
|
-int calc__get_totalConf( int idObj ) { return DB_OBJ[idObj][1] - DB_OBJ[idObj][0] + 1; }
|
|
|
-int calc__get_totalAttr( int idObj ) { return DB_OBJ[idObj][3] - DB_OBJ[idObj][2] + 1; }
|
|
|
-int calc__get_conf( int idObj, int relIdx ) { return DB_CONF[ calc__get_firstConf(idObj) + relIdx ]; }
|
|
|
-
|
|
|
-int * calc__attr(int idObj, int relIdx, int subIdx) {
|
|
|
- int si = 0;
|
|
|
- for (int i = calc__get_firstAttr(idObj); i <= calc__get_lastAttr(idObj); i++) {
|
|
|
- if (DB_ATTR[i][0] == relIdx) {
|
|
|
- if (si == subIdx) {
|
|
|
- return &DB_ATTR[i][1];
|
|
|
- }
|
|
|
- si++;
|
|
|
- }
|
|
|
- }
|
|
|
- return NULL;
|
|
|
-}
|
|
|
-void calc__DBG_OBJ(int idObj) {
|
|
|
- // Serial.println("DBG:obj[%d] = { %d, %d, %d, %d }\n", idObj, DB_OBJ[idObj][0], DB_OBJ[idObj][1], DB_OBJ[idObj][2], DB_OBJ[idObj][3]); // TODO: DBG
|
|
|
- // Serial.println("DBG:conf(obj:%d,total:%d): { ", idObj, calc__get_totalConf(idObj)); for (int i = DB_OBJ[idObj][0]; i < DB_OBJ[idObj][1]; i++) { Serial.println("%d:%d, ", i, DB_CONF[i]); }; Serial.println("}\n");
|
|
|
- // Serial.println("DBG:attr(obj:%d,total:%d): { ", idObj, calc__get_totalAttr(idObj));
|
|
|
- for (int i = calc__get_firstAttr(idObj); i <= calc__get_lastAttr(idObj); i++) {
|
|
|
- if (DB_ATTR[i][2] == idObj) {
|
|
|
- // Serial.println("%d:{%d,%d,%d}, ", i, DB_ATTR[i][0], DB_ATTR[i][1], DB_ATTR[i][2]);
|
|
|
- // Serial.println("%d:{%d,%d}, ", i, DB_ATTR[i][0], DB_ATTR[i][1]);
|
|
|
- }
|
|
|
- };
|
|
|
- // Serial.println("}\n");
|
|
|
-}
|
|
|
-void calc__run(int idObj, int regData[]) {
|
|
|
- int i = 0;
|
|
|
- int confTotal = calc__get_totalConf(idObj);
|
|
|
- int attrTotal = calc__get_totalAttr(idObj);
|
|
|
- // Serial.println("DBG:calc__run:confTotal = %d, attrTotal = %d\n", confTotal, attrTotal); // TODO: DBG
|
|
|
- int regVal[confTotal];
|
|
|
- for (i = 0; i < confTotal; i++) regVal[i] = 0;
|
|
|
-
|
|
|
- // int test[3][2] = { { 1,4 }, { 2,5 }, { 2,8 } };
|
|
|
- // for ( int ( *p )[2] = test ; p != test + 3; ++p ) {
|
|
|
- // for ( int *q = *p; q != *p + 2; ++q ) Serial.println( "%d ", *q );
|
|
|
- // puts( "" );
|
|
|
- // }
|
|
|
-
|
|
|
- // int DB_ATTR[DB_ATTR_MAX][3]; // { idxConf, value, idObj }
|
|
|
- int regAttr[1][2];
|
|
|
-
|
|
|
- // DB_CONF[ DB_OBJ[idObj][0] + relIdx ];
|
|
|
- int * p = NULL;
|
|
|
- for (i = 0; i < confTotal; i++) {
|
|
|
- if (calc__get_conf(idObj, i) == CALC_GET_DATA) {
|
|
|
- p = calc__attr(idObj, i, 0);
|
|
|
- if (p != NULL) {
|
|
|
- regVal[i] = regData[*p];
|
|
|
- } else {
|
|
|
- // BUG: cant find reg idx in attr
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // Serial.println("DBG:calc__run:regVal: { "); for (int i = 0; i < confTotal; i++) { Serial.println("%d:%d, ", i, regVal[i]); }; Serial.println("}\n"); // TODO: DBG
|
|
|
- // Serial.println("DBG:calc__run:regData: { "); for (int i = 0; i < 7; i++) { Serial.println("%d:%d, ", i, regData[i]); }; Serial.println("}\n"); // TODO: DBG
|
|
|
-
|
|
|
- char finish = 0;
|
|
|
- int regIdx = 0; // relative reg idx
|
|
|
- int nextRegIdx = 0; // relative reg idx
|
|
|
- // int lastAttr = calc__get_lastAttr(idObj); // TODO: security: (regIdx >= firstAttr && regIdx <= lastAttr)
|
|
|
- int calc_loop_limit = 100; // TODO: ...
|
|
|
- for (i = 0; i < calc_loop_limit && !finish; i++) {
|
|
|
- // Serial.println("DBG:loop:%d: Start\n", i);
|
|
|
-
|
|
|
- // Serial.println("DBG:loop:%d:reg(%d:[%d,%d,%d])\n", i, regIdx, reg[regIdx][0], reg[regIdx][1], reg[regIdx][2]);
|
|
|
- int type = calc__get_conf(idObj, regIdx);
|
|
|
- int * pa = calc__attr(idObj, regIdx, 0);
|
|
|
- int * pb = calc__attr(idObj, regIdx, 1);
|
|
|
- // Serial.println("DBG:calc__run:loop:%d:reg[%d]C(%d) => a(%d):%d, b(%d):%d\n", i, regIdx, type, (NULL == pa) ? -1 : *pa, (NULL == pa) ? -1 : regVal[*pa], (NULL == pb) ? -1 : *pb, (NULL == pb) ? -1 : regVal[*pb]);
|
|
|
- // calc__DBG_OBJ(0); // TODO: DBG
|
|
|
- int a = (pa != NULL) ? *pa : 0;
|
|
|
- int b = (pb != NULL) ? *pb : 0;
|
|
|
- // Serial.println("DBG:calc__run:loop:%d:reg[%d] => a(%d):%d, b(%d):%d\n", i, regIdx, a, regVal[a], b, regVal[b]);
|
|
|
- switch (type) {
|
|
|
- case CALC_DEFINE: { // 0
|
|
|
- regVal[regIdx] = *pa; // TODO: check NULL
|
|
|
- nextRegIdx = regIdx + 1;
|
|
|
- } break;
|
|
|
- case CALC_GET_DATA: { // 1
|
|
|
- regVal[regIdx] = regData[*pa]; // TODO: read from data register
|
|
|
- nextRegIdx = regIdx + 1;
|
|
|
- } break;
|
|
|
- case CALC_SET_DATA: { // 2
|
|
|
- regVal[regIdx] = regVal[*pb];
|
|
|
- // Serial.println("DBG:calc__run:loop:stop:%d:reg[%d] => %d from %d | data[%d] = %d\n", i, regIdx, regVal[regIdx], *pb, *pa, regVal[regIdx]);
|
|
|
- regData[*pa] = regVal[regIdx];
|
|
|
- // regAttr[0][1] = regVal[regIdx]; // TODO: set this too ???
|
|
|
- nextRegIdx = regIdx + 1;
|
|
|
- } break;
|
|
|
- case CALC_COMP_EQ: { // 3
|
|
|
- regVal[regIdx] = (regVal[*pa] == regVal[*pb]) ? 1 : 0;
|
|
|
- nextRegIdx = (regVal[regIdx]) ? regIdx + 1 : *calc__attr(idObj, regIdx, 2);
|
|
|
- } break;
|
|
|
- case CALC_COMP_GT: { // 4
|
|
|
- regVal[regIdx] = (regVal[*pa] > regVal[*pb]) ? 1 : 0;
|
|
|
- nextRegIdx = (regVal[regIdx]) ? regIdx + 1 : *calc__attr(idObj, regIdx, 2);
|
|
|
- } break;
|
|
|
- case CALC_COMP_LT: { // 5
|
|
|
- regVal[regIdx] = (regVal[*pa] < regVal[*pb]) ? 1 : 0;
|
|
|
- nextRegIdx = (regVal[regIdx]) ? regIdx + 1 : *calc__attr(idObj, regIdx, 2);
|
|
|
- } break;
|
|
|
- case CALC_FUNC_ABS: { // 6
|
|
|
- Serial.println("TODO:calc__run:Not Implemented:CALC_FUNC_ABS"); // abs(reg[a]);
|
|
|
- regVal[regIdx] = 0;
|
|
|
- nextRegIdx = regIdx + 1;
|
|
|
- } break;
|
|
|
- case CALC_FUNC_DIV: { // 7
|
|
|
- Serial.println("TODO:calc__run:Not Implemented:CALC_FUNC_DIV"); // reg[a] / reg[b];
|
|
|
- regVal[regIdx] = 0;
|
|
|
- nextRegIdx = regIdx + 1;
|
|
|
- } break;
|
|
|
- case CALC_FUNC_MULTI: { // 8
|
|
|
- Serial.println("TODO:calc__run:Not Implemented:CALC_FUNC_MULTI"); // reg[a] * reg[b];
|
|
|
- regVal[regIdx] = 0;
|
|
|
- nextRegIdx = regIdx + 1;
|
|
|
- } break;
|
|
|
- case CALC_FUNC_ADD: { // 9
|
|
|
- regVal[regIdx] = regVal[*pa] + regVal[*pb];
|
|
|
- nextRegIdx = regIdx + 1;
|
|
|
- } break;
|
|
|
- case CALC_FUNC_SUB: { // 10
|
|
|
- regVal[regIdx] = regVal[*pa] - regVal[*pb];
|
|
|
- nextRegIdx = regIdx + 1;
|
|
|
- } break;
|
|
|
- case CALC_FUNC_OPPOSITE: { // 11
|
|
|
- regVal[regIdx] = regVal[*pa] * -1; // -1 * nr;
|
|
|
- nextRegIdx = regIdx + 1;
|
|
|
- } break;
|
|
|
- case CALC_FINISH: { // 12
|
|
|
- finish = 1; // TODO: break loop
|
|
|
- } break;
|
|
|
- }
|
|
|
-
|
|
|
- // (finish)
|
|
|
- // ? Serial.println("DBG:calc__run:loop:%d:reg[%d] => %d; finish!\n", i, regIdx, regVal[regIdx])
|
|
|
- // : Serial.println("DBG:calc__run:loop:%d:reg[%d] => %d; goto %d\n", i, regIdx, regVal[regIdx], nextRegIdx)
|
|
|
- // ;
|
|
|
-
|
|
|
- regIdx = nextRegIdx;
|
|
|
- }
|
|
|
-
|
|
|
- // Serial.println("DBG:calc__run:end:regVal: { "); for (int i = 0; i < confTotal; i++) { Serial.println("%d:%d, ", i, regVal[i]); }; Serial.println("}\n"); // TODO: DBG
|
|
|
- // Serial.println("DBG:calc__run:end:regData: { "); for (int i = 0; i < 7; i++) { Serial.println("%d:%d, ", i, regData[i]); }; Serial.println("}\n"); // TODO: DBG
|
|
|
-}
|
|
|
|
|
|
|
|
|
int calcLoopCounterDBG = 0;
|
|
|
@@ -339,66 +83,19 @@ void setup() {
|
|
|
obj2[SWING] = 30; // var, default = 8
|
|
|
|
|
|
calc__db_init();
|
|
|
- int idObject1 = calc__db_create_obj(); // LVL_VAL = (LVL_VAL + DELTA > LVL_MAX) ? LVL_VAL - DELTA : LVL_VAL + DELTA;
|
|
|
- calc__db_conf_add1(idObject1, CALC_GET_DATA, LVL_VAL); // reg: 0
|
|
|
- calc__db_conf_add1(idObject1, CALC_DEFINE, 35); // reg: 1
|
|
|
- calc__db_conf_add1(idObject1, CALC_GET_DATA, LVL_MAX); // reg: 2
|
|
|
- calc__db_conf_add2(idObject1, CALC_FUNC_ADD, 0, 1); // reg: 3 : ... LVL_VAL + DELTA ...
|
|
|
- calc__db_conf_add3(idObject1, CALC_COMP_GT, 3, 2, 8); // reg: 4 : ... (LVL_VAL + DELTA > LVL_MAX) ? ...
|
|
|
- calc__db_conf_add2(idObject1, CALC_FUNC_SUB, 0, 1); // reg: 5 : ... ? LVL_VAL - DELTA ...
|
|
|
- calc__db_conf_add2(idObject1, CALC_SET_DATA, LVL_VAL, 5); // reg: 6 : LVL_VAL = ...
|
|
|
- calc__db_conf_add0(idObject1, CALC_FINISH); // reg: 7
|
|
|
- calc__db_conf_add2(idObject1, CALC_SET_DATA, LVL_VAL, 3); // reg: 8 : LVL_VAL = ( ... ) ? ... : LVL_VAL + DELTA
|
|
|
- calc__db_conf_add0(idObject1, CALC_FINISH); // reg: 9
|
|
|
-
|
|
|
- int idObject2 = calc__db_create_obj();
|
|
|
- // int NEW_VAL = LVL_VAL + SWING;
|
|
|
- // if (NEW_VAL > LVL_MAX) {
|
|
|
- // LVL_VAL = LVL_MAX - (NEW_VAL - LVL_MAX);
|
|
|
- // SWING = -1 * SWING;
|
|
|
- // } else {
|
|
|
- // if (NEW_VAL < LVL_MIN) {
|
|
|
- // LVL_VAL = LVL_MIN + (LVL_MIN - NEW_VAL);
|
|
|
- // SWING = -1 * SWING;
|
|
|
- // } else {
|
|
|
- // LVL_VAL = NEW_VAL;
|
|
|
- // }
|
|
|
- // }
|
|
|
- calc__db_conf_add1(idObject2, CALC_GET_DATA, LVL_VAL); // reg: 0 : LVL_VAL
|
|
|
- calc__db_conf_add1(idObject2, CALC_GET_DATA, SWING); // reg: 1 : SWING
|
|
|
- calc__db_conf_add1(idObject2, CALC_DEFINE, 150); // reg: 2 : LVL_MIN
|
|
|
- calc__db_conf_add1(idObject2, CALC_DEFINE, 200); // reg: 3 : LVL_MAX
|
|
|
- calc__db_conf_add2(idObject2, CALC_FUNC_ADD, 0, 1); // reg: 4 : NEW_VAL = LVL_VAL + SWING;
|
|
|
- calc__db_conf_add3(idObject2, CALC_COMP_GT, 4, 3, 12); // reg: 5 : if (NEW_VAL > LVL_MAX) {
|
|
|
- calc__db_conf_add2(idObject2, CALC_FUNC_SUB, 4, 3); // reg: 6 : ... (NEW_VAL - LVL_MAX)
|
|
|
- calc__db_conf_add2(idObject2, CALC_FUNC_SUB, 3, 6); // reg: 7 : LVL_MAX - (NEW_VAL - LVL_MAX);
|
|
|
- calc__db_conf_add2(idObject2, CALC_SET_DATA, LVL_VAL, 7); // reg: 8 : LVL_VAL = LVL_MAX - (NEW_VAL - LVL_MAX);
|
|
|
- calc__db_conf_add1(idObject2, CALC_FUNC_OPPOSITE, 1); // reg: 9 : -1 * SWING
|
|
|
- calc__db_conf_add2(idObject2, CALC_SET_DATA, SWING, 9); // reg: 10 : SWING = -1 * SWING;
|
|
|
- calc__db_conf_add0(idObject2, CALC_FINISH); // reg: 11
|
|
|
- calc__db_conf_add3(idObject2, CALC_COMP_LT, 4, 2, 19); // reg: 12 : if (NEW_VAL < LVL_MIN) {
|
|
|
- calc__db_conf_add2(idObject2, CALC_FUNC_SUB, 2, 4); // reg: 13 : ... (LVL_MIN - NEW_VAL);
|
|
|
- calc__db_conf_add2(idObject2, CALC_FUNC_ADD, 2, 13); // reg: 14 : LVL_MIN + (LVL_MIN - NEW_VAL);
|
|
|
- calc__db_conf_add2(idObject2, CALC_SET_DATA, LVL_VAL, 14); // reg : 15 : LVL_VAL = LVL_MIN + (LVL_MIN - NEW_VAL);
|
|
|
- calc__db_conf_add1(idObject2, CALC_FUNC_OPPOSITE, 1); // reg: 16 : -1 * SWING
|
|
|
- calc__db_conf_add2(idObject2, CALC_SET_DATA, SWING, 9); // reg: 17 : SWING = -1 * SWING;
|
|
|
- calc__db_conf_add0(idObject2, CALC_FINISH); // reg: 18
|
|
|
- calc__db_conf_add2(idObject2, CALC_SET_DATA, LVL_VAL, 4); // reg: 19 : LVL_VAL = NEW_VAL;
|
|
|
- calc__db_conf_add0(idObject2, CALC_FINISH); // reg: 20
|
|
|
+ #include "calc_db_conf__setup__idObject1.h"
|
|
|
+ #include "calc_db_conf__setup__idObject2.h"
|
|
|
|
|
|
calc__DBG_OBJ(idObject1);
|
|
|
calc__DBG_OBJ(idObject2);
|
|
|
}
|
|
|
|
|
|
void loop() {
|
|
|
- // Serial.println("DBG:loop:%d:obj1:", calcLoopCounterDBG);
|
|
|
- calc__run(idObject1, obj1);
|
|
|
- // Serial.println("DBG:loop:%d:obj1:END; obj1[LVL_VAL:%d] = %d", calcLoopCounterDBG, LVL_VAL, obj1[LVL_VAL]);
|
|
|
-
|
|
|
- // Serial.println("DBG:loop:%d:obj2:", calcLoopCounterDBG);
|
|
|
- calc__run(idObject2, obj2);
|
|
|
- // Serial.println("DBG:loop:%d:obj2:END; obj2[LVL_VAL:%d] = %d", calcLoopCounterDBG, LVL_VAL, obj2[LVL_VAL]);
|
|
|
+
|
|
|
+ //debugign changes that occurs to test calculation
|
|
|
+ calc__DBG_OBJ(idObject1);
|
|
|
|
|
|
+ #include "loop.h"
|
|
|
Serial.println("Test calc db: End");
|
|
|
- delay(100);
|
|
|
+ delay(500);
|
|
|
}
|