Исправление ошибок

This commit is contained in:
dimoniche 2025-05-28 00:04:10 +03:00
parent a7f9632b11
commit e62e1fa5d7
7 changed files with 2150 additions and 2064 deletions

View File

@ -230,6 +230,36 @@ void CheckSolarCounters(void)
}
}
void ClearAbonementCounters(void)
{
ReadArrayFram(offsetof(TFramMap, solar_counters), sizeof(SolarCounters), (unsigned char*)&counters);
memset(&counters.abonement[0], 0, sizeof(AbonentCountersRecord) * 5);
counters.abonement_money = 0;
counters.solar_chm[0].card_money = 0;
counters.solar_chm[0].card_bonus = 0;
counters.solar_chm[1].card_money = 0;
counters.solar_chm[1].card_bonus = 0;
counters.solar_chm[2].card_money = 0;
counters.solar_chm[2].card_bonus = 0;
counters.solar_chm[3].card_money = 0;
counters.solar_chm[3].card_bonus = 0;
counters.solar_m[0].card_money = 0;
counters.solar_m[0].card_bonus = 0;
counters.solar_m[1].card_money = 0;
counters.solar_m[1].card_bonus = 0;
counters.solar_m[2].card_money = 0;
counters.solar_m[2].card_bonus = 0;
counters.solar_m[3].card_money = 0;
counters.solar_m[3].card_bonus = 0;
counters.checksum = crc16((unsigned char*)&counters, offsetof(SolarCounters, checksum));
WriteArrayFram(offsetof(TFramMap, solar_counters), sizeof(SolarCounters), (unsigned char*)&counters);
}
///
void SolarClearAllCounters(void)
{
@ -249,6 +279,7 @@ void SolarClearAllCounters(void)
counters.common_money = 0;
counters.cash_money = 0;
counters.card_money = 0;
counters.abonement_money = 0;
counters.bill_count = 0;
memset(&counters.cleaning_count[0], 0, sizeof(CPU_INT32U) * CHANNELS_NUM);
memset(&counters.cleaning_time[0], 0, sizeof(CPU_INT32U) * CHANNELS_NUM);
@ -1393,10 +1424,10 @@ void AppVladEventProcess(CPU_INT32U event)
{
uint32_t pay = 0;
GetData(&AbonementMoneyDesc, &pay, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
app_state.abonementtopay = pay;
app_state.abonementtopay = pay * 100; // ñóììà â êîïåéêàõ
uint32_t param[TERM_PARAM_COUNT];
param[0] = app_state.abonementtopay * 100; // ñóììà â êîïåéêàõ
param[0] = app_state.abonementtopay;
SetTermCommand(TERM_COMMAND_PEND_PUR, param);
app_state.user_menu = USER_MENU_INSERT_BANK_CARD;
PrintInsertBankCardMenu();

View File

@ -587,7 +587,12 @@ void TermAppTask(void *p_arg)
// product id
packet_len += ttk2_tag_add(&content[packet_len], 0x09, "1", 1);
// timeout
packet_len += ttk2_tag_add(&content[packet_len], 0x06, "60", 1);
packet_len += ttk2_tag_add(&content[packet_len], 0x06, "60", 1);
sprintf(str, "%s", "Óñëóãà çàãàðà â ñîëÿðèè");
// Product name
packet_len += ttk2_tag_add(&content[packet_len], 0x0F, str, strlen(str));
// äëèíà â ïàêåòå
ttk2_tag_setlen(term_buffer, packet_len + 2);
// îáùàÿ äëèíà äëÿ ïåðåäà÷è
@ -1058,10 +1063,6 @@ void TermAppTask(void *p_arg)
// transaction mode (bit field)
packet_len += ttk2_tag_add(&content[packet_len], 0x08, "\xC0", 1);
sprintf(str, "%s", "Óñëóãà çàãàðà â ñîëÿðèè");
// Product name
packet_len += ttk2_tag_add(&content[packet_len], 0x0F, str, strlen(str));
ttk2_tag_setlen(term_buffer, packet_len + 2);
// îáùàÿ äëèíà äëÿ ïåðåäà÷è
packet_len += 4;

View File

@ -694,6 +694,47 @@ TDataDescStruct const EnableAbonementDesc = {
0
};
/*************************************
Êîìàíäà íà î÷èñòêó ñòàòèñòèêè àáîíåìåíòîâ
*************************************/
CPU_INT32U ClearStatAbonementCmd = 0;
TRangeValueULONG const InitByDefaultAbonementRange = {0, 1};
extern void ClearAbonementCounters(void);
CPU_INT08U const ClearAbonementCmdName[] = "Î÷èñòêà";
CPU_INT08U const ClearAbonementCmdList_str0[] = "íåò";
CPU_INT08U const ClearAbonementCmdList_str1[] = "äà";
CPU_INT08U const *ClearAbonementCmdList[] = {ClearAbonementCmdList_str0, ClearAbonementCmdList_str1};
void OnChangeClearStatAbonementCmd(void)
{
if (ClearStatAbonementCmd)
{
ClearAbonementCounters();
ClearStatAbonementCmd = 0;
}
}
TDataDescStruct const ClearStatAbonementCmdDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñêðèïòîð èíäåêñà ìàññèâà
(void*)&ClearStatAbonementCmd, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultAbonementRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeClearStatAbonementCmd, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ClearAbonementCmdName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ClearAbonementCmdList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Цена импульса монетоприемника
*************************************/

View File

@ -142,6 +142,8 @@ extern TDataDescStruct const T_End_WeekendDesc;
extern TDataDescStruct const EnableFiscalDesc;
extern TDataDescStruct const EnableCoinDesc;
extern TDataDescStruct const EnableAbonementDesc;
extern TDataDescStruct const ClearStatAbonementCmdDesc;
extern TDataDescStruct const AbonementCounterIndexDesc;
extern TDataDescStruct const EnableModemDesc;
extern TDataDescStruct const EnableValidatorDesc;
extern TDataDescStruct const CoinPerPulseDesc;

View File

@ -1576,8 +1576,15 @@ const TMenuLine line_AbonementMenuSet_1 = {
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_AbonementMenuArray[] = {&line_AbonementMenuSet_0, &line_AbonementMenuSet_1, NULL};
const TMenuPanel AbonementSetupPanel[] = {arr_AbonementMenuArray, NULL, 2, MENU_PANEL_STANDARD};
const TMenuLine line_AbonementMenuSet_2 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&ClearStatAbonementCmdDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_AbonementMenuArray[] = {&line_AbonementMenuSet_0, &line_AbonementMenuSet_1, &line_AbonementMenuSet_2, NULL};
const TMenuPanel AbonementSetupPanel[] = {arr_AbonementMenuArray, NULL, 3, MENU_PANEL_STANDARD};
/***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÌÎÄÅÌÀ
@ -3360,7 +3367,7 @@ const TMenuPanel SolarChannelsCountersPanel[] = {arr_SolarChannelsCountersArray,
const TMenuLine line_AbonementsCountersMenu_0 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
MENU_FIXED_LINE|MENU_INDEX_LINE, // äîï. ôëàãè
(void*)&AbonementIndexDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&AbonementCounterIndexDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff