Moyka/PROJECT/data/datadesc.c

3228 lines
144 KiB
C

#include <includes.h>
#include "data.h"
#include "datadesc.h"
#include "menu.h"
#include "menudesc.h"
#include "fram.h"
#include "fram_map.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include "control.h"
#include "fiscal.h"
#include "time.h"
#include "CRC16.h"
#include "coin.h"
extern CPU_INT32U modem_status;
/*************************************
Èíäåêñ êàíàëà
*************************************/
CPU_INT32U ChannelIndex=0;
TRangeValueULONG const ChannelIndexRange = {0, CHANNELS_NUM-1};
CPU_INT08U const ChannelIndexName[] = " ÏÎÑÒ";
CPU_INT08U const* ChannelItems[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
TDataDescStruct const ChannelIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
&ChannelIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ChannelIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ChannelIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ChannelItems, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Èíäåêñ êàíàëà â ìåíþ êàíàëüíîé ñòàòèñòèè
*************************************/
CPU_INT08U const ChannelStIndexName[] = "ÊÎÐ.Ñ×.ÏÎÑÒ";
TDataDescStruct const ChannelStIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
&ChannelIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ChannelIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ChannelStIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ChannelItems, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Èíäåêñ êàíàëà â ìåíþ êàíàëüíîé ñòàòèñòèè
*************************************/
CPU_INT08U const ChannelStLongIndexName[] = "ÄË.Ñ×.ÊÀÍÀË";
TDataDescStruct const ChannelStLongIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
&ChannelIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ChannelIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ChannelStLongIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ChannelItems, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Ïîñëåäíåå âðåìÿ îòïðàâêè email
*************************************/
extern TRangeValueULONG const WorkTimeRange;
TDataDescStruct const LastEmailSendTime = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, LastEmailTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&WorkTimeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Âêëþ÷åíèå êàíàëà
*************************************/
TRangeValueULONG const EnableChannelRange = {0, 1};
CPU_INT08U const EnableChannelName[] = "Âêëþ÷èòü";
CPU_INT08U const EnableChannelList_str0[] = "íåò";
CPU_INT08U const EnableChannelList_str1[] = "äà";
CPU_INT08U const *EnableChannelList[] = {EnableChannelList_str0, EnableChannelList_str1};
TDataDescStruct const EnableChannelDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.Enable), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableChannelRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableChannelName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableChannelList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äëèíà èìïóëüñà âõîäà êóïþðíèêà, ìñ
*************************************/
TRangeValueULONG const CashPulseLenRange = {20, 250};
CPU_INT08U const CashPulseLenName[] = "Äëèíà èìï.,ìñ";
void OnChangeCashPulseLen()
{
CPU_INT32U pulse, pause;
GetData(&CashPulseLenDesc, &pulse, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&CashPauseLenDesc, &pause, 0, DATA_FLAG_SYSTEM_INDEX);
SetCashPulseParam(pulse, pause);
}
TDataDescStruct const CashPulseLenDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, cash_pulse_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashPulseLenRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCashPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashPulseLenName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
50
};
/*************************************
Äëèíà ïàóçû âõîäà êóïþðíèêà, ìñ
*************************************/
TRangeValueULONG const CashPauseLenRange = {20, 250};
CPU_INT08U const CashPauseLenName[] = "Ïàóçà èìï.,ìñ";
TDataDescStruct const CashPauseLenDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, cash_pause_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashPauseLenRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCashPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashPauseLenName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
20
};
/*************************************
IP-àäðåñ ïîñòà
*************************************/
CPU_INT08U const PostIpAddrName[] = "IP";
TDataDescStruct const PostIpAddrDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_IP_ADDR, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.post_ip), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PostIpAddrName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0xC0A80065
};
/*************************************
Èñïîëüçîâàòü çàïðåò âûáîðà ïîñòà
*************************************/
TRangeValueULONG const SelectProtectNameRange = {0, 1};
CPU_INT08U const SelectProtectNameName[] = "Çàïðåò âûáîðà";
CPU_INT08U const SelectProtectNameList_str0[] = "íåò";
CPU_INT08U const SelectProtectNameList_str1[] = "äà";
CPU_INT08U const *SelectProtectNameList[] = {SelectProtectNameList_str0, SelectProtectNameList_str1};
TDataDescStruct const SelectProtectDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.select_protect), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&SelectProtectNameRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SelectProtectNameName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
SelectProtectNameList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Öåíà èìïóëüñà êîíòðîëëåðà ÏÎÑÒÀ
*************************************/
TRangeValueULONG const PostImpCostRange = {1, 9999};
CPU_INT08U const PostImpCostName[] = "Ðóá./èìï.";
TDataDescStruct const PostImpCostDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.imp_cost), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PostImpCostRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PostImpCostName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
10 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Äëèíà èìïóëüñà êîíòðîëëåðà ÏÎÑÒÀ
*************************************/
TRangeValueULONG const PostImpLenRange = {1, 999};
CPU_INT08U const PostImpLenName[] = "Äë.èìï.,ìñ";
TDataDescStruct const PostLenCostDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.imp_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PostImpLenRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PostImpLenName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
50 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Öåíà ìèíóòû
*************************************/
TRangeValueULONG const PostMinutePriceRange = {1, 999};
CPU_INT08U const PostMinutePriceName[] = "Ñòîèì.ìèí.";
TDataDescStruct const PostMinutePriceDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.minute_cost), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PostMinutePriceRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PostMinutePriceName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
20 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Íàçâàíèå êàíàëà
*************************************/
TRangeValueULONG const NameChannelRange = {0, 2};
CPU_INT08U const NameChannelName[] = "Íàçâàíèå";
CPU_INT08U const NameChannelList_str0[] = "#";
CPU_INT08U const NameChannelList_str1[] = "Ñîëÿðèé";
CPU_INT08U const NameChannelList_str2[] = "Óñòðîéñòâî";
CPU_INT08U const *NameChannelList[] = {NameChannelList_str0, NameChannelList_str1, NameChannelList_str2};
TDataDescStruct const NameChannelDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.Name), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&NameChannelRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NameChannelName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NameChannelList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Íàçâàíèå êíîïêè ÑÒÀÐÒ (ÑÒÀÐÒ èëè ÏÓÑÊ)
*************************************/
TRangeValueULONG const StartButtonNameRange = {0, 1};
CPU_INT08U const StartButtonNameName[] = "Êíîïêà";
CPU_INT08U const StartButtonNameList_str0[] = "ÑÒÀÐÒ";
CPU_INT08U const StartButtonNameList_str1[] = "ÏÓÑÊ";
CPU_INT08U const *StartButtonNameList[] = {StartButtonNameList_str0, StartButtonNameList_str1};
TDataDescStruct const StartButtonNameDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, StartButtonName), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&StartButtonNameRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
StartButtonNameName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
StartButtonNameList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Âêëþ÷åíèå êóïþðîïðèåìíèêà
*************************************/
TRangeValueULONG const EnableValidatorRange = {0, 1};
CPU_INT08U const EnableValidatorName[] = "Êóïþðîïð-ê";
CPU_INT08U const OnOffList_str0[] = "âûêë.";
CPU_INT08U const OnOffList_str1[] = "âêë.";
CPU_INT08U const *EnableValidatorList[] = {OnOffList_str0, OnOffList_str1};
TDataDescStruct const EnableValidatorDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableValidator), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableValidatorRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableValidatorName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableValidatorList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Âêëþ÷åíèå ìîäåìà
*************************************/
TRangeValueULONG const EnableModemRange = {0, 1};
CPU_INT08U const EnableModemName[] = "Ìîäåì";
CPU_INT08U const *EnableModemList[] = {OnOffList_str0, OnOffList_str1};
void OnchangeEnableModem(void)
{
// CPU_INT32U en = 0;
// GetData(&EnableModemDesc, &en, 0, DATA_FLAG_SYSTEM_INDEX);
//
// if (en)
// {
// if (!IsModemConn())
// {
// modem_status = 2;
// }
// else if (!IsModemConf())
// {
// modem_status = 1;
// }
// //PostModemTask(MODEM_TASK_RECONNECT);
// }
}
TDataDescStruct const EnableModemDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableModem), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableModemRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnchangeEnableModem, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableModemName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableModemList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âêëþ÷èòü îïîâåùåíèå îá îøèáêàõ ïî e-mail
*************************************/
TRangeValueULONG const EnableEmailErrorSendRange = {0, 1};
CPU_INT08U const EnableEmailErrorSendName[] = "Îïîâ.îá îø.";
CPU_INT08U const *EnableEmailErrorSendList[] = {OnOffList_str0, OnOffList_str1};
TDataDescStruct const EnableEmailErrorSendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableEmailErrorSend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableEmailErrorSendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableEmailErrorSendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableEmailErrorSendList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Ñòàòóñ ïîäêëþ÷åíèÿ ìîäåìà
*************************************/
CPU_INT08U const ModemStatusName[] = "Ñòàòóñ";
CPU_INT08U const *ModemStatusList[] = {"Îê", "Îø.êîíô.", "Íåò ñâÿçè"};
TDataDescStruct const ModemStatusDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
&modem_status, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ModemStatusName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ModemStatusList,// óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âêëþ÷èòü îòïðàâêó æóðíàëîâ ïî e-mail
*************************************/
CPU_INT08U const EnableEmailJournalSendName[] = "Îòïð.æóðíàëû";
TDataDescStruct const EnableEmailJournalSendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableEmailJournalSend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableEmailErrorSendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableEmailJournalSendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableEmailErrorSendList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Î÷èùàòü æóðíàë ïîñëå îòïðàâêè ïî e-mail ÍÅ ÈÑÏÎËÜÇÓÅÒÑß
*************************************/
CPU_INT08U const ClearJournalAfterSendName[] = "Î÷.æóðíàëû";
TDataDescStruct const ClearJournalAfterSendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.ClearJournalAfterSend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableEmailErrorSendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ClearJournalAfterSendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableEmailErrorSendList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âðåìÿ îòïðàâêè ñòàòèñòèêè, ÷àñ : ìèí
*************************************/
TRangeValueULONG const StatSendHourRange = {0, 60*24 - 1};
CPU_INT08U const StatSendHourName[] = "Tîòïð.";
TDataDescStruct const StatSendHourMinDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_HOUR_MIN, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.StatSendHourMin), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&StatSendHourRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
StatSendHourName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
9
};
/*************************************
Èíäåêñ ïðè íàñòðîéêå ìîíåòîïðèåìíèêîâ
*************************************/
TRangeValueULONG const CoinIndexRange = {0, 5};
CPU_INT08U const CoinIndexName[] = "ÍÀÑÒÐ.ÌÎÍÅÒÎÏÐ.";
CPU_INT08U const CoinIndex_str0[] = "1";
CPU_INT08U const CoinIndex_str1[] = "2";
CPU_INT08U const CoinIndex_str2[] = "3";
CPU_INT08U const CoinIndex_str3[] = "4";
CPU_INT08U const CoinIndex_str4[] = "5";
CPU_INT08U const CoinIndex_str5[] = "6";
CPU_INT08U const *CoinIndexList[] = {CoinIndex_str0, CoinIndex_str1,CoinIndex_str2,CoinIndex_str3,CoinIndex_str4,CoinIndex_str5};
CPU_INT32U CoinIndex = 0;
void OnChangeCoinIndex(void)
{
}
TDataDescStruct const CoinIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&CoinIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CoinIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCoinIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CoinIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CoinIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âêëþ÷åíèå ìîíåòîïðèåìíèêà
*************************************/
TRangeValueULONG const EnableCoinRange = {0, 1};
CPU_INT08U const EnableCoinName[] = "Ìîíåòîïð-ê";
CPU_INT08U const *EnableCoinList[] = {OnOffList_str0, OnOffList_str1};
void OnchangeEnableCoin(void)
{
}
TDataDescStruct const EnableCoinDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableCoinAcceptor), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableCoinRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnchangeEnableCoin, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableCoinName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableCoinList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Öåíà èìïóëüñà ìîíåòîïðèåìíèêà
*************************************/
TRangeValueULONG const CoinPerPulseRange = {1, 9999};
CPU_INT08U const CoinPerPulseName[] = "Ðóá./èìï.";
TDataDescStruct const CoinPerPulseDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CoinPerPulse), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CoinPerPulseRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CoinPerPulseName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Èíäåêñ ïðè íàñòðîéêå êóïþðîïðèåìíèêîâ
*************************************/
TRangeValueULONG const CashIndexRange = {0, 5};
CPU_INT08U const CashIndexName[] = "ÍÀÑÒÐ.ÊÓÏÞÐÎÏÐ.";
void OnChangeCashIndex(void)
{
}
TDataDescStruct const CashIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&CoinIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCashIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CoinIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Ðåæèì êóïþðíèêà
*************************************/
TRangeValueULONG const CashModeRange = {0, 1};
CPU_INT08U const CashModeName[] = "Ðåæèì";
CPU_INT08U const CashMode_str0[] = "CCNet";
CPU_INT08U const CashMode_str1[] = "Pulse";
CPU_INT08U const *CashModeList[] = {CashMode_str0, CashMode_str1};
TDataDescStruct const CashModeDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CashMode), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashModeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashModeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CashModeList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Ðåæèì ïå÷àòè ÷åêà
*************************************/
TRangeValueULONG const PrintModeRange = {0, 1};
CPU_INT08U const PrintModeName[] = "Ðåæ.ïå÷àòè";
CPU_INT08U const PrintMode_str0[] = "òàéìàóò";
CPU_INT08U const PrintMode_str1[] = "êíîïêà";
CPU_INT08U const *PrintModeList[] = {PrintMode_str0, PrintMode_str1};
TDataDescStruct const PrintModeDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.PrintMode), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PrintModeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PrintModeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
PrintModeList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Òàéìàóò ïå÷àòè ÷åêà
*************************************/
TRangeValueULONG const PrintTimeoutRange = {0, 3600};
CPU_INT08U const PrintTimeoutName[] = "Òàéìàóò ïå÷àòè";
TDataDescStruct const PrintTimeoutDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.PrintTimeout), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PrintTimeoutRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PrintTimeoutName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Òàéìàóò îòìåíû ïå÷àòè ÷åêà
*************************************/
TRangeValueULONG const PrintTimeoutAfterRange = {0, 60};
CPU_INT08U const PrintTimeoutAfterName[] = "Òàéìàóò îáíóë.";
TDataDescStruct const PrintTimeoutAfterDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.PrintTimeoutAfter), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PrintTimeoutAfterRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PrintTimeoutAfterName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
10 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Öåíà èìïóëüñà êóïþðíèêà â èìïóëüñíîì ðåæèìå
*************************************/
TRangeValueULONG const CashPerPulseRange = {1, 9999};
CPU_INT08U const CashPerPulseName[] = "Ðóá./èìï.";
TDataDescStruct const CashPerPulseDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CashPerPulse), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashPerPulseRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashPerPulseName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
10 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Âêëþ÷åíèå ÔÐ
*************************************/
TRangeValueULONG const EnableFiscalRange = {0, 1};
CPU_INT08U const EnableFiscalName[] = "ÔÐ";
CPU_INT08U const *EnableFiscalList[] = {OnOffList_str0, OnOffList_str1};
TDataDescStruct const EnableFiscalDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableFiscal), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableFiscalRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableFiscalName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableFiscalList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Âêëþ÷åíèå ÔÐ
*************************************/
TRangeValueULONG const DisableFiscalErrorsRange = {0, 1};
CPU_INT08U const DisableFiscalErrorsName[] = "Èãíîðèð.îø.ÔÐ";
CPU_INT08U const DisableFiscalErrorsList_str0[] = "íåò";
CPU_INT08U const DisableFiscalErrorsList_str1[] = "äà";
CPU_INT08U const *DisableFiscalErrorsList[] = {DisableFiscalErrorsList_str0, DisableFiscalErrorsList_str1};
TDataDescStruct const DisableFiscalErrorsDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.DisableFiscalErrors), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DisableFiscalErrorsRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
DisableFiscalErrorsName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DisableFiscalErrorsList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Âðåìÿ èäóùåãî ñåàíñà
*************************************/
CPU_INT32U WorkTime[CHANNELS_NUM];
TRangeValueULONG const WorkTimeRange = {0, 0xffffffffL};
CPU_INT08U const WorkTimeName[] = "Âð.ðàáîòû";
TDataDescStruct const WorkTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
&WorkTime, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&WorkTimeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
WorkTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Òàéì-àóò ïåðåä çàïóñêîì ïîêàíàëüíî
*************************************/
TRangeValueULONG const TimeOutBeforeRange = {0, 999};
CPU_INT08U const TimeOutBeforeName[] = "Ïàóçà äî,ñåê.";
TDataDescStruct const TimeOutBeforeDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.TimeOutBefore), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&TimeOutBeforeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
TimeOutBeforeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
30
};
/*************************************
Òàéì-àóò ïîñëå ðàáîòû ïîêàíàëüíî
*************************************/
TRangeValueULONG const TimeOutAfterRange = {0, 99};
CPU_INT08U const TimeOutAfterName[] = "Ïàóçà ïîñëå,ìèí.";
TDataDescStruct const TimeOutAfterDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.TimeOutAfter), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&TimeOutAfterRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
TimeOutAfterName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
3
};
/*************************************
Ìàêñèìàëüíîå âðåìÿ ïîêàíàëüíî, ìèí.
*************************************/
TRangeValueULONG const MaxWorkTimeRange = {1, 999};
CPU_INT08U const MaxWorkTimeName[] = "Tmax,ìèí.";
TDataDescStruct const MaxWorkTimeDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.MaxWorkTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&MaxWorkTimeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
MaxWorkTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
20
};
/*************************************
Ìèíèìàëüíîå âðåìÿ ïîêàíàëüíî, ìèí.
*************************************/
TRangeValueULONG const MinWorkTimeRange = {1, 999};
CPU_INT08U const MinWorkTimeName[] = "Tmin,ìèí.";
TDataDescStruct const MinWorkTimeDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.MinWorkTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&MinWorkTimeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
MinWorkTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
5
};
/*************************************
Íàñòðîéêà âûõîäíûõ
*************************************/
TRangeValueULONG const WeekEndRange = {0, 4};
CPU_INT08U const WeekEndName[] = "Âûõîäíûå:";
CPU_INT08U const WeekEndList_str0[] = "íåò";
CPU_INT08U const WeekEndList_str1[] = "ïò-âñ";
CPU_INT08U const WeekEndList_str2[] = "ñá-âñ";
CPU_INT08U const WeekEndList_str3[] = "ïò-ñá";
CPU_INT08U const WeekEndList_str4[] = "ïò-ïí";
CPU_INT08U const *WeekEndList[] = {WeekEndList_str0, WeekEndList_str1, WeekEndList_str2, WeekEndList_str3, WeekEndList_str4, NULL};
TDataDescStruct const WeekEndDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.WeekEnd), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&WeekEndRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
WeekEndName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
WeekEndList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Íàñòðîéêà îòëîæåííîãî ñòàðòà
*************************************/
TRangeValueULONG const DeferredStartRange = {0, 1};
CPU_INT08U const DeferredStartName[] = "Îòëîæ.ñòàðò";
CPU_INT08U const DeferredStart_str0[] = "íåò";
CPU_INT08U const DeferredStart_str1[] = "äà";
CPU_INT08U const *DeferredStartList[] = {DeferredStart_str0, DeferredStart_str1, NULL};
TDataDescStruct const DeferredStartDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DefferedStartEnabled), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DeferredStartRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
DeferredStartName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DeferredStartList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Èíäåêñ ïðè íàñòðîéêå öåí
*************************************/
TRangeValueULONG const PeriodIndexRange = {0, 0xffffffff/*CHANNELS_NUM*PRICE_PERIODS_NUM-1*/};
CPU_INT08U const PeriodIndexName[] = "";
CPU_INT08U const *PeriodWeekendIndexList[] = {
"ÊÀÍ.1 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.1 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.1 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.1 ÏÅÐ.4 ÂÛÕ.",
"ÊÀÍ.2 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.2 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.2 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.2 ÏÅÐ.4 ÂÛÕ.",
"ÊÀÍ.3 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.3 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.3 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.3 ÏÅÐ.4 ÂÛÕ.",
"ÊÀÍ.4 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.4 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.4 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.4 ÏÅÐ.4 ÂÛÕ.",
"ÊÀÍ.5 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.5 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.5 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.5 ÏÅÐ.4 ÂÛÕ.",
"ÊÀÍ.6 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.6 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.6 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.6 ÏÅÐ.4 ÂÛÕ.",
"ÊÀÍ.7 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.7 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.7 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.7 ÏÅÐ.4 ÂÛÕ.",
"ÊÀÍ.8 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.8 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.8 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.8 ÏÅÐ.4 ÂÛÕ.",
"ÊÀÍ.9 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.9 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.9 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.9 ÏÅÐ.4 ÂÛÕ.",
"ÊÀÍ.10 ÏÅÐ.1 ÂÛÕ.",
"ÊÀÍ.10 ÏÅÐ.2 ÂÛÕ.",
"ÊÀÍ.10 ÏÅÐ.3 ÂÛÕ.",
"ÊÀÍ.10 ÏÅÐ.4 ÂÛÕ.",
NULL};
CPU_INT32U PeriodIndex = 0;
void OnChangePeriodIndex(void)
{
if ((PeriodIndex == 0xffffffff) || (PeriodIndex < ChannelIndex*PRICE_PERIODS_NUM)) PeriodIndex = (ChannelIndex+1)*PRICE_PERIODS_NUM-1;
else if (PeriodIndex >= (ChannelIndex+1)*PRICE_PERIODS_NUM) PeriodIndex = (ChannelIndex)*PRICE_PERIODS_NUM;
}
TDataDescStruct const PeriodWeekendIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&PeriodIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PeriodIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangePeriodIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PeriodIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
PeriodWeekendIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
CPU_INT08U const *PeriodWeekdaysIndexList[] = {
"ÊÀÍ.1 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.1 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.1 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.1 ÏÅÐ.4 ÁÓÄ.",
"ÊÀÍ.2 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.2 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.2 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.2 ÏÅÐ.4 ÁÓÄ.",
"ÊÀÍ.3 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.3 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.3 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.3 ÏÅÐ.4 ÁÓÄ.",
"ÊÀÍ.4 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.4 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.4 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.4 ÏÅÐ.4 ÁÓÄ.",
"ÊÀÍ.5 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.5 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.5 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.5 ÏÅÐ.4 ÁÓÄ.",
"ÊÀÍ.6 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.6 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.6 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.6 ÏÅÐ.4 ÁÓÄ.",
"ÊÀÍ.7 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.7 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.7 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.7 ÏÅÐ.4 ÁÓÄ.",
"ÊÀÍ.8 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.8 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.8 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.8 ÏÅÐ.4 ÁÓÄ.",
"ÊÀÍ.9 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.9 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.9 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.9 ÏÅÐ.4 ÁÓÄ.",
"ÊÀÍ.10 ÏÅÐ.1 ÁÓÄ.",
"ÊÀÍ.10 ÏÅÐ.2 ÁÓÄ.",
"ÊÀÍ.10 ÏÅÐ.3 ÁÓÄ.",
"ÊÀÍ.10 ÏÅÐ.4 ÁÓÄ.",
NULL};
TDataDescStruct const PeriodWeekdaysIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&PeriodIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PeriodIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangePeriodIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PeriodIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
PeriodWeekdaysIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Öåíà ïî âûõîäíûì
*************************************/
TRangeValueULONG const PriceRange = {1, 10000};
CPU_INT08U const PriceName[] = "Öåíà,ðóá.";
TDataDescStruct const PriceDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.Price), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PriceRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PriceName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
100
};
/*************************************
Öåíà ïî âûõîäíûì
*************************************/
TRangeValueULONG const PriceWeekendRange = {1, MAX_PRICE};
CPU_INT08U const PriceWeekendName[] = "Öåíà,ðóá.";
TDataDescStruct const PriceWeekendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
&PeriodWeekendIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.Price_Weekend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PriceWeekendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PriceWeekendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
15
};
/*************************************
Öåíà ïî áóäíÿì
*************************************/
TRangeValueULONG const PriceWeekdaysRange = {1, MAX_PRICE};
CPU_INT08U const PriceWeekdaysName[] = "Öåíà,ðóá.";
TDataDescStruct const PriceWeekdaysDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
&PeriodWeekdaysIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.Price_Weekdays), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PriceWeekdaysRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PriceWeekdaysName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
15
};
/*************************************
Âðåìÿ çà öåíó ïî âûõîäíûì
*************************************/
TRangeValueULONG const PriceTimeWeekendRange = {1, 999};
CPU_INT08U const PriceTimeWeekendName[] = "Çà âðåìÿ,ìèí.";
TDataDescStruct const PriceTimeWeekendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
&PeriodWeekendIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.PriceTime_Weekend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PriceTimeWeekendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PriceTimeWeekendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Âðåìÿ çà öåíó ïî áóäíÿì
*************************************/
TRangeValueULONG const PriceTimeWeekdaysRange = {1, 999};
CPU_INT08U const PriceTimeWeekdaysName[] = "Çà âðåìÿ,ìèí.";
TDataDescStruct const PriceTimeWeekdaysDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
&PeriodWeekdaysIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.PriceTime_Weekdays), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PriceTimeWeekdaysRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PriceTimeWeekdaysName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Íà÷àëî ïåðèîäîâ ïî áóäíÿì
*************************************/
TRangeValueULONG const T_Start_WeekdaysRange = {0, 24};
CPU_INT08U const T_Start_WeekdaysName[] = "Íà÷àëî,÷";
TDataDescStruct const T_Start_WeekdaysDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
&PeriodWeekdaysIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.T_Start_Weekdays), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&T_Start_WeekdaysRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
T_Start_WeekdaysName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êîíåö ïåðèîäîâ ïî áóäíÿì
*************************************/
TRangeValueULONG const T_End_WeekdaysRange = {0, 24};
CPU_INT08U const T_End_WeekdaysName[] = "Êîíåö,÷";
TDataDescStruct const T_End_WeekdaysDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
&PeriodWeekdaysIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.T_End_Weekdays), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&T_End_WeekdaysRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
T_End_WeekdaysName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
24
};
/*************************************
Íà÷àëî ïåðèîäîâ ïî âûõîäíûì
*************************************/
TRangeValueULONG const T_Start_WeekendRange = {0, 24};
CPU_INT08U const T_Start_WeekendName[] = "Íà÷àëî,÷";
TDataDescStruct const T_Start_WeekendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
&PeriodWeekendIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.T_Start_Weekend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&T_Start_WeekendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
T_Start_WeekendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êîíåö ïåðèîäîâ ïî âûõîäíûì
*************************************/
TRangeValueULONG const T_End_WeekendRange = {0, 24};
CPU_INT08U const T_End_WeekendName[] = "Êîíåö,÷";
TDataDescStruct const T_End_WeekendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
&PeriodWeekendIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ChannelConfig.T_End_Weekend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&T_End_WeekendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
T_End_WeekendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
24
};
/*************************************
Êîìàíäà èíèöèàëèçàöèè ïî óìîë÷àíèþ
*************************************/
CPU_INT32U InitByDefault = 0;
TRangeValueULONG const InitByDefaultRange = {0, 1};
CPU_INT08U const InitByDefaultName[] = "Èíèöèàëèçàöèÿ";
CPU_INT08U const InitByDefaultList_str0[] = "íåò";
CPU_INT08U const InitByDefaultList_str1[] = "äà";
CPU_INT08U const *InitByDefaultList[] = {InitByDefaultList_str0, InitByDefaultList_str1};
void OnChangeInitByDefault(void)
{
int i = 0;
if (InitByDefault == 0) return;
while (AllDataArray[i].ptr != NULL)
{
InitDescByDefault(AllDataArray[i].ptr);
i++;
}
InitByDefault = 0;
CPU_INT08U flag[4] = {0xAA, 0x55, 0x81, 0xC3};
char name[32] = "Óñëóãè àâòîìîéêè\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
WriteArrayFram(offsetof(TFramMap, manual_service_flag), 4, (unsigned char*)&flag);
WriteArrayFram(offsetof(TFramMap, manual_service_name), 32, (unsigned char*)&name);
}
TDataDescStruct const InitByDefaultDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&InitByDefault, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeInitByDefault, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
InitByDefaultName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
InitByDefaultList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Êîìàíäà íà ïå÷àòü Z-îò÷åòà
*************************************/
CPU_INT32U PrintZReportCmd = 0;
CPU_INT08U const PrintZReportName[] = "Îò÷.î çàêð.ñì.";
CPU_INT08U const PrintZReportList_str0[] = "íåò";
CPU_INT08U const PrintZReportList_str1[] = "ïå÷àòü";
CPU_INT08U const *PrintZReportList[] = {PrintZReportList_str0, PrintZReportList_str1};
void OnChangePrintZReportCmd(void)
{
}
TDataDescStruct const PrintZReportDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&PrintZReportCmd, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangePrintZReportCmd, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PrintZReportName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
PrintZReportList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Êîìàíäà íà ïå÷àòü X-îò÷åòà
*************************************/
CPU_INT32U PrintXReportCmd = 0;
CPU_INT08U const PrintXReportName[] = "X-îò÷åò";
void OnChangePrintXReportCmd(void)
{
}
TDataDescStruct const PrintXReportDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&PrintXReportCmd, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangePrintXReportCmd, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PrintXReportName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
PrintZReportList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Îøèáêà â æóðíàëå îøèáîê
*************************************/
TRangeValueULONG const ErrorNumberRange = {0, JOURNAL_EVENTS_COUNT - 1};
CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] =
{"íåò",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"ÔÐ:01h-Íåèçâåñòíàÿ",
"ÔÐ:02h-Íåâåðíîå",
"ÔÐ:03h-Îøèáêà ÔÍ",
"ÔÐ:04h-Îøèáêà ÊÑ",
"ÔÐ:05h-Çàêîí÷åí ñðîê",
"ÔÐ:06h-Àðõèâ ÔÍ",
"ÔÐ:07h-Íåâåðíûå äàòà",
"ÔÐ:08h-Íåò ",
"ÔÐ:09h-Íåêîðð.",
"ÔÐ:10h-Ïðåâûøåíèå",
"ÔÐ:11h-Íåò",
"ÔÐ:12h-Èñ÷åðïàí",
"ÔÐ:14h-Èñ÷åðïàí",
"ÔÐ:15h-Èñ÷åðïàí",
"ÔÐ:16h-Ñìåíà áîëåå",
"ÔÐ:17h-Íåâåðíàÿ",
"ÔÐ:20h-Ñîîáùåíèå",
"ÔÐ:2Fh-Òàéìàóò ",
"ÔÐ:30h-ÔÍ ",
"ÔÐ:33h-Íåêîððåêòíûå",
"ÔÐ:34h-Íåò",
"ÔÐ:35h-Íåêîððåêòíûé",
"ÔÐ:36h-Íåêîððåêòíûå",
"ÔÐ:37h-Êîìàíäà",
"ÔÐ:38h-Îøèáêà",
"ÔÐ:39h-Âíóòðåííÿÿ",
"ÔÐ:3Ah-Ïåðåïîëíåíèå",
"ÔÐ:3Ch-Ñìåíà",
"ÔÐ:3Dh-Ñìåíà",
"ÔÐ:3Eh-Ïåðåïîëíåíèå",
"ÔÐ:3Fh-Ïåðåïîëíåíèå",
"ÔÐ:40h-Ïåðåïîëíåíèå",
"ÔÐ:41h-Ïåðåïîëíåíèå",
"ÔÐ:42h-Ïåðåïîëíåíèå",
"ÔÐ:43h-Ïåðåïîëíåíèå",
"ÔÐ:44h-Ïåðåïîëíåíèå",
"ÔÐ:45h-Cóììà",
"ÔÐ:46h-Íå õâàòàåò",
"ÔÐ:47h-Ïåðåïîëíåíèå",
"ÔÐ:48h-Ïåðåïîëíåíèå",
"ÔÐ:49h-Îïåð.íåâîçì.",
"ÔÐ:4Ah-Îòêðûò ÷åê",
"ÔÐ:4Bh-Áóôåð ÷åêà",
"ÔÐ:4Ch-Ïåðåïîëíåíèå",
"ÔÐ:4Dh-Âíîñèìàÿ",
"ÔÐ:4Eh-Ñìåíà",
"ÔÐ:4Fh-Íåâåðíûé ïàðîëü",
"ÔÐ:50h-Èäåò ïå÷àòü",
"ÔÐ:51h-Ïåðåïîëíåíèå",
"ÔÐ:52h-Ïåðåïîëíåíèå",
"ÔÐ:53h-Ïåðåïîëíåíèå",
"ÔÐ:54h-Ïåðåïîëíåíèå",
"ÔÐ:55h-×åê çàêðûò",
"ÔÐ:56h-Íåò äîê.",
"ÔÐ:58h-Îæèäàíèå",
"ÔÐ:59h-Äîêóìåíò",
"ÔÐ:5Bh-Ïåðåïîëíåíèå",
"ÔÐ:5Ch-Ïîíèæåíî",
"ÔÐ:5Dh-Òàáëèöà",
"ÔÐ:5Eh-Íåêîððåêòíàÿ",
"ÔÐ:5Fh-Îòðèö.",
"ÔÐ:60h-Ïåðåïîëíåíèå",
"ÔÐ:61h-Ïåðåïîëíåíèå",
"ÔÐ:62h-Ïåðåïîëíåíèå",
"ÔÐ:63h-Ïåðåïîëíåíèå",
"ÔÐ:65h-Íå õâàòàåò",
"ÔÐ:66h-Ïåðåïîëíåíèå",
"ÔÐ:68h-Íå õâàòàåò",
"ÔÐ:69h-Ïåðåïîëíåíèå",
"ÔÐ:6Ah-Îøèáêà",
"ÔÐ:6Bh-Íåò ÷åêîâîé",
"ÔÐ:6Ch-Íåò êîíòð.",
"ÔÐ:6Dh-Íå õâàòàåò",
"ÔÐ:6Eh-Ïåðåïîëíåíèå",
"ÔÐ:6Fh-Ïåðåïîëíåíèå",
"ÔÐ:71h-Îøèáêà",
"ÔÐ:72h-Êîìàíäà íå",
"ÔÐ:73h-Êîìàíäà íå",
"ÔÐ:74h-Îøèáêà ÎÇÓ",
"ÔÐ:75h-Îøèáêà",
"ÔÐ:77h-Ïðèíòåð:",
"ÔÐ:78h-Çàìåíà ÏÎ",
"ÔÏ:7Ah-Ïîëå íå",
"ÔÐ:7Bh-Îøèáêà",
"ÔÐ:7Ch-Íå ñîâïàäàåò",
"ÔÐ:7Dh-Íåâåðíûé",
"ÔÐ:7Eh-Íåâåðíîå",
"ÔÐ:7Fh-Ïåðåïîëíåíèå",
"ÔÐ:84h-Ïåðåïîëíåíèå",
"ÔÐ:85h-Ïåðåïîëíåíèå",
"ÔÐ:86h-Ïåðåïîëíåíèå",
"ÔÐ:87h-Ïåðåïîëíåíèå",
"ÔÐ:88h-Ïåðåïîëíåíèå",
"ÔÐ:89h-Ïåðåïîëíåíèå",
"ÔÐ:8Ah-Ïåðåïîëíåíèå",
"ÔÐ:8Bh-Ïåðåïîëíåíèå",
"ÔÐ:8Ch-Îòðèö.",
"ÔÐ:8Dh-Îòðèöàòåëüíûé",
"ÔÐ:8Eh-Íóëåâîé èòîã",
"ÔÐ:90h-Ïîëå ïðåâ.",
"ÔÐ:91h-Âûõîä çà",
"ÔÐ:92h-Íàëîæåíèå",
"ÔÐ:93h-Âîññòàíîâëåíèå",
"ÔÐ:94h-Èñ÷åðïàí",
"ÔÐ:C0h-Êîíòðîëü",
"ÔÐ:C2h-Ïðåâûøåíèå",
"ÔÐ:C4h-Íåñîâïàäåíèå",
"ÔÐ:C7h-Ïîëå íå",
"ÔÐ:Ñ8h-Îòñóòñòâóþò"
};
TDataDescStruct const JournalErrorNumberDesc0 = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
EVENT_RECORDS_COUNT, // ðàçìåð ìàññèâà
&EventJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, EventRecords[0].event), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ErrorNumberRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(TEventRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
(void*)ErrorNumberList0, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
CPU_INT08U const *ErrorNumberList1[JOURNAL_EVENTS_COUNT] =
{
"",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"êîìàíäà", // ÔÐ:01h
"ñîñòîÿíèå ÔÍ",
"",
"",
"ýêñïëóàòàöèè ÔÍ",
"ïåðåïîëíåí",
"è/èëè âðåìÿ",
"çàïðîøåííûõ äàííûõ",
"çíà÷.ïàð.ê-äû",
"ðàçì.TLV äàííûõ",
"òðàíñï.ñîåä.",
"ðåñóðñ ÊÑ",
"ðåñóðñ õðàíåíèÿ",
"ðåñóðñ îæèäàíèÿ",
"24 ÷àñîâ",
"ðàçíèöà âî âðåìåíè",
"îò ÎÔÄ íå ïðèíÿòî",
"îáìåíà ñ ÔÍ",
"íå îòâå÷àåò",
"ïàðàìåòðû â ê-äå",
"äàííûõ",
"ïàðàìåòð",
"ïàðàìåòðû", // 36h
"íå ïîääåðæèâàåòñÿ",
"â ÏÇÓ",
"îøèáêà ÏÎ ÊÊÒ",
"íàê.ïî íàäá.",
"îòêð.-îïåðàöèÿ íåâîçì.",
"çàêð.-îïåðàöèÿ íåâîçì.", //3Dh
"íàêîï.ïî ñåêöèÿì",
"íàêîï.ïî ñêèäêàì",
"äèàïàçîíà ñêèäîê",
"äèàïàçîíà îïëàòû",
"äèàïàçîíà îïëàòû 2",
"äèàïàçîíà îïëàòû 3",
"äèàïàçîíà îïëàòû 4",
"ìåíüøå èòîãà ÷åêà",
"íàëè÷íîñòè â êàññå",
"íàêîïëåíèÿ ïî íàëîãàì",
"èòîãà ÷åêà",
"â îòêð.÷åêå",
"îïåðàöèÿ íåâîçìîæíà",
"ïåðåïîëíåí",
"íàêîï.ïî íàëîãàì",
"áåçíàë.ñóììà áîëüøå",
"ïðåâûñèëà 24 ÷àñà",
"",
"ïðåä.êîìàíäû",
"íàêîïëåíèé â ñìåíå",
"íàêîïëåíèé 2 â ñìåíå",
"íàêîïëåíèé 3 â ñìåíå",
"íàêîïëåíèé 4 â ñìåíå",
"îïåðàöèÿ íåâîçì.",
"äëÿ ïîâòîðà",
"êîìàíäû ïðîäîëæåíèÿ",
"îòêðûò äðóãèì îï.",
"äèàïàçîíà íàäáàâîê",
"íàïðÿæåíèå 24Â",
"íå îïðåäåëåíà",
"îïåðàöèÿ",
"èòîã ÷åêà",
"ïðè óìíîæåíèè",
"äèàïàçîíà öåíû",
"äèàïàçîíà êîë-âà",
"äèàïàçîíà îòäåëà",
"äåíåã â ñåêöèè",
"äåíåã â ñåêöèè",
"äåíåã ïî íàëîãàì",
"äåíåã ïî íàëîãàì",
"ïèòàíèÿ",
"ëåíòû",
"ëåíòû",
"äåíåã ïî íàëîãó",
"äåíåã ïî íàëîãó",
"ïî âûïëàòå â ñìåíå",
"îòðåç÷èêà",
"ïîääåðæ.",
"ïîääåðæ.",
"",
"ïèòàíèÿ",
"íåò ñèãíàëà",
"",
"ðåäàêòèðóåòñÿ",
"îáîðóäîâàíèÿ",
"äàòà",
"ôîðìàò äàòû",
"çíà÷åíèå â ïîëå äëèíû",
"äèàïàçîíà èòîãà ÷åêà",
"íàëè÷íîñòè",
"ïî ïðîäàæàì",
"ïî ïîêóïêàì",
"ïî âîçâðàòàì ïðîäàæ",
"ïî âîçâðàòàì ïîêóïîê",
"ïî âíåñåíèþ â ñìåíå",
"ïî íàäáàâêàì â ÷åêå",
"ïî ñêèäêàì â ÷åêå",
"èòîã íàäáàâêè",
"èòîã ñêèäêè â ÷åêå",
"÷åêà",
"ðàçìåð â íàñòðîéêàõ",
"ãðàíèöó ïîëÿ ïå÷àòè",
"ïîëåé",
"ÎÇÓ ïðîøëî óñïåøíî",
"ëèìèò îïåðàöèé â ÷åêå",
"äàòû è âðåìåíè",
"íàïðÿæåíèÿ",
"íîìåðîâ ñìåí",
"ðåäàêòèðóåòñÿ",
"èìïóëüñû òàõî."
};
TDataDescStruct const JournalErrorNumberDesc1 = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
EVENT_RECORDS_COUNT, // ðàçìåð ìàññèâà
&EventJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, EventRecords[0].event), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ErrorNumberRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(TEventRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
(void*)ErrorNumberList1, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Ñòðîêà ñ îøèáêîé ïî-àíãëèéñêè
*************************************/
CPU_INT08U const *ErrorNumberListEng[JOURNAL_EVENTS_COUNT] =
{
"Net oshibki", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"Oshibka svyazi s modemom",
"Oshibka svyazi s FR",
"Oshibka FR 0x01",
"Oshibka FR 0x02",
"Oshibka FR 0x03",
"Oshibka FR 0x04",
"Oshibka FR 0x05",
"Oshibka FR 0x06",
"Oshibka FR 0x07",
"Oshibka FR 0x08",
"Oshibka FR 0x09",
"Oshibka FR 0x10",
"Oshibka FR 0x11",
"Oshibka FR 0x12",
"Oshibka FR 0x14",
"Oshibka FR 0x15",
"Oshibka FR 0x16",
"Oshibka FR 0x17",
"Oshibka FR 0x20",
"Oshibka FR 0x2F",
"Oshibka FR 0x30",
"Oshibka FR 0x33",
"Oshibka FR 0x34",
"Oshibka FR 0x35",
"Oshibka FR 0x36",
"Oshibka FR 0x37",
"Oshibka FR 0x38",
"Oshibka FR 0x39",
"Oshibka FR 0x3A",
"Oshibka FR 0x3C",
"Oshibka FR 0x3D",
"Oshibka FR 0x3E",
"Oshibka FR 0x3F",
"Oshibka FR 0x40",
"Oshibka FR 0x41",
"Oshibka FR 0x42",
"Oshibka FR 0x43",
"Oshibka FR 0x44",
"Oshibka FR 0x45",
"Oshibka FR 0x46",
"Oshibka FR 0x47",
"Oshibka FR 0x48",
"Oshibka FR 0x49",
"Oshibka FR 0x4A",
"Oshibka FR 0x4B",
"Oshibka FR 0x4C",
"Oshibka FR 0x4D",
"Oshibka FR 0x4E",
"Oshibka FR 0x4F",
"Oshibka FR 0x50",
"Oshibka FR 0x51",
"Oshibka FR 0x52",
"Oshibka FR 0x53",
"Oshibka FR 0x54",
"Oshibka FR 0x55",
"Oshibka FR 0x56",
"Oshibka FR 0x58",
"Oshibka FR 0x59",
"Oshibka FR 0x5B",
"Oshibka FR 0x5C",
"Oshibka FR 0x5D",
"Oshibka FR 0x5E",
"Oshibka FR 0x5F",
"Oshibka FR 0x60",
"Oshibka FR 0x61",
"Oshibka FR 0x62",
"Oshibka FR 0x63",
"Oshibka FR 0x65",
"Oshibka FR 0x66",
"Oshibka FR 0x68",
"Oshibka FR 0x69",
"Oshibka FR 0x6A",
"Oshibka FR 0x6B",
"Oshibka FR 0x6C",
"Oshibka FR 0x6D",
"Oshibka FR 0x6E",
"Oshibka FR 0x6F",
"Oshibka FR 0x71",
"Oshibka FR 0x72",
"Oshibka FR 0x73",
"Oshibka FR 0x74",
"Oshibka FR 0x75",
"Oshibka FR 0x77",
"Oshibka FR 0x78",
"Oshibka FR 0x7A",
"Oshibka FR 0x7B",
"Oshibka FR 0x7C",
"Oshibka FR 0x7D",
"Oshibka FR 0x7E",
"Oshibka FR 0x7F",
"Oshibka FR 0x84",
"Oshibka FR 0x85",
"Oshibka FR 0x86",
"Oshibka FR 0x87",
"Oshibka FR 0x88",
"Oshibka FR 0x89",
"Oshibka FR 0x8A",
"Oshibka FR 0x8B",
"Oshibka FR 0x8C",
"Oshibka FR 0x8D",
"Oshibka FR 0x8E",
"Oshibka FR 0x90",
"Oshibka FR 0x91",
"Oshibka FR 0x92",
"Oshibka FR 0x93",
"Oshibka FR 0x94",
"Oshibka FR 0xC0",
"Oshibka FR 0xC2",
"Oshibka FR 0xC4",
"Oshibka FR 0xC7",
"Oshibka FR 0xC8"
};
TDataDescStruct const JournalErrorNumberDescEng = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
EVENT_RECORDS_COUNT, // ðàçìåð ìàññèâà
&EventJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, EventRecords[0].event), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ErrorNumberRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(TEventRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
(void*)ErrorNumberList1, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Èíäåêñ ïðè ïðîñìîòðå æóðíàëà ñîáûòèé
*************************************/
TRangeValueULONG const EventJournalIndexRange = {0, 0xffffffff};
CPU_INT08U const EventJournalIndexName[] = "Çàïèñü #";
CPU_INT32U EventJournalIndex = 0;
void OnChangeEventJournalIndex(void)
{
TEventRecord record;
if (EventJournalIndex == 0xffffffff) EventJournalIndex = JOURNAL_EVENTS_COUNT - 1;
else if (EventJournalIndex > JOURNAL_EVENTS_COUNT - 1) EventJournalIndex = 0;
GetEventRecord(&record, EventJournalIndex);
PrintEventJournalRecord(&record);
}
TDataDescStruct const EventJournalIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&EventJournalIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EventJournalIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeEventJournalIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EventJournalIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âðåìÿ ñîáûòèÿ â æóðíàëå ñîáûòèé
*************************************/
TDataDescStruct const JournalEventTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
EVENT_RECORDS_COUNT, // ðàçìåð ìàññèâà
&EventJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, EventRecords[0].time), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(TEventRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Ñèñòåìíîå âðåìÿ
*************************************/
extern CPU_INT32U SystemTime;
TDataDescStruct const SystemTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&SystemTime, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
void OnSetTime(void)
{
TRTC_Data rtc;
Sec2Date(&rtc, SystemTime);
RTC_SetTime(&rtc);
}
TDataDescStruct const SystemTimeEditDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_TIME, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&SystemTime, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnSetTime, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êîìàíäà íà î÷èñòêó æóðíàëîâ
*************************************/
CPU_INT32U ClearJournalCmd = 0;
CPU_INT08U const ClearJournalCmdName[] = "Î÷èñòêà";
CPU_INT08U const ClearJournalCmdList_str0[] = "íåò";
CPU_INT08U const ClearJournalCmdList_str1[] = "äà";
CPU_INT08U const *ClearJournalCmdList[] = {ClearJournalCmdList_str0, ClearJournalCmdList_str1};
void OnChangeClearJournalCmd(void)
{
if (ClearJournalCmd)
{
ClearEventJournal();
ClearJournalCmd = 0;
}
}
TDataDescStruct const ClearJournalCmdDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&ClearJournalCmd, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeClearJournalCmd, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ClearJournalCmdName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ClearJournalCmdList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê ÷èñëà çàïóñêîâ
*************************************/
CPU_INT08U const CounterRunName[] = "Çàïóñêè";
TDataDescStruct const CounterRunDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterRun), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterRunName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê äåíåã
*************************************/
CPU_INT08U const CounterMoneyName[] = "Äåíüãè,ðóá.";
TDataDescStruct const CounterMoneyDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê âðåìåíè ðàáîòû
*************************************/
CPU_INT08U const CounterTimeName[] = "Âð.ðàá.";
TDataDescStruct const CounterTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME_COUNT, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê ÷èñëà çàïóñêîâ ÄËÈÍÍÛÉ
*************************************/
TDataDescStruct const CounterLongRunDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CountersLong.CounterRunLong), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterRunName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê äåíåã ÄËÈÍÍÛÉ
*************************************/
TDataDescStruct const CounterLongMoneyDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CountersLong.CounterMoneyLong), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê âðåìåíè ðàáîòû
*************************************/
TDataDescStruct const CounterLongTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME_COUNT, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CountersLong.CounterTimeLong), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êàíàëüíûé ñ÷åò÷èê ÷èñëà çàïóñêîâ
*************************************/
TDataDescStruct const CounterChannelRunDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterChannelRun[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterRunName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êàíàëüíûé ñ÷åò÷èê äåíåã
*************************************/
TDataDescStruct const CounterChannelMoneyDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterChannelMoney[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êàíàëüíûé ñ÷åò÷èê âðåìåíè ðàáîòû
*************************************/
TDataDescStruct const CounterChannelTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME_COUNT, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterChannelTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êàíàëüíûé ñ÷åò÷èê ÷èñëà çàïóñêîâ
*************************************/
TDataDescStruct const CounterChannelRunLongDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CountersLong.CounterChannelRunLong[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterRunName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êàíàëüíûé ñ÷åò÷èê äåíåã
*************************************/
TDataDescStruct const CounterChannelMoneyLongDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CountersLong.CounterChannelMoneyLong[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êàíàëüíûé ñ÷åò÷èê âðåìåíè ðàáîòû
*************************************/
TDataDescStruct const CounterChannelTimeLongDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME_COUNT, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
CHANNELS_NUM, // ðàçìåð ìàññèâà
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CountersLong.CounterChannelTimeLong), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êîìàíäà íà î÷èñòêó ñòàòèñòèêè
*************************************/
CPU_INT32U ClearStatCmd = 0;
CPU_INT08U const ClearStatCmdName[] = "Î÷èñòêà";
void OnChangeClearStatCmd(void)
{
if (ClearStatCmd)
{
ClearCounters();
ClearStatCmd = 0;
}
}
TDataDescStruct const ClearStatCmdDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&ClearStatCmd, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeClearStatCmd, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ClearJournalCmdName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ClearJournalCmdList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Ðàçðåøåíèå àâòîìàòè÷åñêîãî çàêðûòèÿ ñìåí
*************************************/
TRangeValueULONG const EnableFiscalDayClearRange = {0, 1};
CPU_INT08U const EnableFiscalDayClearName[] = "Çàêð.ñìåíû";
CPU_INT08U const *EnableFiscalDayClearList[] = {"Ðó÷.", "Àâòî", "Áóôåð"};
TDataDescStruct const EnableFiscalDayClearDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableFiscalDayClear), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableFiscalDayClearRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableFiscalDayClearName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableFiscalDayClearList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Íàñòðîéêà ÷åêà
*************************************/
TRangeValueULONG const BillFormatRange = {0, 1};
CPU_INT08U const BillFormatName[] = "×åê:";
CPU_INT08U const BillFormatList_str0[] = "êîë-âî*öåíà";
CPU_INT08U const BillFormatList_str1[] = "ñóììà";
CPU_INT08U const *BillFormatList[] = {BillFormatList_str0, BillFormatList_str1};
TDataDescStruct const BillFormatDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.BillFormat), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&BillFormatRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BillFormatName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
BillFormatList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Ñèñòåìà íàëîãîîáëîæåíèÿ
*************************************/
TRangeValueULONG const TaxSystemRange = {0, 5};
CPU_INT08U const TaxSystemName[] = "Ñèñòåìà íàë.";
CPU_INT08U const TaxSystemList_str0[] = "ÎÑÍ";
CPU_INT08U const TaxSystemList_str1[] = "ÓÑÍ ä";
CPU_INT08U const TaxSystemList_str2[] = "ÓÑÍ ä-ð";
CPU_INT08U const TaxSystemList_str3[] = "ÅÍÂÄ";
CPU_INT08U const TaxSystemList_str4[] = "ÅÑÍ";
CPU_INT08U const TaxSystemList_str5[] = "ÏÑÍ";
CPU_INT08U const *TaxSystemList[] = {TaxSystemList_str0, TaxSystemList_str1, TaxSystemList_str2, TaxSystemList_str3, TaxSystemList_str4, TaxSystemList_str5};
TDataDescStruct const TaxSystemDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, TaxSystem), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&TaxSystemRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
TaxSystemName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
TaxSystemList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Èíäåêñ íàëîãà
*************************************/
TRangeValueULONG const TaxFormatRange = {1, 6};
CPU_INT08U const TaxFormatName[] = "Íàëîã:";
CPU_INT08U const TaxFormatList_str0[] = "îòêë.";
CPU_INT08U const TaxFormatList_str1[] = " 1 ";
CPU_INT08U const TaxFormatList_str2[] = " 2 ";
CPU_INT08U const TaxFormatList_str3[] = " 3 ";
CPU_INT08U const TaxFormatList_str4[] = " 4 ";
CPU_INT08U const TaxFormatList_str5[] = " 5 ";
CPU_INT08U const TaxFormatList_str6[] = " 6 ";
CPU_INT08U const *TaxFormatList[] = {TaxFormatList_str0, TaxFormatList_str1, TaxFormatList_str2, TaxFormatList_str3, TaxFormatList_str4, TaxFormatList_str5, TaxFormatList_str6};
TDataDescStruct const TaxFormatDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, TaxFormat), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&TaxFormatRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
TaxFormatName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
TaxFormatList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
6
};
/*************************************
Ïðåäìåò ðàñ÷åòà
*************************************/
TRangeValueULONG const SubjSellRange = {0, 2};
CPU_INT08U const SubjSellName[] = "Ïðåäì.ðàñ÷åòà";
CPU_INT08U const SubjSellList_str0[] = "ÒÎÂÀÐ";
CPU_INT08U const SubjSellList_str1[] = "ÐÀÁÎÒÀ";
CPU_INT08U const SubjSellList_str2[] = "ÓÑËÓÃÀ";
CPU_INT08U const *SubjSellList[] = {SubjSellList_str0, SubjSellList_str1, SubjSellList_str2};
TDataDescStruct const SubjSellDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, SubjSell), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&SubjSellRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SubjSellName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
SubjSellList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Òèï êîìàíä ðàáîòû ñ ÷åêîì
*************************************/
TRangeValueULONG const CommandV2Range = {0, 1};
CPU_INT08U const CommandV2Name[] = "Òèï êîìàíä";
CPU_INT08U const CommandV2List_str0[] = "ñòàðûé";
CPU_INT08U const CommandV2List_str1[] = "V2";
CPU_INT08U const *CommandV2List[] = {CommandV2List_str0, CommandV2List_str1};
TDataDescStruct const CommandV2Desc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CommandV2), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CommandV2Range, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CommandV2Name, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CommandV2List, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Íàçâàíèå óñëóãè
*************************************/
TRangeValueULONG const ServiceNameRange = {0, 1};
CPU_INT08U const ServiceNameName[] = "Òîâàð";
CPU_INT08U const ServiceNameList_str0[] = "Æåòîí";
CPU_INT08U const ServiceNameList_str1[] = "Óñëóãè ìîéêè";
CPU_INT08U const *ServiceNameList[] = {ServiceNameList_str0, ServiceNameList_str1};
void OnChangeServiceName(void)
{
CPU_INT08U flag[4] = {0, 0, 0, 0};
WriteArrayFram(offsetof(TFramMap, manual_service_flag), 4, (unsigned char*)&flag);
}
TDataDescStruct const ServiceNameDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.ServiceName), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ServiceNameRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeServiceName, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ServiceNameName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ServiceNameList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Äåñêðèïòîð äëÿ ýíåðãîíåçàâèñèìîãî ñîõðàíåíèÿ òåêóùèõ äåíåã
*************************************/
TDataDescStruct const AcceptedMoneyDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, FRAM_AcceptedMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äåñêðèïòîð Crc16 ýíåðãîíåçàâèñèìîãî ñîõðàíåíèÿ òåêóùèõ äåíåã
*************************************/
TDataDescStruct const AcceptedMoneyCRC16Desc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, crc_AcceptedMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äåñêðèïòîð ïàðîëÿ
*************************************/
TRangeValueULONG const PassRange = {0, 9999};
CPU_INT08U const PassName[] = " ÏÀÐÎËb";
void OnChangePass(void)
{
// îáíîâèì CRC ïàðîëÿ
CPU_INT32U pass,crc;
GetData(&PassDesc, &pass, 0, DATA_FLAG_SYSTEM_INDEX);
crc = crc16((unsigned char*)&pass, sizeof(CPU_INT32U));
SetData(&PassCRCDesc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
TDataDescStruct const PassDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Pass), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangePass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&PassName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
DEFAULT_PASSWORD
};
/*************************************
Äåñêðèïòîð CRC ïàðîëÿ
*************************************/
TDataDescStruct const PassCRCDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, crc_Pass), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äåñêðèïòîð âðåìåííîãî ïàðîëÿ
*************************************/
CPU_INT32U TempPass = 0;
void OnChangeTempPass(void)
{
CPU_INT32U pass;
GetData(&PassDesc, &pass, 0, DATA_FLAG_SYSTEM_INDEX);
if (GetCurrentMenu() == SetPassMenuPanel)
{ // óòàíîâêà íîâîãî ïàðîëÿ
if (pass != TempPass)
{
SaveEventRecord(0, JOURNAL_EVENT_PASS_FAIL, TempPass);
GoToMenu(ErrorPassPanel);
}
else {GoToPreviousMenu(); GoToMenu(SetNewPassMenuPanel);}
}
else if (GetCurrentMenu() == ResetSettingsMenuPanel)
{ // ñáðîñ íàñòðîåê
if (pass != TempPass)
{
SaveEventRecord(0, JOURNAL_EVENT_PASS_FAIL, TempPass);
GoToMenu(ErrorPassPanel);
}
else {InitByDefault = 1; OnChangeInitByDefault(); GoToPreviousMenu(); GoToMenu(SettingsIsReset);}
}
else if (GetCurrentMenu() == ClearStatMenu)
{ // î÷èñòêà ñòàòèñòèêè
if (pass != TempPass)
{
SaveEventRecord(0, JOURNAL_EVENT_PASS_FAIL, TempPass);
GoToMenu(ErrorPassPanel);
}
else {ClearStatCmd = 1; OnChangeClearStatCmd(); GoToPreviousMenu(); GoToMenu(StatIsReset);}
}
else if (GetCurrentMenu() == ClearJournalMenuPanel)
{ // î÷èñòêà ñòàòèñòèêè
if (pass != TempPass)
{
SaveEventRecord(0, JOURNAL_EVENT_PASS_FAIL, TempPass);
GoToMenu(ErrorPassPanel);
}
else {ClearJournalCmd = 1; OnChangeClearJournalCmd(); GoToPreviousMenu(); GoToMenu(JournalIsReset);}
}
}
TDataDescStruct const PassTempDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&TempPass, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeTempPass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&PassName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
CPU_INT08U const PassTempName1[] = " ÏÀÐÎËb";
TDataDescStruct const PassTempDesc1 = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&TempPass, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeTempPass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&PassTempName1, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
TRangeValueULONG const MasterPassRange = {0, 99999999};
CPU_INT08U const MasterPassTempName[] = "ÏÀÐÎËb";
void OnChangeMasterPass(void)
{
CPU_INT32U pass, crc;
if (TempPass == MASTER_PASSWORD)
{
TempPass = 0;
pass = DEFAULT_PASSWORD;
crc = crc16((unsigned char*)&pass, sizeof(CPU_INT32U));
SetData(&PassDesc, &pass, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&PassCRCDesc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
GoToPreviousMenu();
GoToPreviousMenu();
GoToMenu(SetNewPassMenuPanel);
}
}
TDataDescStruct const MasterPassTempDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&TempPass, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&MasterPassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeMasterPass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&MasterPassTempName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
CPU_INT08U const PassTempName2[] = " ÏÀÐÎËb";
TDataDescStruct const PassTempDesc2 = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&TempPass, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeTempPass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&PassTempName2, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êîìàíäà ïîñëàòü òåñòîâîå ñîîáùåíèå
*************************************/
CPU_INT08U const SendTestEmailName[] = "Îòïð.òåñò";
CPU_INT32U send_test;
void OnChangeSendTestEmail(void)
{
if (send_test)
{
//PostModemTask(MODEM_TASK_SEND_TEST_MSG);
send_test = 0;
}
}
TDataDescStruct const SendTestEmailDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&send_test, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableEmailErrorSendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeSendTestEmail, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SendTestEmailName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DisableFiscalErrorsList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Èíäåêñ íîìèíàëà êóïþðû äëÿ ïðîñìîòðà ñ÷åò÷èêîâ ïî íîìèíàëàì
*************************************/
CPU_INT32U BillnomViewIndex;
TRangeValueULONG const BillnomIndexRange = {0, 23};
CPU_INT08U const BillnomName[] = " ÍÎÌÈÍÀË #";
CPU_INT08U const* BillnomItems[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"};
TDataDescStruct const BillnomIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
&BillnomViewIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&BillnomIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BillnomName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
BillnomItems, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Çíà÷åíèå íîìèíàëà êóïþðû äëÿ ïðîñìîòðà ñ÷åò÷èêîâ
*************************************/
CPU_INT08U const BillnomValName[] = "Çíà÷åíèå,ðóá.";
TDataDescStruct const BillnomDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
24, // ðàçìåð ìàññèâà
(void*)&BillnomIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
NULL, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BillnomValName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Ñ÷åò÷èêè íîìèíàëîâ êóïþð â êóïþðíèêå
*************************************/
CPU_INT08U const BillnomCountersName[] = "Êîë-âî";
TDataDescStruct const BillnomCountersDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
24, // ðàçìåð ìàññèâà
&BillnomIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterBillNominals[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BillnomCountersName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùåå êîëè÷åñòâî êóïþð â êóïþðíèêå
*************************************/
CPU_INT08U const BillCounterName[] = "Âñåãî êóïþð";
TDataDescStruct const BillCounterDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.BillsCount), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BillCounterName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
ID óñòðîéñòâà
*************************************/
CPU_INT08U const DeviceIDName[] = "ID óñò-âà";
TRangeValueULONG const DeviceIDRange = {0, 9999};
TDataDescStruct const DeviceIDDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.DeviceId), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DeviceIDRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
DeviceIDName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Ïðèçíàê îòïðàâêè ñîîáùåíèÿ îá èíêàññàöèè
*************************************/
TDataDescStruct const IncasSendFlagDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, IncasEmailFlag), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äåíüãè îò ïîñëåäíåé èíêàññàöèè
*************************************/
TDataDescStruct const IncasMoneyDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, IncasMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
IP-àäðåñ ñâîé
*************************************/
void OnChangeIpMask()
{
CPU_INT32U ip, mask;
GetData(&IpAddrDesc, &ip, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&NetMaskDesc, &mask, 0, DATA_FLAG_SYSTEM_INDEX);
NetIP_CfgAddrThisHost(ip, mask);
}
CPU_INT08U const IpAddrName[] = "IP";
TDataDescStruct const IpAddrDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_IP_ADDR, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ip), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DeferredStartRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeIpMask, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
IpAddrName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DeferredStartList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0xC0A80064
};
/*************************************
Ìåñêà ñåòè
*************************************/
CPU_INT08U const NetMaskName[] = "MSK";
TDataDescStruct const NetMaskDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_IP_ADDR, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, netmask), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DeferredStartRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeIpMask, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NetMaskName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DeferredStartList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0xFFFFFF00
};
/*************************************
Øëþç
*************************************/
void OnChangeGateway()
{
CPU_INT32U gw;
GetData(&GatewayDesc, &gw, 0, DATA_FLAG_SYSTEM_INDEX);
NetIP_CfgAddrDfltGateway(gw);
}
CPU_INT08U const GatewayName[] = "GW";
TDataDescStruct const GatewayDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_IP_ADDR, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, gateway), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DeferredStartRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeGateway, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
GatewayName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DeferredStartList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0xC0A80001
};
/*************************************
Âðåìÿ ïîñëåäíåé èíêàññàöèè
*************************************/
TDataDescStruct const IncasTimeDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, IncasTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
//**************************************************
//**************************************************
//**************************************************
const TDataDescArrayStruct AllDataArray[] =
{
{&WorkTimeDesc, "WorkTimeDesc"},
{&ChannelIndexDesc, "ChannelIndexDesc"},
{&EnableChannelDesc, "EnableChannelDesc"},
{&EnableValidatorDesc, "EnableValidatorDesc"},
{&EnableModemDesc, "EnableModemDesc"},
{&EnableFiscalDesc, "EnableFiscalDesc"},
{&EnableCoinDesc, "EnableCoinDesc"},
{&TimeOutBeforeDesc, "TimeOutBeforeDesc"},
{&TimeOutAfterDesc, "TimeOutAfterDesc"},
{&MaxWorkTimeDesc, "MaxWorkTimeDesc"},
{&MinWorkTimeDesc, "MinWorkTimeDesc"},
{&WeekEndDesc, "WeekEndDesc"},
{&PeriodWeekendIndexDesc, "PeriodWeekendIndexDesc"},
{&PeriodWeekdaysIndexDesc, "PeriodWeekdaysIndexDesc"},
{&PriceWeekendDesc, "PriceWeekendDesc"},
{&PriceWeekdaysDesc, "PriceWeekdaysDesc"},
{&PriceTimeWeekendDesc, "PriceTimeWeekendDesc"},
{&PriceTimeWeekdaysDesc, "PriceTimeWeekdaysDesc"},
{&T_Start_WeekdaysDesc, "T_Start_WeekdaysDesc"},
{&T_End_WeekdaysDesc, "T_End_WeekdaysDesc"},
{&T_Start_WeekendDesc, "T_Start_WeekendDesc"},
{&T_End_WeekendDesc, "T_End_WeekendDesc"},
{&PrintZReportDesc, "PrintZReportDesc"},
{&PrintXReportDesc, "PrintXReportDesc"},
{&SystemTimeDesc, "SystemTimeDesc"},
{&SystemTimeEditDesc, "SystemTimeEditDesc"},
{&CoinPerPulseDesc, "CoinPerPulseDesc"},
{&BillFormatDesc, "BillFormatDesc"},
{&NameChannelDesc, "NameChannelDesc"},
{&PassDesc, "PassDesc"},
{&DeviceIDDesc, "DeviceIDDesc"},
{&EnableEmailErrorSendDesc, "EnableEmailErrorSendDesc"},
{&EnableEmailJournalSendDesc, "EnableEmailJournalSendDesc"},
{&ClearJournalAfterSendDesc, "ClearJournalAfterSendDesc"},
{&StatSendHourMinDesc, "StatSendHourMinDesc"},
{&SendTestEmailDesc, "SendTestEmailDesc"},
{&BillnomIndexDesc, "BillnomIndexDesc"},
{&DeferredStartDesc, "DeferredStartDesc"},
{&StartButtonNameDesc, "StartButtonNameDesc"},
{&GatewayDesc, "GatewayDesc"},
{&NetMaskDesc, "NetMaskDesc"},
{&IpAddrDesc, "IpAddrDesc"},
{&SelectProtectDesc, "SelectProtectDesc"},
{&PostIpAddrDesc, "PostIpAddrDesc"},
{&PostImpCostDesc, "PostImpCostDesc"},
{&PostLenCostDesc, "PostLenCostDesc"},
{&PostMinutePriceDesc, "PostMinutePriceDesc"},
{&CashModeDesc, "CashModeDesc"},
{&CashPerPulseDesc, "CashPerPulseDesc"},
{&EnableFiscalDayClearDesc, "EnableFiscalDayClearDesc"},
{&PrintTimeoutDesc, "PrintTimeoutDesc"},
{&PriceDesc, "PriceDesc"},
{&ServiceNameDesc, "ServiceNameDesc"},
{&CashPulseLenDesc, "CashPulseLenDesc"},
{&CashPauseLenDesc, "CashPauseLenDesc"},
{&TaxSystemDesc, "TaxSystemDesc"},
{&TaxFormatDesc, "TaxFormatDesc"},
{&SubjSellDesc, "SubjSellDesc"},
{&CommandV2Desc, "CommandV2Desc"},
{&ServiceNameDesc, "ServiceNameDesc"},
{&PrintModeDesc, "PrintModeDesc"},
{&PrintTimeoutAfterDesc, "PrintTimeoutAfterDesc"},
{NULL, ""}
};