68 lines
1.8 KiB
C++
68 lines
1.8 KiB
C++
/*
|
|
* Settings.cpp
|
|
*
|
|
* Created on: 12 мая 2015 г.
|
|
* Author: esaulenko
|
|
*/
|
|
|
|
#include "Settings.h"
|
|
#include "IO.h"
|
|
#include "Utils.h"
|
|
#include "CanFwInterface.h"
|
|
|
|
|
|
// строки с названиями настроек
|
|
#define SETTING(...)
|
|
#define SETTING_CAN(...)
|
|
#define SETTING_RSRV(...)
|
|
#define SETTING_NAME(name, string) \
|
|
__attribute__ ((section(".SettingsVarName"))) \
|
|
static const char name ## String[] = string;
|
|
#include SRC_SETTINGS
|
|
|
|
#undef SETTING
|
|
#undef SETTING_RSRV
|
|
#undef SETTING_ALIAS
|
|
#undef SETTING_CAN
|
|
#undef SETTING_NAME
|
|
|
|
|
|
// таблица с настройками CAN-прошивки
|
|
__attribute__ ((section(".SettingsTable")))
|
|
const CSettings::TCANSettingsTable CSettings::CanSettingsTable = {
|
|
#define SETTING(name, attr, type, def_val...) \
|
|
name, kind_ ## type, attr, sizeof(THeader)+sizeof(type), def_val,
|
|
#define SETTING_CAN(name, attr, type, def_val, description) \
|
|
name, kind_ ## type, attr, sizeof(THeader)+sizeof(type), def_val,
|
|
#define SETTING_RSRV(...) // не используется
|
|
#define SETTING_NAME(name, string) \
|
|
name, 0x1F, NotFixed, sizeof(THeader)+sizeof(char*), name ## String,
|
|
|
|
#include SRC_SETTINGS
|
|
|
|
// 0xffff //LastVal
|
|
CSettings::LastVal
|
|
};
|
|
#undef SETTING
|
|
#undef SETTING_RSRV
|
|
#undef SETTING_ALIAS
|
|
#undef SETTING_CAN
|
|
#undef SETTING_NAME
|
|
|
|
|
|
__attribute__ ((section(".SettingsCanName")))
|
|
const char * const CSettings::CanSettingsName[] = {
|
|
#define SETTING(...) // names not used
|
|
#define SETTING_CAN(name, attr, type, def_val, description) description,
|
|
#define SETTING_RSRV(...) // не используется
|
|
#define SETTING_NAME(...) // не используется
|
|
|
|
#include SRC_SETTINGS
|
|
};
|
|
#undef SETTING
|
|
#undef SETTING_RSRV
|
|
#undef SETTING_ALIAS
|
|
#undef SETTING_CAN
|
|
#undef SETTING_NAME
|
|
|