Lua EEPROM support in Companion added

This commit is contained in:
Bertrand Songis
2014-02-10 14:47:33 +01:00
parent d374453c8f
commit ce6e9fa4a9
2 changed files with 23 additions and 3 deletions
+13
View File
@@ -853,6 +853,17 @@ class ModuleData {
void clear() { memset(this, 0, sizeof(ModuleData)); }
};
#define C9X_MAX_SCRIPTS 3
#define C9X_MAX_SCRIPT_INPUTS 10
class ScriptData {
public:
ScriptData() { clear(); }
char filename[10+1];
char name[10+1];
int inputs[C9X_MAX_SCRIPT_INPUTS];
void clear() { memset(this, 0, sizeof(ScriptData)); }
};
class ModelData {
public:
ModelData();
@@ -903,6 +914,8 @@ class ModelData {
ModuleData moduleData[C9X_NUM_MODULES+1/*trainer*/];
ScriptData scriptData[C9X_MAX_SCRIPTS];
void clear();
bool isempty();
void setDefault(uint8_t id);
@@ -2185,10 +2185,17 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u
}
if (IS_TARANIS(board) && version >= 216) {
// TODO ScriptData scriptsData[MAX_SCRIPTS];
internalField.Append(new SpareBitsField<720>());
for (int i=0; i<32; i++)
for (int i=0; i<3; i++) {
ScriptData & script = modelData.scriptData[i];
internalField.Append(new ZCharField<10>(script.filename));
internalField.Append(new ZCharField<10>(script.name));
for (int j=0; j<10; j++) {
internalField.Append(new SignedField<8>(script.inputs[j]));
}
}
for (int i=0; i<32; i++) {
internalField.Append(new ZCharField<4>(modelData.inputNames[i]));
}
}
}