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 fiscal_enable;
// òàéì àóò ìåíþ ïå÷àòü ÷åêà ïîñëå ñíÿòèÿ îøèáêè ôèñêàëüíèêà
static CPU_INT16U time_out_print_check[COUNT_POST + COUNT_VACUUM] = {0, 0, 0, 0, 0, 0, 0, 0};
void DrawMenu(void)
{
if (GetMode() != MODE_WORK) return;
@ -286,6 +289,19 @@ void UserAppTask(void *p_arg)
// âûêëþ÷èì ïðèåì äåíåã, äåíüãè ïðèíèìàþòñÿ - íî ÷åêè íå ïå÷àòàåì - êîïèì
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;
}
break;
@ -301,6 +317,7 @@ void UserAppTask(void *p_arg)
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
{
accmoney = GetAcceptedMoney(post);
accmoney += GetAcceptedBankMoney(post);
if (accmoney > 0)
{
@ -308,14 +325,36 @@ void UserAppTask(void *p_arg)
money_timestamp[post] = OSTimeGet();
// ïîñëå ñáðîñà îøèáêè ÷åêè ïå÷àòàåì íå ñðàçó - à ÷åðåç òàéì àóò ïå÷àòè, âäðóã íå âñå èñïðàâèëîñü?
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;
}
// òàéì àóò îæèäàíèÿ ïå÷àòè ïîñëå îøèáêè ôèñêàëüíèêà - 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;
@ -1020,6 +1059,9 @@ CPU_INT32U GetAcceptedMoney(int post)
void SetAcceptedBankMoney(CPU_INT32U money, int post)
{
CPU_INT32U m,crc;
if(post >= COUNT_POST) return;
m=money;
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
SetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX);
@ -1030,6 +1072,9 @@ void SetAcceptedBankMoney(CPU_INT32U money, int post)
void ClearAcceptedBankMoney(int post)
{
CPU_INT32U m,crc;
if(post >= COUNT_POST) return;
m=0;
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
SetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX);
@ -1040,6 +1085,9 @@ void ClearAcceptedBankMoney(int post)
CPU_INT32U GetAcceptedBankMoney(int post)
{
CPU_INT32U m;
if(post >= COUNT_POST) return 0;
GetData(&AcceptedBankMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX);
return m;
}

View File

@ -524,14 +524,16 @@ CPU_INT32U input_register()
{
SETBIT(input, 19);
}
if (FIO0PIN_bit.P0_28)
if (FIO2PIN_bit.P2_10)
{
SETBIT(input, 20);
}
if (FIO0PIN_bit.P0_27)
if (FIO1PIN_bit.P1_31)
{
SETBIT(input, 21);
}
if (FIO1PIN_bit.P1_24)
{
SETBIT(input, 22);
@ -972,7 +974,7 @@ void InputCapture_ISR(void)
// áàíê 1
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;
cr -= period_bank[0];
@ -993,7 +995,7 @@ void InputCapture_ISR(void)
// áàíê 2
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;
cr -= period_bank[1];
@ -1242,18 +1244,18 @@ void InitInputPorts()
FIO1MASK_bit.P1_25 = 0;
// áàíê 1
PINSEL1_bit.P0_28 = 0;
if(bankLevel[0])PINMODE1_bit.P0_28 = 3;
else PINMODE1_bit.P0_28 = 0;
FIO0DIR_bit.P0_28 = 0;
FIO0MASK_bit.P0_28 = 0;
PINSEL4_bit.P2_10 = 0;
if(bankLevel[0])PINMODE4_bit.P2_10 = 3;
else PINMODE4_bit.P2_10 = 0;
FIO2DIR_bit.P2_10 = 0;
FIO2MASK_bit.P2_10 = 0;
// áàíê 2
PINSEL1_bit.P0_27 = 0;
if(bankLevel[1])PINMODE1_bit.P0_27 = 3;
else PINMODE1_bit.P0_27 = 0;
FIO0DIR_bit.P0_27 = 0;
FIO0MASK_bit.P0_27 = 0;
PINSEL3_bit.P1_31 = 0;
if(bankLevel[1])PINMODE3_bit.P1_31 = 3;
else PINMODE3_bit.P1_31 = 0;
FIO1DIR_bit.P1_31 = 0;
FIO1MASK_bit.P1_31 = 0;
// áàíê 3
PINSEL3_bit.P1_24 = 0;

View File

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

View File

@ -34,7 +34,7 @@
</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>
<SelectedTab>1</SelectedTab></Wnd0><Wnd1>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs>
<Tab>
<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>
<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>
</Workspace>

File diff suppressed because it is too large Load Diff

View File

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