Merge pull request #1 from dimoniche/feature/new_journal

заготовка нового журнала
This commit is contained in:
Dmitriy 2025-05-28 20:46:36 +03:00 committed by GitHub
commit 54f810be81
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 113 additions and 2561 deletions

9
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,9 @@
{
"files.associations": {
"array": "c",
"string": "c",
"string_view": "c",
"ranges": "c",
"span": "c"
}
}

View File

@ -943,6 +943,7 @@ void AppVladEventProcess(CPU_INT32U event)
PrintFinishPayMenu();
RefreshMenu();
SaveEventRecord(bonus, JOURNAL_EVENT_ABONEMENT_PAY_ACCEPTED, pay);
//SaveEventAbonementRecord(JOURNAL_EVENT_ABONEMENT_PAY_ACCEPTED, pay, bonus, app_state.current_abonement, SystemTime, 0);
PlayMusicFile(52);
}
}

View File

@ -119,6 +119,36 @@ int GetEventRecord(TEventRecord* record, CPU_INT32U index)
return 0;
}
void SaveEventAbonementRecord(CPU_INT08U event,
CPU_INT16U money, CPU_INT16U bonus, CPU_INT08U type_abonement,
CPU_INT32U time_before, CPU_INT32U number_abonement)
{
TEventRecord record;
journal_getSem();
record.time = GetTimeSec();
record.type_abonement = type_abonement;
record.event = event;
record.money = money;
record.bonus = bonus;
record.time_before = time_before;
record.number_abonement = number_abonement;
WriteArrayFram(offsetof(TFramMap, EventRecords[0])+journal_rec_index*sizeof(TEventRecord), sizeof(TEventRecord), (unsigned char*)&record);
journal_rec_index = (journal_rec_index + 1) % EVENT_RECORDS_COUNT;
#ifdef CONFIG_FTP_CLIENT_ENABLE
if ((journal_rec_index == 0) || (journal_rec_index == EVENT_RECORDS_COUNT / 2))
{
time_to_ftp = FTP_FLAG_SEND_COUNTERS | FTP_FLAG_SEND_LOGS;
}
#endif
journal_freeSem();
}
// çàïèñü â æóðíàë çàïèñè î ñîáûòèè
void SaveEventRecord(CPU_INT08U channel, CPU_INT08U event, CPU_INT16U data)
{

View File

@ -4,7 +4,7 @@
#include "control.h"
#include "fiscal.h"
#define EVENT_RECORDS_COUNT 512 // ÷èñëî çàïèñåé â æóðíàëå
#define EVENT_RECORDS_COUNT 256 // ÷èñëî çàïèñåé â æóðíàëå
#pragma pack(push, 1)
/// ñòðóêòóðà çàïèñè æóðíàëà ðàáî÷èõ ñîáûòèé
@ -114,10 +114,33 @@ typedef struct{
#define JOURNAL_EVENTS_COUNT (JOURNAL_EVENT_ABONEMENT_WRONG+FR_ERROR_NUMBER) // ÷èñëî ñîáûòèé
// êàíàë
union
{
CPU_INT08U channel;
CPU_INT08U type_abonement;
};
// äàííûå: äëÿ ïîëó÷åíèÿ äåíåã - íîìèíàë êóïþðû, äëÿ ñåàíñà - äëèòåëüíîñòü îïëà÷åííîãî âðåìåíè, ìèí.
union
{
CPU_INT16U data;
CPU_INT16U money;
};
union
{
CPU_INT16U bonus;
};
union
{
CPU_INT32U time_before;
};
union
{
CPU_INT32U number_abonement;
};
}TEventRecord;
#pragma pack(pop)
@ -252,6 +275,10 @@ typedef struct{
extern void IncBillnomCounter(CPU_INT32U index);
extern void CheckLongCounters(void);
extern void SaveEventRecord(CPU_INT08U channel, CPU_INT08U event, CPU_INT16U data);
extern void SaveEventAbonementRecord(CPU_INT08U event,
CPU_INT16U money, CPU_INT16U bonus, CPU_INT08U type_abonement,
CPU_INT32U time_before, CPU_INT32U number_abonement);
extern void SetErrorFlag(CPU_INT08U error);
extern void ClrErrorFlag(CPU_INT08U error);
extern int TstErrorFlag(CPU_INT08U error);

View File

@ -2364,6 +2364,8 @@ void PrintEventJournalRecord(TEventRecord *record, char *str_event, char *str_da
else if (record->event == JOURNAL_EVENT_ABONEMENT_PAY_ACCEPTED)
{
sprintf(str_data, "%dðóá %dÁ", record->data, record->channel);
//sprintf(&str_event[strlen(str_event)], "%dð", record->money);
//sprintf(str_data, "%x %x %d", record->number_abonement, record->data, record->bonus);
}
else if (record->event == JOURNAL_EVENT_ABONEMENT_REJECTED)
{

View File

@ -0,0 +1,40 @@
[BREAKPOINTS]
ForceImpTypeAny = 0
ShowInfoWin = 1
EnableFlashBP = 2
BPDuringExecution = 0
[CFI]
CFISize = 0x00
CFIAddr = 0x00
[CPU]
MonModeVTableAddr = 0xFFFFFFFF
MonModeDebug = 0
MaxNumAPs = 0
LowPowerHandlingMode = 0
OverrideMemMap = 0
AllowSimulation = 1
ScriptFile=""
[FLASH]
EraseType = 0x00
CacheExcludeSize = 0x00
CacheExcludeAddr = 0x00
MinNumBytesFlashDL = 0
SkipProgOnCRCMatch = 1
VerifyDownload = 1
AllowCaching = 1
EnableFlashDL = 2
Override = 0
Device="ARM7"
[GENERAL]
WorkRAMSize = 0x00
WorkRAMAddr = 0x00
RAMUsageLimit = 0x00
[SWO]
SWOLogFile=""
[MEM]
RdOverrideOrMask = 0x00
RdOverrideAndMask = 0xFFFFFFFF
RdOverrideAddr = 0xFFFFFFFF
WrOverrideOrMask = 0x00
WrOverrideAndMask = 0xFFFFFFFF
WrOverrideAddr = 0xFFFFFFFF

File diff suppressed because it is too large Load Diff