mirror of
https://github.com/dimoniche/Moyka.git
synced 2026-01-30 01:43:30 +03:00
добавил банковские терминалы
This commit is contained in:
parent
e7ad361aea
commit
864b5670bf
@ -45,10 +45,16 @@ void UserPrintThanksMenu(int post);
|
|||||||
void UserPrintFirstMenu(void);
|
void UserPrintFirstMenu(void);
|
||||||
void UserPrintErrorMenu(void);
|
void UserPrintErrorMenu(void);
|
||||||
CPU_INT32U GetChannelsTimeForFree(CPU_INT08U ch);
|
CPU_INT32U GetChannelsTimeForFree(CPU_INT08U ch);
|
||||||
|
|
||||||
void LoadAcceptedMoney(void);
|
void LoadAcceptedMoney(void);
|
||||||
void SetAcceptedMoney(CPU_INT32U money,int post);
|
void SetAcceptedMoney(CPU_INT32U money,int post);
|
||||||
void ClearAcceptedMoney(int post);
|
void ClearAcceptedMoney(int post);
|
||||||
CPU_INT32U GetAcceptedMoney(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);
|
void InitPass(void);
|
||||||
int CheckChannelEnabled(CPU_INT08U channel);
|
int CheckChannelEnabled(CPU_INT08U channel);
|
||||||
int ChannelBusy(CPU_INT08U ch);
|
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};
|
int countSecWait[COUNT_POST + COUNT_VACUUM] = {0, 0, 0, 0, 0, 0, 0, 0};
|
||||||
|
|
||||||
CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM];
|
CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM];
|
||||||
CPU_INT32U cash_enable[COUNT_POST + COUNT_VACUUM];
|
CPU_INT32U cash_enable[COUNT_POST];
|
||||||
CPU_INT32U enable_signal[COUNT_POST + COUNT_VACUUM];
|
CPU_INT32U bank_enable[COUNT_POST];
|
||||||
|
CPU_INT32U enable_signal[COUNT_POST];
|
||||||
|
|
||||||
void DrawMenu(void)
|
void DrawMenu(void)
|
||||||
{
|
{
|
||||||
@ -108,10 +115,10 @@ void DrawMenu(void)
|
|||||||
{
|
{
|
||||||
if((enable_coin[currentPosition]
|
if((enable_coin[currentPosition]
|
||||||
|| cash_enable[currentPosition]
|
|| cash_enable[currentPosition]
|
||||||
|| enable_signal[currentPosition])
|
|| bank_enable[currentPosition]
|
||||||
&& currentPosition < COUNT_POST) break;
|
|| enable_signal[currentPosition])
|
||||||
else if((enable_coin[currentPosition]
|
&& currentPosition < COUNT_POST) break;
|
||||||
|| enable_signal[currentPosition])
|
else if((enable_coin[currentPosition])
|
||||||
&& currentPosition >= COUNT_POST) break;
|
&& currentPosition >= COUNT_POST) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,13 +195,15 @@ void UserAppTask(void *p_arg)
|
|||||||
break;
|
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(&EnableCoinDesc, &enable_coin[post], post, DATA_FLAG_DIRECT_INDEX);
|
||||||
GetData(&EnableValidatorDesc, &cash_enable[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);
|
GetData(&EnableSignalDesc, &enable_signal[post], post, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
accmoney = GetAcceptedMoney(post);
|
accmoney = GetAcceptedMoney(post);
|
||||||
|
accmoney += GetAcceptedBankMoney(post);
|
||||||
|
|
||||||
if (accmoney > 0)
|
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();
|
DrawMenu();
|
||||||
|
|
||||||
@ -321,6 +346,32 @@ void UserAppTask(void *p_arg)
|
|||||||
}
|
}
|
||||||
break;
|
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:
|
case EVENT_KEY_CANSEL:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -387,13 +438,13 @@ void UserAppTask(void *p_arg)
|
|||||||
case EVENT_STOP_MONEY_POST4:
|
case EVENT_STOP_MONEY_POST4:
|
||||||
case EVENT_STOP_MONEY_POST5:
|
case EVENT_STOP_MONEY_POST5:
|
||||||
case EVENT_STOP_MONEY_POST6:
|
case EVENT_STOP_MONEY_POST6:
|
||||||
case EVENT_STOP_MONEY_VACUUM1:
|
|
||||||
case EVENT_STOP_MONEY_VACUUM2:
|
|
||||||
if (GetMode() == MODE_WORK) //
|
if (GetMode() == MODE_WORK) //
|
||||||
{
|
{
|
||||||
int number_post = event - EVENT_STOP_MONEY_POST1;
|
int number_post = event - EVENT_STOP_MONEY_POST1;
|
||||||
|
|
||||||
accmoney = GetAcceptedMoney(number_post);
|
accmoney = GetAcceptedMoney(number_post);
|
||||||
|
accmoney += GetAcceptedBankMoney(number_post);
|
||||||
|
|
||||||
if (accmoney > 0)
|
if (accmoney > 0)
|
||||||
{
|
{
|
||||||
wash_State[number_post] = washing;
|
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_POST4:
|
||||||
case EVENT_WAIT_CASH_PRINT_CHECK_POST5:
|
case EVENT_WAIT_CASH_PRINT_CHECK_POST5:
|
||||||
case EVENT_WAIT_CASH_PRINT_CHECK_POST6:
|
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) //
|
if (GetMode() == MODE_WORK) //
|
||||||
{
|
{
|
||||||
int number_post = event - EVENT_WAIT_CASH_PRINT_CHECK_POST1;
|
int number_post = event - EVENT_WAIT_CASH_PRINT_CHECK_POST1;
|
||||||
int count_delay = 0;
|
int count_delay = 0;
|
||||||
|
|
||||||
accmoney = GetAcceptedMoney(number_post);
|
accmoney = GetAcceptedMoney(number_post);
|
||||||
|
accmoney += GetAcceptedBankMoney(number_post);
|
||||||
|
|
||||||
if (accmoney > 0)
|
if (accmoney > 0)
|
||||||
{
|
{
|
||||||
// çàïóñòèì çàäåðæêó ïå÷àòè ÷åêà
|
// çàïóñòèì çàäåðæêó ïå÷àòè ÷åêà
|
||||||
@ -442,14 +493,46 @@ void UserAppTask(void *p_arg)
|
|||||||
int number_post = event - EVENT_CASH_PRINT_CHECK_POST1;
|
int number_post = event - EVENT_CASH_PRINT_CHECK_POST1;
|
||||||
|
|
||||||
// çäåñü ñîáûòèå ñòàðòà ïå÷àòè ÷åêà - âêëþ÷èëè íàñîñ èëè ïûëåñîñ
|
// çäåñü ñîáûòèå ñòàðòà ïå÷àòè ÷åêà - âêëþ÷èëè íàñîñ èëè ïûëåñîñ
|
||||||
CPU_INT32U accmoney = GetAcceptedMoney(number_post);
|
accmoney = GetAcceptedMoney(number_post);
|
||||||
|
|
||||||
if (accmoney > 0)
|
if (accmoney > 0)
|
||||||
{
|
{
|
||||||
UserPrintPrintBillMenu(number_post);
|
UserPrintPrintBillMenu(number_post);
|
||||||
RefreshMenu();
|
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 (IsFiscalConnected())
|
||||||
{
|
{
|
||||||
if (PrintFiscalBill(accmoney,number_post) == 0) // çäåñü äîáàâèòü ñ êàêîãî ïîñòà ÷åê
|
if (PrintFiscalBill(accmoney,number_post) == 0) // çäåñü äîáàâèòü ñ êàêîãî ïîñòà ÷åê
|
||||||
@ -476,8 +559,8 @@ void UserAppTask(void *p_arg)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case EVENT_KEY_F1:
|
case EVENT_KEY_F1:
|
||||||
//testMoney = 100;
|
testMoney = 100;
|
||||||
//PostUserEvent(EVENT_CASH_INSERTED_POST1);
|
PostUserEvent(EVENT_COIN_INSERTED_VACUUM1);
|
||||||
|
|
||||||
/*FIO4SET_bit.P4_28 = 1;
|
/*FIO4SET_bit.P4_28 = 1;
|
||||||
OSTimeDly(50);
|
OSTimeDly(50);
|
||||||
@ -767,6 +850,24 @@ void LoadAcceptedMoney(void)
|
|||||||
SetData(&AcceptedMoneyCRC16Desc, &crc, i, DATA_FLAG_DIRECT_INDEX);
|
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;
|
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)
|
void InitPass(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -54,14 +54,19 @@ enum{
|
|||||||
EVENT_CASH_INSERTED_POST5,
|
EVENT_CASH_INSERTED_POST5,
|
||||||
EVENT_CASH_INSERTED_POST6,
|
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_POST1,
|
||||||
EVENT_STOP_MONEY_POST2,
|
EVENT_STOP_MONEY_POST2,
|
||||||
EVENT_STOP_MONEY_POST3,
|
EVENT_STOP_MONEY_POST3,
|
||||||
EVENT_STOP_MONEY_POST4,
|
EVENT_STOP_MONEY_POST4,
|
||||||
EVENT_STOP_MONEY_POST5,
|
EVENT_STOP_MONEY_POST5,
|
||||||
EVENT_STOP_MONEY_POST6,
|
EVENT_STOP_MONEY_POST6,
|
||||||
EVENT_STOP_MONEY_VACUUM1,
|
|
||||||
EVENT_STOP_MONEY_VACUUM2,
|
|
||||||
|
|
||||||
EVENT_WAIT_CASH_PRINT_CHECK_POST1,
|
EVENT_WAIT_CASH_PRINT_CHECK_POST1,
|
||||||
EVENT_WAIT_CASH_PRINT_CHECK_POST2,
|
EVENT_WAIT_CASH_PRINT_CHECK_POST2,
|
||||||
@ -69,8 +74,6 @@ enum{
|
|||||||
EVENT_WAIT_CASH_PRINT_CHECK_POST4,
|
EVENT_WAIT_CASH_PRINT_CHECK_POST4,
|
||||||
EVENT_WAIT_CASH_PRINT_CHECK_POST5,
|
EVENT_WAIT_CASH_PRINT_CHECK_POST5,
|
||||||
EVENT_WAIT_CASH_PRINT_CHECK_POST6,
|
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_POST1,
|
||||||
EVENT_CASH_PRINT_CHECK_POST2,
|
EVENT_CASH_PRINT_CHECK_POST2,
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "fiscal.h"
|
#include "fiscal.h"
|
||||||
|
|
||||||
#define EVENT_RECORDS_COUNT 512 // ÷èñëî çàïèñåé â æóðíàëå
|
#define EVENT_RECORDS_COUNT 384 // ÷èñëî çàïèñåé â æóðíàëå
|
||||||
|
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
/// ñòðóêòóðà çàïèñè æóðíàëà ðàáî÷èõ ñîáûòèé
|
/// ñòðóêòóðà çàïèñè æóðíàëà ðàáî÷èõ ñîáûòèé
|
||||||
|
|||||||
@ -74,6 +74,41 @@ TDataDescStruct const CashPulseLenDesc = {
|
|||||||
50
|
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
|
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 OnOffList_str1[] = "вкл.";
|
||||||
CPU_INT08U const *EnableValidatorList[] = {OnOffList_str0, OnOffList_str1};
|
CPU_INT08U const *EnableValidatorList[] = {OnOffList_str0, OnOffList_str1};
|
||||||
|
|
||||||
|
|
||||||
TDataDescStruct const EnableValidatorDesc = {
|
TDataDescStruct const EnableValidatorDesc = {
|
||||||
DATA_DESC_EDIT, // тип дескриптора
|
DATA_DESC_EDIT, // тип дескриптора
|
||||||
DATA_TYPE_ULONG, // тип параметра
|
DATA_TYPE_ULONG, // тип параметра
|
||||||
@ -155,6 +213,30 @@ TDataDescStruct const EnableValidatorDesc = {
|
|||||||
1 // значение по умолчанию
|
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 SignalIndexName[] = "НАСТ.СИГН.ПЕЧ.";
|
||||||
CPU_INT08U const SignalIndex_str0[] = "1";
|
CPU_INT08U const SignalIndex_str0[] = "1";
|
||||||
CPU_INT08U const SignalIndex_str1[] = "2";
|
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_str3[] = "4";
|
||||||
CPU_INT08U const SignalIndex_str4[] = "5";
|
CPU_INT08U const SignalIndex_str4[] = "5";
|
||||||
CPU_INT08U const SignalIndex_str5[] = "6";
|
CPU_INT08U const SignalIndex_str5[] = "6";
|
||||||
CPU_INT08U const SignalIndex_str6[] = "Ï1";
|
CPU_INT08U const *SignalIndexList[] = {SignalIndex_str0, SignalIndex_str1,SignalIndex_str2,SignalIndex_str3,SignalIndex_str4,SignalIndex_str5};
|
||||||
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_INT32U CoinIndex = 0;
|
CPU_INT32U CoinIndex = 0;
|
||||||
|
|
||||||
@ -373,7 +453,7 @@ TDataDescStruct const EnableSignalDesc = {
|
|||||||
DATA_TYPE_ULONG, // тип параметра
|
DATA_TYPE_ULONG, // тип параметра
|
||||||
DATA_LOC_FRAM, // расположение параметра
|
DATA_LOC_FRAM, // расположение параметра
|
||||||
DATA_IS_ARRAY, // признак массива
|
DATA_IS_ARRAY, // признак массива
|
||||||
COUNT_POST+COUNT_VACUUM,// ðàçìåð ìàññèâà
|
COUNT_POST,// размер массива
|
||||||
&SignalIndexDesc, // указатель на десриптор индекса массива
|
&SignalIndexDesc, // указатель на десриптор индекса массива
|
||||||
(void*)offsetof(TFramMap, enableSignalPrint), // указатель на переменную или адрес FRAM
|
(void*)offsetof(TFramMap, enableSignalPrint), // указатель на переменную или адрес FRAM
|
||||||
(void*)&EnableSignalRange, // указатель на границы параметра
|
(void*)&EnableSignalRange, // указатель на границы параметра
|
||||||
@ -407,7 +487,7 @@ TDataDescStruct const SignalPulseDesc = {
|
|||||||
DATA_TYPE_ULONG, // тип параметра
|
DATA_TYPE_ULONG, // тип параметра
|
||||||
DATA_LOC_FRAM, // расположение параметра
|
DATA_LOC_FRAM, // расположение параметра
|
||||||
DATA_IS_ARRAY, // признак массива
|
DATA_IS_ARRAY, // признак массива
|
||||||
COUNT_POST+COUNT_VACUUM, // ðàçìåð ìàññèâà
|
COUNT_POST, // размер массива
|
||||||
&SignalIndexDesc, // указатель на десриптор индекса массива
|
&SignalIndexDesc, // указатель на десриптор индекса массива
|
||||||
(void*)offsetof(TFramMap, signal_pulse_len), // указатель на переменную или адрес FRAM
|
(void*)offsetof(TFramMap, signal_pulse_len), // указатель на переменную или адрес FRAM
|
||||||
(void*)&SignalPulseRange, // указатель на границы параметра
|
(void*)&SignalPulseRange, // указатель на границы параметра
|
||||||
@ -510,6 +590,38 @@ TDataDescStruct const CoinPerPulseDesc = {
|
|||||||
1 // значение по умолчанию
|
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
|
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 // значение по умолчанию
|
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()
|
void OnChangeLevel()
|
||||||
{
|
{
|
||||||
CPU_INT32U level1, level2, level3;
|
CPU_INT32U level1, level2, level3, level4;
|
||||||
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
|
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
|
||||||
{
|
{
|
||||||
if(post < COUNT_POST) GetData(&CashLevelDesc, &level1, post, DATA_FLAG_DIRECT_INDEX);
|
if(post < COUNT_POST)
|
||||||
GetData(&CoinLevelDesc, &level2, post, DATA_FLAG_DIRECT_INDEX);
|
{
|
||||||
GetData(&SignalStopMoneyLevelDesc, &level3, post, DATA_FLAG_DIRECT_INDEX);
|
GetData(&CashLevelDesc, &level1, post, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&BankLevelDesc, &level2, post, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
GetData(&SignalStopMoneyLevelDesc, &level3, post, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
}
|
||||||
|
|
||||||
SetLevelParam(level1, level2, level3, post);
|
GetData(&CoinLevelDesc, &level4, post, DATA_FLAG_DIRECT_INDEX);
|
||||||
|
|
||||||
|
SetLevelParam(level1, level2, level3, level4, post);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -705,6 +873,27 @@ TDataDescStruct const CashLevelDesc = {
|
|||||||
1 // значение по умолчанию
|
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_TYPE_ULONG, // тип параметра
|
||||||
DATA_LOC_FRAM, // расположение параметра
|
DATA_LOC_FRAM, // расположение параметра
|
||||||
DATA_IS_ARRAY, // признак массива
|
DATA_IS_ARRAY, // признак массива
|
||||||
COUNT_POST + COUNT_VACUUM, // ðàçìåð ìàññèâà
|
COUNT_POST, // размер массива
|
||||||
&SignalIndexDesc, // указатель на десриптор индекса массива
|
&SignalIndexDesc, // указатель на десриптор индекса массива
|
||||||
(void*)offsetof(TFramMap, DeviceConfig.SignalLevel), // указатель на переменную или адрес FRAM
|
(void*)offsetof(TFramMap, DeviceConfig.SignalLevel), // указатель на переменную или адрес FRAM
|
||||||
(void*)&LevelRange, // указатель на границы параметра
|
(void*)&LevelRange, // указатель на границы параметра
|
||||||
@ -1957,6 +2146,47 @@ TDataDescStruct const AcceptedMoneyCRC16Desc = {
|
|||||||
0
|
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"},
|
{&CoinLevelDesc, "CoinLevelDesc"},
|
||||||
{&SignalStopMoneyLevelDesc, "SignalStopMoneyLevelDesc"},
|
{&SignalStopMoneyLevelDesc, "SignalStopMoneyLevelDesc"},
|
||||||
|
|
||||||
|
{&EnableBankDesc, "EnableBankDesc"},
|
||||||
|
{&BankPerPulseDesc, "BankPerPulseDesc"},
|
||||||
|
{&BankPulseLenDesc, "BankPulseLenDesc"},
|
||||||
|
{&BankPauseLenDesc, "BankPauseLenDesc"},
|
||||||
|
{&BankLevelDesc, "BankLevelDesc"},
|
||||||
|
|
||||||
|
{&CoinTimeOutDesc, "CoinTimeOutDesc"},
|
||||||
|
|
||||||
{NULL, ""}
|
{NULL, ""}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -17,14 +17,19 @@
|
|||||||
|
|
||||||
// ñòðóêòóðà êîíôèãóðàöèè àïïàðàòóðû
|
// ñòðóêòóðà êîíôèãóðàöèè àïïàðàòóðû
|
||||||
typedef struct{
|
typedef struct{
|
||||||
CPU_INT32U EnableValidator[COUNT_POST + COUNT_VACUUM];
|
|
||||||
CPU_INT32U EnableCoinAcceptor[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 EnableModem;
|
||||||
CPU_INT32U EnableFiscal;
|
CPU_INT32U EnableFiscal;
|
||||||
CPU_INT32U EnableFiscalDayClear;
|
CPU_INT32U EnableFiscalDayClear;
|
||||||
CPU_INT32U ServiceName;
|
CPU_INT32U ServiceName;
|
||||||
|
|
||||||
CPU_INT32U CoinPerPulse[COUNT_POST + COUNT_VACUUM]; // öåíà èìïóëüñà ìîíåòîïðèåìíèêà
|
CPU_INT32U CoinPerPulse[COUNT_POST + COUNT_VACUUM]; // öåíà èìïóëüñà ìîíåòîïðèåìíèêà
|
||||||
|
CPU_INT32U CoinTimeOut[COUNT_POST + COUNT_VACUUM]; // òàéìàóò ïå÷àòè ÷åêà ìîíåòîïðèåìíèêà
|
||||||
|
|
||||||
CPU_INT32U BillFormat;
|
CPU_INT32U BillFormat;
|
||||||
|
|
||||||
CPU_INT32U DisableFiscalErrors; // îòêëþ÷åíèå ðåàêöèè íà îøèáêè ÔÐ
|
CPU_INT32U DisableFiscalErrors; // îòêëþ÷åíèå ðåàêöèè íà îøèáêè ÔÐ
|
||||||
@ -35,14 +40,19 @@ typedef struct{
|
|||||||
CPU_INT32U ClearJournalAfterSend;
|
CPU_INT32U ClearJournalAfterSend;
|
||||||
CPU_INT32U StatSendHourMin;
|
CPU_INT32U StatSendHourMin;
|
||||||
|
|
||||||
CPU_INT32U CashMode[COUNT_POST + COUNT_VACUUM];
|
CPU_INT32U CashMode[COUNT_POST];
|
||||||
CPU_INT32U CashPerPulse[COUNT_POST + COUNT_VACUUM]; // öåíà èìïóëüñà êóïþðíèêà
|
CPU_INT32U CashPerPulse[COUNT_POST]; // öåíà èìïóëüñà êóïþðíèêà
|
||||||
|
|
||||||
|
CPU_INT32U BankPerPulse[COUNT_POST]; // öåíà èìïóëüñà áàíêîâñêîãî òåðìèíàëà
|
||||||
|
|
||||||
CPU_INT32U PrintTimeout;
|
CPU_INT32U PrintTimeout;
|
||||||
CPU_INT32U PrintTimeoutAfter;
|
CPU_INT32U PrintTimeoutAfter;
|
||||||
|
|
||||||
CPU_INT32U CashLevel[COUNT_POST + COUNT_VACUUM]; // óðîâåíü ñèãíàëà êóïþðíèêà
|
|
||||||
CPU_INT32U CoinLevel[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;
|
CPU_INT32U PrintMode;
|
||||||
|
|
||||||
@ -69,6 +79,7 @@ extern TDataDescStruct const EnableFiscalDesc;
|
|||||||
extern TDataDescStruct const EnableCoinDesc;
|
extern TDataDescStruct const EnableCoinDesc;
|
||||||
extern TDataDescStruct const EnableModemDesc;
|
extern TDataDescStruct const EnableModemDesc;
|
||||||
extern TDataDescStruct const EnableValidatorDesc;
|
extern TDataDescStruct const EnableValidatorDesc;
|
||||||
|
extern TDataDescStruct const EnableBankDesc;
|
||||||
extern TDataDescStruct const CoinPerPulseDesc;
|
extern TDataDescStruct const CoinPerPulseDesc;
|
||||||
extern TDataDescStruct const EnableFiscalDayClearDesc;
|
extern TDataDescStruct const EnableFiscalDayClearDesc;
|
||||||
|
|
||||||
@ -104,6 +115,8 @@ extern TDataDescStruct const BillFormatDesc;
|
|||||||
|
|
||||||
extern TDataDescStruct const AcceptedMoneyDesc;
|
extern TDataDescStruct const AcceptedMoneyDesc;
|
||||||
extern TDataDescStruct const AcceptedMoneyCRC16Desc;
|
extern TDataDescStruct const AcceptedMoneyCRC16Desc;
|
||||||
|
extern TDataDescStruct const AcceptedBankMoneyDesc;
|
||||||
|
extern TDataDescStruct const AcceptedBankMoneyCRC16Desc;
|
||||||
|
|
||||||
extern TDataDescStruct const DisableFiscalErrorsDesc;
|
extern TDataDescStruct const DisableFiscalErrorsDesc;
|
||||||
|
|
||||||
@ -164,6 +177,8 @@ extern TDataDescStruct const TaxSystemDesc;
|
|||||||
|
|
||||||
extern TDataDescStruct const CoinIndexDesc;
|
extern TDataDescStruct const CoinIndexDesc;
|
||||||
extern TDataDescStruct const CashIndexDesc;
|
extern TDataDescStruct const CashIndexDesc;
|
||||||
|
extern TDataDescStruct const BankIndexDesc;
|
||||||
|
|
||||||
extern CPU_INT32U CoinIndex;
|
extern CPU_INT32U CoinIndex;
|
||||||
|
|
||||||
extern TDataDescStruct const SignalIndexDesc;
|
extern TDataDescStruct const SignalIndexDesc;
|
||||||
@ -174,4 +189,12 @@ extern TDataDescStruct const CashLevelDesc;
|
|||||||
extern TDataDescStruct const CoinLevelDesc;
|
extern TDataDescStruct const CoinLevelDesc;
|
||||||
extern TDataDescStruct const SignalPrintLevelDesc;
|
extern TDataDescStruct const SignalPrintLevelDesc;
|
||||||
extern TDataDescStruct const SignalStopMoneyLevelDesc;
|
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_
|
#endif //#ifndef _DATADESC_H_
|
||||||
|
|||||||
@ -11,22 +11,42 @@ typedef struct
|
|||||||
CPU_INT32U SerialNum;
|
CPU_INT32U SerialNum;
|
||||||
|
|
||||||
TDeviceConfig DeviceConfig;
|
TDeviceConfig DeviceConfig;
|
||||||
// ñ÷åò÷èêè
|
|
||||||
TCounters Counters;
|
|
||||||
|
|
||||||
// äëèííûå ñ÷åò÷èêè ñ CRC16
|
|
||||||
TCountersLong CountersLong;
|
|
||||||
|
|
||||||
CPU_INT32U FRAM_AcceptedMoney[COUNT_POST + COUNT_VACUUM];
|
CPU_INT32U FRAM_AcceptedMoney[COUNT_POST + COUNT_VACUUM];
|
||||||
CPU_INT32U crc_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];
|
TEventRecord EventRecords[EVENT_RECORDS_COUNT];
|
||||||
|
|
||||||
CPU_INT32U Price;
|
CPU_INT32U Price;
|
||||||
|
|
||||||
CPU_INT32U Pass;
|
// ñ÷åò÷èêè
|
||||||
CPU_INT32U crc_Pass;
|
TCounters Counters;
|
||||||
|
// äëèííûå ñ÷åò÷èêè ñ CRC16
|
||||||
|
TCountersLong CountersLong;
|
||||||
|
|
||||||
CPU_INT32U LastEmailTime;
|
CPU_INT32U LastEmailTime;
|
||||||
|
|
||||||
@ -44,19 +64,5 @@ typedef struct
|
|||||||
|
|
||||||
CPU_INT16U port;
|
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;
|
}TFramMap;
|
||||||
|
|
||||||
|
|||||||
@ -675,7 +675,7 @@ const TMenuPanel SetNewPassMenuPanel[] = {arr_SetNewPassMenuArray, NULL, 2, MENU
|
|||||||
const CPU_INT08U str_DeviceMenu_0[] = " ÎÁÎÐÓÄÎÂÀÍÈÅ";
|
const CPU_INT08U str_DeviceMenu_0[] = " ÎÁÎÐÓÄÎÂÀÍÈÅ";
|
||||||
const CPU_INT08U str_DeviceMenu_1[] = "ÔÐ";
|
const CPU_INT08U str_DeviceMenu_1[] = "ÔÐ";
|
||||||
const CPU_INT08U str_DeviceMenu_2[] = "Ìîíåòîïðèåìíèêè";
|
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_4[] = "Êóïþðîïðèåìíèêè";
|
||||||
const CPU_INT08U str_DeviceMenu_5[] = "Ñèãíàë ïå÷àòè";
|
const CPU_INT08U str_DeviceMenu_5[] = "Ñèãíàë ïå÷àòè";
|
||||||
|
|
||||||
@ -707,12 +707,12 @@ const TMenuLine line_DeviceMenu_3 = {
|
|||||||
(void*)&CoinSetupPanel // ïàíåëü äëÿ ïåðåõîäà
|
(void*)&CoinSetupPanel // ïàíåëü äëÿ ïåðåõîäà
|
||||||
};
|
};
|
||||||
|
|
||||||
/*const TMenuLine line_DeviceMenu_4 = {
|
const TMenuLine line_DeviceMenu_4 = {
|
||||||
MENU_LINE_GOTO_MENU, // òèï ïóíêòà ìåíþ
|
MENU_LINE_GOTO_MENU, // òèï ïóíêòà ìåíþ
|
||||||
0, // äîï. ôëàãè
|
0, // äîï. ôëàãè
|
||||||
(void*)str_DeviceMenu_3, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
(void*)str_DeviceMenu_3, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
||||||
(void*)&ModemSetupPanel // ïàíåëü äëÿ ïåðåõîäà
|
(void*)&BankSetupPanel // ïàíåëü äëÿ ïåðåõîäà
|
||||||
};*/
|
};
|
||||||
|
|
||||||
const TMenuLine line_DeviceMenu_5 = {
|
const TMenuLine line_DeviceMenu_5 = {
|
||||||
MENU_LINE_GOTO_MENU, // òèï ïóíêòà ìåíþ
|
MENU_LINE_GOTO_MENU, // òèï ïóíêòà ìåíþ
|
||||||
@ -721,8 +721,8 @@ const TMenuLine line_DeviceMenu_5 = {
|
|||||||
(void*)&SignalSetupPanel // ïàíåëü äëÿ ïåðåõîäà
|
(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 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, 5, MENU_PANEL_STANDARD};
|
const TMenuPanel DeviceMenuPanel[] = {arr_DeviceMenuArray, NULL, 6, MENU_PANEL_STANDARD};
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ñèãíàëîâ ïå÷àòè ÷åêîâ
|
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ñèãíàëîâ ïå÷àòè ÷åêîâ
|
||||||
@ -895,6 +895,13 @@ const TMenuLine line_CoinMenu_2 = {
|
|||||||
NULL // ïàíåëü äëÿ ïåðåõîäà
|
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const TMenuLine line_CoinMenu_4 = {
|
||||||
|
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||||
|
0, // äîï. ôëàãè
|
||||||
|
(void*)&CoinTimeOutDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
|
||||||
|
NULL // ïàíåëü äëÿ ïåðåõîäà
|
||||||
|
};
|
||||||
|
|
||||||
const TMenuLine line_CoinMenu_3 = {
|
const TMenuLine line_CoinMenu_3 = {
|
||||||
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
|
||||||
0, // äîï. ôëàãè
|
0, // äîï. ôëàãè
|
||||||
@ -907,8 +914,8 @@ void OnEnterCoinMenu(void)
|
|||||||
CoinIndex = 0;
|
CoinIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TMenuLineArray arr_CoinMenuArray[] = {&line_CoinMenu_0, &line_CoinMenu_1, &line_CoinMenu_2, &line_CoinMenu_3, NULL};
|
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, 4, MENU_PANEL_STANDARD};
|
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 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 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 CommonCountersPanel[];
|
||||||
extern const TMenuPanel bufReportMenuPanel[];
|
extern const TMenuPanel bufReportMenuPanel[];
|
||||||
extern const TMenuPanel ValidatorSetupPanel[];
|
extern const TMenuPanel ValidatorSetupPanel[];
|
||||||
|
extern const TMenuPanel BankSetupPanel[];
|
||||||
|
|
||||||
extern void PrintUserMenuStr(char* str, CPU_INT08U n);
|
extern void PrintUserMenuStr(char* str, CPU_INT08U n);
|
||||||
extern void PrintEventJournalRecord(TEventRecord *record);
|
extern void PrintEventJournalRecord(TEventRecord *record);
|
||||||
|
|||||||
@ -13,13 +13,18 @@ void InitImpInput(void);
|
|||||||
|
|
||||||
CPU_INT32U CoinImpCounter[COUNT_POST + COUNT_VACUUM];
|
CPU_INT32U CoinImpCounter[COUNT_POST + COUNT_VACUUM];
|
||||||
CPU_INT32U CashImpCounter[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_pulse[COUNT_POST + COUNT_VACUUM];
|
||||||
static CPU_INT32U cash_pause[COUNT_POST + COUNT_VACUUM];
|
static CPU_INT32U cash_pause[COUNT_POST + COUNT_VACUUM];
|
||||||
|
|
||||||
static char pend_cash_counter[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 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 CPU_INT32U signal_pulse[COUNT_POST + COUNT_VACUUM];
|
||||||
static char pend_upsignal_counter[COUNT_POST + COUNT_VACUUM];
|
static char pend_upsignal_counter[COUNT_POST + COUNT_VACUUM];
|
||||||
static char pend_downsignal_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 cashLevel[COUNT_POST + COUNT_VACUUM];
|
||||||
CPU_INT32U coinLevel[COUNT_POST + COUNT_VACUUM];
|
CPU_INT32U coinLevel[COUNT_POST + COUNT_VACUUM];
|
||||||
CPU_INT32U SignalLevel[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)
|
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();
|
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)
|
void SetSignalPulseParam(CPU_INT32U pulse, CPU_INT32U post)
|
||||||
{
|
{
|
||||||
#if OS_CRITICAL_METHOD == 3
|
#if OS_CRITICAL_METHOD == 3
|
||||||
@ -50,26 +67,38 @@ void SetSignalPulseParam(CPU_INT32U pulse, CPU_INT32U post)
|
|||||||
OS_EXIT_CRITICAL();
|
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
|
#if OS_CRITICAL_METHOD == 3
|
||||||
OS_CPU_SR cpu_sr = 0;
|
OS_CPU_SR cpu_sr = 0;
|
||||||
#endif
|
#endif
|
||||||
OS_ENTER_CRITICAL();
|
OS_ENTER_CRITICAL();
|
||||||
if(post < COUNT_POST) cashLevel[post] = level1;
|
if(post < COUNT_POST)
|
||||||
coinLevel[post] = level2;
|
{
|
||||||
SignalLevel[post] = level3;
|
cashLevel[post] = level1;
|
||||||
|
bankLevel[post] = level2;
|
||||||
|
SignalLevel[post] = level3;
|
||||||
|
}
|
||||||
|
|
||||||
|
coinLevel[post] = level4;
|
||||||
|
|
||||||
OS_EXIT_CRITICAL();
|
OS_EXIT_CRITICAL();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CoinTask(void *p_arg)
|
void CoinTask(void *p_arg)
|
||||||
{
|
{
|
||||||
CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM];
|
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 last_cash_count[COUNT_POST + COUNT_VACUUM];
|
CPU_INT32U cash_enable[COUNT_POST];
|
||||||
CPU_INT32U last_cash_time[COUNT_POST + COUNT_VACUUM];
|
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_settings_time = 0;
|
CPU_INT32U last_settings_time = 0;
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
@ -79,8 +108,13 @@ void CoinTask(void *p_arg)
|
|||||||
for(int i = 0; i < COUNT_POST + COUNT_VACUUM; i++)
|
for(int i = 0; i < COUNT_POST + COUNT_VACUUM; i++)
|
||||||
{
|
{
|
||||||
GetData(&EnableCoinDesc, &enable_coin[i], i, DATA_FLAG_DIRECT_INDEX);
|
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();
|
last_settings_time = OSTimeGet();
|
||||||
@ -107,6 +141,9 @@ void CoinTask(void *p_arg)
|
|||||||
GetResetCoinCount(i);
|
GetResetCoinCount(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(i >= COUNT_POST) continue;
|
||||||
|
// òîëüêî ìîíåòîïðèåìíèêîâ 8 - îñòàëüíûõ êàíàëîâ 6
|
||||||
|
|
||||||
OS_ENTER_CRITICAL();
|
OS_ENTER_CRITICAL();
|
||||||
if (enable_signal[i])
|
if (enable_signal[i])
|
||||||
{
|
{
|
||||||
@ -131,8 +168,46 @@ void CoinTask(void *p_arg)
|
|||||||
}
|
}
|
||||||
OS_EXIT_CRITICAL();
|
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 (!cash_enable[i]) {GetResetCashCount(i); continue;}
|
||||||
if(i >= COUNT_POST) continue;
|
|
||||||
|
|
||||||
OS_ENTER_CRITICAL();
|
OS_ENTER_CRITICAL();
|
||||||
if (pend_cash_counter[i])
|
if (pend_cash_counter[i])
|
||||||
@ -229,9 +304,36 @@ CPU_INT32U GetResetCashCount(int index)
|
|||||||
return ctr;
|
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[COUNT_POST + COUNT_VACUUM];
|
||||||
CPU_INT32U period_cash[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 period_signal[COUNT_POST + COUNT_VACUUM];
|
||||||
|
|
||||||
CPU_INT32U T3CR = 0;
|
CPU_INT32U T3CR = 0;
|
||||||
|
|
||||||
// èíèöèàëèçàöèÿ ìîíåòîïðèåìíèêà
|
// èíèöèàëèçàöèÿ ìîíåòîïðèåìíèêà
|
||||||
@ -241,13 +343,18 @@ void InitCoin(void)
|
|||||||
{
|
{
|
||||||
CoinImpCounter[i] = 0;
|
CoinImpCounter[i] = 0;
|
||||||
CashImpCounter[i] = 0;
|
CashImpCounter[i] = 0;
|
||||||
|
BankImpCounter[i] = 0;
|
||||||
|
|
||||||
cash_pulse[i] = 50;
|
cash_pulse[i] = 50;
|
||||||
cash_pause[i] = 50;
|
cash_pause[i] = 50;
|
||||||
|
|
||||||
pend_cash_counter[i] = 0;
|
pend_cash_counter[i] = 0;
|
||||||
pend_cash_timestamp[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;
|
signal_pulse[i] = 1000;
|
||||||
pend_upsignal_counter[i] = 0;
|
pend_upsignal_counter[i] = 0;
|
||||||
pend_downsignal_counter[i] = 0;
|
pend_downsignal_counter[i] = 0;
|
||||||
@ -255,6 +362,7 @@ void InitCoin(void)
|
|||||||
|
|
||||||
period[i] = 0;
|
period[i] = 0;
|
||||||
period_cash[i] = 0;
|
period_cash[i] = 0;
|
||||||
|
period_bank[i] = 0;
|
||||||
period_signal[i] = 0;
|
period_signal[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -342,18 +450,34 @@ CPU_INT32U input_register()
|
|||||||
{
|
{
|
||||||
SETBIT(input, 18);
|
SETBIT(input, 18);
|
||||||
}
|
}
|
||||||
if (FIO0PIN_bit.P0_6)
|
if (FIO1PIN_bit.P1_25)
|
||||||
{
|
{
|
||||||
SETBIT(input, 19);
|
SETBIT(input, 19);
|
||||||
}
|
}
|
||||||
if (FIO1PIN_bit.P1_25)
|
if (FIO0PIN_bit.P0_28)
|
||||||
{
|
{
|
||||||
SETBIT(input, 20);
|
SETBIT(input, 20);
|
||||||
}
|
}
|
||||||
if (FIO0PIN_bit.P0_10)
|
if (FIO0PIN_bit.P0_27)
|
||||||
{
|
{
|
||||||
SETBIT(input, 21);
|
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;
|
return input;
|
||||||
}
|
}
|
||||||
@ -719,25 +843,8 @@ void InputCapture_ISR(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 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
|
// ìîíåòîïðèåìíèê ïûëåñîñ 2
|
||||||
if(TSTBIT(input_event, 20))
|
if(TSTBIT(input_event, 19))
|
||||||
{
|
{
|
||||||
if ((!FIO1PIN_bit.P1_25 && coinLevel[7]) || (FIO1PIN_bit.P1_25 && !coinLevel[7]))
|
if ((!FIO1PIN_bit.P1_25 && coinLevel[7]) || (FIO1PIN_bit.P1_25 && !coinLevel[7]))
|
||||||
{ // ïðèøåë çàäíèé ôðîíò
|
{ // ïðèøåë çàäíèé ôðîíò
|
||||||
@ -752,20 +859,129 @@ void InputCapture_ISR(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 2
|
// áàíê 1
|
||||||
if(TSTBIT(input_event, 21))
|
if(TSTBIT(input_event, 20))
|
||||||
{
|
{
|
||||||
pend_signal_timestamp[7] = OSTimeGet();
|
if ((!FIO0PIN_bit.P0_28 && bankLevel[0]) || (FIO0PIN_bit.P0_28 && !bankLevel[0]))
|
||||||
|
{ // ïðèøåë çàäíèé ôðîíò
|
||||||
|
CPU_INT32U cr=T3CR;
|
||||||
|
cr -= period_bank[0];
|
||||||
|
|
||||||
if ((FIO0PIN_bit.P0_10 && SignalLevel[7]) || (!FIO0PIN_bit.P0_10 && !SignalLevel[7]))
|
if (cr > (bank_pulse[0] - COIN_IMP_SPAN))
|
||||||
{
|
{
|
||||||
pend_upsignal_counter[7] = 1;
|
pend_bank_counter[0] = 1;
|
||||||
pend_downsignal_counter[7] = 0;
|
pend_bank_timestamp[0] = OSTimeGet();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{ // ïðèøåë ïåðåäíèé ôðîíò
|
||||||
pend_upsignal_counter[7] = 0;
|
period_bank[0] = T3CR;
|
||||||
pend_downsignal_counter[7] = 1;
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -906,19 +1122,43 @@ void InitImpInput (void)
|
|||||||
FIO0DIR_bit.P0_5 = 0;
|
FIO0DIR_bit.P0_5 = 0;
|
||||||
FIO0MASK_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
|
// ìîíåòîïðèåìíèê ïûëåñîñ 2
|
||||||
PINSEL3_bit.P1_25 = 0;
|
PINSEL3_bit.P1_25 = 0;
|
||||||
PINMODE3_bit.P1_25 = 0;
|
PINMODE3_bit.P1_25 = 0;
|
||||||
FIO1DIR_bit.P1_25 = 0;
|
FIO1DIR_bit.P1_25 = 0;
|
||||||
FIO1MASK_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;
|
PINSEL0_bit.P0_10 = 0;
|
||||||
PINMODE0_bit.P0_10 = 0;
|
PINMODE0_bit.P0_10 = 0;
|
||||||
FIO0DIR_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 CPU_INT32U GetResetCoinCount(int index);
|
||||||
extern void CoinDisable(void);
|
extern void CoinDisable(void);
|
||||||
extern void CoinEnable(void);
|
extern void CoinEnable(void);
|
||||||
|
|
||||||
extern CPU_INT32U GetCashCount(int index);
|
extern CPU_INT32U GetCashCount(int index);
|
||||||
extern CPU_INT32U GetResetCashCount(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 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 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 BIT(bit) (1UL << (bit))
|
||||||
|
|
||||||
#define SETBIT(Val,bit) ((Val) |= BIT(bit))
|
#define SETBIT(Val,bit) ((Val) |= BIT(bit))
|
||||||
|
|||||||
@ -14,7 +14,7 @@ Count=0
|
|||||||
Enabled=0
|
Enabled=0
|
||||||
ShowSource=1
|
ShowSource=1
|
||||||
[DebugChecksum]
|
[DebugChecksum]
|
||||||
Checksum=-59974582
|
Checksum=1092686877
|
||||||
[Exceptions]
|
[Exceptions]
|
||||||
StopOnUncaught=_ 0
|
StopOnUncaught=_ 0
|
||||||
StopOnThrow=_ 0
|
StopOnThrow=_ 0
|
||||||
@ -155,7 +155,9 @@ Fmt0={W}0:curr_input 4 0
|
|||||||
[Disassemble mode]
|
[Disassemble mode]
|
||||||
mode=0
|
mode=0
|
||||||
[Breakpoints2]
|
[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]
|
[Log file]
|
||||||
LoggingEnabled=_ 0
|
LoggingEnabled=_ 0
|
||||||
LogFile=_ ""
|
LogFile=_ ""
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user