(...)
dyn_dyn_anytype defaultSpecificSettingsList;
dyn_anytype defaultCommonSettingsList;
dyn_string registersNameList;
dyn_int registersTypeList;
dyn_dyn_anytype SpecificSettingsList;
int i;
int j;
string dummy;
dyn_string registersNameListDP;
if (fwHw_createType("CHANNEL", FWHW_CCPC))
DebugTN("Hardware type 'CHANNEL' created!");
else
DebugTN("Error when creating hardware type 'CHANNEL'!");
dynClear(registersNameList);
dynClear(registersTypeList);
dynAppend(registersNameList, "ADC0");
dynAppend(registersTypeList, FWHW_LBUS);
dynAppend(registersNameList, "ADC1");
dynAppend(registersTypeList, FWHW_LBUS);
dynAppend(registersNameList, "ADC2");
dynAppend(registersTypeList, FWHW_LBUS);
dynAppend(registersNameList, "ADC3");
dynAppend(registersTypeList, FWHW_LBUS);
dynAppend(registersNameList, "ID");
dynAppend(registersTypeList, FWHW_I2C);
if (fwHw_createRegisters("CHANNEL", registersNameList, registersTypeList))
DebugTN("Register(s) of hardware type 'CHANNEL' created!");
else
DebugTN("Error when creating register(s) for hardware type 'CHANNEL'!");
dynClear(defaultCommonSettingsList);
defaultCommonSettingsList = makeDynAnytype("pctell07");
if (fwHw_setDefaultCommonSettings("CHANNEL", defaultCommonSettingsList))
DebugTN("The default common settings of hardware type 'CHANNEL' have been set!");
else
DebugTN("Error when setting default common settings for hardware type 'CHANNEL'!");
dynClear(defaultSpecificSettingsList);
defaultSpecificSettingsList[1] = makeDynAnytype(0x1000000, "4", "1", "5", "1");
defaultSpecificSettingsList[2] = makeDynAnytype(0x1000010, "4", "1", "5", "1");
defaultSpecificSettingsList[3] = makeDynAnytype(0x1000020, "4", "1", "5", "1");
defaultSpecificSettingsList[4] = makeDynAnytype(0x1000030, "4", "1", "5", "1");
defaultSpecificSettingsList[5] = makeDynAnytype("0", 0x50, "0", "8", "", "1", "0", "0", "0");
if (fwHw_setDefaultSpecificSettings("CHANNEL", registersNameList, defaultSpecificSettingsList))
DebugTN("The default specific settings of hardware type 'CHANNEL' have been set!");
else
DebugTN("Error when setting default specific settings for hardware type 'CHANNEL'!");
if (fwHw_createType("BOARD", FWHW_CCPC))
DebugTN("Hardware type 'BOARD' created!");
else
DebugTN("Error when creating hardware type 'BOARD'!");
dynClear(registersNameList);
dynClear(registersTypeList);
dynAppend(registersNameList, "ID");
dynAppend(registersTypeList, FWHW_I2C);
if (fwHw_createRegisters("BOARD", registersNameList, registersTypeList))
DebugTN("Register(s) of hardware type 'BOARD' created!");
else
DebugTN("Error when creating register(s) for hardware type 'BOARD'!");
dynClear(defaultCommonSettingsList);
defaultCommonSettingsList = makeDynAnytype("pctell07");
if (fwHw_setDefaultCommonSettings("BOARD", defaultCommonSettingsList))
DebugTN("The default common settings of hardware type 'BOARD' have been set!");
else
DebugTN("Error when setting default common settings for hardware type 'BOARD'!");
dynClear(defaultSpecificSettingsList);
defaultSpecificSettingsList[1] = makeDynAnytype("0", 0x50, "0", "1", "", "1", "0", "0", "0");
if (fwHw_setDefaultSpecificSettings("BOARD", registersNameList, defaultSpecificSettingsList))
DebugTN("The default specific settings of hardware type 'BOARD' have been set!");
else
DebugTN("Error when setting default specific settings for hardware type 'BOARD'!");
if (fwHw_insert("BOARD", "CHANNEL", "CHANNEL0"))
DebugTN("Hardware 'CHANNEL0' (of type 'CHANNEL') inserted in hardware type 'BOARD'!");
else
DebugTN("Error when inserting hardware 'CHANNEL0' (of type 'CHANNEL') in hardware type 'BOARD'!");
if (fwHw_insert("BOARD", "CHANNEL", "CHANNEL1"))
DebugTN("Hardware 'CHANNEL1' (of type 'CHANNEL') inserted in hardware type 'BOARD'!");
else
DebugTN("Error when inserting hardware 'CHANNEL1' (of type 'CHANNEL') in hardware type 'BOARD'!");
if (fwHw_insert("BOARD", "CHANNEL", "CHANNEL2"))
DebugTN("Hardware 'CHANNEL2' (of type 'CHANNEL') inserted in hardware type 'BOARD'!");
else
DebugTN("Error when inserting hardware 'CHANNEL2' (of type 'CHANNEL') in hardware type 'BOARD'!");
if (fwHw_create("BOARD", "myBOARD"))
DebugTN("Hardware 'myBOARD' of hardware type 'BOARD' created successfully!");
else
DebugTN("Creating hardware 'myBOARD' of hardware type 'BOARD' failed!");
if (fwHw_applyDefaultSettings("BOARD", "myBOARD"))
DebugTN("Default settings applied to hardware 'myBOARD' successfuly!");
else
DebugTN("Applying default settings to hardware 'myBOARD' failed!");
dynClear(registersNameList);
dynAppend(registersNameList,"ADC0");
dynAppend(registersNameList,"ADC1");
dynAppend(registersNameList,"ADC2");
dynAppend(registersNameList,"ADC3");
for(j = 0; j < 3; j++){
dummy = "myBOARD.CHANNEL" + j;
if (fwHw_getSpecificSettings(dummy, registersNameList, SpecificSettingsList)){
for(i = 1; i <= 4; i++)
SpecificSettingsList[i][1] = (int) SpecificSettingsList[i][1] + j * 0x1000000;
DebugTN(dummy);
DebugTN(SpecificSettingsList);
fwHw_setSpecificSettings(dummy, registersNameList, SpecificSettingsList);
}
else
DebugTN("Could not retrieve the specific settings!");
}
if (fwHw_subscribe("myBOARD"))
DebugTN("All registers from hardware 'myBOARD' subscribed!");
else
DebugTN("Registers from hardware 'myBOARD' could not be subscribed!");
DebugTN("Register list with full datapoint name as required by fwCcpc_startMonitoring:");
for (j = 0; j < 3; j++){
dynClear(registersNameListDP);
for (i = 1; i <= 4; i++){
dynAppend(registersNameListDP, "myBOARD.CHANNEL" + j + "." + registersNameList[i]);
}
DebugTN(registersNameListDP);
}
fwCcpc_startMonitoring(registersNameListDP);
(...)