mirror of
https://github.com/dimoniche/Moyka.git
synced 2026-01-29 17:33:33 +03:00
добавил банковские терминалы
This commit is contained in:
parent
e7ad361aea
commit
864b5670bf
@ -45,10 +45,16 @@ void UserPrintThanksMenu(int post);
|
||||
void UserPrintFirstMenu(void);
|
||||
void UserPrintErrorMenu(void);
|
||||
CPU_INT32U GetChannelsTimeForFree(CPU_INT08U ch);
|
||||
|
||||
void LoadAcceptedMoney(void);
|
||||
void SetAcceptedMoney(CPU_INT32U money,int post);
|
||||
void ClearAcceptedMoney(int post);
|
||||
CPU_INT32U GetAcceptedMoney(int post);
|
||||
|
||||
void SetAcceptedBankMoney(CPU_INT32U money,int post);
|
||||
void ClearAcceptedBankMoney(int post);
|
||||
CPU_INT32U GetAcceptedBankMoney(int post);
|
||||
|
||||
void InitPass(void);
|
||||
int CheckChannelEnabled(CPU_INT08U channel);
|
||||
int ChannelBusy(CPU_INT08U ch);
|
||||
@ -97,8 +103,9 @@ washStateEnum wash_State[COUNT_POST + COUNT_VACUUM] = {waitMoney, waitMoney, wai
|
||||
int countSecWait[COUNT_POST + COUNT_VACUUM] = {0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
||||
CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U cash_enable[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U enable_signal[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U cash_enable[COUNT_POST];
|
||||
CPU_INT32U bank_enable[COUNT_POST];
|
||||
CPU_INT32U enable_signal[COUNT_POST];
|
||||
|
||||
void DrawMenu(void)
|
||||
{
|
||||
@ -108,10 +115,10 @@ void DrawMenu(void)
|
||||
{
|
||||
if((enable_coin[currentPosition]
|
||||
|| cash_enable[currentPosition]
|
||||
|| enable_signal[currentPosition])
|
||||
&& currentPosition < COUNT_POST) break;
|
||||
else if((enable_coin[currentPosition]
|
||||
|| enable_signal[currentPosition])
|
||||
|| bank_enable[currentPosition]
|
||||
|| enable_signal[currentPosition])
|
||||
&& currentPosition < COUNT_POST) break;
|
||||
else if((enable_coin[currentPosition])
|
||||
&& currentPosition >= COUNT_POST) break;
|
||||
}
|
||||
|
||||
@ -188,13 +195,15 @@ void UserAppTask(void *p_arg)
|
||||
break;
|
||||
}
|
||||
|
||||
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
|
||||
for(int post = 0; post < COUNT_POST; post++)
|
||||
{
|
||||
GetData(&EnableCoinDesc, &enable_coin[post], post, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&EnableValidatorDesc, &cash_enable[post], post, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&EnableBankDesc, &bank_enable[post], post, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&EnableSignalDesc, &enable_signal[post], post, DATA_FLAG_DIRECT_INDEX);
|
||||
|
||||
accmoney = GetAcceptedMoney(post);
|
||||
accmoney += GetAcceptedBankMoney(post);
|
||||
|
||||
if (accmoney > 0)
|
||||
{
|
||||
@ -235,6 +244,22 @@ void UserAppTask(void *p_arg)
|
||||
}
|
||||
}
|
||||
|
||||
for(int post = COUNT_POST; post < COUNT_POST + COUNT_VACUUM; post++)
|
||||
{
|
||||
accmoney = GetAcceptedMoney(post);
|
||||
|
||||
if (accmoney > 0)
|
||||
{
|
||||
// äëÿ ìîíåòîïðèåìíèêîâ ïûëåñîñîâ - ïå÷àòü ÷åêà ïî òàéìàóòó
|
||||
GetData(&CoinTimeOutDesc, &print_timeout, post, DATA_FLAG_DIRECT_INDEX);
|
||||
|
||||
if (labs(OSTimeGet() - money_timestamp[post]) > 1000UL * print_timeout)
|
||||
{
|
||||
PostUserEvent(EVENT_CASH_PRINT_CHECK_POST1 + post);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ïðèíèìàåì äåíüãè
|
||||
DrawMenu();
|
||||
|
||||
@ -320,7 +345,33 @@ void UserAppTask(void *p_arg)
|
||||
wash_State[number_post] = insertMoney;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case EVENT_BANK_INSERTED_POST1:
|
||||
case EVENT_BANK_INSERTED_POST2:
|
||||
case EVENT_BANK_INSERTED_POST3:
|
||||
case EVENT_BANK_INSERTED_POST4:
|
||||
case EVENT_BANK_INSERTED_POST5:
|
||||
case EVENT_BANK_INSERTED_POST6:
|
||||
{
|
||||
CPU_INT32U cpp = 1;
|
||||
CPU_INT32U money, accmoney;
|
||||
int number_post = event - EVENT_BANK_INSERTED_POST1;
|
||||
|
||||
GetData(&BankPerPulseDesc, &cpp, number_post, DATA_FLAG_DIRECT_INDEX);
|
||||
|
||||
money = cpp * GetResetbankCount(number_post) + testMoney;
|
||||
|
||||
accmoney = GetAcceptedBankMoney(number_post);
|
||||
accmoney += money;
|
||||
SetAcceptedBankMoney(accmoney, number_post);
|
||||
money_timestamp[number_post] = OSTimeGet();
|
||||
|
||||
if (money) SaveEventRecord(number_post, JOURNAL_EVENT_MONEY_NOTE_POST1 + number_post, money);
|
||||
|
||||
wash_State[number_post] = insertMoney;
|
||||
}
|
||||
break;
|
||||
|
||||
case EVENT_KEY_CANSEL:
|
||||
break;
|
||||
|
||||
@ -387,13 +438,13 @@ void UserAppTask(void *p_arg)
|
||||
case EVENT_STOP_MONEY_POST4:
|
||||
case EVENT_STOP_MONEY_POST5:
|
||||
case EVENT_STOP_MONEY_POST6:
|
||||
case EVENT_STOP_MONEY_VACUUM1:
|
||||
case EVENT_STOP_MONEY_VACUUM2:
|
||||
if (GetMode() == MODE_WORK) //
|
||||
{
|
||||
int number_post = event - EVENT_STOP_MONEY_POST1;
|
||||
|
||||
accmoney = GetAcceptedMoney(number_post);
|
||||
accmoney += GetAcceptedBankMoney(number_post);
|
||||
|
||||
if (accmoney > 0)
|
||||
{
|
||||
wash_State[number_post] = washing;
|
||||
@ -407,14 +458,14 @@ void UserAppTask(void *p_arg)
|
||||
case EVENT_WAIT_CASH_PRINT_CHECK_POST4:
|
||||
case EVENT_WAIT_CASH_PRINT_CHECK_POST5:
|
||||
case EVENT_WAIT_CASH_PRINT_CHECK_POST6:
|
||||
case EVENT_WAIT_CASH_PRINT_CHECK_VACUUM1:
|
||||
case EVENT_WAIT_CASH_PRINT_CHECK_VACUUM2:
|
||||
if (GetMode() == MODE_WORK) //
|
||||
{
|
||||
int number_post = event - EVENT_WAIT_CASH_PRINT_CHECK_POST1;
|
||||
int count_delay = 0;
|
||||
|
||||
accmoney = GetAcceptedMoney(number_post);
|
||||
accmoney += GetAcceptedBankMoney(number_post);
|
||||
|
||||
if (accmoney > 0)
|
||||
{
|
||||
// çàïóñòèì çàäåðæêó ïå÷àòè ÷åêà
|
||||
@ -442,14 +493,46 @@ void UserAppTask(void *p_arg)
|
||||
int number_post = event - EVENT_CASH_PRINT_CHECK_POST1;
|
||||
|
||||
// çäåñü ñîáûòèå ñòàðòà ïå÷àòè ÷åêà - âêëþ÷èëè íàñîñ èëè ïûëåñîñ
|
||||
CPU_INT32U accmoney = GetAcceptedMoney(number_post);
|
||||
accmoney = GetAcceptedMoney(number_post);
|
||||
|
||||
if (accmoney > 0)
|
||||
{
|
||||
UserPrintPrintBillMenu(number_post);
|
||||
RefreshMenu();
|
||||
|
||||
// íàïå÷àòàåì ÷åê
|
||||
// íàïå÷àòàåì íàëè÷íûé ÷åê
|
||||
if (IsFiscalConnected())
|
||||
{
|
||||
if (PrintFiscalBill(accmoney,number_post) == 0) // çäåñü äîáàâèòü ñ êàêîãî ïîñòà ÷åê
|
||||
{
|
||||
SaveEventRecord(number_post, JOURNAL_EVENT_PRINT_BILL_POST1 + number_post, GetTimeSec());
|
||||
}
|
||||
}
|
||||
|
||||
IncCounter(number_post, ChannelsPayedTime[number_post], accmoney);
|
||||
SetAcceptedMoney(0, number_post);
|
||||
OSTimeDly(1000);
|
||||
|
||||
// ïîâåñèì ìåíþ "ÑÏÀÑÈÁÎ"
|
||||
if (IsFiscalConnected())
|
||||
{
|
||||
UserPrintThanksMenu(number_post);
|
||||
RefreshMenu();
|
||||
}
|
||||
|
||||
OSTimeDly(1000);
|
||||
wash_State[number_post] = waitMoney;
|
||||
}
|
||||
|
||||
// çäåñü ñîáûòèå ñòàðòà ïå÷àòè ÷åêà - âêëþ÷èëè íàñîñ èëè ïûëåñîñ
|
||||
accmoney = GetAcceptedBankMoney(number_post);
|
||||
|
||||
if (accmoney > 0)
|
||||
{
|
||||
UserPrintPrintBillMenu(number_post);
|
||||
RefreshMenu();
|
||||
|
||||
// íàïå÷àòàåì áåçíàëè÷íûé ÷åê
|
||||
if (IsFiscalConnected())
|
||||
{
|
||||
if (PrintFiscalBill(accmoney,number_post) == 0) // çäåñü äîáàâèòü ñ êàêîãî ïîñòà ÷åê
|
||||
@ -476,8 +559,8 @@ void UserAppTask(void *p_arg)
|
||||
break;
|
||||
|
||||
case EVENT_KEY_F1:
|
||||
//testMoney = 100;
|
||||
//PostUserEvent(EVENT_CASH_INSERTED_POST1);
|
||||
testMoney = 100;
|
||||
PostUserEvent(EVENT_COIN_INSERTED_VACUUM1);
|
||||
|
||||
/*FIO4SET_bit.P4_28 = 1;
|
||||
OSTimeDly(50);
|
||||
@ -767,6 +850,24 @@ void LoadAcceptedMoney(void)
|
||||
SetData(&AcceptedMoneyCRC16Desc, &crc, i, DATA_FLAG_DIRECT_INDEX);
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < COUNT_POST; i++)
|
||||
{
|
||||
// ñ÷èòàåì cîõðàíåííûå äåíüãè èç FRAM
|
||||
GetData(&AcceptedBankMoneyDesc, &m, i, DATA_FLAG_DIRECT_INDEX);
|
||||
// ñ÷èòàåì crc16 ýòèõ äåíåã èç FRAM
|
||||
GetData(&AcceptedBankMoneyCRC16Desc, &crc, i, DATA_FLAG_DIRECT_INDEX);
|
||||
|
||||
crct = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
|
||||
|
||||
if (crct != crc)
|
||||
{ // îáíóëÿåì, åñëè crc íå ñîøëàñü
|
||||
m = 0;
|
||||
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
|
||||
SetData(&AcceptedBankMoneyDesc, &m, i, DATA_FLAG_DIRECT_INDEX);
|
||||
SetData(&AcceptedBankMoneyCRC16Desc, &crc, i, DATA_FLAG_DIRECT_INDEX);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// äîáàâèòü äåíåã
|
||||
@ -797,6 +898,34 @@ CPU_INT32U GetAcceptedMoney(int post)
|
||||
return m;
|
||||
}
|
||||
|
||||
// äîáàâèòü äåíåã
|
||||
void SetAcceptedBankMoney(CPU_INT32U money, int post)
|
||||
{
|
||||
CPU_INT32U m,crc;
|
||||
m=money;
|
||||
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
|
||||
SetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX);
|
||||
SetData(&AcceptedBankMoneyCRC16Desc, &crc, post, DATA_FLAG_DIRECT_INDEX);
|
||||
}
|
||||
|
||||
// î÷èñòèòü ñ÷åò÷èê äåíåã
|
||||
void ClearAcceptedBankMoney(int post)
|
||||
{
|
||||
CPU_INT32U m,crc;
|
||||
m=0;
|
||||
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
|
||||
SetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX);
|
||||
SetData(&AcceptedBankMoneyCRC16Desc, &crc, post, DATA_FLAG_DIRECT_INDEX);
|
||||
}
|
||||
|
||||
// î÷èñòèòü ñ÷åò÷èê äåíåã
|
||||
CPU_INT32U GetAcceptedBankMoney(int post)
|
||||
{
|
||||
CPU_INT32U m;
|
||||
GetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX);
|
||||
return m;
|
||||
}
|
||||
|
||||
// èíèöèàëèçàöèÿ ïàðîëÿ
|
||||
void InitPass(void)
|
||||
{
|
||||
|
||||
@ -54,14 +54,19 @@ enum{
|
||||
EVENT_CASH_INSERTED_POST5,
|
||||
EVENT_CASH_INSERTED_POST6,
|
||||
|
||||
EVENT_BANK_INSERTED_POST1,
|
||||
EVENT_BANK_INSERTED_POST2,
|
||||
EVENT_BANK_INSERTED_POST3,
|
||||
EVENT_BANK_INSERTED_POST4,
|
||||
EVENT_BANK_INSERTED_POST5,
|
||||
EVENT_BANK_INSERTED_POST6,
|
||||
|
||||
EVENT_STOP_MONEY_POST1,
|
||||
EVENT_STOP_MONEY_POST2,
|
||||
EVENT_STOP_MONEY_POST3,
|
||||
EVENT_STOP_MONEY_POST4,
|
||||
EVENT_STOP_MONEY_POST5,
|
||||
EVENT_STOP_MONEY_POST6,
|
||||
EVENT_STOP_MONEY_VACUUM1,
|
||||
EVENT_STOP_MONEY_VACUUM2,
|
||||
|
||||
EVENT_WAIT_CASH_PRINT_CHECK_POST1,
|
||||
EVENT_WAIT_CASH_PRINT_CHECK_POST2,
|
||||
@ -69,8 +74,6 @@ enum{
|
||||
EVENT_WAIT_CASH_PRINT_CHECK_POST4,
|
||||
EVENT_WAIT_CASH_PRINT_CHECK_POST5,
|
||||
EVENT_WAIT_CASH_PRINT_CHECK_POST6,
|
||||
EVENT_WAIT_CASH_PRINT_CHECK_VACUUM1,
|
||||
EVENT_WAIT_CASH_PRINT_CHECK_VACUUM2,
|
||||
|
||||
EVENT_CASH_PRINT_CHECK_POST1,
|
||||
EVENT_CASH_PRINT_CHECK_POST2,
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
#include "fiscal.h"
|
||||
|
||||
#define EVENT_RECORDS_COUNT 512 // ÷èñëî çàïèñåé â æóðíàëå
|
||||
#define EVENT_RECORDS_COUNT 384 // ÷èñëî çàïèñåé â æóðíàëå
|
||||
|
||||
#pragma pack(push, 1)
|
||||
/// ñòðóêòóðà çàïèñè æóðíàëà ðàáî÷èõ ñîáûòèé
|
||||
|
||||
@ -74,6 +74,41 @@ TDataDescStruct const CashPulseLenDesc = {
|
||||
50
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Длина импульса входа банковского терминала, мс
|
||||
*************************************/
|
||||
TRangeValueULONG const BankPulseLenRange = {20, 250};
|
||||
CPU_INT08U const BankPulseLenName[] = "Длина имп.,мс";
|
||||
|
||||
void OnChangeBankPulseLen()
|
||||
{
|
||||
CPU_INT32U pulse, pause;
|
||||
for(int post = 0; post < COUNT_POST; post++)
|
||||
{
|
||||
GetData(&BankPulseLenDesc, &pulse, post, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&BankPauseLenDesc, &pause, post, DATA_FLAG_DIRECT_INDEX);
|
||||
SetBankPulseParam(pulse, pause, post);
|
||||
}
|
||||
}
|
||||
|
||||
TDataDescStruct const BankPulseLenDesc = {
|
||||
DATA_DESC_EDIT, // тип дескриптора
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST, // размер массива
|
||||
&BankIndexDesc, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, bank_pulse_len), // указатель на переменную или адрес FRAM
|
||||
(void*)&BankPulseLenRange, // указатель на границы параметра
|
||||
OnChangeBankPulseLen, // функция по изменению
|
||||
sizeof(CPU_INT32U), // смещение между элементами в массиве
|
||||
BankPulseLenName, // указатель на строку названия параметра
|
||||
DATA_NO_INDEX, // признак индексного параметра (список строк)
|
||||
NULL, // указатель на список строк для индексного параметра
|
||||
DATA_INIT_DISABLE,
|
||||
50
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Длина паузы входа купюрника, мс
|
||||
*************************************/
|
||||
@ -98,6 +133,30 @@ TDataDescStruct const CashPauseLenDesc = {
|
||||
20
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Длина паузы входа банковского терминала, мс
|
||||
*************************************/
|
||||
TRangeValueULONG const BankPauseLenRange = {20, 250};
|
||||
CPU_INT08U const BankPauseLenName[] = "Пауза имп.,мс";
|
||||
|
||||
TDataDescStruct const BankPauseLenDesc = {
|
||||
DATA_DESC_EDIT, // тип дескриптора
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST, // размер массива
|
||||
&BankIndexDesc, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, bank_pause_len), // указатель на переменную или адрес FRAM
|
||||
(void*)&BankPauseLenRange, // указатель на границы параметра
|
||||
OnChangeBankPulseLen, // функция по изменению
|
||||
sizeof(CPU_INT32U), // смещение между элементами в массиве
|
||||
BankPauseLenName, // указатель на строку названия параметра
|
||||
DATA_NO_INDEX, // признак индексного параметра (список строк)
|
||||
NULL, // указатель на список строк для индексного параметра
|
||||
DATA_INIT_DISABLE,
|
||||
20
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Название кнопки СТАРТ (СТАРТ или ПУСК)
|
||||
*************************************/
|
||||
@ -136,7 +195,6 @@ 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, // тип параметра
|
||||
@ -155,6 +213,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_IS_ARRAY, // признак массива
|
||||
COUNT_POST, // размер массива
|
||||
&BankIndexDesc, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, DeviceConfig.EnableBank), // указатель на переменную или адрес FRAM
|
||||
(void*)&EnableBankRange, // указатель на границы параметра
|
||||
NULL, // функция по изменению
|
||||
sizeof(CPU_INT32U), // смещение между элементами в массиве
|
||||
EnableBankName, // указатель на строку названия параметра
|
||||
DATA_IS_INDEX, // признак индексного параметра (список строк)
|
||||
EnableValidatorList, // указатель на список строк для индексного параметра
|
||||
DATA_INIT_DISABLE,
|
||||
1 // значение по умолчанию
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Включение модема
|
||||
*************************************/
|
||||
@ -321,7 +403,7 @@ TDataDescStruct const StatSendHourMinDesc = {
|
||||
/*************************************
|
||||
Индекс при настройке сигналов
|
||||
*************************************/
|
||||
TRangeValueULONG const SignalIndexRange = {0, 7};
|
||||
TRangeValueULONG const SignalIndexRange = {0, 5};
|
||||
CPU_INT08U const SignalIndexName[] = "НАСТ.СИГН.ПЕЧ.";
|
||||
CPU_INT08U const SignalIndex_str0[] = "1";
|
||||
CPU_INT08U const SignalIndex_str1[] = "2";
|
||||
@ -329,9 +411,7 @@ CPU_INT08U const SignalIndex_str2[] = "3";
|
||||
CPU_INT08U const SignalIndex_str3[] = "4";
|
||||
CPU_INT08U const SignalIndex_str4[] = "5";
|
||||
CPU_INT08U const SignalIndex_str5[] = "6";
|
||||
CPU_INT08U const SignalIndex_str6[] = "Ï1";
|
||||
CPU_INT08U const SignalIndex_str7[] = "Ï2";
|
||||
CPU_INT08U const *SignalIndexList[] = {SignalIndex_str0, SignalIndex_str1,SignalIndex_str2,SignalIndex_str3,SignalIndex_str4,SignalIndex_str5,SignalIndex_str6,SignalIndex_str7};
|
||||
CPU_INT08U const *SignalIndexList[] = {SignalIndex_str0, SignalIndex_str1,SignalIndex_str2,SignalIndex_str3,SignalIndex_str4,SignalIndex_str5};
|
||||
|
||||
CPU_INT32U CoinIndex = 0;
|
||||
|
||||
@ -373,7 +453,7 @@ TDataDescStruct const EnableSignalDesc = {
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST+COUNT_VACUUM,// ðàçìåð ìàññèâà
|
||||
COUNT_POST,// размер массива
|
||||
&SignalIndexDesc, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, enableSignalPrint), // указатель на переменную или адрес FRAM
|
||||
(void*)&EnableSignalRange, // указатель на границы параметра
|
||||
@ -407,7 +487,7 @@ TDataDescStruct const SignalPulseDesc = {
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST+COUNT_VACUUM, // ðàçìåð ìàññèâà
|
||||
COUNT_POST, // размер массива
|
||||
&SignalIndexDesc, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, signal_pulse_len), // указатель на переменную или адрес FRAM
|
||||
(void*)&SignalPulseRange, // указатель на границы параметра
|
||||
@ -510,6 +590,38 @@ TDataDescStruct const CoinPerPulseDesc = {
|
||||
1 // значение по умолчанию
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Таймаут печати чека монетоприемника
|
||||
*************************************/
|
||||
TRangeValueULONG const CoinTimeOutRange = {1, 999};
|
||||
CPU_INT08U const CoinTimeOutName[] = "Таймаут";
|
||||
|
||||
void OnchangeTimeOutCoin(void)
|
||||
{
|
||||
if(CoinIndex < COUNT_POST)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
TDataDescStruct const CoinTimeOutDesc = {
|
||||
DATA_DESC_EDIT, // тип дескриптора
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST+COUNT_VACUUM, // размер массива
|
||||
&CoinIndexDesc, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, DeviceConfig.CoinTimeOut), // указатель на переменную или адрес FRAM
|
||||
(void*)&CoinTimeOutRange, // указатель на границы параметра
|
||||
OnchangeTimeOutCoin, // функция по изменению
|
||||
sizeof(CPU_INT32U), // смещение между элементами в массиве
|
||||
CoinTimeOutName, // указатель на строку названия параметра
|
||||
DATA_NO_INDEX, // признак индексного параметра (список строк)
|
||||
NULL, // указатель на список строк для индексного параметра
|
||||
DATA_INIT_DISABLE,
|
||||
30 // значение по умолчанию
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Индекс при настройке купюроприемников
|
||||
*************************************/
|
||||
@ -538,6 +650,33 @@ TDataDescStruct const CashIndexDesc = {
|
||||
0
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Индекс при настройке банковского терминала
|
||||
*************************************/
|
||||
TRangeValueULONG const BankIndexRange = {0, 5};
|
||||
CPU_INT08U const BankIndexName[] = "НАСТР.БАНК.ТЕРМ";
|
||||
|
||||
void OnChangeBankIndex(void)
|
||||
{
|
||||
}
|
||||
|
||||
TDataDescStruct const BankIndexDesc = {
|
||||
DATA_DESC_EDIT, // тип дескриптора
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_RAM, // расположение параметра
|
||||
DATA_NO_ARRAY, // признак массива
|
||||
0, // размер массива
|
||||
NULL, // указатель на десриптор индекса массива
|
||||
(void*)&CoinIndex, // указатель на переменную или адрес FRAM
|
||||
(void*)&BankIndexRange, // указатель на границы параметра
|
||||
OnChangeBankIndex, // функция по изменению
|
||||
0, // смещение между элементами в массиве
|
||||
BankIndexName, // указатель на строку названия параметра
|
||||
DATA_IS_INDEX, // признак индексного параметра (список строк)
|
||||
CoinIndexList, // указатель на список строк для индексного параметра
|
||||
DATA_INIT_ENABLE,
|
||||
0
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Режим купюрника
|
||||
@ -665,16 +804,45 @@ TDataDescStruct const CashPerPulseDesc = {
|
||||
10 // значение по умолчанию
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Цена импульса банковского терминала в импульсном режиме
|
||||
*************************************/
|
||||
TRangeValueULONG const BankPerPulseRange = {1, 9999};
|
||||
CPU_INT08U const BankPerPulseName[] = "Руб./имп.";
|
||||
|
||||
TDataDescStruct const BankPerPulseDesc = {
|
||||
DATA_DESC_EDIT, // тип дескриптора
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST, // размер массива
|
||||
&BankIndexDesc, // указатель на десриптор индекса массива
|
||||
(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;
|
||||
CPU_INT32U level1, level2, level3, level4;
|
||||
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
|
||||
{
|
||||
if(post < COUNT_POST) GetData(&CashLevelDesc, &level1, post, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&CoinLevelDesc, &level2, post, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&SignalStopMoneyLevelDesc, &level3, post, DATA_FLAG_DIRECT_INDEX);
|
||||
if(post < COUNT_POST)
|
||||
{
|
||||
GetData(&CashLevelDesc, &level1, post, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&BankLevelDesc, &level2, post, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&SignalStopMoneyLevelDesc, &level3, post, DATA_FLAG_DIRECT_INDEX);
|
||||
}
|
||||
|
||||
GetData(&CoinLevelDesc, &level4, post, DATA_FLAG_DIRECT_INDEX);
|
||||
|
||||
SetLevelParam(level1, level2, level3, post);
|
||||
SetLevelParam(level1, level2, level3, level4, post);
|
||||
}
|
||||
}
|
||||
|
||||
@ -705,6 +873,27 @@ TDataDescStruct const CashLevelDesc = {
|
||||
1 // значение по умолчанию
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Уровень сигнала банковскогог терминала
|
||||
*************************************/
|
||||
TDataDescStruct const BankLevelDesc = {
|
||||
DATA_DESC_EDIT, // тип дескриптора
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST, // размер массива
|
||||
&BankIndexDesc, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, DeviceConfig.BankLevel), // указатель на переменную или адрес FRAM
|
||||
(void*)&LevelRange, // указатель на границы параметра
|
||||
OnChangeLevel, // функция по изменению
|
||||
sizeof(CPU_INT32U), // смещение между элементами в массиве
|
||||
LevelName, // указатель на строку названия параметра
|
||||
DATA_IS_INDEX, // признак индексного параметра (список строк)
|
||||
LevelList, // указатель на список строк для индексного параметра
|
||||
DATA_INIT_DISABLE,
|
||||
1 // значение по умолчанию
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Уровень сигнала монетника
|
||||
*************************************/
|
||||
@ -736,7 +925,7 @@ TDataDescStruct const SignalStopMoneyLevelDesc = {
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST + COUNT_VACUUM, // ðàçìåð ìàññèâà
|
||||
COUNT_POST, // размер массива
|
||||
&SignalIndexDesc, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, DeviceConfig.SignalLevel), // указатель на переменную или адрес FRAM
|
||||
(void*)&LevelRange, // указатель на границы параметра
|
||||
@ -1957,6 +2146,47 @@ TDataDescStruct const AcceptedMoneyCRC16Desc = {
|
||||
0
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Дескриптор для энергонезависимого сохранения текущих денег
|
||||
*************************************/
|
||||
TDataDescStruct const AcceptedBankMoneyDesc = {
|
||||
DATA_DESC_EDIT, // тип дескриптора
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST,// размер массива
|
||||
NULL, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, FRAM_AcceptedBankMoney), // указатель на переменную или адрес FRAM
|
||||
NULL, // указатель на границы параметра
|
||||
NULL, // функция по изменению
|
||||
sizeof(CPU_INT32U), // смещение между элементами в массиве
|
||||
NULL, // указатель на строку названия параметра
|
||||
DATA_NO_INDEX, // признак индексного параметра (список строк)
|
||||
NULL, // указатель на список строк для индексного параметра
|
||||
DATA_INIT_DISABLE,
|
||||
0
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Дескриптор Crc16 энергонезависимого сохранения текущих денег
|
||||
*************************************/
|
||||
TDataDescStruct const AcceptedBankMoneyCRC16Desc = {
|
||||
DATA_DESC_EDIT, // тип дескриптора
|
||||
DATA_TYPE_ULONG, // тип параметра
|
||||
DATA_LOC_FRAM, // расположение параметра
|
||||
DATA_IS_ARRAY, // признак массива
|
||||
COUNT_POST, // размер массива
|
||||
NULL, // указатель на десриптор индекса массива
|
||||
(void*)offsetof(TFramMap, crc_AcceptedBankMoney), // указатель на переменную или адрес FRAM
|
||||
NULL, // указатель на границы параметра
|
||||
NULL, // функция по изменению
|
||||
sizeof(CPU_INT32U), // смещение между элементами в массиве
|
||||
NULL, // указатель на строку названия параметра
|
||||
DATA_NO_INDEX, // признак индексного параметра (список строк)
|
||||
NULL, // указатель на список строк для индексного параметра
|
||||
DATA_INIT_DISABLE,
|
||||
0
|
||||
};
|
||||
|
||||
/*************************************
|
||||
Дескриптор пароля
|
||||
@ -2530,6 +2760,14 @@ const TDataDescArrayStruct AllDataArray[] =
|
||||
{&CoinLevelDesc, "CoinLevelDesc"},
|
||||
{&SignalStopMoneyLevelDesc, "SignalStopMoneyLevelDesc"},
|
||||
|
||||
{&EnableBankDesc, "EnableBankDesc"},
|
||||
{&BankPerPulseDesc, "BankPerPulseDesc"},
|
||||
{&BankPulseLenDesc, "BankPulseLenDesc"},
|
||||
{&BankPauseLenDesc, "BankPauseLenDesc"},
|
||||
{&BankLevelDesc, "BankLevelDesc"},
|
||||
|
||||
{&CoinTimeOutDesc, "CoinTimeOutDesc"},
|
||||
|
||||
{NULL, ""}
|
||||
};
|
||||
|
||||
|
||||
@ -17,14 +17,19 @@
|
||||
|
||||
// ñòðóêòóðà êîíôèãóðàöèè àïïàðàòóðû
|
||||
typedef struct{
|
||||
CPU_INT32U EnableValidator[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
CPU_INT32U EnableCoinAcceptor[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U EnableValidator[COUNT_POST];
|
||||
CPU_INT32U EnableBank[COUNT_POST];
|
||||
|
||||
CPU_INT32U EnableModem;
|
||||
CPU_INT32U EnableFiscal;
|
||||
CPU_INT32U EnableFiscalDayClear;
|
||||
CPU_INT32U ServiceName;
|
||||
|
||||
CPU_INT32U CoinPerPulse[COUNT_POST + COUNT_VACUUM]; // öåíà èìïóëüñà ìîíåòîïðèåìíèêà
|
||||
CPU_INT32U CoinTimeOut[COUNT_POST + COUNT_VACUUM]; // òàéìàóò ïå÷àòè ÷åêà ìîíåòîïðèåìíèêà
|
||||
|
||||
CPU_INT32U BillFormat;
|
||||
|
||||
CPU_INT32U DisableFiscalErrors; // îòêëþ÷åíèå ðåàêöèè íà îøèáêè ÔÐ
|
||||
@ -35,14 +40,19 @@ typedef struct{
|
||||
CPU_INT32U ClearJournalAfterSend;
|
||||
CPU_INT32U StatSendHourMin;
|
||||
|
||||
CPU_INT32U CashMode[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U CashPerPulse[COUNT_POST + COUNT_VACUUM]; // öåíà èìïóëüñà êóïþðíèêà
|
||||
CPU_INT32U CashMode[COUNT_POST];
|
||||
CPU_INT32U CashPerPulse[COUNT_POST]; // öåíà èìïóëüñà êóïþðíèêà
|
||||
|
||||
CPU_INT32U BankPerPulse[COUNT_POST]; // öåíà èìïóëüñà áàíêîâñêîãî òåðìèíàëà
|
||||
|
||||
CPU_INT32U PrintTimeout;
|
||||
CPU_INT32U PrintTimeoutAfter;
|
||||
|
||||
CPU_INT32U CashLevel[COUNT_POST + COUNT_VACUUM]; // óðîâåíü ñèãíàëà êóïþðíèêà
|
||||
CPU_INT32U CoinLevel[COUNT_POST + COUNT_VACUUM]; // óðîâåíü ñèãíàëà ìîíåòíèêà
|
||||
CPU_INT32U SignalLevel[COUNT_POST + COUNT_VACUUM]; // óðîâåíü ñèãíàëà ñèãíàëà ïå÷àòè
|
||||
|
||||
CPU_INT32U CashLevel[COUNT_POST]; // óðîâåíü ñèãíàëà êóïþðíèêà
|
||||
CPU_INT32U SignalLevel[COUNT_POST]; // óðîâåíü ñèãíàëà ñèãíàëà ïå÷àòè
|
||||
CPU_INT32U BankLevel[COUNT_POST]; // óðîâåíü ñèãíàëà êóïþðíèêà
|
||||
|
||||
CPU_INT32U PrintMode;
|
||||
|
||||
@ -69,6 +79,7 @@ extern TDataDescStruct const EnableFiscalDesc;
|
||||
extern TDataDescStruct const EnableCoinDesc;
|
||||
extern TDataDescStruct const EnableModemDesc;
|
||||
extern TDataDescStruct const EnableValidatorDesc;
|
||||
extern TDataDescStruct const EnableBankDesc;
|
||||
extern TDataDescStruct const CoinPerPulseDesc;
|
||||
extern TDataDescStruct const EnableFiscalDayClearDesc;
|
||||
|
||||
@ -104,6 +115,8 @@ extern TDataDescStruct const BillFormatDesc;
|
||||
|
||||
extern TDataDescStruct const AcceptedMoneyDesc;
|
||||
extern TDataDescStruct const AcceptedMoneyCRC16Desc;
|
||||
extern TDataDescStruct const AcceptedBankMoneyDesc;
|
||||
extern TDataDescStruct const AcceptedBankMoneyCRC16Desc;
|
||||
|
||||
extern TDataDescStruct const DisableFiscalErrorsDesc;
|
||||
|
||||
@ -164,6 +177,8 @@ extern TDataDescStruct const TaxSystemDesc;
|
||||
|
||||
extern TDataDescStruct const CoinIndexDesc;
|
||||
extern TDataDescStruct const CashIndexDesc;
|
||||
extern TDataDescStruct const BankIndexDesc;
|
||||
|
||||
extern CPU_INT32U CoinIndex;
|
||||
|
||||
extern TDataDescStruct const SignalIndexDesc;
|
||||
@ -174,4 +189,12 @@ extern TDataDescStruct const CashLevelDesc;
|
||||
extern TDataDescStruct const CoinLevelDesc;
|
||||
extern TDataDescStruct const SignalPrintLevelDesc;
|
||||
extern TDataDescStruct const SignalStopMoneyLevelDesc;
|
||||
|
||||
extern TDataDescStruct const BankPerPulseDesc;
|
||||
extern TDataDescStruct const BankPulseLenDesc;
|
||||
extern TDataDescStruct const BankPauseLenDesc;
|
||||
extern TDataDescStruct const BankLevelDesc;
|
||||
|
||||
extern TDataDescStruct const CoinTimeOutDesc;
|
||||
|
||||
#endif //#ifndef _DATADESC_H_
|
||||
|
||||
@ -11,22 +11,42 @@ typedef struct
|
||||
CPU_INT32U SerialNum;
|
||||
|
||||
TDeviceConfig DeviceConfig;
|
||||
// ñ÷åò÷èêè
|
||||
TCounters Counters;
|
||||
|
||||
// äëèííûå ñ÷åò÷èêè ñ CRC16
|
||||
TCountersLong CountersLong;
|
||||
|
||||
CPU_INT32U FRAM_AcceptedMoney[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U crc_AcceptedMoney[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
CPU_INT32U FRAM_AcceptedBankMoney[COUNT_POST];
|
||||
CPU_INT32U crc_AcceptedBankMoney[COUNT_POST];
|
||||
|
||||
CPU_INT32U enableSignalPrint[COUNT_POST];
|
||||
CPU_INT32U signal_pulse_len[COUNT_POST];
|
||||
|
||||
CPU_INT32U cash_pulse_len[COUNT_POST];
|
||||
CPU_INT32U cash_pause_len[COUNT_POST];
|
||||
|
||||
CPU_INT32U bank_pulse_len[COUNT_POST];
|
||||
CPU_INT32U bank_pause_len[COUNT_POST];
|
||||
|
||||
CPU_INT08U manual_service_flag[4];
|
||||
char manual_service_name[32];
|
||||
|
||||
CPU_INT32U TaxFormat;
|
||||
CPU_INT32U SubjSell;
|
||||
CPU_INT32U CommandV2;
|
||||
CPU_INT32U TaxSystem;
|
||||
|
||||
CPU_INT32U Pass;
|
||||
CPU_INT32U crc_Pass;
|
||||
|
||||
// æóðíàë ñîáûòèé+îøèáîê
|
||||
TEventRecord EventRecords[EVENT_RECORDS_COUNT];
|
||||
|
||||
CPU_INT32U Price;
|
||||
|
||||
CPU_INT32U Pass;
|
||||
CPU_INT32U crc_Pass;
|
||||
// ñ÷åò÷èêè
|
||||
TCounters Counters;
|
||||
// äëèííûå ñ÷åò÷èêè ñ CRC16
|
||||
TCountersLong CountersLong;
|
||||
|
||||
CPU_INT32U LastEmailTime;
|
||||
|
||||
@ -44,19 +64,5 @@ typedef struct
|
||||
|
||||
CPU_INT16U port;
|
||||
|
||||
CPU_INT08U manual_service_flag[4];
|
||||
char manual_service_name[32];
|
||||
|
||||
CPU_INT32U cash_pulse_len[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U cash_pause_len[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
CPU_INT32U TaxFormat;
|
||||
CPU_INT32U SubjSell;
|
||||
CPU_INT32U CommandV2;
|
||||
CPU_INT32U TaxSystem;
|
||||
|
||||
CPU_INT32U enableSignalPrint[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U signal_pulse_len[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
}TFramMap;
|
||||
|
||||
|
||||
@ -675,7 +675,7 @@ const TMenuPanel SetNewPassMenuPanel[] = {arr_SetNewPassMenuArray, NULL, 2, MENU
|
||||
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[] = "Ñèãíàë ïå÷àòè";
|
||||
|
||||
@ -707,12 +707,12 @@ const TMenuLine line_DeviceMenu_3 = {
|
||||
(void*)&CoinSetupPanel // ïàíåëü äëÿ ïåðåõîäà
|
||||
};
|
||||
|
||||
/*const TMenuLine line_DeviceMenu_4 = {
|
||||
const TMenuLine line_DeviceMenu_4 = {
|
||||
MENU_LINE_GOTO_MENU, // òèï ïóíêòà ìåíþ
|
||||
0, // äîï. ôëàãè
|
||||
(void*)str_DeviceMenu_3, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
||||
(void*)&ModemSetupPanel // ïàíåëü äëÿ ïåðåõîäà
|
||||
};*/
|
||||
(void*)&BankSetupPanel // ïàíåëü äëÿ ïåðåõîäà
|
||||
};
|
||||
|
||||
const TMenuLine line_DeviceMenu_5 = {
|
||||
MENU_LINE_GOTO_MENU, // òèï ïóíêòà ìåíþ
|
||||
@ -721,8 +721,8 @@ const TMenuLine line_DeviceMenu_5 = {
|
||||
(void*)&SignalSetupPanel // ïàíåëü äëÿ ïåðåõîäà
|
||||
};
|
||||
|
||||
const TMenuLineArray arr_DeviceMenuArray[] = {&line_DeviceMenu_0, &line_DeviceMenu_1, &line_DeviceMenu_2, &line_DeviceMenu_3, &line_DeviceMenu_5,/*&line_DeviceMenu_4,*/ NULL};
|
||||
const TMenuPanel DeviceMenuPanel[] = {arr_DeviceMenuArray, NULL, 5, MENU_PANEL_STANDARD};
|
||||
const TMenuLineArray arr_DeviceMenuArray[] = {&line_DeviceMenu_0, &line_DeviceMenu_1, &line_DeviceMenu_2, &line_DeviceMenu_4, &line_DeviceMenu_3, &line_DeviceMenu_5, NULL};
|
||||
const TMenuPanel DeviceMenuPanel[] = {arr_DeviceMenuArray, NULL, 6, MENU_PANEL_STANDARD};
|
||||
|
||||
/***********************************
|
||||
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ñèãíàëîâ ïå÷àòè ÷åêîâ
|
||||
@ -895,6 +895,13 @@ const TMenuLine line_CoinMenu_2 = {
|
||||
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||
};
|
||||
|
||||
const TMenuLine line_CoinMenu_4 = {
|
||||
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||
0, // äîï. ôëàãè
|
||||
(void*)&CoinTimeOutDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
||||
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||
};
|
||||
|
||||
const TMenuLine line_CoinMenu_3 = {
|
||||
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||
0, // äîï. ôëàãè
|
||||
@ -907,8 +914,8 @@ void OnEnterCoinMenu(void)
|
||||
CoinIndex = 0;
|
||||
}
|
||||
|
||||
const TMenuLineArray arr_CoinMenuArray[] = {&line_CoinMenu_0, &line_CoinMenu_1, &line_CoinMenu_2, &line_CoinMenu_3, NULL};
|
||||
const TMenuPanel CoinSetupPanel[] = {arr_CoinMenuArray, OnEnterCoinMenu, 4, MENU_PANEL_STANDARD};
|
||||
const TMenuLineArray arr_CoinMenuArray[] = {&line_CoinMenu_0, &line_CoinMenu_1, &line_CoinMenu_2, &line_CoinMenu_4, &line_CoinMenu_3, NULL};
|
||||
const TMenuPanel CoinSetupPanel[] = {arr_CoinMenuArray, OnEnterCoinMenu, 5, MENU_PANEL_STANDARD};
|
||||
|
||||
/***********************************
|
||||
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÊÓÏÞÐÎÏÐÈÅÌÍÈÊÎÂ
|
||||
@ -966,6 +973,55 @@ const TMenuLine line_CashMenu_6 = {
|
||||
const TMenuLineArray arr_ValidatorMenuArray[] = {&line_CashMenu_0, &line_CashMenu_1, /*&line_CashMenu_2,*/ &line_CashMenu_3, &line_CashMenu_4, &line_CashMenu_5, &line_CashMenu_6, NULL};
|
||||
const TMenuPanel ValidatorSetupPanel[] = {arr_ValidatorMenuArray, OnEnterCoinMenu, 6, MENU_PANEL_STANDARD};
|
||||
|
||||
/***********************************
|
||||
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÁÀÍÊÎÂÑÊÈÕ ÒÅÐÌÈÍÀËÎÂ
|
||||
***********************************/
|
||||
|
||||
const TMenuLine line_BankMenu_0 = {
|
||||
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||
MENU_FIXED_LINE|MENU_INDEX_LINE, // äîï. ôëàãè
|
||||
(void*)&BankIndexDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
||||
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, OnEnterCoinMenu, 6, MENU_PANEL_STANDARD};
|
||||
|
||||
/***********************************
|
||||
ÇÀÑÒÀÂÊÀ ÄËß ÊËÈÅÍÒÀ
|
||||
***********************************/
|
||||
|
||||
@ -54,6 +54,7 @@ extern const TMenuPanel ChannelCountersPanel[];
|
||||
extern const TMenuPanel CommonCountersPanel[];
|
||||
extern const TMenuPanel bufReportMenuPanel[];
|
||||
extern const TMenuPanel ValidatorSetupPanel[];
|
||||
extern const TMenuPanel BankSetupPanel[];
|
||||
|
||||
extern void PrintUserMenuStr(char* str, CPU_INT08U n);
|
||||
extern void PrintEventJournalRecord(TEventRecord *record);
|
||||
|
||||
@ -13,13 +13,18 @@ void InitImpInput(void);
|
||||
|
||||
CPU_INT32U CoinImpCounter[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U CashImpCounter[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U BankImpCounter[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
static CPU_INT32U cash_pulse[COUNT_POST + COUNT_VACUUM];
|
||||
static CPU_INT32U cash_pause[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
static char pend_cash_counter[COUNT_POST + COUNT_VACUUM];
|
||||
static CPU_INT32U pend_cash_timestamp[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
static CPU_INT32U bank_pulse[COUNT_POST + COUNT_VACUUM];
|
||||
static CPU_INT32U bank_pause[COUNT_POST + COUNT_VACUUM];
|
||||
static char pend_bank_counter[COUNT_POST + COUNT_VACUUM];
|
||||
static CPU_INT32U pend_bank_timestamp[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
static CPU_INT32U signal_pulse[COUNT_POST + COUNT_VACUUM];
|
||||
static char pend_upsignal_counter[COUNT_POST + COUNT_VACUUM];
|
||||
static char pend_downsignal_counter[COUNT_POST + COUNT_VACUUM];
|
||||
@ -28,6 +33,7 @@ static CPU_INT32U pend_signal_timestamp[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U cashLevel[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U coinLevel[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U SignalLevel[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U bankLevel[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post)
|
||||
{
|
||||
@ -40,6 +46,17 @@ void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post)
|
||||
OS_EXIT_CRITICAL();
|
||||
}
|
||||
|
||||
void SetBankPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post)
|
||||
{
|
||||
#if OS_CRITICAL_METHOD == 3
|
||||
OS_CPU_SR cpu_sr = 0;
|
||||
#endif
|
||||
OS_ENTER_CRITICAL();
|
||||
bank_pulse[post] = pulse * 1;
|
||||
bank_pause[post] = pause;
|
||||
OS_EXIT_CRITICAL();
|
||||
}
|
||||
|
||||
void SetSignalPulseParam(CPU_INT32U pulse, CPU_INT32U post)
|
||||
{
|
||||
#if OS_CRITICAL_METHOD == 3
|
||||
@ -50,26 +67,38 @@ void SetSignalPulseParam(CPU_INT32U pulse, CPU_INT32U post)
|
||||
OS_EXIT_CRITICAL();
|
||||
}
|
||||
|
||||
void SetLevelParam(CPU_INT32U level1, CPU_INT32U level2, CPU_INT32U level3, CPU_INT32U post)
|
||||
void SetLevelParam(CPU_INT32U level1, CPU_INT32U level2, CPU_INT32U level3, CPU_INT32U level4, CPU_INT32U post)
|
||||
{
|
||||
#if OS_CRITICAL_METHOD == 3
|
||||
OS_CPU_SR cpu_sr = 0;
|
||||
#endif
|
||||
OS_ENTER_CRITICAL();
|
||||
if(post < COUNT_POST) cashLevel[post] = level1;
|
||||
coinLevel[post] = level2;
|
||||
SignalLevel[post] = level3;
|
||||
if(post < COUNT_POST)
|
||||
{
|
||||
cashLevel[post] = level1;
|
||||
bankLevel[post] = level2;
|
||||
SignalLevel[post] = level3;
|
||||
}
|
||||
|
||||
coinLevel[post] = level4;
|
||||
|
||||
OS_EXIT_CRITICAL();
|
||||
}
|
||||
|
||||
void CoinTask(void *p_arg)
|
||||
{
|
||||
CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U cash_enable[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U enable_signal[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
CPU_INT32U cash_enable[COUNT_POST];
|
||||
CPU_INT32U enable_signal[COUNT_POST];
|
||||
CPU_INT32U bank_enable[COUNT_POST];
|
||||
|
||||
CPU_INT32U last_cash_count[COUNT_POST];
|
||||
CPU_INT32U last_cash_time[COUNT_POST];
|
||||
|
||||
CPU_INT32U last_bank_count[COUNT_POST];
|
||||
CPU_INT32U last_bank_time[COUNT_POST];
|
||||
|
||||
CPU_INT32U last_cash_count[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U last_cash_time[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U last_settings_time = 0;
|
||||
|
||||
while(1)
|
||||
@ -79,8 +108,13 @@ void CoinTask(void *p_arg)
|
||||
for(int i = 0; i < COUNT_POST + COUNT_VACUUM; i++)
|
||||
{
|
||||
GetData(&EnableCoinDesc, &enable_coin[i], i, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&EnableValidatorDesc, &cash_enable[i], i, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&EnableSignalDesc, &enable_signal[i], i, DATA_FLAG_DIRECT_INDEX);
|
||||
|
||||
if(i < COUNT_POST)
|
||||
{
|
||||
GetData(&EnableValidatorDesc, &cash_enable[i], i, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&EnableSignalDesc, &enable_signal[i], i, DATA_FLAG_DIRECT_INDEX);
|
||||
GetData(&EnableBankDesc, &bank_enable[i], i, DATA_FLAG_DIRECT_INDEX);
|
||||
}
|
||||
}
|
||||
|
||||
last_settings_time = OSTimeGet();
|
||||
@ -107,6 +141,9 @@ void CoinTask(void *p_arg)
|
||||
GetResetCoinCount(i);
|
||||
}
|
||||
|
||||
if(i >= COUNT_POST) continue;
|
||||
// òîëüêî ìîíåòîïðèåìíèêîâ 8 - îñòàëüíûõ êàíàëîâ 6
|
||||
|
||||
OS_ENTER_CRITICAL();
|
||||
if (enable_signal[i])
|
||||
{
|
||||
@ -131,8 +168,46 @@ void CoinTask(void *p_arg)
|
||||
}
|
||||
OS_EXIT_CRITICAL();
|
||||
|
||||
if (bank_enable[i])
|
||||
{
|
||||
OS_ENTER_CRITICAL();
|
||||
if (pend_bank_counter[i])
|
||||
{
|
||||
// èìïóëüñû èíêðåìåíòèðóåì òîëüêî ïîñëå âûäåðæêè ïàóçû
|
||||
if (OSTimeGet() - pend_bank_timestamp[i] > bank_pause[i])
|
||||
{
|
||||
pend_bank_counter[i] = 0;
|
||||
BankImpCounter[i]++;
|
||||
}
|
||||
}
|
||||
OS_EXIT_CRITICAL();
|
||||
|
||||
if (GetbankCount(i))
|
||||
{
|
||||
if (last_bank_count[i] == GetbankCount(i))
|
||||
{
|
||||
if (labs(OSTimeGet() - last_bank_time[i]) > 500)
|
||||
{
|
||||
PostUserEvent(EVENT_BANK_INSERTED_POST1 + i);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
last_bank_count[i] = GetbankCount(i);
|
||||
last_bank_time[i] = OSTimeGet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
last_bank_time[i] = OSTimeGet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GetResetbankCount(i);
|
||||
}
|
||||
|
||||
if (!cash_enable[i]) {GetResetCashCount(i); continue;}
|
||||
if(i >= COUNT_POST) continue;
|
||||
|
||||
OS_ENTER_CRITICAL();
|
||||
if (pend_cash_counter[i])
|
||||
@ -229,9 +304,36 @@ CPU_INT32U GetResetCashCount(int index)
|
||||
return ctr;
|
||||
}
|
||||
|
||||
// ïîëó÷èòü ÷èñëî èìïóëüñîâ îò êóïþðíèêà
|
||||
CPU_INT32U GetbankCount(int index)
|
||||
{
|
||||
#if OS_CRITICAL_METHOD == 3
|
||||
OS_CPU_SR cpu_sr = 0;
|
||||
#endif
|
||||
OS_ENTER_CRITICAL();
|
||||
CPU_INT32U ctr = BankImpCounter[index];
|
||||
OS_EXIT_CRITICAL();
|
||||
return ctr;
|
||||
}
|
||||
|
||||
// ïîëó÷èòü ÷èñëî èìïóëüñîâ îò êóïþðíèêà è ñáðîñèòü ñ÷åò÷èê
|
||||
CPU_INT32U GetResetbankCount(int index)
|
||||
{
|
||||
#if OS_CRITICAL_METHOD == 3
|
||||
OS_CPU_SR cpu_sr = 0;
|
||||
#endif
|
||||
OS_ENTER_CRITICAL();
|
||||
CPU_INT32U ctr = BankImpCounter[index];
|
||||
BankImpCounter[index] = 0;
|
||||
OS_EXIT_CRITICAL();
|
||||
return ctr;
|
||||
}
|
||||
|
||||
CPU_INT32U period[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U period_cash[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U period_bank[COUNT_POST + COUNT_VACUUM];
|
||||
CPU_INT32U period_signal[COUNT_POST + COUNT_VACUUM];
|
||||
|
||||
CPU_INT32U T3CR = 0;
|
||||
|
||||
// èíèöèàëèçàöèÿ ìîíåòîïðèåìíèêà
|
||||
@ -241,13 +343,18 @@ void InitCoin(void)
|
||||
{
|
||||
CoinImpCounter[i] = 0;
|
||||
CashImpCounter[i] = 0;
|
||||
BankImpCounter[i] = 0;
|
||||
|
||||
cash_pulse[i] = 50;
|
||||
cash_pause[i] = 50;
|
||||
|
||||
pend_cash_counter[i] = 0;
|
||||
pend_cash_timestamp[i] = 0;
|
||||
|
||||
bank_pulse[i] = 50;
|
||||
bank_pause[i] = 50;
|
||||
pend_bank_counter[i] = 0;
|
||||
pend_bank_timestamp[i] = 0;
|
||||
|
||||
signal_pulse[i] = 1000;
|
||||
pend_upsignal_counter[i] = 0;
|
||||
pend_downsignal_counter[i] = 0;
|
||||
@ -255,6 +362,7 @@ void InitCoin(void)
|
||||
|
||||
period[i] = 0;
|
||||
period_cash[i] = 0;
|
||||
period_bank[i] = 0;
|
||||
period_signal[i] = 0;
|
||||
}
|
||||
|
||||
@ -342,19 +450,35 @@ CPU_INT32U input_register()
|
||||
{
|
||||
SETBIT(input, 18);
|
||||
}
|
||||
if (FIO0PIN_bit.P0_6)
|
||||
if (FIO1PIN_bit.P1_25)
|
||||
{
|
||||
SETBIT(input, 19);
|
||||
}
|
||||
if (FIO1PIN_bit.P1_25)
|
||||
if (FIO0PIN_bit.P0_28)
|
||||
{
|
||||
SETBIT(input, 20);
|
||||
}
|
||||
if (FIO0PIN_bit.P0_10)
|
||||
if (FIO0PIN_bit.P0_27)
|
||||
{
|
||||
SETBIT(input, 21);
|
||||
}
|
||||
|
||||
if (FIO1PIN_bit.P1_24)
|
||||
{
|
||||
SETBIT(input, 22);
|
||||
}
|
||||
if (FIO1PIN_bit.P1_23)
|
||||
{
|
||||
SETBIT(input, 23);
|
||||
}
|
||||
if (FIO0PIN_bit.P0_6)
|
||||
{
|
||||
SETBIT(input, 24);
|
||||
}
|
||||
if (FIO0PIN_bit.P0_10)
|
||||
{
|
||||
SETBIT(input, 25);
|
||||
}
|
||||
|
||||
return input;
|
||||
}
|
||||
|
||||
@ -718,26 +842,9 @@ void InputCapture_ISR(void)
|
||||
period[6] = T3CR;
|
||||
}
|
||||
}
|
||||
|
||||
// ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 1
|
||||
if(TSTBIT(input_event, 19))
|
||||
{
|
||||
pend_signal_timestamp[6] = OSTimeGet();
|
||||
|
||||
if ((FIO0PIN_bit.P0_6 && SignalLevel[6]) || (!FIO0PIN_bit.P0_6 && !SignalLevel[6]))
|
||||
{
|
||||
pend_upsignal_counter[6] = 1;
|
||||
pend_downsignal_counter[6] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
pend_upsignal_counter[6] = 0;
|
||||
pend_downsignal_counter[6] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
// ìîíåòîïðèåìíèê ïûëåñîñ 2
|
||||
if(TSTBIT(input_event, 20))
|
||||
if(TSTBIT(input_event, 19))
|
||||
{
|
||||
if ((!FIO1PIN_bit.P1_25 && coinLevel[7]) || (FIO1PIN_bit.P1_25 && !coinLevel[7]))
|
||||
{ // ïðèøåë çàäíèé ôðîíò
|
||||
@ -752,20 +859,129 @@ void InputCapture_ISR(void)
|
||||
}
|
||||
}
|
||||
|
||||
// ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 2
|
||||
if(TSTBIT(input_event, 21))
|
||||
// áàíê 1
|
||||
if(TSTBIT(input_event, 20))
|
||||
{
|
||||
pend_signal_timestamp[7] = OSTimeGet();
|
||||
|
||||
if ((FIO0PIN_bit.P0_10 && SignalLevel[7]) || (!FIO0PIN_bit.P0_10 && !SignalLevel[7]))
|
||||
{
|
||||
pend_upsignal_counter[7] = 1;
|
||||
pend_downsignal_counter[7] = 0;
|
||||
if ((!FIO0PIN_bit.P0_28 && bankLevel[0]) || (FIO0PIN_bit.P0_28 && !bankLevel[0]))
|
||||
{ // ïðèøåë çàäíèé ôðîíò
|
||||
CPU_INT32U cr=T3CR;
|
||||
cr -= period_bank[0];
|
||||
|
||||
if (cr > (bank_pulse[0] - COIN_IMP_SPAN))
|
||||
{
|
||||
pend_bank_counter[0] = 1;
|
||||
pend_bank_timestamp[0] = OSTimeGet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pend_upsignal_counter[7] = 0;
|
||||
pend_downsignal_counter[7] = 1;
|
||||
{ // ïðèøåë ïåðåäíèé ôðîíò
|
||||
period_bank[0] = T3CR;
|
||||
pend_bank_counter[0] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// áàíê 2
|
||||
if(TSTBIT(input_event, 21))
|
||||
{
|
||||
if ((!FIO0PIN_bit.P0_27 && bankLevel[1]) || (FIO0PIN_bit.P0_27 && !bankLevel[1]))
|
||||
{ // ïðèøåë çàäíèé ôðîíò
|
||||
CPU_INT32U cr=T3CR;
|
||||
cr -= period_bank[1];
|
||||
|
||||
if (cr > (bank_pulse[1] - COIN_IMP_SPAN))
|
||||
{
|
||||
pend_bank_counter[1] = 1;
|
||||
pend_bank_timestamp[1] = OSTimeGet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // ïðèøåë ïåðåäíèé ôðîíò
|
||||
period_bank[1] = T3CR;
|
||||
pend_bank_counter[1] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// áàíê 3
|
||||
if(TSTBIT(input_event, 22))
|
||||
{
|
||||
if ((!FIO1PIN_bit.P1_24 && bankLevel[2]) || (FIO1PIN_bit.P1_24 && !bankLevel[2]))
|
||||
{ // ïðèøåë çàäíèé ôðîíò
|
||||
CPU_INT32U cr=T3CR;
|
||||
cr -= period_bank[2];
|
||||
|
||||
if (cr > (bank_pulse[2] - COIN_IMP_SPAN))
|
||||
{
|
||||
pend_bank_counter[2] = 1;
|
||||
pend_bank_timestamp[2] = OSTimeGet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // ïðèøåë ïåðåäíèé ôðîíò
|
||||
period_bank[2] = T3CR;
|
||||
pend_bank_counter[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// áàíê 4
|
||||
if(TSTBIT(input_event, 23))
|
||||
{
|
||||
if ((!FIO1PIN_bit.P1_23 && bankLevel[3]) || (FIO1PIN_bit.P1_23 && !bankLevel[3]))
|
||||
{ // ïðèøåë çàäíèé ôðîíò
|
||||
CPU_INT32U cr=T3CR;
|
||||
cr -= period_bank[3];
|
||||
|
||||
if (cr > (bank_pulse[3] - COIN_IMP_SPAN))
|
||||
{
|
||||
pend_bank_counter[3] = 1;
|
||||
pend_bank_timestamp[3] = OSTimeGet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // ïðèøåë ïåðåäíèé ôðîíò
|
||||
period_bank[3] = T3CR;
|
||||
pend_bank_counter[3] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// áàíê 5
|
||||
if(TSTBIT(input_event, 24))
|
||||
{
|
||||
if ((!FIO0PIN_bit.P0_6 && bankLevel[4]) || (FIO0PIN_bit.P0_6 && !bankLevel[4]))
|
||||
{ // ïðèøåë çàäíèé ôðîíò
|
||||
CPU_INT32U cr=T3CR;
|
||||
cr -= period_bank[4];
|
||||
|
||||
if (cr > (bank_pulse[4] - COIN_IMP_SPAN))
|
||||
{
|
||||
pend_bank_counter[4] = 1;
|
||||
pend_bank_timestamp[4] = OSTimeGet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // ïðèøåë ïåðåäíèé ôðîíò
|
||||
period_bank[4] = T3CR;
|
||||
pend_bank_counter[4] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// áàíê 6
|
||||
if(TSTBIT(input_event, 25))
|
||||
{
|
||||
if ((!FIO0PIN_bit.P0_10 && bankLevel[5]) || (FIO0PIN_bit.P0_10 && !bankLevel[5]))
|
||||
{ // ïðèøåë çàäíèé ôðîíò
|
||||
CPU_INT32U cr=T3CR;
|
||||
cr -= period_bank[5];
|
||||
|
||||
if (cr > (bank_pulse[5] - COIN_IMP_SPAN))
|
||||
{
|
||||
pend_bank_counter[5] = 1;
|
||||
pend_bank_timestamp[5] = OSTimeGet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // ïðèøåë ïåðåäíèé ôðîíò
|
||||
period_bank[5] = T3CR;
|
||||
pend_bank_counter[5] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -905,20 +1121,44 @@ void InitImpInput (void)
|
||||
PINMODE0_bit.P0_5 = 0;
|
||||
FIO0DIR_bit.P0_5 = 0;
|
||||
FIO0MASK_bit.P0_5 = 0;
|
||||
|
||||
// ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 1
|
||||
PINSEL0_bit.P0_6 = 0;
|
||||
PINMODE0_bit.P0_6 = 0;
|
||||
FIO0DIR_bit.P0_6 = 0;
|
||||
FIO0MASK_bit.P0_6 = 0;
|
||||
|
||||
|
||||
// ìîíåòîïðèåìíèê ïûëåñîñ 2
|
||||
PINSEL3_bit.P1_25 = 0;
|
||||
PINMODE3_bit.P1_25 = 0;
|
||||
FIO1DIR_bit.P1_25 = 0;
|
||||
FIO1MASK_bit.P1_25 = 0;
|
||||
|
||||
// ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 2
|
||||
// áàíê 1
|
||||
PINSEL1_bit.P0_28 = 0;
|
||||
PINMODE1_bit.P0_28 = 0;
|
||||
FIO0DIR_bit.P0_28 = 0;
|
||||
FIO0MASK_bit.P0_28 = 0;
|
||||
|
||||
// áàíê 2
|
||||
PINSEL1_bit.P0_27 = 0;
|
||||
PINMODE1_bit.P0_27 = 0;
|
||||
FIO0DIR_bit.P0_27 = 0;
|
||||
FIO0MASK_bit.P0_27 = 0;
|
||||
|
||||
// áàíê 3
|
||||
PINSEL3_bit.P1_24 = 0;
|
||||
PINMODE3_bit.P1_24 = 0;
|
||||
FIO1DIR_bit.P1_24 = 0;
|
||||
FIO1MASK_bit.P1_24 = 0;
|
||||
|
||||
// áàíê 4
|
||||
PINSEL3_bit.P1_23 = 0;
|
||||
PINMODE3_bit.P1_23 = 0;
|
||||
FIO1DIR_bit.P1_23 = 0;
|
||||
FIO1MASK_bit.P1_23 = 0;
|
||||
|
||||
// áàíê 5
|
||||
PINSEL0_bit.P0_6 = 0;
|
||||
PINMODE0_bit.P0_6 = 0;
|
||||
FIO0DIR_bit.P0_6 = 0;
|
||||
FIO0MASK_bit.P0_6 = 0;
|
||||
|
||||
// áàíê 6
|
||||
PINSEL0_bit.P0_10 = 0;
|
||||
PINMODE0_bit.P0_10 = 0;
|
||||
FIO0DIR_bit.P0_10 = 0;
|
||||
|
||||
@ -12,11 +12,18 @@ extern CPU_INT32U GetCoinCount(int index);
|
||||
extern CPU_INT32U GetResetCoinCount(int index);
|
||||
extern void CoinDisable(void);
|
||||
extern void CoinEnable(void);
|
||||
|
||||
extern CPU_INT32U GetCashCount(int index);
|
||||
extern CPU_INT32U GetResetCashCount(int index);
|
||||
|
||||
extern CPU_INT32U GetbankCount(int index);
|
||||
extern CPU_INT32U GetResetbankCount(int index);
|
||||
|
||||
extern void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post);
|
||||
extern void SetBankPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post);
|
||||
extern void SetSignalPulseParam(CPU_INT32U pulse, CPU_INT32U post);
|
||||
extern void SetLevelParam(CPU_INT32U level1, CPU_INT32U level2, CPU_INT32U level3, CPU_INT32U post);
|
||||
extern void SetLevelParam(CPU_INT32U level1, CPU_INT32U level2, CPU_INT32U level3, CPU_INT32U level4, CPU_INT32U post);
|
||||
|
||||
#define BIT(bit) (1UL << (bit))
|
||||
|
||||
#define SETBIT(Val,bit) ((Val) |= BIT(bit))
|
||||
|
||||
@ -14,7 +14,7 @@ Count=0
|
||||
Enabled=0
|
||||
ShowSource=1
|
||||
[DebugChecksum]
|
||||
Checksum=-59974582
|
||||
Checksum=1092686877
|
||||
[Exceptions]
|
||||
StopOnUncaught=_ 0
|
||||
StopOnThrow=_ 0
|
||||
@ -155,7 +155,9 @@ Fmt0={W}0:curr_input 4 0
|
||||
[Disassemble mode]
|
||||
mode=0
|
||||
[Breakpoints2]
|
||||
Count=0
|
||||
Bp0=_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\app\app_serv.c}.258.27" 0 0 1 "" 0 "" 0
|
||||
Bp1=_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\app\app_serv.c}.493.19" 0 0 1 "" 0 "" 0
|
||||
Count=2
|
||||
[Log file]
|
||||
LoggingEnabled=_ 0
|
||||
LogFile=_ ""
|
||||
|
||||
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user