привидение меню настроек оборудования к общему виду

1 час
This commit is contained in:
Dmitriy 2021-02-11 22:04:50 +03:00
parent d91ced8f65
commit 0f6c9e54a1
13 changed files with 8465 additions and 8018 deletions

File diff suppressed because it is too large Load Diff

View File

@ -554,7 +554,7 @@ void UserStartupFunc(void)
// запустим валидатор
StartUpValidator();
OSTimeDly(10000);
OSTimeDly(1000);
InitFiscal();
// проинициализируем часы

View File

@ -12,7 +12,7 @@ extern CPU_INT32U incas_common_bill_counter;
#define KBRD_TASK_STK_SIZE 128
#define USER_TASK_STK_SIZE 384
#define MENU_TASK_STK_SIZE 384
#define COIN_TASK_STK_SIZE 128
#define COIN_TASK_STK_SIZE 384
#define VALIDATOR_TASK_STK_SIZE 384
#define FISCAL_TASK_STK_SIZE 384
#define MODEM_TASK_STK_SIZE 768

View File

@ -142,6 +142,63 @@ TDataDescStruct const EnableChannelDesc = {
0
};
/*************************************
Длина импульса входа монетоприемника, мс
*************************************/
TRangeValueULONG const CoinPulseLenRange = {20, 250};
CPU_INT08U const CoinPulseLenName[] = "Длина имп.,мс";
void OnChangeCoinPulseLen()
{
CPU_INT32U pulse, pause;
GetData(&CoinPulseLenDesc, &pulse, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&CoinPauseLenDesc, &pause, 0, DATA_FLAG_SYSTEM_INDEX);
SetCoinPulseParam(pulse, pause);
}
TDataDescStruct const CoinPulseLenDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, coin_pulse_len), // указатель на переменную или адрес FRAM
(void*)&CoinPulseLenRange, // указатель на границы параметра
OnChangeCoinPulseLen, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
CoinPulseLenName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
50
};
/*************************************
Длина паузы входа монетника, мс
*************************************/
TRangeValueULONG const CoinPauseLenRange = {20, 250};
CPU_INT08U const CoinPauseLenName[] = "Пауза имп.,мс";
TDataDescStruct const CoinPauseLenDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, coin_pause_len), // указатель на переменную или адрес FRAM
(void*)&CoinPauseLenRange, // указатель на границы параметра
OnChangeCoinPulseLen, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
CoinPauseLenName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
20
};
/*************************************
Длина импульса входа купюрника, мс
*************************************/
@ -199,6 +256,186 @@ TDataDescStruct const CashPauseLenDesc = {
20
};
/*************************************
Длина импульса входа банковского терминала, мс
*************************************/
TRangeValueULONG const BankPulseLenRange = {20, 250};
CPU_INT08U const BankPulseLenName[] = "Длина имп.,мс";
void OnChangeBankPulseLen()
{
CPU_INT32U pulse, pause;
GetData(&BankPulseLenDesc, &pulse, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&BankPauseLenDesc, &pause, 0, DATA_FLAG_SYSTEM_INDEX);
SetBankPulseParam(pulse, pause);
}
TDataDescStruct const BankPulseLenDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, bank_pulse_len), // указатель на переменную или адрес FRAM
(void*)&BankPulseLenRange, // указатель на границы параметра
OnChangeBankPulseLen, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
BankPulseLenName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
50
};
/*************************************
Длина паузы входа банковского терминала, мс
*************************************/
TRangeValueULONG const BankPauseLenRange = {20, 250};
CPU_INT08U const BankPauseLenName[] = "Пауза имп.,мс";
TDataDescStruct const BankPauseLenDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, bank_pause_len), // указатель на переменную или адрес FRAM
(void*)&BankPauseLenRange, // указатель на границы параметра
OnChangeBankPulseLen, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
BankPauseLenName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
20
};
/*************************************
Цена импульса банковского терминала в импульсном режиме
*************************************/
TRangeValueULONG const BankPerPulseRange = {1, 9999};
CPU_INT08U const BankPerPulseName[] = "Руб./имп.";
TDataDescStruct const BankPerPulseDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, DeviceConfig.BankPerPulse), // указатель на переменную или адрес FRAM
(void*)&BankPerPulseRange, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
BankPerPulseName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
10 // значение по умолчанию
};
void OnChangeLevel()
{
CPU_INT32U level1, level2, level3;
GetData(&CashLevelDesc, &level1, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&BankLevelDesc, &level2, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&CoinLevelDesc, &level3, 0, DATA_FLAG_SYSTEM_INDEX);
SetLevelParam(level1, level2, level3);
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr = 0;
#endif
OS_ENTER_CRITICAL();
InitInputPorts();
OS_EXIT_CRITICAL();
}
void OnChangeLevelWithoutInit()
{
CPU_INT32U level1, level2, level3;
GetData(&CashLevelDesc, &level1, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&BankLevelDesc, &level2, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&CoinLevelDesc, &level3, 0, DATA_FLAG_SYSTEM_INDEX);
SetLevelParam(level1, level2, level3);
}
/*************************************
Уровень сигнала монетника
*************************************/
TRangeValueULONG const LevelRange = {0, 1};
CPU_INT08U const LevelName[] = "Уровень";
CPU_INT08U const Level_str0[] = "LOW";
CPU_INT08U const Level_str1[] = "HIGH";
CPU_INT08U const *LevelList[] = {Level_str0, Level_str1};
TDataDescStruct const CoinLevelDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, DeviceConfig.CoinLevel), // указатель на переменную или адрес FRAM
(void*)&LevelRange, // указатель на границы параметра
OnChangeLevel, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
LevelName, // указатель на строку названия параметра
DATA_IS_INDEX, // признак индексного параметра (список строк)
LevelList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0 // значение по умолчанию
};
/*************************************
Уровень сигнала купюрника
*************************************/
TDataDescStruct const CashLevelDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, DeviceConfig.CashLevel), // указатель на переменную или адрес FRAM
(void*)&LevelRange, // указатель на границы параметра
OnChangeLevel, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
LevelName, // указатель на строку названия параметра
DATA_IS_INDEX, // признак индексного параметра (список строк)
LevelList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0 // значение по умолчанию
};
/*************************************
Уровень сигнала банковского терминала
*************************************/
TDataDescStruct const BankLevelDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, DeviceConfig.BankLevel), // указатель на переменную или адрес FRAM
(void*)&LevelRange, // указатель на границы параметра
OnChangeLevel, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
LevelName, // указатель на строку названия параметра
DATA_IS_INDEX, // признак индексного параметра (список строк)
LevelList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0 // значение по умолчанию
};
/*************************************
IP-адрес поста
*************************************/
@ -408,6 +645,30 @@ TDataDescStruct const EnableValidatorDesc = {
1 // значение по умолчанию
};
/*************************************
Включение банковского терминала
*************************************/
TRangeValueULONG const EnableBankRange = {0, 1};
CPU_INT08U const EnableBankName[] = "Банк.термин.";
TDataDescStruct const EnableBankDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, DeviceConfig.EnableBank), // указатель на переменную или адрес FRAM
(void*)&EnableBankRange, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
EnableBankName, // указатель на строку названия параметра
DATA_IS_INDEX, // признак индексного параметра (список строк)
EnableValidatorList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0 // значение по умолчанию
};
/*************************************
Включение модема
*************************************/
@ -3135,6 +3396,30 @@ TDataDescStruct const IncasTimeDesc = {
0
};
/*************************************
Стоимость жетона, руб. хоппера
*************************************/
CPU_INT08U const HopperCostName[] = "Жетон, руб";
TRangeValueULONG const HopperCostRange = {0, 9999};
TDataDescStruct const HopperCostDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, DeviceConfig.hopperCost), // указатель на переменную или адрес FRAM
(void*)&HopperCostRange, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
HopperCostName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
10
};
//**************************************************
//**************************************************
//**************************************************
@ -3211,8 +3496,19 @@ const TDataDescArrayStruct AllDataArray[] =
{&CashPulseLenDesc, "CashPulseLenDesc"},
{&CashPauseLenDesc, "CashPauseLenDesc"},
{&EnableBankDesc, "EnableBankDesc"},
{&BankPerPulseDesc, "BankPerPulseDesc"},
{&BankPulseLenDesc, "BankPulseLenDesc"},
{&BankPauseLenDesc, "BankPauseLenDesc"},
{&BankLevelDesc, "BankLevelDesc"},
{&CashLevelDesc, "CashLevelDesc"},
{&CoinLevelDesc, "CoinLevelDesc"},
{&CoinPulseLenDesc, "CoinPulseLenDesc"},
{&CoinPauseLenDesc, "CoinPauseLenDesc"},
{&HopperCostDesc, "HopperCostDesc"},
{NULL, ""}
};

View File

@ -56,11 +56,12 @@ typedef struct{
}TChannelConfig;
// ñòðóêòóðà êîíôèãóðàöèè àïïàðàòóðû
typedef struct{
CPU_INT32U EnableValidator;
CPU_INT32U EnableCoinAcceptor;
CPU_INT32U EnableBank;
CPU_INT32U EnableModem;
CPU_INT32U EnableFiscal;
CPU_INT32U EnableFiscalDayClear;
@ -79,6 +80,13 @@ typedef struct{
CPU_INT32U CashMode;
CPU_INT32U CashPerPulse; // öåíà èìïóëüñà êóïþðíèêà
CPU_INT32U BankPerPulse; // öåíà èìïóëüñà áàíêîâñêîãî òåðìèíàëà
CPU_INT32U CoinLevel; // óðîâåíü ñèãíàëà ìîíåòíèêà
CPU_INT32U CashLevel; // óðîâåíü ñèãíàëà êóïþðíèêà
CPU_INT32U BankLevel; // óðîâåíü ñèãíàëà áàíêîâñêîãî òåðìèíàëà
CPU_INT32U PrintTimeout;
CPU_INT32U PrintTimeoutAfter;
@ -86,8 +94,14 @@ typedef struct{
CPU_INT32U DeviceId;
// íàñòðîéêè õîïïåðà
CPU_INT32U hopperCost;
}TDeviceConfig;
extern void OnChangeCashPulseLen();
extern void OnChangeCoinPulseLen();
extern void OnChangeSinalPulseLen();
extern CPU_INT32U PeriodIndex;
extern CPU_INT32U ChannelIndex;
@ -227,4 +241,21 @@ extern TDataDescStruct const SubjSellDesc;
extern TDataDescStruct const CommandV2Desc;
extern TDataDescStruct const TaxSystemDesc;
extern void OnChangeBankPulseLen();
extern TDataDescStruct const BankPerPulseDesc;
extern TDataDescStruct const BankPulseLenDesc;
extern TDataDescStruct const BankPauseLenDesc;
extern TDataDescStruct const BankLevelDesc;
extern TDataDescStruct const CashLevelDesc;
extern TDataDescStruct const CoinLevelDesc;
extern TDataDescStruct const EnableBankDesc;
extern TDataDescStruct const CoinPulseLenDesc;
extern TDataDescStruct const CoinPauseLenDesc;
extern TDataDescStruct const HopperCostDesc;
#endif //#ifndef _DATADESC_H_

View File

@ -50,9 +50,18 @@ typedef struct
CPU_INT08U manual_service_flag[4];
char manual_service_name[32];
// íàñòðîéêè ìîíåòíèêà
CPU_INT32U coin_pulse_len;
CPU_INT32U coin_pause_len;
// íàñòðîéêè êóïþðíèêà
CPU_INT32U cash_pulse_len;
CPU_INT32U cash_pause_len;
// íàñòðîéêè áàíêîâñêîãî òåðìèíàëà
CPU_INT32U bank_pulse_len;
CPU_INT32U bank_pause_len;
CPU_INT32U TaxFormat;
CPU_INT32U SubjSell;
CPU_INT32U CommandV2;

View File

@ -845,8 +845,9 @@ const TMenuPanel PriceWeekendMenuPanel[] = {arr_PriceMenuArrayWend, OnEnterPanel
const CPU_INT08U str_DeviceMenu_0[] = " ÎÁÎÐÓÄÎÂÀÍÈÅ";
const CPU_INT08U str_DeviceMenu_1[] = "ÔÐ";
const CPU_INT08U str_DeviceMenu_2[] = "Ìîíåòîïðèåìíèê";
const CPU_INT08U str_DeviceMenu_3[] = "Ìîäåì";
const CPU_INT08U str_DeviceMenu_3[] = "Áàíê.òåðìèíàë";
const CPU_INT08U str_DeviceMenu_4[] = "Êóïþðîïðèåìíèê";
const CPU_INT08U str_DeviceMenu_5[] = "Õîïïåð";
const TMenuLine line_DeviceMenu_0 = {
MENU_LINE_STRING, // òèï ïóíêòà ìåíþ
@ -880,11 +881,18 @@ const TMenuLine line_DeviceMenu_4 = {
MENU_LINE_GOTO_MENU, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)str_DeviceMenu_3, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&ModemSetupPanel // ïàíåëü äëÿ ïåðåõîäà
(void*)&BankSetupPanel // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_DeviceMenuArray[] = {&line_DeviceMenu_0, &line_DeviceMenu_1, &line_DeviceMenu_2, &line_DeviceMenu_3, &line_DeviceMenu_4, NULL};
const TMenuPanel DeviceMenuPanel[] = {arr_DeviceMenuArray, NULL, 5, MENU_PANEL_STANDARD};
const TMenuLine line_DeviceMenu_5 = {
MENU_LINE_GOTO_MENU, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)str_DeviceMenu_5, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&HopperSetupPanel // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_DeviceMenuArray[] = {&line_DeviceMenu_0, &line_DeviceMenu_1, &line_DeviceMenu_2, &line_DeviceMenu_3, &line_DeviceMenu_4, &line_DeviceMenu_5, NULL};
const TMenuPanel DeviceMenuPanel[] = {arr_DeviceMenuArray, NULL, 6, MENU_PANEL_STANDARD};
/***********************************
@ -1013,8 +1021,29 @@ const TMenuLine line_CoinMenu_2 = {
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_CoinMenuArray[] = {&line_CoinMenu_0, &line_CoinMenu_1, &line_CoinMenu_2, NULL};
const TMenuPanel CoinSetupPanel[] = {arr_CoinMenuArray, NULL, 3, MENU_PANEL_STANDARD};
const TMenuLine line_CoinMenu_3 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CoinPulseLenDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_CoinMenu_4 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CoinPauseLenDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_CoinMenu_5 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CoinLevelDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_CoinMenuArray[] = {&line_CoinMenu_0, &line_CoinMenu_1, &line_CoinMenu_2, &line_CoinMenu_3, &line_CoinMenu_4, &line_CoinMenu_5, NULL};
const TMenuPanel CoinSetupPanel[] = {arr_CoinMenuArray, NULL, 6, MENU_PANEL_STANDARD};
/***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÊÓÏÞÐÎÏÐÈÅÌÍÈÊÀ
@ -1066,6 +1095,78 @@ const TMenuLine line_CashMenu_5 = {
const TMenuLineArray arr_ValidatorMenuArray[] = {&line_CashMenu_0, &line_CashMenu_1, &line_CashMenu_2, &line_CashMenu_3, &line_CashMenu_4, &line_CashMenu_5, NULL};
const TMenuPanel ValidatorSetupPanel[] = {arr_ValidatorMenuArray, NULL, 6, MENU_PANEL_STANDARD};
/***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÁÀÍÊÎÂÑÊÈÕ ÒÅÐÌÈÍÀËÎÂ
***********************************/
const CPU_INT08U str_BankMenu_0[] = "ÍÀÑÒÐ.ÁÀÍÊ.ÒÅÐÌ";
const TMenuLine line_BankMenu_0 = {
MENU_LINE_STRING, // òèï ïóíêòà ìåíþ
MENU_FIXED_LINE, // äîï. ôëàãè
(void*)str_CashMenu_0, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_BankMenu_1 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&EnableBankDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_BankMenu_3 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&BankPerPulseDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_BankMenu_4 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&BankPulseLenDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_BankMenu_5 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&BankPauseLenDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_BankMenu_6 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&BankLevelDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_BankMenuArray[] = {&line_BankMenu_0, &line_BankMenu_1, &line_BankMenu_3, &line_BankMenu_4, &line_BankMenu_5, &line_BankMenu_6, NULL};
const TMenuPanel BankSetupPanel[] = {arr_BankMenuArray, NULL, 6, MENU_PANEL_STANDARD};
/***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÕÎÏÏÅÐÀ
***********************************/
const CPU_INT08U str_HopperMenu_0[] = "ÍÀÑÒÐÎéÊÈ ÕÎÏÏÅÐÀ";
const TMenuLine line_HopperMenu_0 = {
MENU_LINE_STRING, // òèï ïóíêòà ìåíþ
MENU_FIXED_LINE, // äîï. ôëàãè
(void*)str_HopperMenu_0, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_HopperMenu_1 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&HopperCostDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_HopperMenuArray[] = {&line_HopperMenu_0, &line_HopperMenu_1, NULL};
const TMenuPanel HopperSetupPanel[] = {arr_HopperMenuArray, NULL, 2, MENU_PANEL_STANDARD};
/***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÌÎÄÅÌÀ
***********************************/

View File

@ -20,6 +20,8 @@ extern const TMenuPanel CommonCountersLongPanel[];
extern const TMenuPanel BillCountersPanel[];
extern const TMenuPanel ModemSetupPanel[];
extern const TMenuPanel CoinSetupPanel[];
extern const TMenuPanel BankSetupPanel[];
extern const TMenuPanel HopperSetupPanel[];
extern const TMenuPanel JournalIsReset[];
extern const TMenuPanel ClearJournalMenuPanel[];
extern const TMenuPanel StatIsReset[];

View File

@ -59,17 +59,53 @@ CPU_INT32U period_bank;
CPU_INT32U period_signal;
CPU_INT32U period_hopper;
void SetCoinPulseParam(CPU_INT32U pulse, CPU_INT32U pause)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr = 0;
#endif
OS_ENTER_CRITICAL();
coin_pulse = pulse * 1;
coin_pause = pause;
OS_EXIT_CRITICAL();
}
void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr = 0;
#endif
OS_ENTER_CRITICAL();
cash_pulse = pulse * 100;
cash_pulse = pulse * 1;
cash_pause = pause;
OS_EXIT_CRITICAL();
}
void SetBankPulseParam(CPU_INT32U pulse, CPU_INT32U pause)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr = 0;
#endif
OS_ENTER_CRITICAL();
bank_pulse = pulse * 1;
bank_pause = pause;
OS_EXIT_CRITICAL();
}
void SetLevelParam(CPU_INT32U level1, CPU_INT32U level2, CPU_INT32U level3)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr = 0;
#endif
OS_ENTER_CRITICAL();
cashLevel = level1;
bankLevel = level2;
coinLevel = level3;
OS_EXIT_CRITICAL();
}
void CoinTask(void *p_arg)
{
CPU_INT32U enable_coin;
@ -486,7 +522,7 @@ void InitImpInput (void)
OnChangeCoinPulseLen();
OnChangeCashPulseLen();
OnChangeBankPulseLen();
OnChangeHopperPulseLen();
//OnChangeHopperPulseLen();
OS_ENTER_CRITICAL();

View File

@ -15,9 +15,14 @@ extern CPU_INT32U GetCoinCount(void);
extern CPU_INT32U GetResetCoinCount(void);
extern void CoinDisable(void);
extern void CoinEnable(void);
extern void InitInputPorts();
extern CPU_INT32U GetCashCount(void);
extern CPU_INT32U GetResetCashCount(void);
extern void SetCoinPulseParam(CPU_INT32U pulse, CPU_INT32U pause);
extern void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause);
extern void SetBankPulseParam(CPU_INT32U pulse, CPU_INT32U pause);
extern void SetLevelParam(CPU_INT32U level1, CPU_INT32U level2, CPU_INT32U level3);
#define BIT(bit) (1UL << (bit))

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0
ByteLimit=50
[DebugChecksum]
Checksum=803613283
Checksum=-314564541
[Exceptions]
StopOnUncaught=_ 0
StopOnThrow=_ 0

View File

@ -2,57 +2,47 @@
<Workspace>
<ConfigDictionary>
<CurrentConfigs>
<Project>sk-mlpc2368/Flash Central</Project>
</CurrentConfigs>
</ConfigDictionary>
<CurrentConfigs><Project>sk-mlpc2368/Flash Central</Project></CurrentConfigs></ConfigDictionary>
<Desktop>
<Static>
<Workspace>
<ColumnWidths>
<Column0>177</Column0>
<Column1>27</Column1>
<Column2>27</Column2>
<Column3>27</Column3>
</ColumnWidths>
<Column0>177</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Build>
<ColumnWidth0>20</ColumnWidth0>
<ColumnWidth1>980</ColumnWidth1>
<ColumnWidth2>261</ColumnWidth2>
<ColumnWidth3>65</ColumnWidth3>
</Build>
<ColumnWidth0>20</ColumnWidth0><ColumnWidth1>980</ColumnWidth1><ColumnWidth2>261</ColumnWidth2><ColumnWidth3>65</ColumnWidth3></Build>
<Find-in-Files>
<ColumnWidth0>470</ColumnWidth0>
<ColumnWidth1>67</ColumnWidth1>
<ColumnWidth2>806</ColumnWidth2>
</Find-in-Files>
<ColumnWidth0>470</ColumnWidth0><ColumnWidth1>67</ColumnWidth1><ColumnWidth2>806</ColumnWidth2></Find-in-Files>
<TerminalIO/>
</Static>
<Windows>
<Wnd2>
<Wnd0>
<Tabs>
<Tab>
<Identity>TabID-22094-17165</Identity>
<TabName>Workspace</TabName>
<Factory>Workspace</Factory>
<Session>
<NodeDict>
<ExpandedNode>sk-mlpc2368</ExpandedNode>
<ExpandedNode>sk-mlpc2368/PROJECT</ExpandedNode>
<ExpandedNode>sk-mlpc2368/PROJECT/app</ExpandedNode>
<ExpandedNode>sk-mlpc2368/PROJECT/drivers</ExpandedNode>
<ExpandedNode>sk-mlpc2368/PROJECT/drivers/ccnet</ExpandedNode>
<ExpandedNode>sk-mlpc2368/PROJECT/drivers/lcd</ExpandedNode>
<ExpandedNode>sk-mlpc2368/PROJECT/menu</ExpandedNode>
<ExpandedNode>sk-mlpc2368/PROJECT/services</ExpandedNode>
</NodeDict>
</Session>
<NodeDict><ExpandedNode>sk-mlpc2368</ExpandedNode><ExpandedNode>sk-mlpc2368/PROJECT</ExpandedNode><ExpandedNode>sk-mlpc2368/PROJECT/app</ExpandedNode><ExpandedNode>sk-mlpc2368/PROJECT/data</ExpandedNode><ExpandedNode>sk-mlpc2368/PROJECT/drivers</ExpandedNode><ExpandedNode>sk-mlpc2368/PROJECT/drivers/ccnet</ExpandedNode><ExpandedNode>sk-mlpc2368/PROJECT/drivers/lcd</ExpandedNode><ExpandedNode>sk-mlpc2368/PROJECT/menu</ExpandedNode><ExpandedNode>sk-mlpc2368/PROJECT/services</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab>
</Wnd2>
<Wnd3>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs>
<Tab>
<Identity>TabID-15821-17283</Identity>
@ -67,168 +57,21 @@
<Session/>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab>
</Wnd3>
</Windows>
<SelectedTab>0</SelectedTab></Wnd1></Windows>
<Editor>
<Pane>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename>
<XPos>0</XPos>
<YPos>566</YPos>
<SelStart>18843</SelStart>
<SelEnd>18843</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\services\validator.c</Filename>
<XPos>0</XPos>
<YPos>338</YPos>
<SelStart>8384</SelStart>
<SelEnd>8384</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\services\coin.c</Filename>
<XPos>0</XPos>
<YPos>221</YPos>
<SelStart>5327</SelStart>
<SelEnd>5327</SelEnd>
</Tab>
<ActiveTab>2</ActiveTab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\services\coin.h</Filename>
<XPos>0</XPos>
<YPos>0</YPos>
<SelStart>741</SelStart>
<SelEnd>741</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\services\time.c</Filename>
<XPos>0</XPos>
<YPos>55</YPos>
<SelStart>1532</SelStart>
<SelEnd>1532</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\drivers\ccnet\CCRSProtocol.h</Filename>
<XPos>0</XPos>
<YPos>0</YPos>
<SelStart>434</SelStart>
<SelEnd>434</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename>
<XPos>0</XPos>
<YPos>27</YPos>
<SelStart>1127</SelStart>
<SelEnd>1127</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename>
<XPos>0</XPos>
<YPos>201</YPos>
<SelStart>7402</SelStart>
<SelEnd>7402</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename>
<XPos>0</XPos>
<YPos>136</YPos>
<SelStart>6348</SelStart>
<SelEnd>6348</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\OS\bsp\iolpc2368.h</Filename>
<XPos>0</XPos>
<YPos>797</YPos>
<SelStart>17962</SelStart>
<SelEnd>17962</SelEnd>
</Tab>
</Pane>
<ActivePane>0</ActivePane>
<Sizes>
<Pane>
<X>1000000</X>
<Y>1000000</Y>
</Pane>
</Sizes>
<SplitMode>1</SplitMode>
</Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>532</YPos><SelStart>18305</SelStart><SelEnd>18305</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\validator.c</Filename><XPos>0</XPos><YPos>338</YPos><SelStart>8384</SelStart><SelEnd>8384</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>511</YPos><SelStart>11916</SelStart><SelEnd>11916</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.h</Filename><XPos>0</XPos><YPos>3</YPos><SelStart>485</SelStart><SelEnd>485</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>55</YPos><SelStart>1532</SelStart><SelEnd>1532</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\ccnet\CCRSProtocol.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>434</SelStart><SelEnd>434</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>360</SelStart><SelEnd>360</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>73</YPos><SelStart>2838</SelStart><SelEnd>2838</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>3399</YPos><SelStart>157293</SelStart><SelEnd>157293</SelEnd></Tab><ActiveTab>8</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\iolpc2368.h</Filename><XPos>0</XPos><YPos>797</YPos><SelStart>17962</SelStart><SelEnd>17962</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>176</SelStart><SelEnd>176</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>879</YPos><SelStart>37022</SelStart><SelEnd>37022</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>779</SelStart><SelEnd>779</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>33</YPos><SelStart>1131</SelStart><SelEnd>1131</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\bsp.c</Filename><XPos>0</XPos><YPos>278</YPos><SelStart>11612</SelStart><SelEnd>11612</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
<Top>
<Row0>
<Sizes>
<Toolbar-04b829c8>
<key>iaridepm.enu1</key>
</Toolbar-04b829c8>
</Sizes>
</Row0>
<Row1>
<Sizes/>
</Row1>
</Top>
<Left>
<Row0>
<Sizes>
<Wnd2>
<Rect>
<Top>-2</Top>
<Left>-2</Left>
<Bottom>517</Bottom>
<Right>268</Right>
<x>-2</x>
<y>-2</y>
<xscreen>200</xscreen>
<yscreen>200</yscreen>
<sizeHorzCX>146413</sizeHorzCX>
<sizeHorzCY>275862</sizeHorzCY>
<sizeVertCX>197657</sizeVertCX>
<sizeVertCY>715862</sizeVertCY>
</Rect>
</Wnd2>
</Sizes>
</Row0>
</Left>
<Right>
<Row0>
<Sizes/>
</Row0>
</Right>
<Bottom>
<Row0>
<Sizes>
<Wnd3>
<Rect>
<Top>-2</Top>
<Left>-2</Left>
<Bottom>163</Bottom>
<Right>1368</Right>
<x>-2</x>
<y>-2</y>
<xscreen>1370</xscreen>
<yscreen>165</yscreen>
<sizeHorzCX>1002928</sizeHorzCX>
<sizeHorzCY>227586</sizeHorzCY>
<sizeVertCX>146413</sizeVertCX>
<sizeVertCY>275862</sizeVertCY>
</Rect>
</Wnd3>
</Sizes>
</Row0>
</Bottom>
<Float>
<Sizes/>
</Float>
</Positions>
<Top><Row0><Sizes><Toolbar-049429c8><key>iaridepm.enu1</key></Toolbar-049429c8></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>517</Bottom><Right>268</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>146413</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>197657</sizeVertCX><sizeVertCY>715862</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>163</Bottom><Right>1368</Right><x>-2</x><y>-2</y><xscreen>1370</xscreen><yscreen>165</yscreen><sizeHorzCX>1002928</sizeHorzCX><sizeHorzCY>227586</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>275862</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>

File diff suppressed because it is too large Load Diff