1. поменяли ножки для банковских терминалов Б1 и Б2

2. ввел таймаут ожидания печати чека после снятия ошибки фискальника
3. нашел пару ошибок при работе с банковскими входами
4. очистка таймеров и сброс в сбор денег при возникновении ошибок фискальника
This commit is contained in:
dimoniche 2020-02-12 22:25:02 +03:00
parent 26b63f450b
commit 038555861d
6 changed files with 4296 additions and 4235 deletions

View File

@ -103,6 +103,9 @@ static CPU_INT32U bank_enable[COUNT_POST];
static CPU_INT32U enable_signal[COUNT_POST]; static CPU_INT32U enable_signal[COUNT_POST];
static CPU_INT32U fiscal_enable; static CPU_INT32U fiscal_enable;
// òàéì àóò ìåíþ ïå÷àòü ÷åêà ïîñëå ñíÿòèÿ îøèáêè ôèñêàëüíèêà
static CPU_INT16U time_out_print_check[COUNT_POST + COUNT_VACUUM] = {0, 0, 0, 0, 0, 0, 0, 0};
void DrawMenu(void) void DrawMenu(void)
{ {
if (GetMode() != MODE_WORK) return; if (GetMode() != MODE_WORK) return;
@ -286,6 +289,19 @@ void UserAppTask(void *p_arg)
// âûêëþ÷èì ïðèåì äåíåã, äåíüãè ïðèíèìàþòñÿ - íî ÷åêè íå ïå÷àòàåì - êîïèì // âûêëþ÷èì ïðèåì äåíåã, äåíüãè ïðèíèìàþòñÿ - íî ÷åêè íå ïå÷àòàåì - êîïèì
if (was_critical_error == 0) if (was_critical_error == 0)
{ {
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
{
// îáíóëèì ïåðåìåííûå, åñëè íàõîäèëèñü â ðåæèìå ïå÷àòè ÷åêà èëè åãî îæèäàíèÿ
// èëè äàæå ñðàçó ïîñëå ñíÿòèÿ îøèáêè ôèñêàëüíèêà
if(wash_State[post] == printCheck)
{
wash_State[post] = waitMoney;
countSecWait[post] = 0;
}
time_out_print_check[post] = 0;
}
was_critical_error = 1; was_critical_error = 1;
} }
break; break;
@ -301,6 +317,7 @@ void UserAppTask(void *p_arg)
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++) for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
{ {
accmoney = GetAcceptedMoney(post); accmoney = GetAcceptedMoney(post);
accmoney += GetAcceptedBankMoney(post);
if (accmoney > 0) if (accmoney > 0)
{ {
@ -308,14 +325,36 @@ void UserAppTask(void *p_arg)
money_timestamp[post] = OSTimeGet(); money_timestamp[post] = OSTimeGet();
// ïîñëå ñáðîñà îøèáêè ÷åêè ïå÷àòàåì íå ñðàçó - à ÷åðåç òàéì àóò ïå÷àòè, âäðóã íå âñå èñïðàâèëîñü? // ïîñëå ñáðîñà îøèáêè ÷åêè ïå÷àòàåì íå ñðàçó - à ÷åðåç òàéì àóò ïå÷àòè, âäðóã íå âñå èñïðàâèëîñü?
PostUserEvent(EVENT_WAIT_CASH_PRINT_CHECK_POST1 + post); PostUserEvent(EVENT_WAIT_CASH_PRINT_CHECK_POST1 + post);
// âçâåäåì òàéìàóò ïå÷àòè ÷åêà - ïîñëàëè æå çàïðîñ
time_out_print_check[post] = 35;
} }
// çŕîäíî íŕ âń˙ęčé ńëó÷ŕé ńáđîńčě ńîîáůĺíčĺ î ďĺ÷ŕňč ÷ĺęŕ // çàîäíî íà âñÿêèé ñëó÷àé ñáðîñèì ñîîáùåíèå î ïå÷àòè ÷åêà è òàéì àóò åãî îæèäàíèÿ
if(wash_State[post] == printCheck) wash_State[post] = waitMoney; if(wash_State[post] == printCheck)
{
wash_State[post] = waitMoney;
countSecWait[post] = 0;
}
} }
break; break;
} }
// òàéì àóò îæèäàíèÿ ïå÷àòè ïîñëå îøèáêè ôèñêàëüíèêà - 35 ñåêóíä
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
{
if(time_out_print_check[post])
{
time_out_print_check[post]--;
if(!time_out_print_check[post] && wash_State[post] == printCheck)
{
wash_State[post] = waitMoney;
countSecWait[post] = 0;
}
}
}
} }
break; break;
@ -1020,6 +1059,9 @@ CPU_INT32U GetAcceptedMoney(int post)
void SetAcceptedBankMoney(CPU_INT32U money, int post) void SetAcceptedBankMoney(CPU_INT32U money, int post)
{ {
CPU_INT32U m,crc; CPU_INT32U m,crc;
if(post >= COUNT_POST) return;
m=money; m=money;
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U)); crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
SetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX); SetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX);
@ -1030,6 +1072,9 @@ void SetAcceptedBankMoney(CPU_INT32U money, int post)
void ClearAcceptedBankMoney(int post) void ClearAcceptedBankMoney(int post)
{ {
CPU_INT32U m,crc; CPU_INT32U m,crc;
if(post >= COUNT_POST) return;
m=0; m=0;
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U)); crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
SetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX); SetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX);
@ -1040,6 +1085,9 @@ void ClearAcceptedBankMoney(int post)
CPU_INT32U GetAcceptedBankMoney(int post) CPU_INT32U GetAcceptedBankMoney(int post)
{ {
CPU_INT32U m; CPU_INT32U m;
if(post >= COUNT_POST) return 0;
GetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX); GetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX);
return m; return m;
} }

View File

@ -524,14 +524,16 @@ CPU_INT32U input_register()
{ {
SETBIT(input, 19); SETBIT(input, 19);
} }
if (FIO0PIN_bit.P0_28)
if (FIO2PIN_bit.P2_10)
{ {
SETBIT(input, 20); SETBIT(input, 20);
} }
if (FIO0PIN_bit.P0_27) if (FIO1PIN_bit.P1_31)
{ {
SETBIT(input, 21); SETBIT(input, 21);
} }
if (FIO1PIN_bit.P1_24) if (FIO1PIN_bit.P1_24)
{ {
SETBIT(input, 22); SETBIT(input, 22);
@ -972,7 +974,7 @@ void InputCapture_ISR(void)
// áàíê 1 // áàíê 1
if(TSTBIT(input_event, 20)) if(TSTBIT(input_event, 20))
{ {
if ((!FIO0PIN_bit.P0_28 && bankLevel[0]) || (FIO0PIN_bit.P0_28 && !bankLevel[0])) if ((!FIO2PIN_bit.P2_10 && bankLevel[0]) || (FIO2PIN_bit.P2_10 && !bankLevel[0]))
{ // ïðèøåë çàäíèé ôðîíò { // ïðèøåë çàäíèé ôðîíò
CPU_INT32U cr=T3CR; CPU_INT32U cr=T3CR;
cr -= period_bank[0]; cr -= period_bank[0];
@ -993,7 +995,7 @@ void InputCapture_ISR(void)
// áàíê 2 // áàíê 2
if(TSTBIT(input_event, 21)) if(TSTBIT(input_event, 21))
{ {
if ((!FIO0PIN_bit.P0_27 && bankLevel[1]) || (FIO0PIN_bit.P0_27 && !bankLevel[1])) if ((!FIO1PIN_bit.P1_31 && bankLevel[1]) || (FIO1PIN_bit.P1_31 && !bankLevel[1]))
{ // ïðèøåë çàäíèé ôðîíò { // ïðèøåë çàäíèé ôðîíò
CPU_INT32U cr=T3CR; CPU_INT32U cr=T3CR;
cr -= period_bank[1]; cr -= period_bank[1];
@ -1242,18 +1244,18 @@ void InitInputPorts()
FIO1MASK_bit.P1_25 = 0; FIO1MASK_bit.P1_25 = 0;
// áàíê 1 // áàíê 1
PINSEL1_bit.P0_28 = 0; PINSEL4_bit.P2_10 = 0;
if(bankLevel[0])PINMODE1_bit.P0_28 = 3; if(bankLevel[0])PINMODE4_bit.P2_10 = 3;
else PINMODE1_bit.P0_28 = 0; else PINMODE4_bit.P2_10 = 0;
FIO0DIR_bit.P0_28 = 0; FIO2DIR_bit.P2_10 = 0;
FIO0MASK_bit.P0_28 = 0; FIO2MASK_bit.P2_10 = 0;
// áàíê 2 // áàíê 2
PINSEL1_bit.P0_27 = 0; PINSEL3_bit.P1_31 = 0;
if(bankLevel[1])PINMODE1_bit.P0_27 = 3; if(bankLevel[1])PINMODE3_bit.P1_31 = 3;
else PINMODE1_bit.P0_27 = 0; else PINMODE3_bit.P1_31 = 0;
FIO0DIR_bit.P0_27 = 0; FIO1DIR_bit.P1_31 = 0;
FIO0MASK_bit.P0_27 = 0; FIO1MASK_bit.P1_31 = 0;
// áàíê 3 // áàíê 3
PINSEL3_bit.P1_24 = 0; PINSEL3_bit.P1_24 = 0;

View File

@ -1,7 +1,7 @@
#ifndef _VERSION_H_ #ifndef _VERSION_H_
#define _VERSION_H_ #define _VERSION_H_
#define DEVICE_FW_VERSION "02.00" #define DEVICE_FW_VERSION "02.02"
#endif // #ifndef _VERSION_H_ #endif // #ifndef _VERSION_H_

View File

@ -34,7 +34,7 @@
</Tab> </Tab>
<Tab><Identity>TabID-28963-15244</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab><Tab><Identity>TabID-3677-8150</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs> <Tab><Identity>TabID-28963-15244</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab><Tab><Identity>TabID-3677-8150</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs>
<SelectedTab>1</SelectedTab></Wnd0><Wnd1> <SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-1122-24249</Identity> <Identity>TabID-1122-24249</Identity>
@ -52,14 +52,14 @@
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>762</YPos><SelStart>34079</SelStart><SelEnd>34093</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>1060</YPos><SelStart>31414</SelStart><SelEnd>31414</SelEnd></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>354</YPos><SelStart>10810</SelStart><SelEnd>10810</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>80</YPos><SelStart>3719</SelStart><SelEnd>3719</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>240</YPos><SelStart>6982</SelStart><SelEnd>6982</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>2225</YPos><SelStart>99831</SelStart><SelEnd>99831</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>973</YPos><SelStart>24292</SelStart><SelEnd>24292</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>310</YPos><SelStart>10494</SelStart><SelEnd>10494</SelEnd></Tab><ActiveTab>2</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>240</YPos><SelStart>6982</SelStart><SelEnd>6982</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\version.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>77</SelStart><SelEnd>77</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>489</YPos><SelStart>15185</SelStart><SelEnd>15185</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>324</YPos><SelStart>9980</SelStart><SelEnd>9980</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>41</YPos><SelStart>3010</SelStart><SelEnd>3010</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>299</SelStart><SelEnd>299</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>194</SelStart><SelEnd>194</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\cpu\cpu.h</Filename><XPos>0</XPos><YPos>88</YPos><SelStart>4701</SelStart><SelEnd>4711</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.c</Filename><XPos>0</XPos><YPos>202</YPos><SelStart>6049</SelStart><SelEnd>6049</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-03722c00><key>iaridepm.enu1</key></Toolbar-03722c00></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>633</Bottom><Right>288</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>110</yscreen><sizeHorzCX>156250</sizeHorzCX><sizeHorzCY>112130</sizeHorzCY><sizeVertCX>226563</sizeVertCX><sizeVertCY>647299</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>303</Bottom><Right>1282</Right><x>-2</x><y>-2</y><xscreen>1284</xscreen><yscreen>305</yscreen><sizeHorzCX>1003125</sizeHorzCX><sizeHorzCY>310907</sizeHorzCY><sizeVertCX>156250</sizeVertCX><sizeVertCY>112130</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-02e03088><key>iaridepm.enu1</key></Toolbar-02e03088></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>748</Bottom><Right>288</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>110</yscreen><sizeHorzCX>156250</sizeHorzCX><sizeHorzCY>112130</sizeHorzCY><sizeVertCX>226563</sizeVertCX><sizeVertCY>764526</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>188</Bottom><Right>1282</Right><x>-2</x><y>-2</y><xscreen>1284</xscreen><yscreen>190</yscreen><sizeHorzCX>1003125</sizeHorzCX><sizeHorzCY>193680</sizeHorzCY><sizeVertCX>156250</sizeVertCX><sizeVertCY>112130</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Workspace> </Workspace>

File diff suppressed because it is too large Load Diff

View File

@ -1512,7 +1512,7 @@
</option> </option>
<option> <option>
<name>OOCOutputFile</name> <name>OOCOutputFile</name>
<state>version2_00.hex</state> <state>version2_02.hex</state>
</option> </option>
<option> <option>
<name>OOCCommandLineProducer</name> <name>OOCCommandLineProducer</name>
@ -1566,7 +1566,7 @@
</option> </option>
<option> <option>
<name>IlinkOutputFile</name> <name>IlinkOutputFile</name>
<state>version2_00.out</state> <state>version2_01.out</state>
</option> </option>
<option> <option>
<name>IlinkDebugInfoEnable</name> <name>IlinkDebugInfoEnable</name>