mirror of
https://github.com/dimoniche/solarium.vlad.git
synced 2026-01-30 04:53:30 +03:00
продолжаем работу по наполнению меню
This commit is contained in:
parent
87c92d65e0
commit
04fe8add14
@ -768,10 +768,12 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
// Look for new cards
|
// Look for new cards
|
||||||
if (picc_is_new_card_present() ) {
|
if (picc_is_new_card_present() ) {
|
||||||
|
|
||||||
|
if(app_state.user_menu == USER_MENU_IDLE) {
|
||||||
// ìåíþ ñòàðòà ÷òåíèÿ êàðòû
|
// ìåíþ ñòàðòà ÷òåíèÿ êàðòû
|
||||||
PrintStartReadCardMenu();
|
PrintStartReadCardMenu();
|
||||||
RefreshMenu();
|
RefreshMenu();
|
||||||
PlayMusicFile(40);
|
PlayMusicFile(40);
|
||||||
|
}
|
||||||
|
|
||||||
// Select one of the cards
|
// Select one of the cards
|
||||||
if (picc_read_card_serial()) {
|
if (picc_read_card_serial()) {
|
||||||
@ -788,6 +790,12 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
|
|
||||||
if(app_state.user_menu == USER_MENU_IDLE)
|
if(app_state.user_menu == USER_MENU_IDLE)
|
||||||
{
|
{
|
||||||
|
// ïðîâåðèì - íå íàäî ëè áîíóñû î÷èñòèòü
|
||||||
|
if(need_clear_bonus()) {
|
||||||
|
// íóæíî - çàïèøåì ýòî
|
||||||
|
write_mifare_card();
|
||||||
|
}
|
||||||
|
|
||||||
// íóæíî ïîêàçàòü áàëàíñ
|
// íóæíî ïîêàçàòü áàëàíñ
|
||||||
app_state.last_card_manipulation_time = OSTimeGet();
|
app_state.last_card_manipulation_time = OSTimeGet();
|
||||||
|
|
||||||
@ -805,9 +813,17 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
// ïîïîëíÿåì êàðòó
|
// ïîïîëíÿåì êàðòó
|
||||||
mifaredata_t* data = get_mifare_data();
|
mifaredata_t* data = get_mifare_data();
|
||||||
|
|
||||||
//data->money =
|
uint32_t pay = 0, bonus = 0, best_before = 0;
|
||||||
//data->bonus =
|
|
||||||
//data->best_before =
|
GetData(&AbonementMoneyDesc, &pay, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBonusDesc, &bonus, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBestBeforeDesc, &best_before, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
|
uint32_t SystemTime = GetTimeSec() + best_before * 24L * 60L;
|
||||||
|
|
||||||
|
data->money += pay;
|
||||||
|
data->bonus += bonus;
|
||||||
|
data->best_before = SystemTime;
|
||||||
|
|
||||||
if(!write_mifare_card())
|
if(!write_mifare_card())
|
||||||
{
|
{
|
||||||
@ -2236,6 +2252,18 @@ void PrintMenuAllPrice(CPU_INT08U blink)
|
|||||||
uint32_t pay_plat = 0, bonus_plat = 0;
|
uint32_t pay_plat = 0, bonus_plat = 0;
|
||||||
uint32_t pay_diamond = 0, bonus_diamond = 0;
|
uint32_t pay_diamond = 0, bonus_diamond = 0;
|
||||||
|
|
||||||
|
GetData(&AbonementMoneyDesc, &pay_silver, 0, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBonusDesc, &bonus_silver, 0, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
|
GetData(&AbonementMoneyDesc, &pay_gold, 1, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBonusDesc, &bonus_gold, 1, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
|
GetData(&AbonementMoneyDesc, &pay_plat, 2, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBonusDesc, &bonus_plat, 2, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
|
GetData(&AbonementMoneyDesc, &pay_diamond, 3, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBonusDesc, &bonus_diamond, 3, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
if(app_state.current_abonement == SILVER_ABONEMENT)
|
if(app_state.current_abonement == SILVER_ABONEMENT)
|
||||||
{
|
{
|
||||||
if(blink) {
|
if(blink) {
|
||||||
@ -2331,6 +2359,12 @@ void PrintSilverMenu(void)
|
|||||||
char str1[16];
|
char str1[16];
|
||||||
uint32_t pay_silver = 0, bonus_silver = 0, best_before = 0;
|
uint32_t pay_silver = 0, bonus_silver = 0, best_before = 0;
|
||||||
|
|
||||||
|
GetData(&AbonementMoneyDesc, &pay_silver, 0, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBonusDesc, &bonus_silver, 0, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBestBeforeDesc, &best_before, 0, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
|
uint32_t SystemTime = GetTimeSec() + best_before * 24L * 60L;
|
||||||
|
|
||||||
PrintUserMenuStr("Ñåðåáðÿííûé àáîíåìåíò", 0);
|
PrintUserMenuStr("Ñåðåáðÿííûé àáîíåìåíò", 0);
|
||||||
|
|
||||||
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_silver);
|
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_silver);
|
||||||
@ -2339,7 +2373,7 @@ void PrintSilverMenu(void)
|
|||||||
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_silver);
|
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_silver);
|
||||||
PrintUserMenuStr(str, 2);
|
PrintUserMenuStr(str, 2);
|
||||||
|
|
||||||
PrintTimeString(str1, best_before);
|
PrintTimeString(str1, SystemTime);
|
||||||
sprintf(str, "Áîíóñû äî %s", str1);
|
sprintf(str, "Áîíóñû äî %s", str1);
|
||||||
PrintUserMenuStr(str, 3);
|
PrintUserMenuStr(str, 3);
|
||||||
}
|
}
|
||||||
@ -2350,6 +2384,12 @@ void PrintGoldMenu(void)
|
|||||||
char str1[16];
|
char str1[16];
|
||||||
uint32_t pay_gold = 0, bonus_gold = 0, best_before = 0;
|
uint32_t pay_gold = 0, bonus_gold = 0, best_before = 0;
|
||||||
|
|
||||||
|
GetData(&AbonementMoneyDesc, &pay_gold, 1, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBonusDesc, &bonus_gold, 1, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBestBeforeDesc, &best_before, 1, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
|
uint32_t SystemTime = GetTimeSec() + best_before * 24L * 60L;
|
||||||
|
|
||||||
PrintUserMenuStr(" Çîëîòîé àáîíåìåíò ", 0);
|
PrintUserMenuStr(" Çîëîòîé àáîíåìåíò ", 0);
|
||||||
|
|
||||||
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_gold);
|
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_gold);
|
||||||
@ -2358,7 +2398,7 @@ void PrintGoldMenu(void)
|
|||||||
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_gold);
|
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_gold);
|
||||||
PrintUserMenuStr(str, 2);
|
PrintUserMenuStr(str, 2);
|
||||||
|
|
||||||
PrintTimeString(str1, best_before);
|
PrintTimeString(str1, SystemTime);
|
||||||
sprintf(str, "Áîíóñû äî %s", str1);
|
sprintf(str, "Áîíóñû äî %s", str1);
|
||||||
PrintUserMenuStr(str, 3);
|
PrintUserMenuStr(str, 3);
|
||||||
}
|
}
|
||||||
@ -2369,6 +2409,12 @@ void PrintPlatMenu(void)
|
|||||||
char str1[16];
|
char str1[16];
|
||||||
uint32_t pay_plat = 0, bonus_plat = 0, best_before = 0;
|
uint32_t pay_plat = 0, bonus_plat = 0, best_before = 0;
|
||||||
|
|
||||||
|
GetData(&AbonementMoneyDesc, &pay_plat, 2, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBonusDesc, &bonus_plat, 2, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBestBeforeDesc, &best_before, 2, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
|
uint32_t SystemTime = GetTimeSec() + best_before * 24L * 60L;
|
||||||
|
|
||||||
PrintUserMenuStr("Ïëàòèíîâûé àáîíåìåíò", 0);
|
PrintUserMenuStr("Ïëàòèíîâûé àáîíåìåíò", 0);
|
||||||
|
|
||||||
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_plat);
|
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_plat);
|
||||||
@ -2377,7 +2423,7 @@ void PrintPlatMenu(void)
|
|||||||
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_plat);
|
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_plat);
|
||||||
PrintUserMenuStr(str, 2);
|
PrintUserMenuStr(str, 2);
|
||||||
|
|
||||||
PrintTimeString(str1, best_before);
|
PrintTimeString(str1, SystemTime);
|
||||||
sprintf(str, "Áîíóñû äî %s", str1);
|
sprintf(str, "Áîíóñû äî %s", str1);
|
||||||
PrintUserMenuStr(str, 3);
|
PrintUserMenuStr(str, 3);
|
||||||
}
|
}
|
||||||
@ -2388,6 +2434,12 @@ void PrintDiamondMenu(void)
|
|||||||
char str1[16];
|
char str1[16];
|
||||||
uint32_t pay_diamond = 0, bonus_diamond = 0, best_before = 0;
|
uint32_t pay_diamond = 0, bonus_diamond = 0, best_before = 0;
|
||||||
|
|
||||||
|
GetData(&AbonementMoneyDesc, &pay_diamond, 3, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBonusDesc, &bonus_diamond, 3, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&AbonementBestBeforeDesc, &best_before, 3, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
|
uint32_t SystemTime = GetTimeSec() + best_before * 24L * 60L;
|
||||||
|
|
||||||
PrintUserMenuStr(" Àëìàçíûé àáîíåìåíò ", 0);
|
PrintUserMenuStr(" Àëìàçíûé àáîíåìåíò ", 0);
|
||||||
|
|
||||||
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_diamond);
|
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_diamond);
|
||||||
@ -2396,7 +2448,7 @@ void PrintDiamondMenu(void)
|
|||||||
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_diamond);
|
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_diamond);
|
||||||
PrintUserMenuStr(str, 2);
|
PrintUserMenuStr(str, 2);
|
||||||
|
|
||||||
PrintTimeString(str1, best_before);
|
PrintTimeString(str1, SystemTime);
|
||||||
sprintf(str, "Áîíóñû äî %s", str1);
|
sprintf(str, "Áîíóñû äî %s", str1);
|
||||||
PrintUserMenuStr(str, 3);
|
PrintUserMenuStr(str, 3);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -123,6 +123,11 @@ typedef struct{
|
|||||||
CPU_INT32U runs;
|
CPU_INT32U runs;
|
||||||
/// количество секунд работы
|
/// количество секунд работы
|
||||||
CPU_INT32U worktime;
|
CPU_INT32U worktime;
|
||||||
|
|
||||||
|
// äåíüãè ñ êàðò
|
||||||
|
CPU_INT32U card_money;
|
||||||
|
// áîíóñà ñ êàðò
|
||||||
|
CPU_INT32U card_bonus;
|
||||||
}SolarCountersRecord;
|
}SolarCountersRecord;
|
||||||
|
|
||||||
/// структура всех счетчиков для солярия
|
/// структура всех счетчиков для солярия
|
||||||
|
|||||||
@ -6003,6 +6003,54 @@ TDataDescStruct const CounterSolarMoneyDesc = {
|
|||||||
};
|
};
|
||||||
char const CounterSolarMoneyDescId[] = "CounterSolarMoneyDesc";
|
char const CounterSolarMoneyDescId[] = "CounterSolarMoneyDesc";
|
||||||
|
|
||||||
|
/*************************************
|
||||||
|
Сумма с карт абонентов денег раздельно по соляриям и режимам
|
||||||
|
*************************************/
|
||||||
|
CPU_INT08U const CounterSolarCardMoneyName[] = "К_Деньги,руб.";
|
||||||
|
|
||||||
|
TDataDescStruct const CounterSolarCardMoneyDesc = {
|
||||||
|
DATA_DESC_VIEW, // тип дескриптора
|
||||||
|
DATA_TYPE_RUB_CENT, // тип параметра
|
||||||
|
DATA_LOC_FRAM, // расположение параметра
|
||||||
|
DATA_IS_ARRAY, // признак массива
|
||||||
|
CHANNELS_NUM * SOLAR_MODES_COUNT, // размер массива
|
||||||
|
&SolariumModesDesc, // указатель на дескриптор индекса массива
|
||||||
|
(void*)offsetof(TFramMap, solar_counters.solar_chm[0].card_money), // указатель на переменную или адрес FRAM
|
||||||
|
NULL, // указатель на границы параметра
|
||||||
|
NULL, // функция по изменению
|
||||||
|
sizeof(SolarCountersRecord), // смещение между элементами в массиве
|
||||||
|
CounterSolarCardMoneyName, // указатель на строку названия параметра
|
||||||
|
DATA_NO_INDEX, // признак индексного параметра (список строк)
|
||||||
|
NULL, // указатель на список строк для индексного параметра
|
||||||
|
DATA_INIT_DISABLE,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
char const CounterSolarCardMoneyDescId[] = "CounterSolarCardMoneyDesc";
|
||||||
|
|
||||||
|
/*************************************
|
||||||
|
Сумма с карт абонентов бонусов раздельно по соляриям и режимам
|
||||||
|
*************************************/
|
||||||
|
CPU_INT08U const CounterSolarCardBonusName[] = "К_Бонусы,руб.";
|
||||||
|
|
||||||
|
TDataDescStruct const CounterSolarCardBonusDesc = {
|
||||||
|
DATA_DESC_VIEW, // тип дескриптора
|
||||||
|
DATA_TYPE_RUB_CENT, // тип параметра
|
||||||
|
DATA_LOC_FRAM, // расположение параметра
|
||||||
|
DATA_IS_ARRAY, // признак массива
|
||||||
|
CHANNELS_NUM * SOLAR_MODES_COUNT, // размер массива
|
||||||
|
&SolariumModesDesc, // указатель на дескриптор индекса массива
|
||||||
|
(void*)offsetof(TFramMap, solar_counters.solar_chm[0].card_bonus), // указатель на переменную или адрес FRAM
|
||||||
|
NULL, // указатель на границы параметра
|
||||||
|
NULL, // функция по изменению
|
||||||
|
sizeof(SolarCountersRecord), // смещение между элементами в массиве
|
||||||
|
CounterSolarCardBonusName, // указатель на строку названия параметра
|
||||||
|
DATA_NO_INDEX, // признак индексного параметра (список строк)
|
||||||
|
NULL, // указатель на список строк для индексного параметра
|
||||||
|
DATA_INIT_DISABLE,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
char const CounterSolarCardBonusDescId[] = "CounterSolarCardBonusDesc";
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
Êîëè÷åñòâî çàïóñêîâ ðàçäåëüíî ïî ñîëÿðèÿì è ðåæèìàì
|
Êîëè÷åñòâî çàïóñêîâ ðàçäåëüíî ïî ñîëÿðèÿì è ðåæèìàì
|
||||||
*************************************/
|
*************************************/
|
||||||
@ -6123,6 +6171,54 @@ TDataDescStruct const CounterModeMoneyDesc = {
|
|||||||
};
|
};
|
||||||
char const CounterModeMoneyDescId[] = "CounterModeMoneyDesc";
|
char const CounterModeMoneyDescId[] = "CounterModeMoneyDesc";
|
||||||
|
|
||||||
|
/*************************************
|
||||||
|
Сумма денег по режимам по абонементам
|
||||||
|
*************************************/
|
||||||
|
CPU_INT08U const CounterModeCardMoneyName[] = "К_Деньги,руб.";
|
||||||
|
|
||||||
|
TDataDescStruct const CounterModeCardMoneyDesc = {
|
||||||
|
DATA_DESC_VIEW, // тип дескриптора
|
||||||
|
DATA_TYPE_RUB_CENT, // тип параметра
|
||||||
|
DATA_LOC_FRAM, // расположение параметра
|
||||||
|
DATA_IS_ARRAY, // признак массива
|
||||||
|
SOLAR_MODES_COUNT, // размер массива
|
||||||
|
&SolariumModeIndexDesc, // указатель на дескриптор индекса массива
|
||||||
|
(void*)offsetof(TFramMap, solar_counters.solar_m[0].card_money), // указатель на переменную или адрес FRAM
|
||||||
|
NULL, // указатель на границы параметра
|
||||||
|
NULL, // функция по изменению
|
||||||
|
sizeof(SolarCountersRecord), // смещение между элементами в массиве
|
||||||
|
CounterModeCardMoneyName, // указатель на строку названия параметра
|
||||||
|
DATA_NO_INDEX, // признак индексного параметра (список строк)
|
||||||
|
NULL, // указатель на список строк для индексного параметра
|
||||||
|
DATA_INIT_DISABLE,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
char const CounterModeCardMoneyDescId[] = "CounterModeCardMoneyDesc";
|
||||||
|
|
||||||
|
/*************************************
|
||||||
|
Сумма бонусов по режимам по абонементам
|
||||||
|
*************************************/
|
||||||
|
CPU_INT08U const CounterModeCardBonusName[] = "К_Бонусы,руб.";
|
||||||
|
|
||||||
|
TDataDescStruct const CounterModeCardBonusDesc = {
|
||||||
|
DATA_DESC_VIEW, // тип дескриптора
|
||||||
|
DATA_TYPE_RUB_CENT, // тип параметра
|
||||||
|
DATA_LOC_FRAM, // расположение параметра
|
||||||
|
DATA_IS_ARRAY, // признак массива
|
||||||
|
SOLAR_MODES_COUNT, // размер массива
|
||||||
|
&SolariumModeIndexDesc, // указатель на дескриптор индекса массива
|
||||||
|
(void*)offsetof(TFramMap, solar_counters.solar_m[0].card_bonus), // указатель на переменную или адрес FRAM
|
||||||
|
NULL, // указатель на границы параметра
|
||||||
|
NULL, // функция по изменению
|
||||||
|
sizeof(SolarCountersRecord), // смещение между элементами в массиве
|
||||||
|
CounterModeCardBonusName, // указатель на строку названия параметра
|
||||||
|
DATA_NO_INDEX, // признак индексного параметра (список строк)
|
||||||
|
NULL, // указатель на список строк для индексного параметра
|
||||||
|
DATA_INIT_DISABLE,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
char const CounterModeCardBonusDescId[] = "CounterModeCardBonusDesc";
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
Êîëè÷åñòâî çàïóñêîâ ïî ðåæèìàì
|
Êîëè÷åñòâî çàïóñêîâ ïî ðåæèìàì
|
||||||
*************************************/
|
*************************************/
|
||||||
@ -7037,6 +7133,9 @@ char const CounterLongCardDescArrId[] = "CounterLongCardDesc";
|
|||||||
char const PostTimerDescArrId[] = "PostTimerDesc";
|
char const PostTimerDescArrId[] = "PostTimerDesc";
|
||||||
char const PostSignalDescArrId[] = "PostSignalDesc";
|
char const PostSignalDescArrId[] = "PostSignalDesc";
|
||||||
char const PostPauseLenCostDescId[] = "PostPauseLenCostDesc";
|
char const PostPauseLenCostDescId[] = "PostPauseLenCostDesc";
|
||||||
|
char const AbonementMoneyDescId[] = "AbonementMoneyDesc";
|
||||||
|
char const AbonementBonusDescId[] = "AbonementBonusDesc";
|
||||||
|
char const AbonementBestBeforeDescId[] = "AbonementBestBeforeDesc";
|
||||||
|
|
||||||
#if defined(BOARD_SOLARIUM_WEB)
|
#if defined(BOARD_SOLARIUM_WEB)
|
||||||
char const SolariumTypeDescId[] = "SolariumTypeDescId";
|
char const SolariumTypeDescId[] = "SolariumTypeDescId";
|
||||||
@ -7271,6 +7370,10 @@ const TDataDescArrayStruct AllDataArray[] =
|
|||||||
{&CoinPauseLenDesc, CoinPauseLenDescId},
|
{&CoinPauseLenDesc, CoinPauseLenDescId},
|
||||||
{&CoinPulseDeltaDesc, CoinPulseDeltaDescId},
|
{&CoinPulseDeltaDesc, CoinPulseDeltaDescId},
|
||||||
|
|
||||||
|
{&AbonementMoneyDesc, AbonementMoneyDescId},
|
||||||
|
{&AbonementBonusDesc, AbonementBonusDescId},
|
||||||
|
{&AbonementBestBeforeDesc, AbonementBestBeforeDescId},
|
||||||
|
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -308,10 +308,14 @@ extern TDataDescStruct const SolariumTimePayedCrc16Desc;
|
|||||||
extern TDataDescStruct const SolarTimeoutAfterMinutesDesc;
|
extern TDataDescStruct const SolarTimeoutAfterMinutesDesc;
|
||||||
extern TDataDescStruct const SolarControlChannelDesc;
|
extern TDataDescStruct const SolarControlChannelDesc;
|
||||||
extern TDataDescStruct const CounterSolarMoneyDesc;
|
extern TDataDescStruct const CounterSolarMoneyDesc;
|
||||||
|
extern TDataDescStruct const CounterSolarCardMoneyDesc;
|
||||||
|
extern TDataDescStruct const CounterSolarCardBonusDesc;
|
||||||
extern TDataDescStruct const CounterSolarRunsDesc;
|
extern TDataDescStruct const CounterSolarRunsDesc;
|
||||||
extern TDataDescStruct const CounterSolarWorkTimeDesc;
|
extern TDataDescStruct const CounterSolarWorkTimeDesc;
|
||||||
extern TDataDescStruct const SolariumModeIndexDesc;
|
extern TDataDescStruct const SolariumModeIndexDesc;
|
||||||
extern TDataDescStruct const CounterModeMoneyDesc;
|
extern TDataDescStruct const CounterModeMoneyDesc;
|
||||||
|
extern TDataDescStruct const CounterModeCardMoneyDesc;
|
||||||
|
extern TDataDescStruct const CounterModeCardBonusDesc;
|
||||||
extern TDataDescStruct const CounterModeRunsDesc;
|
extern TDataDescStruct const CounterModeRunsDesc;
|
||||||
extern TDataDescStruct const CounterModeWorkTimeDesc;
|
extern TDataDescStruct const CounterModeWorkTimeDesc;
|
||||||
extern TDataDescStruct const CounterCollatenTimeDesc;
|
extern TDataDescStruct const CounterCollatenTimeDesc;
|
||||||
|
|||||||
@ -96,3 +96,16 @@ bool is_empty_mifare_card()
|
|||||||
{
|
{
|
||||||
return mifare_card_data.init != 0xDEADBEEF;
|
return mifare_card_data.init != 0xDEADBEEF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool need_clear_bonus()
|
||||||
|
{
|
||||||
|
uint32_t SystemTime = GetTimeSec();
|
||||||
|
|
||||||
|
if(SystemTime > mifare_card_data.best_before)
|
||||||
|
{
|
||||||
|
mifare_card_data.bonus = 0;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|||||||
@ -25,5 +25,6 @@ extern mifaredata_t* read_mifare_card();
|
|||||||
extern bool write_mifare_card();
|
extern bool write_mifare_card();
|
||||||
extern mifaredata_t* init_mifare_card_data();
|
extern mifaredata_t* init_mifare_card_data();
|
||||||
extern bool is_empty_mifare_card();
|
extern bool is_empty_mifare_card();
|
||||||
|
extern bool need_clear_bonus();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@ -3158,6 +3158,20 @@ const TMenuLine line_SolarModesCountersMenu_1 = {
|
|||||||
NULL // ïàíåëü äëÿ ïåðåõîäà
|
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const TMenuLine line_SolarModesCountersMenu_6 = {
|
||||||
|
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||||
|
0, // äîï. ôëàãè
|
||||||
|
(void*)&CounterModeCardMoneyDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
||||||
|
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||||
|
};
|
||||||
|
|
||||||
|
const TMenuLine line_SolarModesCountersMenu_7 = {
|
||||||
|
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||||
|
0, // äîï. ôëàãè
|
||||||
|
(void*)&CounterModeCardBonusDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
||||||
|
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||||
|
};
|
||||||
|
|
||||||
const TMenuLine line_SolarModesCountersMenu_2 = {
|
const TMenuLine line_SolarModesCountersMenu_2 = {
|
||||||
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||||
0, // äîï. ôëàãè
|
0, // äîï. ôëàãè
|
||||||
@ -3191,8 +3205,8 @@ void OnEnterSolarModesCountersMenu(void)
|
|||||||
solar_modes_index = 0;
|
solar_modes_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TMenuLineArray arr_SolarModesCountersArray[] = {&line_SolarModesCountersMenu_0, &line_SolarModesCountersMenu_1, &line_SolarModesCountersMenu_2, &line_SolarModesCountersMenu_3, &line_SolarModesCountersMenu_4, &line_SolarModesCountersMenu_5, NULL};
|
const TMenuLineArray arr_SolarModesCountersArray[] = {&line_SolarModesCountersMenu_0, &line_SolarModesCountersMenu_6, &line_SolarModesCountersMenu_7, &line_SolarModesCountersMenu_1, &line_SolarModesCountersMenu_2, &line_SolarModesCountersMenu_3, &line_SolarModesCountersMenu_4, &line_SolarModesCountersMenu_5, NULL};
|
||||||
const TMenuPanel SolarModesCountersPanel[] = {arr_SolarModesCountersArray, OnEnterSolarModesCountersMenu, 6, MENU_PANEL_STANDARD};
|
const TMenuPanel SolarModesCountersPanel[] = {arr_SolarModesCountersArray, OnEnterSolarModesCountersMenu, 8, MENU_PANEL_STANDARD};
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
ÌÅÍÞ Ñ×ÅÒ×ÈÊΠÏÎ ÑÎËßÐÈßÌ È ÐÅÆÈÌÀÌ
|
ÌÅÍÞ Ñ×ÅÒ×ÈÊΠÏÎ ÑÎËßÐÈßÌ È ÐÅÆÈÌÀÌ
|
||||||
@ -3211,6 +3225,20 @@ const TMenuLine line_SolarChannelsCountersMenu_1 = {
|
|||||||
NULL // ïàíåëü äëÿ ïåðåõîäà
|
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const TMenuLine line_SolarChannelsCountersMenu_6 = {
|
||||||
|
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||||
|
0, // äîï. ôëàãè
|
||||||
|
(void*)&CounterSolarCardMoneyDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
||||||
|
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||||
|
};
|
||||||
|
|
||||||
|
const TMenuLine line_SolarChannelsCountersMenu_7 = {
|
||||||
|
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||||
|
0, // äîï. ôëàãè
|
||||||
|
(void*)&CounterSolarCardBonusDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
||||||
|
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||||
|
};
|
||||||
|
|
||||||
const TMenuLine line_SolarChannelsCountersMenu_2 = {
|
const TMenuLine line_SolarChannelsCountersMenu_2 = {
|
||||||
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||||
0, // äîï. ôëàãè
|
0, // äîï. ôëàãè
|
||||||
@ -3245,8 +3273,8 @@ void OnEnterSolarChannelsCountersMenu(void)
|
|||||||
solar_modes_index = 0;
|
solar_modes_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TMenuLineArray arr_SolarChannelsCountersArray[] = {&line_SolarChannelsCountersMenu_0, &line_SolarChannelsCountersMenu_1, &line_SolarChannelsCountersMenu_2, &line_SolarChannelsCountersMenu_3, &line_SolarChannelsCountersMenu_4, &line_SolarChannelsCountersMenu_5, NULL};
|
const TMenuLineArray arr_SolarChannelsCountersArray[] = {&line_SolarChannelsCountersMenu_0, &line_SolarChannelsCountersMenu_6, &line_SolarChannelsCountersMenu_7, &line_SolarChannelsCountersMenu_1, &line_SolarChannelsCountersMenu_2, &line_SolarChannelsCountersMenu_3, &line_SolarChannelsCountersMenu_4, &line_SolarChannelsCountersMenu_5, NULL};
|
||||||
const TMenuPanel SolarChannelsCountersPanel[] = {arr_SolarChannelsCountersArray, OnEnterSolarChannelsCountersMenu, 6, MENU_PANEL_STANDARD};
|
const TMenuPanel SolarChannelsCountersPanel[] = {arr_SolarChannelsCountersArray, OnEnterSolarChannelsCountersMenu, 8, MENU_PANEL_STANDARD};
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
ÌÅÍÞ Ñ×ÅÒ×ÈÊΠÏÎ ÂÐÅÌÅÍÈ ÍÀÐÀÁÎÒÊÈ ËÀÌÏ
|
ÌÅÍÞ Ñ×ÅÒ×ÈÊΠÏÎ ÂÐÅÌÅÍÈ ÍÀÐÀÁÎÒÊÈ ËÀÌÏ
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1654,12 +1654,6 @@
|
|||||||
</file>
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\PROJECT\menu\menudesc.c</name>
|
<name>$PROJ_DIR$\PROJECT\menu\menudesc.c</name>
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>ICCARM</name>
|
|
||||||
<file> 52</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
<inputs>
|
<inputs>
|
||||||
<tool>
|
<tool>
|
||||||
<name>ICCARM</name>
|
<name>ICCARM</name>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user