From 437ebc4badae7b532904563aec17001481b9efc3 Mon Sep 17 00:00:00 2001 From: dimoniche Date: Fri, 31 May 2019 00:53:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D1=82=D0=BE=D1=80=D0=BE=D0=B9=20=D0=B4?= =?UTF-8?q?=D0=B5=D0=BD=D1=8C=20=D1=80=D0=B0=D0=B7=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OS/app/app.c | 2 - PROJECT/app/app_serv.c | 578 +++--- PROJECT/app/app_serv.h | 18 +- PROJECT/app/journal.c | 91 +- PROJECT/app/journal.h | 99 +- PROJECT/app/modem_task.c | 691 ------- PROJECT/app/modem_task.h | 28 - PROJECT/data/datadesc.c | 173 +- PROJECT/data/fram_map.h | 4 +- PROJECT/drivers/ccnet/CCRSProtocol.c | 725 ------- PROJECT/drivers/ccnet/CCRSProtocol.h | 364 ---- PROJECT/drivers/ccnet/VMCConst.h | 5 - PROJECT/drivers/ccnet/uart1.c | 106 - PROJECT/drivers/ccnet/uart1.h | 11 - PROJECT/drivers/modem/modem.c | 935 --------- PROJECT/drivers/modem/modem.h | 63 - PROJECT/drivers/modem/uart2.c | 228 --- PROJECT/drivers/modem/uart2.h | 18 - PROJECT/menu/menudesc.c | 16 +- PROJECT/services/coin.c | 20 +- PROJECT/services/validator.c | 373 ---- PROJECT/services/validator.h | 20 - settings/sk-mlpc2368.dni | 2 +- settings/sk-mlpc2368.wsdt | 6 +- sk-mlpc2368.dep | 2764 ++++++++++++-------------- sk-mlpc2368.ewp | 47 +- 26 files changed, 1731 insertions(+), 5656 deletions(-) delete mode 100644 PROJECT/app/modem_task.c delete mode 100644 PROJECT/app/modem_task.h delete mode 100644 PROJECT/drivers/ccnet/CCRSProtocol.c delete mode 100644 PROJECT/drivers/ccnet/CCRSProtocol.h delete mode 100644 PROJECT/drivers/ccnet/VMCConst.h delete mode 100644 PROJECT/drivers/ccnet/uart1.c delete mode 100644 PROJECT/drivers/ccnet/uart1.h delete mode 100644 PROJECT/drivers/modem/modem.c delete mode 100644 PROJECT/drivers/modem/modem.h delete mode 100644 PROJECT/drivers/modem/uart2.c delete mode 100644 PROJECT/drivers/modem/uart2.h delete mode 100644 PROJECT/services/validator.c delete mode 100644 PROJECT/services/validator.h diff --git a/OS/app/app.c b/OS/app/app.c index d3e75e6..7e66614 100644 --- a/OS/app/app.c +++ b/OS/app/app.c @@ -54,8 +54,6 @@ void main (void) OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */ } - - /* ********************************************************************************************************* * AppTaskStart() diff --git a/PROJECT/app/app_serv.c b/PROJECT/app/app_serv.c index aae0f41..fd64fbe 100644 --- a/PROJECT/app/app_serv.c +++ b/PROJECT/app/app_serv.c @@ -1,7 +1,5 @@ #include #include "app_serv.h" -#include "modem.h" -#include "validator.h" #include "coin.h" #include "time.h" #include "fiscal.h" @@ -11,13 +9,10 @@ #include "menudesc.h" #include "datadesc.h" #include "control.h" -#include "validator.h" -#include "CCRSProtocol.h" #include "menu.h" #include "journal.h" #include "fr.h" #include "CRC16.h" -#include "modem_task.h" #include "host_app.h" #include "console.h" #include "keyboard.h" @@ -26,7 +21,7 @@ //#define _DEBUG_MONEY CPU_INT32U SystemTime; -CPU_INT32U money_timestamp; +CPU_INT32U money_timestamp[COUNT_POST]; CPU_INT08U EnabledChannelsNum; CPU_INT08U RecentChannel; CPU_INT08U UserMenuState; @@ -42,7 +37,6 @@ CPU_INT08U ChannelsState[CHANNELS_NUM]; CPU_INT32U ChannelsCounters[CHANNELS_NUM]; CPU_INT32U ChannelsPayedTime[CHANNELS_NUM]; -extern CPU_INT32U BillNominals[24]; CPU_INT32U incas_bill_nom_counter[24]; CPU_INT32U incas_common_bill_counter; @@ -53,21 +47,21 @@ OS_EVENT *UserQuery = NULL; void *UserTbl[USER_QUERY_LEN]; int GetUserEvent(int* event); -void UserPrintMoneyMenu(void); +void UserPrintMoneyMenu(int post); void WorkServer(void); -void UserPrintThanksMenu(void); +void UserPrintThanksMenu(int post); void UserPrintFirstMenu(void); void UserPrintErrorMenu(void); CPU_INT32U GetChannelsTimeForFree(CPU_INT08U ch); void LoadAcceptedMoney(void); -void SetAcceptedMoney(CPU_INT32U money); -void ClearAcceptedMoney(void); -CPU_INT32U GetAcceptedMoney(void); +void SetAcceptedMoney(CPU_INT32U money,int post); +void ClearAcceptedMoney(int post); +CPU_INT32U GetAcceptedMoney(int post); void InitPass(void); int CheckChannelEnabled(CPU_INT08U channel); int ChannelBusy(CPU_INT08U ch); void UserPrintIpDeviceErrMenu(CPU_INT08U post); -void UserPrintPrintBillMenu(void); +void UserPrintPrintBillMenu(int post); #ifdef BOARD_CENTRAL_CFG static char incassation; @@ -94,29 +88,6 @@ void AddOutPulses(int count, int len_ms) #endif -CPU_INT32U FindBillIndex(CPU_INT32U nom) -{ - CPU_INT32U cash_mode; - GetData(&CashModeDesc, &cash_mode, 0, DATA_FLAG_SYSTEM_INDEX); - if (cash_mode == 1) - { - // проставим номиналы вручную - BillNominals[0] = 10; - BillNominals[1] = 50; - BillNominals[2] = 100; - BillNominals[3] = 500; - BillNominals[4] = 1000; - BillNominals[5] = 5000; - } - - for (int i = 0; i < 6; i++) - { - if (BillNominals[i] == nom) return i; - } - - return 0xFFFFFFFF; -} - /*! Сервер обработки событий пользователя */ @@ -126,38 +97,30 @@ void UserAppTask(void *p_arg) CPU_INT32U print_mode; CPU_INT32U accmoney; int event; -#ifdef BOARD_CENTRAL_CFG - CPU_INT32U temp; -#endif + CPU_BOOLEAN dontRedraw = DEF_FALSE; #ifdef BOARD_CENTRAL_CFG static CPU_INT08U fr_conn_ctr = 0; - { - CPU_INT32U m=0; - GetData(&AcceptedMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX); - if (m) - { - EnabledChannelsNum = 0; - for (CPU_INT08U i=0; i 0) + dontRedraw = DEF_FALSE; + + for(int post = 0; post < COUNT_POST; post++) { - LED_OK_ON(); - CheckFiscalStatus(); - GetData(&PrintModeDesc, &print_mode, 0, DATA_FLAG_SYSTEM_INDEX); - if (print_mode == 0) - { - // если настроена печать ПО ТАЙМАУТУ - GetData(&PrintTimeoutDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX); - if (labs(OSTimeGet() - money_timestamp) > 1000UL * print_timeout) - { - UserPrintPrintBillMenu(); - RefreshMenu(); - - // напечатаем чек - if (IsFiscalConnected()) - { - if (PrintFiscalBill(accmoney) == 0) + accmoney = GetAcceptedMoney(post); + + if (accmoney > 0) + { + UserPrintMoneyMenu(post); + RefreshMenu(); + + dontRedraw = DEF_TRUE; + + LED_OK_ON(); + CheckFiscalStatus(); + GetData(&PrintModeDesc, &print_mode, 0, DATA_FLAG_SYSTEM_INDEX); + if (print_mode == 0) + { + // если настроена печать ПО ТАЙМАУТУ + GetData(&PrintTimeoutDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX); + if (labs(OSTimeGet() - money_timestamp[post]) > 1000UL * print_timeout) + { + UserPrintPrintBillMenu(post); + RefreshMenu(); + + // напечатаем чек + if (IsFiscalConnected()) { - SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec()); + if (PrintFiscalBill(accmoney) == 0) + { + SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec()); + } } - } - IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney); - SetAcceptedMoney(0); - OSTimeDly(1000); - - // повесим меню "СПАСИБО" - if (IsFiscalConnected()) - { - UserPrintThanksMenu(); - RefreshMenu(); - } - - if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffff, ADDR_FL); - - OSTimeDly(1000); - LED_OK_OFF(); - } - } - else if (print_mode == 1) - { - // если настроена печать ПО КНОПКЕ, ждем таймаут отмены - GetData(&PrintTimeoutAfterDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX); - if (labs(OSTimeGet() - money_timestamp) > 1000UL * print_timeout) - { - SetAcceptedMoney(0); - UserPrintThanksMenu(); - RefreshMenu(); - if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffff, ADDR_FL); - OSTimeDly(1000); - LED_OK_OFF(); - } - } - } - else - { - LED_OK_OFF(); + IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney); + SetAcceptedMoney(0, post); + OSTimeDly(1000); + + // повесим меню "СПАСИБО" + if (IsFiscalConnected()) + { + UserPrintThanksMenu(post); + RefreshMenu(); + } + + OSTimeDly(1000); + LED_OK_OFF(); + } + } + else if (print_mode == 1) + { + // если настроена печать ПО КНОПКЕ, ждем таймаут отмены + GetData(&PrintTimeoutAfterDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX); + if (labs(OSTimeGet() - money_timestamp[post]) > 1000UL * print_timeout) + { + SetAcceptedMoney(0, post); + UserPrintThanksMenu(post); + RefreshMenu(); + OSTimeDly(1000); + LED_OK_OFF(); + } + } + } + else + { + LED_OK_OFF(); + } + + // принимаем деньги + if(!dontRedraw) + { + UserPrintMoneyMenu(0xFFFF); + RefreshMenu(); + } } + + break; - // принимаем деньги - UserPrintMoneyMenu(); - RefreshMenu(); - break; - case EVENT_INCASSATION: - { - CPU_INT32U incas_sum = 0, temp; - for (CPU_INT32U i = 0; i < 24; i++) - { - CPU_INT32U val = 0; - GetData(&BillnomCountersDesc, &val, i, DATA_FLAG_DIRECT_INDEX); - incas_sum += val*BillNominals[i]; - } - incassation = 1; - sprintf((char*)str_IncasMenu_3, " СУММА %u руб.", incas_sum); - // вешаем меню инкассация - GoToMenu(IncasMenuPanel); - // сохраним событие с указанием суммы денег - SaveEventRecord(0, JOURNAL_EVENT_INCASSATION, incas_sum); - GetData(&BillCounterDesc, &incas_common_bill_counter, 0, DATA_FLAG_SYSTEM_INDEX); - for (CPU_INT32U i = 0; i < 24; i++) - { - GetData(&BillnomCountersDesc, &incas_bill_nom_counter[i], i, DATA_FLAG_DIRECT_INDEX); - } - - SetData(&IncasMoneyDesc, &incas_sum, 0, DATA_FLAG_SYSTEM_INDEX); - - temp = GetTimeSec(); - SetData(&IncasTimeDesc, &temp, 0, DATA_FLAG_SYSTEM_INDEX); - - temp = INCAS_SEND_FLAG; - SetData(&IncasSendFlagDesc, &temp, 0, DATA_FLAG_SYSTEM_INDEX); - PostModemTask(MODEM_TASK_SEND_INCAS); - // очищаем счетчики купюр - ClearBillnomCounter(); - } - break; - case EVENT_INCASSATION_FINISH: - incassation = 0; - GoToPreviousMenu(); - break; case EVENT_MODE_CHANGE: ReInitMenu(); SaveEventRecord(0, JOURNAL_EVENT_CHANGE_MODE, GetMode()); - if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffff, ADDR_FL); break; - case EVENT_COIN_INSERTED: - { - CPU_INT32U cpp = 1; - CPU_INT32U money, accmoney; - GetData(&CoinPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX); - //money = cpp*GetResetCoinCount(); - accmoney = GetAcceptedMoney(); - accmoney += money; - SetAcceptedMoney(accmoney); - money_timestamp = OSTimeGet(); - if (UserMenuState == USER_STATE_ACCEPT_MONEY) - { - UserPrintMoneyMenu(); - RefreshMenu(); - } - if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_COIN, money); - } - break; - case EVENT_CASH_INSERTED: - { - CPU_INT32U cpp = 1; - CPU_INT32U money, accmoney; - GetData(&CashPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX); - //money = cpp * GetResetCashCount(); - accmoney = GetAcceptedMoney(); - accmoney += money; - SetAcceptedMoney(accmoney); - money_timestamp = OSTimeGet(); - if (UserMenuState == USER_STATE_ACCEPT_MONEY) - { - UserPrintMoneyMenu(); - RefreshMenu(); - } - if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE, money); - CPU_INT32U billnom_index = FindBillIndex(money); - if (billnom_index != 0xFFFFFFFF) IncBillnomCounter(billnom_index); - } - break; - case EVENT_BILL_ESCROW: - // купюра в положении возврата - if (IsValidatorConnected()) if (!CC_CmdPack(ADDR_FL)) SetErrorFlag(ERROR_VALIDATOR_CONN); - break; - case EVENT_BILL_STACKED: - // купюра уложена - { - CPU_INT32U billnom_index; - CPU_INT32U note,accmoney; - note = GetResetBillCount(&billnom_index); - accmoney = GetAcceptedMoney(); - accmoney += note; - SetAcceptedMoney(accmoney); - money_timestamp = OSTimeGet(); - if (UserMenuState == USER_STATE_ACCEPT_MONEY) - { - UserPrintMoneyMenu(); - RefreshMenu(); - } - if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffffff, ADDR_FL); - if (note) - { - SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE, note); - IncBillnomCounter(billnom_index); - } - } - break; - case EVENT_KEY_CANSEL: -#if 0 - if ((GetMode() != MODE_WORK) || (incassation)) break; - if (TstCriticalErrors()) + case EVENT_COIN_INSERTED_POST1: + case EVENT_COIN_INSERTED_POST2: + case EVENT_COIN_INSERTED_POST3: + case EVENT_COIN_INSERTED_POST4: + case EVENT_COIN_INSERTED_POST5: + case EVENT_COIN_INSERTED_POST6: { - UserPrintErrorMenu(); - RefreshMenu(); - break; + CPU_INT32U cpp = 1; + CPU_INT32U money, accmoney; + int number_post = event - EVENT_COIN_INSERTED_POST1; + + GetData(&CoinPerPulseDesc, &cpp, number_post, DATA_FLAG_DIRECT_INDEX); + + money = cpp*GetResetCoinCount(number_post); + + accmoney = GetAcceptedMoney(number_post); + accmoney += money; + + SetAcceptedMoney(accmoney, number_post); + money_timestamp[number_post] = OSTimeGet(); + + if (UserMenuState == USER_STATE_ACCEPT_MONEY) + { + UserPrintMoneyMenu(number_post); + RefreshMenu(); + } + + if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_COIN_POST1 + number_post, money); } - UserMenuState = USER_STATE_FIRST_PAGE; - UserPrintFirstMenu(); - RefreshMenu(); - if (IsValidatorConnected()) CC_CmdBillType(0x000000, 0x000000, ADDR_FL); -#endif + break; + case EVENT_CASH_INSERTED_POST1: + case EVENT_CASH_INSERTED_POST2: + case EVENT_CASH_INSERTED_POST3: + case EVENT_CASH_INSERTED_POST4: + case EVENT_CASH_INSERTED_POST5: + case EVENT_CASH_INSERTED_POST6: + { + CPU_INT32U cpp = 1; + CPU_INT32U money, accmoney; + int number_post = event - EVENT_CASH_INSERTED_POST1; + + GetData(&CashPerPulseDesc, &cpp, number_post, DATA_FLAG_DIRECT_INDEX); + + money = cpp * 10 /*GetResetCashCount(number_post)*/; + + accmoney = GetAcceptedMoney(number_post); + accmoney += money; + SetAcceptedMoney(accmoney, number_post); + money_timestamp[number_post] = OSTimeGet(); + + if (UserMenuState == USER_STATE_ACCEPT_MONEY) + { + UserPrintMoneyMenu(number_post); + RefreshMenu(); + } + + if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE_POST1 + number_post, money); + } + break; + + case EVENT_KEY_CANSEL: break; case EVENT_KEY_START: @@ -468,46 +386,51 @@ void UserAppTask(void *p_arg) // находимся в рабочем режиме // -------------------------- GetData(&PrintModeDesc, &print_mode, 0, DATA_FLAG_SYSTEM_INDEX); - if (print_mode == 1) + for(int post = 0; post < COUNT_POST; post++) { - // пользователь внес деньги и нажал СТАРТ + режим печати ПО КНОПКЕ - CPU_INT32U accmoney = GetAcceptedMoney(); - - if (accmoney > 0) - { - UserPrintPrintBillMenu(); - RefreshMenu(); - - // напечатаем чек - if (IsFiscalConnected()) - { - if (PrintFiscalBill(accmoney) == 0) + if (print_mode == 1) + { + // пользователь внес деньги и нажал СТАРТ + режим печати ПО КНОПКЕ + CPU_INT32U accmoney = GetAcceptedMoney(post); + + if (accmoney > 0) + { + UserPrintPrintBillMenu(post); + RefreshMenu(); + + // напечатаем чек + if (IsFiscalConnected()) { - SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec()); + if (PrintFiscalBill(accmoney) == 0) + { + SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec()); + } } - } - IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney); - SetAcceptedMoney(0); - OSTimeDly(1000); - - // повесим меню "СПАСИБО" - if (IsFiscalConnected()) - { - UserPrintThanksMenu(); - RefreshMenu(); - } - - if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffff, ADDR_FL); - - OSTimeDly(1000); - LED_OK_OFF(); + + IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney); + SetAcceptedMoney(0, post); + OSTimeDly(1000); + + // повесим меню "СПАСИБО" + if (IsFiscalConnected()) + { + UserPrintThanksMenu(post); + RefreshMenu(); + } + + OSTimeDly(1000); + LED_OK_OFF(); + } } } - break; -#else - + case EVENT_KEY_F1: + PostUserEvent(EVENT_CASH_INSERTED_POST1); + break; + case EVENT_KEY_F2: + PostUserEvent(EVENT_CASH_INSERTED_POST2); + break; #endif default: break; @@ -542,19 +465,12 @@ void UserStartupFunc(void) // проверим пароль InitPass(); - - //нициализация каналов - InitChannels(); // инициализация меню InitMenu(); OSTimeDly(1000); - // запустим валидатор - StartUpValidator(); - - OSTimeDly(10000); InitFiscal(); // проинициализируем часы @@ -563,22 +479,6 @@ void UserStartupFunc(void) // сделаем запись о включении SaveEventRecord(0, JOURNAL_EVENT_DEVICE_ON, GetTimeSec()); - //CPU_INT32U enable; - //GetData(&EnableModemDesc, &enable, 0, DATA_FLAG_SYSTEM_INDEX); - //SetData(&EnableCoinDesc, &enable, 0, DATA_FLAG_SYSTEM_INDEX); - - // инициализация модема -#ifdef MODEM_ENABLE - if (InitModem() != 0) - { - SetErrorFlag(ERROR_MODEM_CONN); - } - else -#endif - { - ClrErrorFlag(ERROR_MODEM_CONN); - } - // запустим монетник InitCoin(); @@ -640,7 +540,7 @@ void InitUserMenu(void) } } -void UserPrintMoneyMenu(void) +void UserPrintMoneyMenu(int post) { char buf[32]; CPU_INT32U accmoney; @@ -649,10 +549,15 @@ void UserPrintMoneyMenu(void) PrintUserMenuStr(buf, 0); sprintf(buf, " Внесите деньги"); PrintUserMenuStr(buf, 1); - accmoney = GetAcceptedMoney(); + accmoney = GetAcceptedMoney(post); sprintf(buf, "Принято %d руб.", accmoney); PrintUserMenuStr(buf, 2); - sprintf(buf, " "); + + if(post <= COUNT_POST) + sprintf(buf, " Пост %d", post + 1); + else + sprintf(buf, " "); + PrintUserMenuStr(buf, 3); } @@ -661,21 +566,7 @@ void UserPrintErrorMenu(void) { char buf[32]; - if (TstErrorFlag(ERROR_VALIDATOR_CONN) || TstCriticalValidatorErrors()) - { - sprintf(buf, "ОШИБКА"); - PrintUserMenuStr(buf, 0); - sprintf(buf, "КУПЮРОПРИЕМНИКА"); - PrintUserMenuStr(buf, 1); - if (TstErrorFlag(ERROR_VALIDATOR_CONN)) - { - sprintf(buf, "НЕТ СВЯЗИ"); - PrintUserMenuStr(buf, 2); - sprintf(buf, ""); - PrintUserMenuStr(buf, 3); - } - } - else if (TstErrorFlag(ERROR_FR_CONN)) + if (TstErrorFlag(ERROR_FR_CONN)) { sprintf(buf, "ОШИБКА"); PrintUserMenuStr(buf, 0); @@ -698,19 +589,6 @@ void UserPrintErrorMenu(void) GetDataItem(&JournalErrorNumberDesc1, (CPU_INT08U*)buf, errcode); PrintUserMenuStr(buf, 3); } - /* - else if (!FReportTest()) - { - sprintf(buf, "ПЕЧАТb ОТЧЕТА"); - PrintUserMenuStr(buf, 0); - sprintf(buf, "ЖДИТЕ"); - PrintUserMenuStr(buf, 1); - sprintf(buf, "ПРИНТЕР"); - PrintUserMenuStr(buf, 2); - sprintf(buf, "НЕДОСТУПЕН"); - PrintUserMenuStr(buf, 3); - } - */ } int CheckChannelEnabled(CPU_INT08U channel) @@ -730,7 +608,7 @@ void WorkServer(void) } -void UserPrintPrintBillMenu(void) +void UserPrintPrintBillMenu(int post) { char buf[32]; sprintf(buf, " "); @@ -739,11 +617,11 @@ void UserPrintPrintBillMenu(void) PrintUserMenuStr(buf, 1); sprintf(buf, " чека"); PrintUserMenuStr(buf, 2); - sprintf(buf, " "); + sprintf(buf, " Пост %d", post + 1); PrintUserMenuStr(buf, 3); } -void UserPrintThanksMenu(void) +void UserPrintThanksMenu(int post) { char buf[32]; sprintf(buf, " "); @@ -752,7 +630,7 @@ void UserPrintThanksMenu(void) PrintUserMenuStr(buf, 1); sprintf(buf, " "); PrintUserMenuStr(buf, 2); - sprintf(buf, " "); + sprintf(buf, " Пост %d", post + 1); PrintUserMenuStr(buf, 3); } @@ -781,48 +659,50 @@ void LoadAcceptedMoney(void) { CPU_INT32U m,crc,crct; - // считаем cохраненные деньги из FRAM - GetData(&AcceptedMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX); - // считаем crc16 этих денег из FRAM - GetData(&AcceptedMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX); - - crct = crc16((unsigned char*)&m, sizeof(CPU_INT32U)); - - if (crct != crc) - { // обнуляем, если crc не сошлась - m = 0; - crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U)); - SetData(&AcceptedMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX); - SetData(&AcceptedMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX); - } + for(int i = 0; i < COUNT_POST; i++) + { + // считаем cохраненные деньги из FRAM + GetData(&AcceptedMoneyDesc, &m, i, DATA_FLAG_DIRECT_INDEX); + // считаем crc16 этих денег из FRAM + GetData(&AcceptedMoneyCRC16Desc, &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(&AcceptedMoneyDesc, &m, i, DATA_FLAG_DIRECT_INDEX); + SetData(&AcceptedMoneyCRC16Desc, &crc, i, DATA_FLAG_DIRECT_INDEX); + } + } } // добавить денег -void SetAcceptedMoney(CPU_INT32U money) +void SetAcceptedMoney(CPU_INT32U money, int post) { CPU_INT32U m,crc; m=money; crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U)); - SetData(&AcceptedMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX); - SetData(&AcceptedMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX); + SetData(&AcceptedMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX); + SetData(&AcceptedMoneyCRC16Desc, &crc, post, DATA_FLAG_DIRECT_INDEX); } // очистить счетчик денег -void ClearAcceptedMoney(void) +void ClearAcceptedMoney(int post) { CPU_INT32U m,crc; m=0; crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U)); - SetData(&AcceptedMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX); - SetData(&AcceptedMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX); + SetData(&AcceptedMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX); + SetData(&AcceptedMoneyCRC16Desc, &crc, post, DATA_FLAG_DIRECT_INDEX); } // очистить счетчик денег -CPU_INT32U GetAcceptedMoney(void) +CPU_INT32U GetAcceptedMoney(int post) { CPU_INT32U m; - GetData(&AcceptedMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX); + GetData(&AcceptedMoneyDesc, &m, post, DATA_FLAG_DIRECT_INDEX); return m; } diff --git a/PROJECT/app/app_serv.h b/PROJECT/app/app_serv.h index 8d7a200..3b0459f 100644 --- a/PROJECT/app/app_serv.h +++ b/PROJECT/app/app_serv.h @@ -37,8 +37,20 @@ enum{ EVENT_SEC = 1, EVENT_STARTUP, - EVENT_COIN_INSERTED, - EVENT_CASH_INSERTED, + EVENT_COIN_INSERTED_POST1, + EVENT_COIN_INSERTED_POST2, + EVENT_COIN_INSERTED_POST3, + EVENT_COIN_INSERTED_POST4, + EVENT_COIN_INSERTED_POST5, + EVENT_COIN_INSERTED_POST6, + + EVENT_CASH_INSERTED_POST1, + EVENT_CASH_INSERTED_POST2, + EVENT_CASH_INSERTED_POST3, + EVENT_CASH_INSERTED_POST4, + EVENT_CASH_INSERTED_POST5, + EVENT_CASH_INSERTED_POST6, + EVENT_BILL_ESCROW, EVENT_BILL_STACKED, @@ -56,8 +68,6 @@ enum{ EVENT_KEY_START, EVENT_KEY_USER_START, - EVENT_INCASSATION, - EVENT_INCASSATION_FINISH, #ifdef BOARD_POST_CFG EVENT_PULSEOUT #endif diff --git a/PROJECT/app/journal.c b/PROJECT/app/journal.c index 19e2a45..c52229f 100644 --- a/PROJECT/app/journal.c +++ b/PROJECT/app/journal.c @@ -67,8 +67,6 @@ int TstCriticalErrors(void) */ } - errors |= TstErrorFlag(ERROR_VALIDATOR_CONN); - OS_EXIT_CRITICAL(); if (errors) return 1; return 0; @@ -82,10 +80,6 @@ int TstCriticalValidatorErrors(void) void ClrValidatorErrors(void) { - for (CPU_INT08U i=ERROR_VALIDATOR_FAILURE; ievent); // напечатаем дополнительные поля - if ((record->event == JOURNAL_EVENT_MONEY_NOTE) || (record->event == JOURNAL_EVENT_MONEY_COIN)) + if ((record->event >= JOURNAL_EVENT_MONEY_NOTE_POST1) && (record->event <= JOURNAL_EVENT_MONEY_COIN_POST6)) { - sprintf(&str[strlen(str)], "kanal %d ", record->channel+1); sprintf(&str[strlen(str)], "%d rub.", record->data); } else if (record->event == JOURNAL_EVENT_START_SESSION) @@ -404,7 +461,7 @@ void ClearBillnomCounter(void) // сервер ошибок (занесение ошибок в журнал) void ErrorServer(void) { - for (int i = ERROR_VALIDATOR_CONN; i < JOURNAL_EVENTS_COUNT; i++) + for (int i = ERROR_FR_CONN; i < JOURNAL_EVENTS_COUNT; i++) { if (!(PrevFlags[i/32] & (1L<<(i%32))) && (TstErrorFlag(i))) diff --git a/PROJECT/app/journal.h b/PROJECT/app/journal.h index 1a239c5..11f6c2f 100644 --- a/PROJECT/app/journal.h +++ b/PROJECT/app/journal.h @@ -15,80 +15,39 @@ typedef struct{ // тип события CPU_INT08U event; #define JOURNAL_EVENT_NO_EVENT 0 // нет события - #define JOURNAL_EVENT_MONEY_NOTE 1 // событие получения купюры - #define JOURNAL_EVENT_MONEY_COIN 2 // событие получения монеты (кол-во рублей) - #define JOURNAL_EVENT_START_SESSION 3 // событие начала сеанса - #define JOURNAL_EVENT_END_SESSION 4 // событие конца сеанса - #define JOURNAL_EVENT_DEVICE_ON 6 // включение устройства - #define JOURNAL_EVENT_PRINT_BILL 7 // печать чека - #define JOURNAL_EVENT_PRINT_Z 8 // печать z-отчета - #define JOURNAL_EVENT_PRINT_X 9 // печать x-отчета - #define JOURNAL_EVENT_PRINT_BUF 10 // печать x-отчета - #define JOURNAL_EVENT_CHANGE_MODE 11 // смена режима - #define JOURNAL_EVENT_INCASSATION 12 // инкассация - #define JOURNAL_EVENT_PASS_FAIL 13 // неверный ввод пароля - #define JOURNAL_EVENT_EMAIL_OK 14 // правильно отправлен email - #define JOURNAL_EVENT_EMAIL_FAIL 15 // ошибка при отправке email - - // ошибка связи с купюрником - #define ERROR_VALIDATOR_CONN 16 - // критическая ошибка работы купюрника - #define ERROR_VALIDATOR_FAILURE 17 - - // некритические ошибки купюроприемника - // Выброс купюры при замине - #define ERROR_VALIDATOR_INSERTION 18 - // Выброс купюры по маг.датчику - #define ERROR_VALIDATOR_MAGNETIC 19 - // Выброс купюры при транспортировке - #define ERROR_VALIDATOR_CONVEYING 20 - // Выброс купюры по идентификации - #define ERROR_VALIDATOR_IDENT 21 - // Выброс купюры по верификации - #define ERROR_VALIDATOR_VRFY 22 - // Выброс купюры по оптич.датчику - #define ERROR_VALIDATOR_OPT 23 - // Выброс купюры по запрету - #define ERROR_VALIDATOR_INHIBIT 24 - // Выброс купюры по емкостному датчику - #define ERROR_VALIDATOR_CAP 25 - // Выброс купюры по длине - #define ERROR_VALIDATOR_LNG 26 - // Кассета заполнена - #define ERROR_STACKER_FULL 27 - // Кассета отсутствует - #define ERROR_STACKER_REMOVED 28 - // Замин в купюроприемнике - #define ERROR_BV_JAMMED 29 - // Замин в кассете - #define ERROR_ST_JAMMED 30 - // Попытка обмана - #define ERROR_CHEATED 31 - // Ошибка стекерного мотора - #define ERROR_FLR_STACKER 32 - // Ошибка скорости транспорт.мотора - #define ERROR_TR_SPEED 33 - // Ошибка транспорт.мотора - #define ERROR_FLR_TRANSPORT 34 - // Ошибка механизма выравнивания - #define ERROR_FLR_ALIGNIN 35 - // Кассета отсутствует - #define ERROR_FLR_INIT_CAS 36 - // Ошибка оптики - #define ERROR_FLR_OPT 37 - // Ошибка маг.датчика - #define ERROR_FLR_MAG 38 - // Ошибка емкостного датчика - #define ERROR_FLR_CAP 39 - - // ошибка связи с модемом - #define ERROR_MODEM_CONN 40 + #define JOURNAL_EVENT_MONEY_NOTE_POST1 1 // событие получения купюры пост 1 + #define JOURNAL_EVENT_MONEY_NOTE_POST2 2 // событие получения купюры пост 2 + #define JOURNAL_EVENT_MONEY_NOTE_POST3 3 // событие получения купюры пост 3 + #define JOURNAL_EVENT_MONEY_NOTE_POST4 4 // событие получения купюры пост 4 + #define JOURNAL_EVENT_MONEY_NOTE_POST5 5 // событие получения купюры пост 5 + #define JOURNAL_EVENT_MONEY_NOTE_POST6 6 // событие получения купюры пост 6 + + #define JOURNAL_EVENT_MONEY_COIN_POST1 7 // событие получения монеты (кол-во рублей) пост 1 + #define JOURNAL_EVENT_MONEY_COIN_POST2 8 // событие получения монеты (кол-во рублей) пост 2 + #define JOURNAL_EVENT_MONEY_COIN_POST3 9 // событие получения монеты (кол-во рублей) пост 3 + #define JOURNAL_EVENT_MONEY_COIN_POST4 10 // событие получения монеты (кол-во рублей) пост 4 + #define JOURNAL_EVENT_MONEY_COIN_POST5 11 // событие получения монеты (кол-во рублей) пост 5 + #define JOURNAL_EVENT_MONEY_COIN_POST6 12 // событие получения монеты (кол-во рублей) пост 6 + + #define JOURNAL_EVENT_START_SESSION 13 // событие начала сеанса + #define JOURNAL_EVENT_END_SESSION 14 // событие конца сеанса + #define JOURNAL_EVENT_DEVICE_ON 16 // включение устройства + #define JOURNAL_EVENT_PRINT_BILL 17 // печать чека + #define JOURNAL_EVENT_PRINT_Z 18 // печать z-отчета + #define JOURNAL_EVENT_PRINT_X 19 // печать x-отчета + #define JOURNAL_EVENT_PRINT_BUF 20 // печать x-отчета + #define JOURNAL_EVENT_CHANGE_MODE 21 // смена режима + #define JOURNAL_EVENT_INCASSATION 22 // инкассация + #define JOURNAL_EVENT_PASS_FAIL 23 // неверный ввод пароля + #define JOURNAL_EVENT_EMAIL_OK 24 // правильно отправлен email + #define JOURNAL_EVENT_EMAIL_FAIL 25 // ошибка при отправке email + // ошибка связи с фискальником - #define ERROR_FR_CONN 41 + #define ERROR_FR_CONN 26 // ВСЕ ОШИБКИ ФР ФАТАЛЬНЫЕ - #define ERROR_FR 42 + #define ERROR_FR 27 #define JOURNAL_EVENTS_COUNT (ERROR_FR+FR_ERROR_NUMBER) // число событий diff --git a/PROJECT/app/modem_task.c b/PROJECT/app/modem_task.c deleted file mode 100644 index 4bc8624..0000000 --- a/PROJECT/app/modem_task.c +++ /dev/null @@ -1,691 +0,0 @@ -#include -#include "journal.h" -#include "modem.h" -#include "modem_task.h" -#include "data.h" -#include "datadesc.h" -#include "time.h" - -OS_STK ModemTaskStk[MODEM_TASK_STK_SIZE]; -OS_EVENT *ModemQuery = NULL; -void *ModemTbl[MODEM_QUERY_LEN]; - -static int index; -static CPU_INT32U enable_journals; - -#define STAT_STR_NUM 17 - -static void GetChannelStatStr(char* str, int ch) -{ - CPU_INT32U val; - - GetData(&CounterChannelMoneyDesc, &val, ch, DATA_FLAG_DIRECT_INDEX); - sprintf(&str[strlen(str)], "| %2d | %11d ", ch+1, val); - - GetData(&CounterChannelRunDesc, &val, ch, DATA_FLAG_DIRECT_INDEX); - sprintf(&str[strlen(str)], "| %7d | ", val); - - GetData(&CounterChannelTimeDesc, &val, ch, DATA_FLAG_DIRECT_INDEX); - PrintSecToHourMinSec(&str[strlen(str)], val); - - sprintf(&str[strlen(str)], "\r\n"); -} - -static void GetChannelStatStrLong(char* str, int ch) -{ - CPU_INT32U val; - - GetData(&CounterChannelMoneyLongDesc, &val, ch, DATA_FLAG_DIRECT_INDEX); - sprintf(&str[strlen(str)], "| %2d | %11d ", ch+1, val); - - GetData(&CounterChannelRunLongDesc, &val, ch, DATA_FLAG_DIRECT_INDEX); - sprintf(&str[strlen(str)], "| %7d | ", val); - - GetData(&CounterChannelTimeLongDesc, &val, ch, DATA_FLAG_DIRECT_INDEX); - PrintSecToHourMinSec(&str[strlen(str)], val); - - sprintf(&str[strlen(str)], "\r\n"); -} - -extern CPU_INT32U BillNominals[24]; - -static int GetEmailStr(char *str) -{ - if (index < STAT_STR_NUM) - { - str[0] = 0; - if (index == 0) - { - // заголовок - TRTC_Data rtc; - RTC_ReadTime(&rtc); - sprintf(str, "Systemnoe vremya: "); - PrintRTCDateTimeString(&str[strlen(str)], &rtc); - sprintf(&str[strlen(str)], "\r\n\r\n-------------------------------------------------------------\r\nStatistika obshaya. Korotkie schetchiki.\r\n-------------------------------------------------------------\r\n"); - } - else if (index == 1) - { - CPU_INT32U val; - // общие счетчики - sprintf(str, "| Vsego deneg, rub. | Vsego seansov | Vsego narabotka h:m:s \r\n"); - - GetData(&CounterMoneyDesc, &val, 0, DATA_FLAG_SYSTEM_INDEX); - sprintf(&str[strlen(str)], "| %16d ", val); - - GetData(&CounterRunDesc, &val, 0, DATA_FLAG_SYSTEM_INDEX); - sprintf(&str[strlen(str)], "| %12d | ", val); - - GetData(&CounterTimeDesc, &val, 0, DATA_FLAG_SYSTEM_INDEX); - PrintSecToHourMinSec(&str[strlen(str)], val); - - sprintf(&str[strlen(str)], "\r\n"); - } - else if (index == 2) - { - sprintf(&str[strlen(str)], "\r\n-------------------------------------------------------------\r\nStatistika obshaya. Dlinnye schetchiki\r\n-------------------------------------------------------------\r\n"); - } - else if (index == 3) - { - CPU_INT32U val; - // необнуляемые счетчики - sprintf(str, "| Vsego deneg, rub. | Vsego seansov | Vsego narabotka h:m:s \r\n"); - - GetData(&CounterLongMoneyDesc, &val, 0, DATA_FLAG_SYSTEM_INDEX); - sprintf(&str[strlen(str)], "| %16d ", val); - - GetData(&CounterLongRunDesc, &val, 0, DATA_FLAG_SYSTEM_INDEX); - sprintf(&str[strlen(str)], "| %12d | ", val); - - GetData(&CounterLongTimeDesc, &val, 0, DATA_FLAG_SYSTEM_INDEX); - PrintSecToHourMinSec(&str[strlen(str)], val); - - sprintf(&str[strlen(str)], "\r\n"); - - } - else if (index == 4) - { - sprintf(str, "\r\n-------------------------------------------------------------\r\nStatistika po kanalam. Korotkie schetchiki.\r\n-------------------------------------------------------------\r\n"); - sprintf(&str[strlen(str)], "| Kanal | Deneg, rub. | Seansov | Narabotka h:m:s\r\n"); - } - else if (index == 5) - { - int i; - for (i = 0; i < 3; i++) - { - GetChannelStatStr(&str[strlen(str)], i); - } - } - else if (index == 6) - { - int i; - for (i = 3; i < 6; i++) - { - GetChannelStatStr(&str[strlen(str)], i); - } - } - else if (index == 7) - { - int i; - for (i = 6; i < 10; i++) - { - GetChannelStatStr(&str[strlen(str)], i); - } - } - else if (index == 8) - { - sprintf(str, "\r\n-------------------------------------------------------------\r\nStatistika po kanalam. Dlinnye schetchiki.\r\n-------------------------------------------------------------\r\n"); - sprintf(&str[strlen(str)], "| Kanal | Deneg, rub. | Seansov | Narabotka h:m:s\r\n"); - } - else if (index == 9) - { - int i; - for (i = 0; i < 3; i++) - { - GetChannelStatStrLong(&str[strlen(str)], i); - } - } - else if (index == 10) - { - int i; - for (i = 3; i < 6; i++) - { - GetChannelStatStrLong(&str[strlen(str)], i); - } - } - else if (index == 11) - { - int i; - for (i = 6; i < 10; i++) - { - GetChannelStatStrLong(&str[strlen(str)], i); - } - } - else if (index == 12) - { - CPU_INT32U val; - // впечатаем число купюр в купюрнике - sprintf(str, "\r\n-------------------------------------------------------------\r\nKupuropriemnik.\r\n-------------------------------------------------------------\r\n"); - GetData(&BillCounterDesc, &val, 0, DATA_FLAG_SYSTEM_INDEX); - if (!val) - { - // купюрник пуст - sprintf(&str[strlen(str)], "Kupuropriemnik pust.\r\n\r\n"); - index++; - index++; - } - else - { - sprintf(&str[strlen(str)], "| Nominal, rub. | Kolichestvo\r\n"); - } - } - else if (index == 13) - { - int i; - str[0] = 0; - for (i = 0; i < 6; i++) - { - CPU_INT32U val; - GetData(&BillnomCountersDesc, &val, i, DATA_FLAG_DIRECT_INDEX); - if (val) - { - sprintf(&str[strlen(str)], "| %13d | %11d \r\n", BillNominals[i], val); - } - val = strlen(str); - } - } - else if (index == 14) - { - int i; - str[0] = 0; - for (i = 6; i < 12; i++) - { - CPU_INT32U val; - GetData(&BillnomCountersDesc, &val, i, DATA_FLAG_DIRECT_INDEX); - if (val) - { - sprintf(&str[strlen(str)], "| %13d | %11d \r\n", BillNominals[i], val); - } - } - } - else if (index == 15) - { - int i; - str[0] = 0; - for (i = 12; i < 18; i++) - { - CPU_INT32U val; - GetData(&BillnomCountersDesc, &val, i, DATA_FLAG_DIRECT_INDEX); - if (val) - { - sprintf(&str[strlen(str)], "| %13d | %11d \r\n", BillNominals[i], val); - } - } - } - else if (index == 16) - { - int i; - str[0] = 0; - for (i = 18; i < 24; i++) - { - CPU_INT32U val; - GetData(&BillnomCountersDesc, &val, i, DATA_FLAG_DIRECT_INDEX); - if (val) - { - sprintf(&str[strlen(str)], "| %13d | %11d \r\n", BillNominals[i], val); - } - } - } - index++; - return 0; - } - else if (index < STAT_STR_NUM+EVENT_RECORDS_COUNT) - { - TEventRecord record; - - if (enable_journals == 0) return -1; - - GetEventRecord(&record, index-STAT_STR_NUM); - - - str[0] = 0; - if ((index-STAT_STR_NUM) == 0) - { - sprintf(str, "\r\n-------------------------------------------------------------\r\nZhurnal sobytiy\r\n-------------------------------------------------------------\r\n"); - } - if (record.time == 0x00000000) - { - index++; - return 0; - } - PrintEventJournalRecordEng(&str[strlen(str)], &record); - index++; - return 0; - } - - return -1; -} - -/// отправка e-mail со счетчиками и журналами -int SendStatistics(void) -{ - CPU_INT32U dev_id; - char theme[48]; - index = 0; - // надо ли отправлять журналы - GetData(&EnableEmailJournalSendDesc, &enable_journals, 0, DATA_FLAG_SYSTEM_INDEX); - // id устройства укажем в теме - GetData(&DeviceIDDesc, &dev_id, 0, DATA_FLAG_SYSTEM_INDEX); - sprintf(theme, "Report from solarium device id %d.", dev_id); - return ModemSendEmail(theme, GetEmailStr); -} - -// выемка нового задания для модема -static int GetModemTask(int* event) -{ - CPU_INT08U err = 0; - int evt = (int)OSQPend(ModemQuery, 1, &err); - if (err != 0) return 0; - *event = evt; - return 1; -} - -int GetTestText(char *str) -{ - if (index == 0) - { - index++; - sprintf(str, "Test message from solarium."); - return 0; - } - - return -1; -} -// отправка тестового сообщения -int SendTest(void) -{ - CPU_INT32U dev_id; - char theme[48]; - - GetData(&DeviceIDDesc, &dev_id, 0, DATA_FLAG_SYSTEM_INDEX); - sprintf(theme, "Test message. Device id %d.", dev_id); - - index = 0; - return ModemSendEmail(theme, GetTestText); -} - - -static CPU_INT32U incas_money; -static CPU_INT32U incas_time; - - -int GetIncasText(char *str) -{ - if (index == 0) - { - // заголовок - TRTC_Data rtc; - Sec2Date(&rtc, incas_time); - sprintf(str, "Vremya incassacii: "); - PrintRTCDateTimeString(&str[strlen(str)], &rtc); - sprintf(&str[strlen(str)], "\r\n\r\nSumma %d rub.\r\n", incas_money); - } - else if (index == 1) - { - CPU_INT32U val; - // впечатаем число купюр в купюрнике - val = incas_common_bill_counter; - if (!val) - { - // купюрник пуст - sprintf(&str[strlen(str)], "Kupuropriemnik byl pust.\r\n\r\n"); - index=100; - } - else - { - sprintf(str, "\r\n-------------------------------------------------------------\r\nKupuropriemnik.\r\n-------------------------------------------------------------\r\n"); - sprintf(&str[strlen(str)], "| Nominal, rub. | Kolichestvo\r\n"); - } - } - else if (index == 2) - { - int i; - str[0] = 0; - for (i = 0; i < 6; i++) - { - CPU_INT32U val; - val = incas_bill_nom_counter[i]; - if (val) - { - sprintf(&str[strlen(str)], "| %13d | %11d \r\n", BillNominals[i], val); - } - val = strlen(str); - } - } - else if (index == 3) - { - int i; - str[0] = 0; - for (i = 6; i < 12; i++) - { - CPU_INT32U val; - val = incas_bill_nom_counter[i]; - if (val) - { - sprintf(&str[strlen(str)], "| %13d | %11d \r\n", BillNominals[i], val); - } - } - } - else if (index == 4) - { - int i; - str[0] = 0; - for (i = 12; i < 18; i++) - { - CPU_INT32U val; - val = incas_bill_nom_counter[i]; - if (val) - { - sprintf(&str[strlen(str)], "| %13d | %11d \r\n", BillNominals[i], val); - } - } - } - else if (index == 5) - { - int i; - str[0] = 0; - for (i = 18; i < 24; i++) - { - CPU_INT32U val; - val = incas_bill_nom_counter[i]; - if (val) - { - sprintf(&str[strlen(str)], "| %13d | %11d \r\n", BillNominals[i], val); - } - } - } - else - { - return -1; - } - - index++; - return 0; -} - -// отправка сообщения об инкассации -int SendIncas(void) -{ - CPU_INT32U dev_id; - char theme[48]; - - GetData(&DeviceIDDesc, &dev_id, 0, DATA_FLAG_SYSTEM_INDEX); - sprintf(theme, "Incassation. Device id %d.", dev_id); - - index = 0; - return ModemSendEmail(theme, GetIncasText); -} - - - -// список возможных интервалов отправки -const int send_period_list[7] = {0, 1, 2, 4, 8, 12, 24}; -// глобальный статус модема -CPU_INT32U modem_status = 0; - -// проверка, в одном ли периоде находятся два времени -int SamePeriod(CPU_INT32U time1, CPU_INT32U time2, CPU_INT08U period) -{ - TRTC_Data rtc1, rtc2; - CPU_INT08U hour1, hour2; - - Sec2Date(&rtc1, time1); - Sec2Date(&rtc2, time2); - - if ((rtc1.year != rtc2.year) || (rtc1.mon != rtc2.mon) || (rtc1.date != rtc2.date)) - { - // дата не совпадает - точно разный часовой период - return 0; - } - - // time1 - текущее время - // определим время начала текущего периода - hour1 = rtc1.hour - (rtc1.hour % period); - // определим время начала периода в последнем времени отправки - hour2 = rtc2.hour - (rtc2.hour % period); - - if (hour1 != hour2) - { - return 0; - } - - return 1; -} - -#define MODEM_REPEAT_NUM 3 - -static CPU_INT32U last_stat_send_time; - -// задача сервера модема -void ModemTask(void *p_arg) -{ - int task; - int send_res, send_ctr, repeat_ctr; - - while (1) - { - CPU_INT32U en = 0; - - OSTimeDly(100); - - if (!IsModemValid()) - { - GetData(&EnableModemDesc, &en, 0, DATA_FLAG_SYSTEM_INDEX); - if (en) - { - if (!IsModemConn()) - { - modem_status = 2; - } - else if (!IsModemConf()) - { - modem_status = 1; - } - - // попытаемся переподключить модем - if (InitModem() != 0) - { - SetErrorFlag(ERROR_MODEM_CONN); - } - else - { - ClrErrorFlag(ERROR_MODEM_CONN); - } - } - else - { - modem_status = 0; - } - continue; - } - - modem_status = 0; - - GetData(&EnableModemDesc, &en, 0, DATA_FLAG_SYSTEM_INDEX); - if (!en) - { - ResetModemValid(); - continue; - } - - if (GetModemTask(&task)) - { - // разберем задание - switch (task) - { - case MODEM_TASK_SEND_INCAS: - { - CPU_INT32U temp; - GetData(&IncasSendFlagDesc, &temp, 0, DATA_FLAG_SYSTEM_INDEX); - if (temp != INCAS_SEND_FLAG) - { - break; - } - GetData(&IncasMoneyDesc, &incas_money, 0, DATA_FLAG_SYSTEM_INDEX); - GetData(&IncasTimeDesc, &incas_time, 0, DATA_FLAG_SYSTEM_INDEX); - repeat_ctr = 0; - while (repeat_ctr < MODEM_REPEAT_NUM) - { - send_ctr = 0; - while (send_ctr < 3) - { - send_res = SendIncas(); - if (send_res == 0) break; - OSTimeDly(1000); - send_ctr++; - } - if (send_ctr < 3) - { - break; - } - else - { - // не отправилось - переинициализируем модем - InitModem(); - } - repeat_ctr++; - } - if (repeat_ctr >= MODEM_REPEAT_NUM) - { - // точно ошибка модема - SaveEventRecord(0, JOURNAL_EVENT_EMAIL_FAIL, 0); - // ещё раз запостим, чтобы отправлять, пока не отправится - PostModemTask(MODEM_TASK_SEND_INCAS); - } - else - { - temp = 0; - SetData(&IncasSendFlagDesc, &temp, 0, DATA_FLAG_SYSTEM_INDEX); - SetData(&IncasMoneyDesc, &temp, 0, DATA_FLAG_SYSTEM_INDEX); - SetData(&IncasTimeDesc, &temp, 0, DATA_FLAG_SYSTEM_INDEX); - SaveEventRecord(0, JOURNAL_EVENT_EMAIL_OK, 0); - } - } - break; - - case MODEM_TASK_SEND_STATISTICS: - repeat_ctr = 0; - while (repeat_ctr < MODEM_REPEAT_NUM) - { - send_ctr = 0; - while (send_ctr < 3) - { - send_res = SendStatistics(); - if (send_res == 0) break; - OSTimeDly(1000); - send_ctr++; - } - if (send_ctr < 3) - { - break; - } - else - { - // не отправилось - переинициализируем модем - InitModem(); - } - repeat_ctr++; - } - if (repeat_ctr >= MODEM_REPEAT_NUM) - { - // точно ошибка модема - SaveEventRecord(0, JOURNAL_EVENT_EMAIL_FAIL, 0); - // ещё раз заспостим, чтобы отправлять, пока не отправится - // не надо - само запостится, т.к. время мы ещё не сохранили - //PostModemTask(MODEM_TASK_SEND_STATISTICS); - } - else - { - SaveEventRecord(0, JOURNAL_EVENT_EMAIL_OK, 0); - ClearCounters(); - SetData(&LastEmailSendTime, &last_stat_send_time, 0, DATA_FLAG_SYSTEM_INDEX); - } - break; - - case MODEM_TASK_SEND_TEST_MSG: - repeat_ctr = 0; - while (repeat_ctr < 3) - { - send_ctr = 0; - while (send_ctr < 3) - { - send_res = SendTest(); - if (send_res == 0) break; - OSTimeDly(1000); - send_ctr++; - } - if (send_ctr < 3) - { - break; - } - else - { - // не отправилось - переинициализируем модем - InitModem(); - } - repeat_ctr++; - } - if (repeat_ctr >= 3) - { - // точно ошибка модема, забиваем на отправку - SaveEventRecord(0, JOURNAL_EVENT_EMAIL_FAIL, 0); - } - else - { - SaveEventRecord(0, JOURNAL_EVENT_EMAIL_OK, 0); - } - break; - - case MODEM_TASK_RECONNECT: - // попытаемся переподключить модем - InitModem(); - break; - } - } - else - { - CPU_INT32U send_time, send_hour, send_minute; - CPU_INT32U last_send_time, sec; - TRTC_Data rtc_1, rtc_2; - - OSTimeDly(MODEM_TASK_DELAY); - // посмотрим текущее время - GetData(&SystemTimeDesc, &sec, 0, DATA_FLAG_SYSTEM_INDEX); - - GetData(&StatSendHourMinDesc, &send_time, 0, DATA_FLAG_SYSTEM_INDEX); - send_hour = send_time / 60; - send_minute = send_time % 60; - - // прочитаем последнее время отправки - GetData(&LastEmailSendTime, &last_send_time, 0, DATA_FLAG_SYSTEM_INDEX); - - Sec2Date(&rtc_1, sec); - Sec2Date(&rtc_2, last_send_time); - - // запостим команду, если в текущем периоде ещё не отправлялось - // отправляется всегда раз в сутки в 9.10 - if ((rtc_1.hour >= send_hour) && (rtc_1.min >= send_minute) && ((rtc_2.date != rtc_1.date) || (rtc_2.year != rtc_1.year) || (rtc_2.mon != rtc_1.mon))) - { - PostModemTask(MODEM_TASK_SEND_STATISTICS); - last_stat_send_time = sec; - //SetData(&LastEmailSendTime, &last_stat_send_time, 0, DATA_FLAG_SYSTEM_INDEX); - // последнее время отправки установим потом, только в случае успешной отправки - } - } - } -} - -// постановка новой задачи в очередь задач модема -void PostModemTask(int new_task) -{ - OSQPost(ModemQuery, (void *)new_task); -} diff --git a/PROJECT/app/modem_task.h b/PROJECT/app/modem_task.h deleted file mode 100644 index f92913a..0000000 --- a/PROJECT/app/modem_task.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef _MODEM_TASK_H_ -#define _MODEM_TASK_H_ - -#include "app_serv.h" - -// длина очереди заданий модема -#define MODEM_QUERY_LEN 8 -// задержка между выполнением заданий модема -#define MODEM_TASK_DELAY 10000 - -enum{ - MODEM_TASK_NONE = 0, - MODEM_TASK_SEND_STATISTICS, - MODEM_TASK_SEND_TEST_MSG, - MODEM_TASK_RECONNECT, - MODEM_TASK_SEND_INCAS, - -}; - -extern OS_STK ModemTaskStk[MODEM_TASK_STK_SIZE]; -extern OS_EVENT *ModemQuery; -extern void *ModemTbl[MODEM_QUERY_LEN]; - - -extern void ModemTask(void *p_arg); -extern void PostModemTask(int new_task); - -#endif //#ifndef _MODEM_TASK_H_ diff --git a/PROJECT/data/datadesc.c b/PROJECT/data/datadesc.c index 7397ebe..6ca31d5 100644 --- a/PROJECT/data/datadesc.c +++ b/PROJECT/data/datadesc.c @@ -13,8 +13,6 @@ #include "fiscal.h" #include "time.h" #include "CRC16.h" -#include "modem_task.h" -#include "modem.h" #include "coin.h" extern CPU_INT32U modem_status; @@ -167,7 +165,7 @@ TDataDescStruct const CashPulseLenDesc = { (void*)offsetof(TFramMap, cash_pulse_len), // указатель на переменную или адрес FRAM (void*)&CashPulseLenRange, // указатель на границы параметра OnChangeCashPulseLen, // функция по изменению - 0, // смещение между элементами в массиве + sizeof(CPU_INT32U), // смещение между элементами в массиве CashPulseLenName, // указатель на строку названия параметра DATA_NO_INDEX, // признак индексного параметра (список строк) NULL, // указатель на список строк для индексного параметра @@ -191,7 +189,7 @@ TDataDescStruct const CashPauseLenDesc = { (void*)offsetof(TFramMap, cash_pause_len), // указатель на переменную или адрес FRAM (void*)&CashPauseLenRange, // указатель на границы параметра OnChangeCashPulseLen, // функция по изменению - 0, // смещение между элементами в массиве + sizeof(CPU_INT32U), // смещение между элементами в массиве CashPauseLenName, // указатель на строку названия параметра DATA_NO_INDEX, // признак индексного параметра (список строк) NULL, // указатель на список строк для индексного параметра @@ -417,21 +415,21 @@ CPU_INT08U const *EnableModemList[] = {OnOffList_str0, OnOffList_str1}; void OnchangeEnableModem(void) { - CPU_INT32U en = 0; - GetData(&EnableModemDesc, &en, 0, DATA_FLAG_SYSTEM_INDEX); - - if (en) - { - if (!IsModemConn()) - { - modem_status = 2; - } - else if (!IsModemConf()) - { - modem_status = 1; - } - PostModemTask(MODEM_TASK_RECONNECT); - } +// CPU_INT32U en = 0; +// GetData(&EnableModemDesc, &en, 0, DATA_FLAG_SYSTEM_INDEX); +// +// if (en) +// { +// if (!IsModemConn()) +// { +// modem_status = 2; +// } +// else if (!IsModemConf()) +// { +// modem_status = 1; +// } +// //PostModemTask(MODEM_TASK_RECONNECT); +// } } TDataDescStruct const EnableModemDesc = { @@ -653,7 +651,7 @@ TDataDescStruct const CoinPerPulseDesc = { (void*)offsetof(TFramMap, DeviceConfig.CoinPerPulse), // указатель на переменную или адрес FRAM (void*)&CoinPerPulseRange, // указатель на границы параметра NULL, // функция по изменению - 0, // смещение между элементами в массиве + sizeof(CPU_INT32U), // смещение между элементами в массиве CoinPerPulseName, // указатель на строку названия параметра DATA_NO_INDEX, // признак индексного параметра (список строк) NULL, // указатель на список строк для индексного параметра @@ -741,7 +739,7 @@ TDataDescStruct const PrintModeDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) PrintModeList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 0 + 1 }; /************************************* @@ -808,7 +806,7 @@ TDataDescStruct const CashPerPulseDesc = { (void*)offsetof(TFramMap, DeviceConfig.CashPerPulse), // указатель на переменную или адрес FRAM (void*)&CashPerPulseRange, // указатель на границы параметра NULL, // функция по изменению - 0, // смещение между элементами в массиве + sizeof(CPU_INT32U), // смещение между элементами в массиве CashPerPulseName, // указатель на строку названия параметра DATA_NO_INDEX, // признак индексного параметра (список строк) NULL, // указатель на список строк для индексного параметра @@ -1518,37 +1516,17 @@ TDataDescStruct const PrintXReportDesc = { Ошибка в журнале ошибок *************************************/ TRangeValueULONG const ErrorNumberRange = {0, JOURNAL_EVENTS_COUNT - 1}; -CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"нет", "", "", "", +CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = + {"нет", + "", "", "", "", "", "", "", "", "", "", "", "", - "ошибка связи с", - "ошибка работы", - "1Ch60h-выбр.купюры", - "1Ch61h-выбр.купюры", - "1Ch64h-выбр.купюры", - "1Ch65h-выбр.купюры", - "1Ch66h-выбр.купюры", - "1Ch67h-выбр.купюры", - "1Ch68h-выбр.купюры", - "1Ch69h-выбр.купюры", - "1Ch6Ch-выбр.купюры", - "к/п:41h-кассета", - "к/п:42h-кассета", - "к/п:43h-замин в ", - "к/п:44h-замин", - "к/п:45h-попытка", - "к/п:50h-ошибка", - "к/п:51h-ошибка скор.", - "к/п:52h-ошибка", - "к/п:53h-ошибка мех.", - "к/п:54h-кассета", - "к/п:65h-ошибка", - "к/п:66h-ошибка", - "к/п:67h-ошибка емк.", - "ошибка", - "ошибка", - + + "", "", "", "", + "", "", "", "", + "", "", "", "", + "ФР:01h-Неизвестная", "ФР:02h-Неверное", "ФР:03h-Ошибка ФН", @@ -1679,36 +1657,17 @@ TDataDescStruct const JournalErrorNumberDesc0 = { 0 }; -CPU_INT08U const *ErrorNumberList1[JOURNAL_EVENTS_COUNT] = {"", "", "", "", +CPU_INT08U const *ErrorNumberList1[JOURNAL_EVENTS_COUNT] = + { + "", + + "", "", "", "", + "", "", "", "", + "", "", "", "", + "", "", "", "", "", "", "", "", "", "", "", "", - "купюроприемником", - "купюроприемника", - "при замине", - "по маг.датчику", - "при транспорт.", - "по идентификации", - "по верификации ", - "по оптич.датчику ", - "по запрету", - "по емкост.датчику", - "по длине", - "заполнена", - "отсутствует", - "купюроприемнике", - "в кассете", - "обмана", - "стекерного мотора", - "транспорт.мотора", - "транспорт.мотора", - "выравнивания", - "отсутствует", - "оптики", - "маг.датчика", - "датчика", - "модема", - "связи с ФР", "команда", // ФР:01h "состояние ФН", @@ -1849,31 +1808,7 @@ CPU_INT08U const *ErrorNumberListEng[JOURNAL_EVENTS_COUNT] = "", "", "", "", "", "", "", "", "", "", "", "", - "Oshibka svyazi c kupuropriemnikom", - "Kriticheskaya oshibka kupuropriemnika", - "Vybros kupury po mag.datchiku", - "Vybros kupury pri transportirovke", - "Vybros kupury po identifikacii", - "Vybros kupury po verifikacii", - "Vybros kupury po opt.datchiku", - "Vybros kupury po zapretu", - "Vybros kupury po emk.datchiku", - "Vybros kupury po dline", - "Kasseta zapolnena", - "Kasseta otsutstvuet", - "Zamin v kupuropriemnike", - "Zamin v kassete", - "Popytka obmana", - "Oshibka stekernogo motora", - "Oshibka skorosti transp.motora", - "Oshibka transp.motora", - "Oshibka mehanizmavyravnivaniya", - "Kasseta otsutstvuet", - "Oshibka optiki", - "Oshibka magn.datchika", - "Oshibka emk.datchika", - "Nekriticheskaya oshibka kupuropriemnika", - + "Oshibka svyazi s modemom", "Oshibka svyazi s FR", "Oshibka FR 0x01", @@ -2560,7 +2495,7 @@ TDataDescStruct const TaxFormatDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) TaxFormatList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 1 + 6 }; /************************************* @@ -2649,7 +2584,7 @@ TDataDescStruct const ServiceNameDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) ServiceNameList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 0 // значение по умолчанию + 1 // значение по умолчанию }; /************************************* @@ -2659,13 +2594,13 @@ TDataDescStruct const AcceptedMoneyDesc = { DATA_DESC_EDIT, // тип дескриптора DATA_TYPE_ULONG, // тип параметра DATA_LOC_FRAM, // расположение параметра - DATA_NO_ARRAY, // признак массива - 0, // размер массива + DATA_IS_ARRAY, // признак массива + COUNT_POST, // размер массива NULL, // указатель на десриптор индекса массива (void*)offsetof(TFramMap, FRAM_AcceptedMoney), // указатель на переменную или адрес FRAM NULL, // указатель на границы параметра NULL, // функция по изменению - 0, // смещение между элементами в массиве + sizeof(CPU_INT32U), // смещение между элементами в массиве NULL, // указатель на строку названия параметра DATA_NO_INDEX, // признак индексного параметра (список строк) NULL, // указатель на список строк для индексного параметра @@ -2680,13 +2615,13 @@ TDataDescStruct const AcceptedMoneyCRC16Desc = { DATA_DESC_EDIT, // тип дескриптора DATA_TYPE_ULONG, // тип параметра DATA_LOC_FRAM, // расположение параметра - DATA_NO_ARRAY, // признак массива - 0, // размер массива + DATA_IS_ARRAY, // признак массива + COUNT_POST, // размер массива NULL, // указатель на десриптор индекса массива (void*)offsetof(TFramMap, crc_AcceptedMoney), // указатель на переменную или адрес FRAM NULL, // указатель на границы параметра NULL, // функция по изменению - 0, // смещение между элементами в массиве + sizeof(CPU_INT32U), // смещение между элементами в массиве NULL, // указатель на строку названия параметра DATA_NO_INDEX, // признак индексного параметра (список строк) NULL, // указатель на список строк для индексного параметра @@ -2906,7 +2841,7 @@ void OnChangeSendTestEmail(void) { if (send_test) { - PostModemTask(MODEM_TASK_SEND_TEST_MSG); + //PostModemTask(MODEM_TASK_SEND_TEST_MSG); send_test = 0; } } @@ -2960,7 +2895,7 @@ TDataDescStruct const BillnomIndexDesc = { /************************************* Значение номинала купюры для просмотра счетчиков *************************************/ -extern CPU_INT32U BillNominals[24]; + CPU_INT08U const BillnomValName[] = "Значение,руб."; TDataDescStruct const BillnomDesc = { @@ -2970,7 +2905,7 @@ TDataDescStruct const BillnomDesc = { DATA_IS_ARRAY, // признак массива 24, // размер массива (void*)&BillnomIndexDesc, // указатель на десриптор индекса массива - (void*)&BillNominals, // указатель на переменную или адрес FRAM + NULL, // указатель на переменную или адрес FRAM NULL, // указатель на границы параметра NULL, // функция по изменению sizeof(CPU_INT32U), // смещение между элементами в массиве @@ -3275,9 +3210,17 @@ const TDataDescArrayStruct AllDataArray[] = {&CashPulseLenDesc, "CashPulseLenDesc"}, {&CashPauseLenDesc, "CashPauseLenDesc"}, + + {&TaxSystemDesc, "TaxSystemDesc"}, + {&TaxFormatDesc, "TaxFormatDesc"}, + {&SubjSellDesc, "SubjSellDesc"}, + {&CommandV2Desc, "CommandV2Desc"}, + {&ServiceNameDesc, "ServiceNameDesc"}, - - + {&PrintModeDesc, "PrintModeDesc"}, + {&PrintTimeoutAfterDesc, "PrintTimeoutAfterDesc"}, + + {NULL, ""} }; diff --git a/PROJECT/data/fram_map.h b/PROJECT/data/fram_map.h index 0660958..e0a5e76 100644 --- a/PROJECT/data/fram_map.h +++ b/PROJECT/data/fram_map.h @@ -20,8 +20,8 @@ typedef struct // длинные счетчики с CRC16 TCountersLong CountersLong; - CPU_INT32U FRAM_AcceptedMoney; - CPU_INT32U crc_AcceptedMoney; + CPU_INT32U FRAM_AcceptedMoney[COUNT_POST]; + CPU_INT32U crc_AcceptedMoney[COUNT_POST]; // журнал событий+ошибок TEventRecord EventRecords[EVENT_RECORDS_COUNT]; diff --git a/PROJECT/drivers/ccnet/CCRSProtocol.c b/PROJECT/drivers/ccnet/CCRSProtocol.c deleted file mode 100644 index 6c04aa3..0000000 --- a/PROJECT/drivers/ccnet/CCRSProtocol.c +++ /dev/null @@ -1,725 +0,0 @@ -#include -#include "CCRSProtocol.h" -#include "VMCConst.h" -#include "validator.h" -#include "uart1.h" -#include -#include -#include - -int iCmdDelay=20; -int iLastError=0; - -// обновление crc -unsigned short crc16_ccitt(unsigned char data, unsigned short crc) -{ register unsigned short a=0x8408, d = crc, i; - d^= data; - for (i=0; i<8; i++) - {if (d & 0x0001) - {d>>= 1; - d^=a;} - else d>>=1; - } - return d; -} - -// подсчет crc -unsigned short CalculateCRC(unsigned char *pBuffer) -{ - unsigned short wCRC=0; - int Len = (pBuffer[2]) ? pBuffer[2] : ((unsigned short)pBuffer[4]<<8)+pBuffer[5]; - for (int i=0;i0) - { - if(COMPort_Recieve(BufIn+iBytesToRecieve, iLen)) - { - iRecievingError=RE_NONE; - break; - } - else - { - iRecievingError=RE_DATA; - PurgeComm(); - } - } - else - { - iRecievingError=RE_NONE; - break; - } - } - } - } - return iRecievingError; -} - - -/** - Посылка команды - дополняет команду адресом устройства и crc - возвращает номер ошибки и данные по указателю - - The function is a simple wrapper for the CCCRSProtocol::SendCommand(LPBYTE BufOut, LPBYTE BufIn) member function - and performs the following actions: - -# Complementing the output frame with the device address and CRC16 - -# Sending the frame and receiving a response using CCCRSProtocol::SendCommand(LPBYTE BufOut, LPBYTE BufIn) member function - -# Checking received frame integrity (by CRC16 value) - -# Returning the response wrapped in the CCommand object - - \param Cmd a parameter of type CCommand & containing output frame (should contain all required information except of device address and CRC) - \param Addr a parameter of type BYTE containing the device address used for communication. - Refer to \link Addr Device address list \endlink for the valid values - - -*/ -unsigned char tmpBuffer[256]; - -int TransmitCMD(unsigned char *Cmd, unsigned char Addr, unsigned char **data) -{ - int i=(Cmd[2]) ? Cmd[2] - : ((unsigned short)Cmd[4]<<8)+Cmd[5]; - Cmd[1] = Addr; - unsigned short wCRC=CalculateCRC(Cmd); - Cmd[i-2] = (unsigned char)wCRC; - Cmd[i-1] = (unsigned char)(wCRC>>8); - - int iErrCode=SendCommand(Cmd, tmpBuffer); - if((!iErrCode)&&(Cmd[3])&&(0xFF!=Cmd[3])) - { - if (tmpBuffer[2]) - { - wCRC = (unsigned short)tmpBuffer[tmpBuffer[2]-2]; - wCRC += (unsigned short)((unsigned short)tmpBuffer[tmpBuffer[2]-1])<<8; - } - else - { - wCRC = 0; - //wCRC=tmpBuffer[(tmpBuffer[2])?tmpBuffer[2]: - // (((unsigned short)(tmpBuffer[4]))<<8)+tmpBuffer[5]-2]+ - // (tmpBuffer[(tmpBuffer[2])?tmpBuffer[2]:(((unsigned short)(tmpBuffer[4]))<<8)+tmpBuffer[5]-1]<<8); - } - if(CalculateCRC(tmpBuffer)!=wCRC) iErrCode=RE_CRC; - } - *data = tmpBuffer; - return iErrCode; -} - -/** \brief The CCCRSProtocol::Transmit function carries complete protocol exchange - - The function is a simple wrapper for the CCCRSProtocol::TransmitCMD(CCommand CMD, BYTE Addr) member function - and performs the following actions: - -# Sending the frame and receiving a response using CCCRSProtocol::TransmitCMD(CCommand CMD, BYTE Addr) member function - -# Checking the device response and determining whether ACK or NAK should be sent - -# Sending ACK or NAK message to the device or retransmitting the command up to 3 times untill communication is successfully completed - -# Returning the response wrapped in the CCommand object - - \param CMD a parameter of type CCommand & containing output frame (should contain all required information except of device address and CRC) - \param Addr a parameter of type BYTE containing the device address used for communication. - Refer to \link Addr Device address list \endlink for the valid values - - \return CCommand - an object containing response data and communication error code - - -*/ -// функция посылает команду, посылает ACK и повторяет команду, если ошибка -int Transmit(unsigned char *CMD, unsigned char Addr) -{ - unsigned char *cmdRes, cmdACK[16]; - int error; - - VPend(); - for (int i=0; i<3; i++) - { - error=TransmitCMD(CMD, Addr, &cmdRes); - cmdACK[0] = SYNC; - cmdACK[2] = 6; - cmdACK[3] = ACK; - - if (error == RE_NONE) - { - if((ACK==cmdRes[3]) && (cmdRes[2]==6)) - { // ошибки нет - VPost(); - return error; - } - if((NAK==cmdRes[3]) && (cmdRes[2]==6)) - { - if (iCmdDelay) Sleep(iCmdDelay);//5 - } - else - { - cmdACK[3] = ACK; - TransmitCMD(cmdACK, Addr, &cmdRes); - if (iCmdDelay) Sleep(iCmdDelay);//5 - break; - } - } - else - { - if(error != RE_TIMEOUT) - { - cmdACK[3] = NAK; - TransmitCMD(cmdACK, Addr, &cmdRes); - if (iCmdDelay) Sleep(iCmdDelay);//5 - } - } - } - - VPost(); - return error; -} - -////////////////////////////////////////////////////////////////////// -// CCNET Commands implementation -/** \defgroup CCNETCommands CCNET protocol commands and requests - - The group contains member functions providing interface to CCNET commands and requests. - All functions return a bool result showing whether operation was successfully completed. - In the case of error the error code (refer to \link ErrCode Possible error codes \endlink) - is stored in the CCCRSProtocol::iLastError member variable, which can be used in further analysis. - - @{ -*/ - -/** \brief The CCCRSProtocol::CmdReset function sends a RESET command to the device - - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if command was acknowledged - - -*/ - -unsigned char cc_buf[256]; - -int CC_CmdReset(unsigned char Addr) -{ - const unsigned char Data[]={SYNC,0,6,RESET,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response = Transmit(cc_buf, Addr); - unsigned char ack; - if (!Response) - { - ack = tmpBuffer[3]; - if(ack != ACK) - { - iLastError = (ack != ST_INV_CMD) ? ER_NAK : ER_INVALID_CMD; - return 0; - } - else - { - return 1; - } - - } - else - { - return 0; - } -} - - -/** \brief The CCCRSProtocol::CmdPoll function sends POLL command to the device - - The function sends POLL command and fills bytes Z1 and Z2 of the response into the CCCRSProtocol::PollResults structure. - - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if exchange was successfully completed - - -*/ -int CC_CmdPoll(unsigned char Addr, TPollResults *PollResults) -{ - const unsigned char Data[]={SYNC,0,6,POLL,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf, Addr); - if(!Response) - { - PollResults->Z1 = tmpBuffer[3]; - PollResults->Z2 = tmpBuffer[4]; - return 1; - } - else - { - PollResults->Z1=0; - PollResults->Z2=0; - return 0; - } -} - -/** \brief The CCCRSProtocol::CmdStatus function sends STATUS REQUEST to the device - - The response status data is stored in the CCCRSProtocol::BillStatus member structure. - - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if exchange was successfully completed - - -*/ -int CC_CmdStatus(unsigned char Addr, TBillStatus* BillStatus) -{ - const unsigned char Data[]={SYNC,0,6,GET_STATUS,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf,Addr); - if(!Response) - { - if((tmpBuffer[3]==ST_INV_CMD)&&(tmpBuffer[2]==6)) - { - iLastError=ER_INVALID_CMD; - BillStatus->Enabled=0; - BillStatus->Security=0; - BillStatus->Routing=0; - return 0; - } - BillStatus->Enabled=tmpBuffer[5]+((unsigned long)tmpBuffer[4]<<8)+((unsigned long)tmpBuffer[3]<<16); - BillStatus->Security=tmpBuffer[8]+((unsigned long)tmpBuffer[7]<<8)+((unsigned long)tmpBuffer[6]<<16); - BillStatus->Routing=tmpBuffer[11]+((unsigned long)tmpBuffer[10]<<8)+((unsigned long)tmpBuffer[9]<<16); - return 1; - } - else - { - return 0; - } - -} - -/** \brief The CCCRSProtocol::CmdIdentification function sends IDENTIFICATION request - - The function sends IDENTIFICATION request and stores device identification in the member CCCRSProtocol::Ident structure. - The function supports both new and old identification formats of Bill-To-Bill units. - - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if the exchange was successfully completed and data received - - -*/ -int CC_CmdIdentification(unsigned char Addr, TIdent* Ident) -{ - const unsigned char Data[]={SYNC,0,6,IDENTIFICATION,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf,Addr); - if (!Response) - { - if((tmpBuffer[3]==ST_INV_CMD)&&(tmpBuffer[2]==6)) - { - iLastError=ER_INVALID_CMD; - return 0; - } - strcpy(Ident->BCCPUBoot,"N/A"); - strcpy(Ident->BCCPUVersion,"N/A"); - strcpy(Ident->BCCS1Boot,"N/A"); - strcpy(Ident->BCCS2Boot,"N/A"); - strcpy(Ident->BCCS3Boot,"N/A"); - strcpy(Ident->BCCSVersion,"N/A"); - strcpy(Ident->BCDispenserBoot,"N/A"); - strcpy(Ident->BCDispenserVersion,"N/A"); - strcpy(Ident->BVBootVersion,"N/A"); - strcpy(Ident->BVVersion,"N/A"); - strcpy(Ident->PartNumber,"N/A"); - char sTemp[64]; - int iPos=3,iLen=15; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->PartNumber,sTemp); - iLen=12; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->SN,sTemp); - char *strTemp=(char*)tmpBuffer+iPos; - - - Ident->DS1=0;iPos+=8; - for(int i=0;i<7;i++) - { - Ident->DS1<<=8; - Ident->DS1+=strTemp[i]; - } - if(tmpBuffer[2]<109) return 1; - - iLen=6; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BVBootVersion,sTemp); - - iLen=20; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BVVersion,sTemp); - - iLen=6; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BCCPUBoot,sTemp); - - iLen=6; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BCCPUVersion,sTemp); - - iLen=6; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BCDispenserBoot,sTemp); - - iLen=6; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BCDispenserVersion,sTemp); - - iLen=6; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BCCS1Boot,sTemp); - - iLen=6; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BCCS2Boot,sTemp); - - iLen=6; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BCCS3Boot,sTemp); - - iLen=6; - strncpy(sTemp,(char*)tmpBuffer+iPos,iLen); - sTemp[iLen]=0;iPos+=iLen; - strcpy(Ident->BCCSVersion,sTemp); - return 1; - } - else - { - return 0; - } -} - -/** \brief The CCCRSProtocol::CmdHold function sends HOLD command to the device - - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if exchange successfully completed - - -*/ -int CC_CmdHold(unsigned char Addr) -{ - const unsigned char Data[256]={SYNC,0,6,HOLD,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf, Addr); - unsigned char ack; - if(!Response) - { - ack = tmpBuffer[3]; - if(ack != ACK) - { - iLastError = (ack!=ST_INV_CMD) ? ER_NAK : ER_INVALID_CMD; - return 0; - } - else return 1; - - } - else - { - return 0; - } -} - -/** \brief The CCCRSProtocol::CmdSetSecurity function sends SET SECURITY LEVELS command - - \param wS a parameter of type DWORD - a bitmap containing security levels to set - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if exchange successfully completed - - -*/ -int CC_CmdSetSecurity(unsigned long wS, unsigned char Addr) -{ - const unsigned char Data[]={SYNC,0,9,SET_SECURITY,0,0,0,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - cc_buf[4]=(unsigned char)(wS>>16); - cc_buf[5]=(unsigned char)(wS>>8); - cc_buf[6]=(unsigned char)(wS); - int Response=Transmit(cc_buf, Addr); - unsigned char ack; - if(!Response) - { - ack = tmpBuffer[3]; - if(ack != ACK) - { - iLastError = (ack!=ST_INV_CMD)?ER_NAK:ER_INVALID_CMD; - return 0; - } - else return 1; - - } - else - { - return 0; - } -} - -/** \brief The CCCRSProtocol::CmdBillType function sends ENABLE BILL TYPE command - - \param enBill a parameter of type DWORD - a bitmap containing 1 in the positions corresponding to the enabled bill types - \param escBill a parameter of type DWORD - a bitmap containing 1 in the positions corresponding to bill type processed with escrow - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool- true if the command was acknowledged - - -*/ -int CC_CmdBillType(unsigned long enBill, unsigned long escBill, unsigned char Addr) -{ - unsigned char Data[]={SYNC,0,12,BILL_TYPE, - (unsigned char)(enBill>>16),(unsigned char)(enBill>>8),(unsigned char)enBill, - (unsigned char)(escBill>>16),(unsigned char)(escBill>>8),(unsigned char)escBill, - 0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf, Addr); - unsigned char ack; - if (!Response) - { - ack = tmpBuffer[3]; - if(ack!=ACK) - { - iLastError=(ack!=ST_INV_CMD)?ER_NAK:ER_INVALID_CMD; - return 0; - } - else return 1; - - } - else - { - return 0; - } -} - -/** \brief The CCCRSProtocol::CmdPack function sends PACK command - - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if the command was acknowledged - - -*/ -int CC_CmdPack(unsigned char Addr) -{ - const unsigned char Data[]={SYNC,0,6,PACK,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf,Addr); - unsigned char ack; - if (!Response) - { - ack = tmpBuffer[3]; - if(ack!=ACK) - { - iLastError=(ack!=ST_INV_CMD)?ER_NAK:ER_INVALID_CMD; - return 0; - } - else return 1; - - } - else - { - return 0; - } -} - -/** \brief The CCCRSProtocol::CmdReturn function sends RETURN command - - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if the command was acknowledged - - -*/ -int CC_CmdReturn(unsigned char Addr) -{ - const unsigned char Data[256]={SYNC,0,6,RETURN,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf,Addr); - unsigned char ack; - if(!Response) - { - ack = tmpBuffer[3]; - if(ack!=ACK) - { - iLastError=(ack!=ST_INV_CMD)?ER_NAK:ER_INVALID_CMD; - return 0; - } - else return 1; - - } - else - { - return 0; - } -} - - -/** \brief The CCCRSProtocol::CmdGetBillTable function sends BILL TABLE request - - \param BillTable a parameter of type _BillRecord * containing pointer to the _BillRecord array receiving the bill table. - Position in the array corresponds to the bill type and the structure at the position describes that bill type. - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if the response was successfully received - - -*/ -int CC_CmdGetBillTable(unsigned char Addr, TBillRecord *BillTable) -{ - const unsigned char Data[]={SYNC,0,6,GET_BILL_TABLE,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf,Addr); - if(!Response) - { - int i; - if((tmpBuffer[3]==ST_INV_CMD)&&(tmpBuffer[2]==6)) - { - iLastError=ER_INVALID_CMD; - for(int i=0;i<24;i++) - { - BillTable[i].Denomination=0; - strcpy(BillTable[i].sCountryCode,""); - } - return 0; - } - for(i=0;i>24),(unsigned char)(dwOpt>>16),(unsigned char)(dwOpt>>8),(unsigned char)dwOpt, - 0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf,Addr); - if(!Response) - { - unsigned char ack = tmpBuffer[3]; - if(ack!=ACK) - { - iLastError=(ack!=ST_INV_CMD)?ER_NAK:ER_INVALID_CMD; - return 0; - } - else return 1; - - } - else - { - return 0; - } -} - - - -/** \brief The CCCRSProtocol::CmdGetCRC32 function sends CRC32 request - - \param dwCRC a parameter of type DWORD & containing a reference to the variable receiving CRC32 of the firmware. - \param Addr a parameter of type BYTE containing device address. Refer to \link Addr Device address list \endlink for the valid values - - \return bool - true if the request was answered - - -*/ -int CC_CmdGetCRC32(unsigned long *dwCRC, unsigned char Addr) -{ - unsigned char Data[]={SYNC,0,6,CRC32,0,0}; - memcpy(cc_buf, Data, sizeof(Data)); - int Response=Transmit(cc_buf,Addr); - if(!Response) - { - - if((tmpBuffer[3]==ST_INV_CMD)&&(tmpBuffer[2]==6)) - { - iLastError=ER_INVALID_CMD; - dwCRC=0; - return 0; - } - *dwCRC=tmpBuffer[6]+((unsigned long)tmpBuffer[5]<<8)+((unsigned long)tmpBuffer[4]<<16)+((unsigned long)tmpBuffer[3]<<24); - return 1; - } - else - { - dwCRC=0; - return 0; - } -} - - - - - - - -/** @} */ \ No newline at end of file diff --git a/PROJECT/drivers/ccnet/CCRSProtocol.h b/PROJECT/drivers/ccnet/CCRSProtocol.h deleted file mode 100644 index 097c3cc..0000000 --- a/PROJECT/drivers/ccnet/CCRSProtocol.h +++ /dev/null @@ -1,364 +0,0 @@ -#ifndef _CCRSPROTOCOL_H_ -#define _CCRSPROTOCOL_H_ - -#define CC_TIME_OUT 300 - -#define SYNC 0x02 //!< synchronization byte -#define ACK 0x00 //!< ACK code -#define NAK 0xFF //!< NAK code -#define ST_INV_CMD 0x30 //!< INVALID COMMAND response - -/** \defgroup Addr Device Addresses -* @{ -*/ -#define ADDR_BB 0x01 //!< Address for Bill-To-Bill units -#define ADDR_CHANGER 0x02 //!< Address for Coin Changer -#define ADDR_FL 0x03 //!< Address for Bill Validators -#define ADDR_CR 0x04 //!< Address for Smart Card Reader -/**@} */ - -/** \defgroup Cmds Interface commands -* @{ -*/ -#define RESET 0x30 //! -#include "uart1.h" - - -void Uart1_Send(unsigned char *buf, int len) -{ - while (len--) Uart1_WrByte(*buf++); -} - - -int Uart1_Receive(unsigned char *buf, int len, int timeout) -{ - while (len--) - { - if (!Uart1_RdByteWithTimeOut(buf++, timeout)) return 0; - } - return 1; -} - - -void Uart1_Init(CPU_INT32U baud_rate) -{ - float div_fp; /* Baud rate divisor floating point precision */ - CPU_INT16U div_int; /* Baud rate divisor floating point precision */ - CPU_INT08U divlo; - CPU_INT08U divhi; - CPU_INT32U pclk_freq; - - #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ - OS_CPU_SR cpu_sr = 0; - #endif - - OS_ENTER_CRITICAL(); - - pclk_freq = BSP_CPU_PclkFreq(PCLK_UART1); /* Get peripheral clock frequency */ - - div_fp = (pclk_freq / 16.0 / baud_rate); /* Compute divisor for desired baud rate */ - div_int = (CPU_INT16U)(div_fp + 0.5); /* Round the number up */ - - divlo = div_int & 0x00FF; /* Split divisor into LOW and HIGH bytes */ - divhi = (div_int >> 8) & 0x00FF; - - PCONP_bit.PCUART1 = 1; /* Enable the power bit for UART0 */ - - U1LCR = 0x80; /* Enable acces to Divisor latches */ - - U1DLL = divlo; /* Load divisor */ - U1DLM = divhi; - - U1FDR = 0x10; - - U1LCR = 0; - - U1MCR = 0; - U1ACR = 0; - - U1FCR_bit.FCRFE = 1; // enable fifo - - U1LCR_bit.WLS = 0x03; // 8 bit - U1LCR_bit.SBS = 0; // 1 stop bit - - U1IER = 0; - - PINSEL4_bit.P2_0 = 0x2; - PINSEL4_bit.P2_1 = 0x2; - - PINMODE4_bit.P2_0 = 0; - PINMODE4_bit.P2_1 = 0; - - FIO2DIR_bit.P2_0 = 1; - FIO2DIR_bit.P2_1 = 0; - - FIO2MASK_bit.P2_0 = 1; - FIO2MASK_bit.P2_1 = 1; - - OS_EXIT_CRITICAL(); -} - -void Uart1_WrByte(CPU_INT08U tx_byte) -{ - while (!U1LSR_bit.THRE) { - OSTimeDly(1); - } - - U1THR = tx_byte; -} - -void Uart1_Purge(void) -{ - //очистить прием - U1FCR_bit.RFR = 1; -} - -int Uart1_RdByteWithTimeOut(CPU_INT08U *byte, CPU_INT32U timeout) -{ - CPU_INT32U ctr = 0; - - while (!U1LSR_bit.DR) { - OSTimeDly(1); - if (++ctr > timeout) return 0; - } - - //error = U1LSR; - *byte = (CPU_INT08U)(U1RBR & 0x00FF); /* Remove the data from the holding register */ - return 1; -} diff --git a/PROJECT/drivers/ccnet/uart1.h b/PROJECT/drivers/ccnet/uart1.h deleted file mode 100644 index 041e01e..0000000 --- a/PROJECT/drivers/ccnet/uart1.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _UART1_H_ -#define _UART1_H_ - -extern void Uart1_Purge(void); -extern void Uart1_Send(unsigned char *buf, int len); -extern int Uart1_Receive(unsigned char *buf, int len, int timeout); -extern void Uart1_WrByte(CPU_INT08U tx_byte); -extern int Uart1_RdByteWithTimeOut(CPU_INT08U *byte, CPU_INT32U timeout); -extern void Uart1_Init(CPU_INT32U baud_rate); - -#endif //#ifndef _UART0_H_ diff --git a/PROJECT/drivers/modem/modem.c b/PROJECT/drivers/modem/modem.c deleted file mode 100644 index 49ad8af..0000000 --- a/PROJECT/drivers/modem/modem.c +++ /dev/null @@ -1,935 +0,0 @@ -#include -#include "modem.h" -#include "modem_task.h" -#include "app_serv.h" -#include "data.h" -#include "datadesc.h" -#include "uart2.h" - -static char additional_buf[256]; - -#define ModemUart_Ready Uart2_Ready -#define ModemComPortFlush Uart2_Flush -#define ModemUart_Getc Uart2_Getc -#define ModemUart_Gotc Uart2_Gotc -#define ModemUart_Putc Uart2_Putc -#define ModemUart_Init Uart2_Init - - -static OS_EVENT *ModemLock = NULL; -static char modem_buf[512]; -static int modem_connected; - -// получить доступ к модему -static void GetModem(void) -{ - CPU_INT08U err; - while (1) - { - OSSemPend(ModemLock, 1, &err); - if (!err) break; - OSTimeDly(1); - } -} - -// освободить модем -static void FreeModem(void) -{ - OSSemPost(ModemLock); -} - -// запись строки в модем -static void ModemWriteStr(char const *str) -{ - while (*str != 0) - { - while (!ModemUart_Ready()) OSTimeDly(1); - ModemUart_Putc(*str++); - } -} - -// чтение строки из модема по таймауту -static int ModemReadStr(char *str, unsigned long timeout) -{ - int byte_ctr = 0; - while (byte_ctr < 256) - { - CPU_INT08U byte; - unsigned long to = timeout; - - while (!ModemUart_Gotc()) - { - if (to == 0) - { - *str = 0x00; - return 0; - } - OSTimeDly(1); - to--; - } - - int ch = ModemUart_Getc(); - if (ch < 0) - { - *str = 0x00; - return 0; - } - - byte = (char)ch; - *str++ = byte; - byte_ctr++; - if (byte == 0x0a) break; - } - - *str = 0x00; - return 1; -} - -static int ModemReadByte(CPU_INT08U *byte, unsigned long timeout) -{ - unsigned long ctr = 0; - - while (!ModemUart_Gotc()) - { - OSTimeDly(1); - ctr++; - if (ctr > timeout) return 0; - } - - *byte = (CPU_INT08U)ModemUart_Getc(); - return 1; -} - -// чтение строки из модема из сравнение со строкой -static int ModemReadStrAndComp(char *str, char const *format, unsigned long timeout) -{ - int result; - - if (ModemReadStr(str, timeout)) - { - result = strcmp ((char *)str, (char const *)format); - } - else - { - return -1; - } - - return result; -} - -// инициализация/проверка состояния модема -int InitModem(void) -{ - int result; - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - CPU_INT32U val; - - OS_ENTER_CRITICAL(); - email_options.valid = 0; - modem_connected = 0; - OS_EXIT_CRITICAL(); - - GetData(&EnableModemDesc, &val, 0, DATA_FLAG_SYSTEM_INDEX); - if (val) - { - PINSEL1_bit.P0_24 = 0x0; - PINMODE1_bit.P0_24 = 0; - FIO0DIR_bit.P0_24 = 1; - FIO0MASK_bit.P0_24 = 0; - FIO0CLR_bit.P0_24 = 1; - OSTimeDly(1000); - FIO0SET_bit.P0_24 = 1; - - OSTimeDly(60000); - - ModemUart_Init(115200); - - if (!ModemLock) ModemLock = OSSemCreate(1); - - GetModem(); - - // проверим связь - sprintf(modem_buf, "AT\r\n"); - result = ModemSendOKCommand(modem_buf, 1000); - if (result != 0) - { - FreeModem(); - goto EXIT_INIT; - } - - // проверим, введен ли пин - sprintf(modem_buf, "AT+CPIN?\r\n"); - result = ModemSendOKCommand(modem_buf, 1000); - if (result != 0) - { - FreeModem(); - goto EXIT_INIT; - } - - FreeModem(); - - OS_ENTER_CRITICAL(); - modem_connected = 1; - OS_EXIT_CRITICAL(); - - OSTimeDly(1000); - - result = InitModemEmailParams(); - } - else - { - result = 0; - } -EXIT_INIT: - // создадим задачу и очередь модема - if (ModemQuery == NULL) - { - ModemQuery = OSQCreate(&ModemTbl[0], MODEM_QUERY_LEN); - OSTaskCreate(ModemTask, (void *)0, (OS_STK *)&ModemTaskStk[MODEM_TASK_STK_SIZE-1], MODEM_TASK_PRIO); - } - return result; -} - - - -// посылка сообщения по такому-то номеру такой-то текст -int ModemSendSMSMessage(char const* number, char const* text) -{ - char i; - - GetModem(); - - if (ModemWriteSMS(text, (unsigned char*)&i)) {FreeModem(); return -1;} - ModemComPortFlush(); - OSTimeDly(200); - if (ModemSendSMS(number, i)) {FreeModem(); return -1;} - ModemComPortFlush(); - OSTimeDly(200); - if (ModemDeleteSMS(i)) {FreeModem(); return -1;} - OSTimeDly(200); - ModemComPortFlush(); - - FreeModem(); - return 0; -} - - -// чтение из памяти смс с указанным номером -int ModemReadSMS(char *text, int index) -{ - unsigned char count; - char *ptr; - - GetModem(); - ModemComPortFlush(); - sprintf((char*)modem_buf, "AT+CMGR=%d\r\n", index); - ModemWriteStr(modem_buf); - if (!ModemReadStr(modem_buf, MODEM_RX_TIMEOUT)) {FreeModem(); return -1;} - if (!ModemReadStr(modem_buf, MODEM_RX_TIMEOUT)) {FreeModem(); return -1;} - - // дальше текст сообщения - count = 0; - while (count < 160) - { - modem_buf[0] = 0; - if (!ModemReadStr(modem_buf, MODEM_RX_TIMEOUT)) {FreeModem(); return -1;} - if (strcmp(modem_buf, "OK\r\n") == 0) - { - break; - } - else if (strlen(modem_buf) != 0) - { - // есть непустая строка - ptr = (char*)modem_buf; - if (strlen((char const*)modem_buf) < 1) {FreeModem(); return -1;} - while (*ptr) {*text++ = *ptr++; count++;} - } - else - { - break; - } - } - - FreeModem(); - return 0; -} - - -// посылка смс с номером index из памяти модема по указанному номеру -int ModemSendSMS(char const* number, unsigned char index) -{ - GetModem(); - - sprintf((char*)modem_buf, "AT+CMSS=%d,%s\r\n", index, number); - ModemWriteStr(modem_buf); - if (ModemReadStrAndComp(modem_buf, "\r\n", 10000)) {FreeModem(); return -1;} - if (!ModemReadStr(modem_buf, 10000)) {FreeModem(); return -1;} - modem_buf[6] = 0; - if (strcmp((char const*)modem_buf, "+CMSS:")) {FreeModem(); return -1;} - if (ModemReadStrAndComp(modem_buf, "\r\n", 10000)) {FreeModem(); return -1;} - if (ModemReadStrAndComp(modem_buf, "OK\r\n", 10000)) {FreeModem(); return -1;} - - FreeModem(); - return 0; -} - - -// удаление смски с номером index из памяти -int ModemDeleteSMS(unsigned char index) -{ - int result; - GetModem(); - sprintf((char*)modem_buf, "AT+CMGD=%d\r\n",index); - result = ModemSendOKCommand(modem_buf, 1000); - FreeModem(); - return result; -} - -// запись смски с указанным текстом в память, в index записывает позицию в памяти, куда смс записалось -int ModemWriteSMS(char const* text, unsigned char *index) -{ - CPU_INT08U byte; - unsigned long word; - int result; - - GetModem(); - - // посылаем команду - ModemWriteStr("AT+CMGW\r\n"); - if (ModemReadStrAndComp(modem_buf, "\r\n", 1000)) {FreeModem(); return -1;} - - if (!ModemReadByte(&byte, 1000)) {FreeModem(); return -1;} - if (byte != '>') {FreeModem(); return -1;} - - if (!ModemReadByte(&byte, 1000)) {FreeModem(); return -1;} - if (byte != ' ') {FreeModem(); return -1;} - - // вводим текст сообщения - ModemWriteStr(text); - // конец сообщения - ModemUart_Putc(0x1a); - // принимаем ответ о записи - if (ModemReadStrAndComp(modem_buf, "\r\n", 1000)) {FreeModem(); return -1;} - // прочитаем номер смски в памяти, куда она записалась - if (!ModemReadStr(modem_buf, 5000)) {FreeModem(); return -1;} - modem_buf[6] = 0; - if (strcmp((char const*)modem_buf, "+CMGW:")) {FreeModem(); return -1;} - { - int len = strlen((char const*)&modem_buf[7]); - if (len == 3) word = modem_buf[7]-0x30; - else if (len == 4) {word = (modem_buf[7]-0x30)*10 + (modem_buf[8]-0x30);} - } - - *index = (unsigned char)word; - - result = ModemReadStrAndComp(modem_buf, "\r\n", 1000) + ModemReadStrAndComp(modem_buf, "OK\r\n", 1000); - FreeModem(); - // ОК - return result; -} - -// посылка строки, на которую должен прийти ответ "OK" -// возвращает 0 если ок -int ModemSendOKCommand(char *str, unsigned long timeout) -{ - int i; - - ModemComPortFlush(); - - ModemWriteStr(str); - - i = MODEM_REPEAT_RX; - while (i--) - { - if (ModemReadStr(str, timeout)) - { - if (strcmp(str, "OK\r\n") == 0) - { - return 0; - } - else if (strcmp(str, "ERROR\r\n") == 0) - { - return -2; - } - - continue; - } - else - { - return -1; - } - } - - return -3; -} - -int ModemSendOKData(char *str, int len, unsigned long timeout) -{ - int i; - - ModemComPortFlush(); - - for (i = 0; i < len; i++) - { - while (!ModemUart_Ready()) OSTimeDly(1); - ModemUart_Putc(str[i]); - } - - i = MODEM_REPEAT_RX; - while (i--) - { - if (ModemReadStr(str, timeout)) - { - if (strcmp(str, "OK\r\n") == 0) - { - return 0; - } - else if (strcmp(str, "ERROR\r\n") == 0) - { - return -2; - } - - continue; - } - else - { - return -1; - } - } - - return -3; -} - - -// посылка строки, с возвратом ответа на неё, отличного от "\r\n" -// возвращает 0 если ок -int ModemSendCommand(char *str, unsigned long timeout) -{ - CPU_INT08U i; - - ModemComPortFlush(); - - ModemWriteStr(str); - - i = MODEM_REPEAT_RX; - while (i--) - { - if (ModemReadStr(str, timeout)) - { - if (strcmp(str, "\r\n") == 0) - { - continue; - } - else - { - return 0; - } - } - else - { - return -1; - } - } - - return -3; -} - - -// прием сигнала о новой смске, в num записывает номер принятого сообщения, если оно принято -int ModemRxNewSMS(unsigned long *num) -{ - int len; - - GetModem(); - - if (!ModemReadStr(modem_buf, 10)) {FreeModem(); return 0;} - - if (!strcmp((char const*)modem_buf, "\r\n")) - { - // принимаем ещё одну строку - if (!ModemReadStr(modem_buf, 100)) {FreeModem(); return 0;} - } - - if (strlen((char const*)modem_buf) < 13) {FreeModem(); return 0;} - - modem_buf[6] = 0; - if (strcmp((char const*)modem_buf, "+CMTI:")) {FreeModem(); return 0;} - - len = strlen((char*)&modem_buf[12]); - if (len == 3) *num = modem_buf[12]-0x30; - else if (len == 4) {*num = (modem_buf[12]-0x30)*10 + (modem_buf[13]-0x30);} - - OSTimeDly(200); - FreeModem(); - return 1; -} - -typedef struct -{ - char const *name; // строка названия элемента - char *dest; // куда сожранить значение -} CfgElem; - -static const CfgElem email_cfg_list[EMAIL_CFG_ELEM_COUNT] = -{ - {"[receiver]=", email_options.receiver}, - {"[ap_dns]=", email_options.ap_dns}, - {"[ap_password]=", email_options.ap_password}, - {"[ap_ip]=", email_options.ap_ip}, - {"[ap_user]=", email_options.ap_user}, - {"[ap_apn]=", email_options.ap_apn}, - {"[smtp_user]=", email_options.smtp_user}, - {"[smtp_password]=", email_options.smtp_password}, - {"[smtp_mail]=", email_options.smtp_mail}, - {"[smtp_server]=", email_options.smtp_server}, - {"[smtp_port]=", email_options.smtp_port} -}; - - -// инициализация параметров для настройки почты -int InitModemEmailParams(void) -{ - CPU_INT08U i, j; - char *text; - CPU_INT32U status = 0; - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - - text = additional_buf; - - OS_ENTER_CRITICAL(); - email_options.valid = 0; - OS_EXIT_CRITICAL(); - - for (i = 1; i < 24; i++) - { - if (ModemReadSMS(text, i)) - { - // не прочиталось - continue; - } - - for (j = 0; j < EMAIL_CFG_ELEM_COUNT; j++) - { - int str_len = strlen(email_cfg_list[j].name); - char flag = 0; - while (str_len--) - { - if (email_cfg_list[j].name[str_len] != text[str_len]) - { - flag = 1; - break; - } - } - if (!flag) - { - strcpy(email_cfg_list[j].dest, &text[strlen(email_cfg_list[j].name)]); - for (str_len = 0; str_len < 64; str_len++) - { - if (email_cfg_list[j].dest[str_len] == 0) break; - if (email_cfg_list[j].dest[str_len] == '\r') {email_cfg_list[j].dest[str_len] = 0; break;} - if (email_cfg_list[j].dest[str_len] == '\n') {email_cfg_list[j].dest[str_len] = 0; break;} - } - - // нашли опцию в смске - status |= 1L << j; - break; - } - } - - OSTimeDly(200); - } - - i = 1; - for (j = 0; j < EMAIL_CFG_ELEM_COUNT; j++) - { - if ((status & (1 << j)) == 0) - { - i = 0; - break; - } - } - - OS_ENTER_CRITICAL(); - email_options.valid = i; - OS_EXIT_CRITICAL(); - - return 0; -} - -void ResetModemValid(void) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - OS_ENTER_CRITICAL(); - email_options.valid = 0; - modem_connected = 0; - OS_EXIT_CRITICAL(); -} - - -// проверка, можно ли использовать модем (корректность настроек и подключения) -CPU_INT08U IsModemValid(void) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - CPU_INT08U result = 0; - - OS_ENTER_CRITICAL(); - if (email_options.valid && modem_connected) - { - result = 1; - } - OS_EXIT_CRITICAL(); - - return result; -} - -CPU_INT08U IsModemConn(void) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - CPU_INT08U result = 0; - - OS_ENTER_CRITICAL(); - if (modem_connected) - { - result = 1; - } - OS_EXIT_CRITICAL(); - - return result; -} - -CPU_INT08U IsModemConf(void) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - CPU_INT08U result = 0; - - OS_ENTER_CRITICAL(); - if (email_options.valid) - { - result = 1; - } - OS_EXIT_CRITICAL(); - - return result; -} - - -// м.б. запускать при старте, чтобы проверять, настраивается ли можем этими настройками -int ModemConfigGprs() -{ - int repeat = 0; - if (!email_options.valid) return -1; - - GetModem(); - -REP_1: - sprintf(modem_buf, "AT^SICS=0,conType,GPRS0\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - sprintf(modem_buf, "AT^SISC=0\r\n"); - ModemSendOKCommand(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT); - OSTimeDly(500); - if (repeat++ == 0) goto REP_1; - FreeModem(); - return -5; - } - - sprintf(modem_buf, "AT^SICS=0,inactTO,\"20\"\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -6; - } - - sprintf(modem_buf, "AT^SICS=0,dns1,\"%s\"\r\n", email_options.ap_dns); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -7; - } - - sprintf(modem_buf, "AT^SICS=0,passwd,\"%s\"\r\n", email_options.ap_password); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -8; - } - - sprintf(modem_buf, "AT^SICS=0,apn,\"%s\"\r\n", email_options.ap_apn); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -9; - } - - sprintf(modem_buf, "AT^SICS=0,user,\"%s\"\r\n", email_options.ap_user); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -10; - } - - FreeModem(); - return 0; -} - -int ModemConfigSmtp() -{ - int repeat = 0; - if (!email_options.valid) return -1; - - GetModem(); -REP_2: - // Select service type SMTP. - sprintf(modem_buf, "AT^SISS=0,srvType,\"Smtp\"\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - sprintf(modem_buf, "AT^SISC=0\r\n"); - ModemSendOKCommand(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT); - OSTimeDly(10000); - if (repeat++ == 0) goto REP_2; - FreeModem(); - return -25; - } - - // Choose ASCII alphabet. - sprintf(modem_buf, "AT^SISS=0,alphabet,\"1\"\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -26; - } - - // Select connection profile 0. - sprintf(modem_buf, "AT^SISS=0,conId,\"0\"\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -27; - } - - // Specify SMTP server address. - sprintf(modem_buf, "AT^SISS=0,address,\"%s\"\r\n", email_options.smtp_server); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -28; - } - - // Specify sender's user name required for SMTP authentication. - sprintf(modem_buf, "AT^SISS=0,user,\"%s\"\r\n", email_options.smtp_user); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -29; - } - - // Specify password used by the sender for SMTP authentication. - sprintf(modem_buf, "AT^SISS=0,passwd,\"%s\"\r\n", email_options.smtp_password); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -30; - } - - // Sender name and password can be used for SMTP authentication. - sprintf(modem_buf, "AT^SISS=0,smAuth,\"1\"\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -31; - } - - // Port for SMTP connection. - sprintf(modem_buf, "AT^SISS=0,tcpPort,\"%s\"\r\n", email_options.smtp_port); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -32; - } - - FreeModem(); - return 0; -} - -// Отправка почты: получатель и отправитель уже есть в настроках модема, -// задаем тему и передаем указатель на callback функцию, с помощью которой получаем текст письма -int ModemSendEmail(char *subj, TextCallbackFunc text_callback) -{ - char *text; - int result = -1; - - if (!email_options.valid) return -50; - - result = ModemConfigGprs(); - if (result) - { - return result; - } - - result = ModemConfigSmtp(); - if (result) - { - return result; - } - - GetModem(); - - // Sender's email address. - sprintf(modem_buf, "AT^SISS=0,smFrom,\"%s\"\r\n", email_options.smtp_mail); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -51; - } - - // Recipient's email address. - sprintf(modem_buf, "AT^SISS=0,smRcpt,\"%s\"\r\n", email_options.receiver); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -52; - } - - // Enter text for subject field. - sprintf(modem_buf, "AT^SISS=0,smSubj,\"%s\"\r\n", subj); - if (ModemSendOKCommand(modem_buf, MODEM_RX_TIMEOUT) != 0) - { - FreeModem(); - return -53; - } - - sprintf(modem_buf, "AT^SISC=0\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT) != 0) - { - FreeModem(); - return -54; - } - - OSTimeDly(5000); - // Open the service, i.e. start to send the email. - sprintf(modem_buf, "AT^SISO=0\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT) != 0) - { - FreeModem(); - return -55; - } - - if (!ModemReadStr(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT)) - { - FreeModem(); - return -56; - } - - if (!ModemReadStr(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT)) - { - FreeModem(); - return -57; - } - - if (strcmp(modem_buf, "^SISW: 0, 1\r\n") != 0) - { - return -58; - } - - text = additional_buf; - - OSTimeDly(1000); - - // запись сообщения - while (text_callback(text) == 0) - { - int lenght = strlen(text); - int wr_len, reg, eof; - int wr_ctr = 0; - - while (wr_ctr < lenght) - { - sprintf(modem_buf, "AT^SISW=0,%d\r\n", lenght-wr_ctr); - if (ModemSendCommand(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT)) - { - result = -59; - goto EMAIL_EXIT_FAIL; - } - - sscanf(modem_buf, "^SISW: %d, %d, %d", ®, &wr_len, &eof); - - if ((reg != 0) || (eof != 0) || (wr_len > lenght-wr_ctr) || (wr_len == 0)) - { - result = -60; - goto EMAIL_EXIT_FAIL; - } - - if (ModemSendOKData(text, wr_len, MODEM_OPEN_SERVICE_TIMEOUT) != 0) - { - result = -61; - goto EMAIL_EXIT_FAIL; - } - - if (!ModemReadStr(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT)) - { - result = -62; - goto EMAIL_EXIT_FAIL; - } - - wr_ctr += wr_len; - OSTimeDly(50); - } - } - - // Set the to mark the end of the email body. - // The is accepted by the service. - sprintf(modem_buf, "AT^SISW=0,0,1\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT) != 0) - { - result = -63; - goto EMAIL_EXIT_FAIL; - } - - // The "^SISW" URC confirms that all data is sent suc-cessfully. - if (!ModemReadStr(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT)) // odoa - { - result = -64; - goto EMAIL_EXIT_FAIL; - } - if (!ModemReadStr(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT)) // ^sisw - { - result = -65; - goto EMAIL_EXIT_FAIL; - } - if (strcmp(modem_buf, "^SISW: 0, 2\r\n") != 0) - { - result = -66; - goto EMAIL_EXIT_FAIL; - } - - // Close the service. - sprintf(modem_buf, "AT^SISC=0\r\n"); - if (ModemSendOKCommand(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT) != 0) - { - result = -67; - goto EMAIL_EXIT_FAIL; - } - - FreeModem(); - return 0; - -EMAIL_EXIT_FAIL: - sprintf(modem_buf, "AT^SISC=0\r\n"); - OSTimeDly(10000); - ModemSendOKCommand(modem_buf, MODEM_OPEN_SERVICE_TIMEOUT); - FreeModem(); - return result; -} - diff --git a/PROJECT/drivers/modem/modem.h b/PROJECT/drivers/modem/modem.h deleted file mode 100644 index ea6294e..0000000 --- a/PROJECT/drivers/modem/modem.h +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef __MODEM_H__ -#define __MODEM_H__ - -#define MODEM_REPEAT_RX 5 -#define MODEM_RX_TIMEOUT 5000 -#define MODEM_OPEN_SERVICE_TIMEOUT 30000 - -/* - strings.append("[receiver]=" + config.get('Receiver', 'email')) - strings.append("[ap_dns]=" + config.get('AccessPoint', 'dns', '')) - strings.append("[ap_password]=" + config.get('AccessPoint', 'password', '')) - strings.append("[ap_ip]=" + config.get('AccessPoint', 'ip', '')) - strings.append("[ap_user]=" + config.get('AccessPoint', 'user', '')) - strings.append("[ap_apn]=" + config.get('AccessPoint', 'apn', '')) - strings.append("[smtp_user]=" + config.get('Smtp', 'user', '')) - strings.append("[smtp_password]=" + config.get('Smtp', 'password', '')) - strings.append("[smtp_mail]=" + config.get('Smtp', 'mail', '')) - strings.append("[smtp_server]=" + config.get('Smtp', 'smtp_server', '')) - strings.append("[smtp_port]=" + config.get('Smtp', 'port', '25')) -*/ -typedef struct -{ - char receiver[64]; - char ap_dns[64]; - char ap_password[64]; - char ap_ip[64]; - char ap_user[64]; - char ap_apn[64]; - char smtp_user[64]; - char smtp_password[64]; - char smtp_mail[64]; - char smtp_server[64]; - char smtp_port[64]; - - CPU_INT08U valid; -} EmailOptions; -static EmailOptions email_options; - -#define EMAIL_CFG_ELEM_COUNT 11 - - -typedef int (*TextCallbackFunc)(char *str); - - -extern int InitModem(void); -extern void ModemWriteStr(char const *str); -extern int ModemSendOKCommand(char *str, unsigned long timeout); -extern int ModemDeleteSMS(unsigned char index); -extern int ModemWriteSMS(char const* text, unsigned char *index); -extern int ModemSendSMS(char const* number, unsigned char index); -extern int ModemReadSMS(char *text, int index); -extern int ModemSendSMSMessage(char const* number, char const* text); -extern int ModemRxNewSMS(unsigned long *num); -extern int ModemSendCommand(char *str, unsigned long timeout); -extern CPU_INT08U IsModemConn(void); -extern CPU_INT08U IsModemConf(void); - -extern int InitModemEmailParams(void); -extern int ModemSendEmail(char *subj, TextCallbackFunc text_callback); -extern CPU_INT08U IsModemValid(void); -extern void ResetModemValid(void); - -#endif //#ifndef __MODEM_H__ diff --git a/PROJECT/drivers/modem/uart2.c b/PROJECT/drivers/modem/uart2.c deleted file mode 100644 index 0284545..0000000 --- a/PROJECT/drivers/modem/uart2.c +++ /dev/null @@ -1,228 +0,0 @@ -#include -#include "uart2.h" - - -static unsigned char UART2TXBuffer[UART2_TX_BUFSIZE]; -static unsigned short UART2TXhead = 0; -static unsigned short UART2TXtail = 0; -static unsigned short UART2TXcount = 0; -static unsigned char UART2RXBuffer[UART2_RX_BUFSIZE]; -static unsigned short UART2RXhead = 0; -static unsigned short UART2RXtail = 0; -static unsigned short UART2RXcount = 0; - - -void Uart2_Flush(void) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - OS_ENTER_CRITICAL(); - UART2TXcount = UART2TXhead = UART2TXtail = 0; - UART2RXcount = UART2RXhead = UART2RXtail = 0; - U2IER_bit.THREIE = 0; - U2FCR = 0x06; - OS_EXIT_CRITICAL(); -} - -int Uart2_Getc(void) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - OS_ENTER_CRITICAL(); - int res = -1; - - if (UART2RXcount > 0) - { - UART2RXcount--; - res = UART2RXBuffer[UART2RXhead++]; - UART2RXhead %= UART2_RX_BUFSIZE; - } - OS_EXIT_CRITICAL(); - - return res; -} - -int Uart2_Gotc(void) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - OS_ENTER_CRITICAL(); - int res = 0; - if (UART2RXcount > 0) res = 1; - OS_EXIT_CRITICAL(); - return res; -} - -int Uart2_Ready(void) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - OS_ENTER_CRITICAL(); - int res = 0; - if (UART2TXcount < UART2_TX_BUFSIZE) res = 1; - OS_EXIT_CRITICAL(); - return res; -} - -int Uart2_Putc(unsigned char ch) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - OS_ENTER_CRITICAL(); - int res = 0; - - if (UART2TXcount < UART2_TX_BUFSIZE) - { - if (UART2TXcount == 0) - { - if (U2LSR_bit.THRE) - { - U2THR = ch; - } - else - { - UART2TXcount++; - UART2TXBuffer[UART2TXtail++] = ch; - UART2TXtail %= UART2_TX_BUFSIZE; - U2IER = 3; - } - } - else - { - UART2TXcount++; - UART2TXBuffer[UART2TXtail++] = ch; - UART2TXtail %= UART2_TX_BUFSIZE; - U2IER = 3; - } - } - else - { - res = -1; - } - OS_EXIT_CRITICAL(); - return res; -} - -static void Uart2_Isr(void) -{ - CPU_INT08U IIRValue; - CPU_INT08U u1lsr; - volatile CPU_INT08U Dummy; - - IIRValue = U2IIR; - IIRValue >>= 1; /* skip pending bit in IIR */ - IIRValue &= 0x07; /* check bit 1~3, interrupt identification */ - - if (IIRValue == 2) /* Receive Data Available */ - { - /* Receive Data Available */ - if (U2LSR_bit.DR) - { - if (UART2RXcount < UART2_RX_BUFSIZE) - { - UART2RXBuffer[UART2RXtail++] = U2RBR; - UART2RXtail %= UART2_RX_BUFSIZE; - UART2RXcount++; - } - else - { - Dummy = U2RBR; - } - } - } - else if (IIRValue == 1) /* THRE, transmit holding register empty */ - { - /* THRE interrupt */ - if (UART2TXcount > 0) - { - U2THR = UART2TXBuffer[UART2TXhead++]; - UART2TXhead %= UART2_TX_BUFSIZE; - UART2TXcount--; - } - else - { - U2IER = 1; - } - } - else - { - Dummy = U2RBR; - u1lsr = U2LSR; - u1lsr = u1lsr; - } - -} - -void Uart2_Init(CPU_INT32U baud_rate) -{ - float div_fp; /* Baud rate divisor floating point precision */ - CPU_INT16U div_int; /* Baud rate divisor floating point precision */ - CPU_INT08U divlo; - CPU_INT08U divhi; - CPU_INT32U pclk_freq; - - #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ - OS_CPU_SR cpu_sr = 0; - #endif - - OS_ENTER_CRITICAL(); - - pclk_freq = BSP_CPU_PclkFreq(PCLK_UART2); /* Get peripheral clock frequency */ - - div_fp = (pclk_freq / 16.0 / baud_rate); /* Compute divisor for desired baud rate */ - div_int = (CPU_INT16U)(div_fp + 0.5); /* Round the number up */ - - divlo = div_int & 0x00FF; /* Split divisor into LOW and HIGH bytes */ - divhi = (div_int >> 8) & 0x00FF; - - PCONP_bit.PCUART2 = 1; /* Enable the power bit for UART0 */ - - U2IER = 0; - - U2FCR = 0x06; // enable and reset fifo - - U2ACR = 0; - - //U1FCR = 0x01; // enable and reset fifo - - U2LCR = 0x80; /* Enable acces to Divisor latches */ - - U2DLL = divlo; /* Load divisor */ - U2DLM = divhi; - U2FDR = 0x10; - - U2LCR = 0; - - U2LCR_bit.WLS = 0x03; // 8 bit - U2LCR_bit.SBS = 0; // 1 stop bit - - U2IER = 1; - - PINSEL0_bit.P0_10 = 0x1; - PINSEL0_bit.P0_11 = 0x1; - - PINMODE0_bit.P0_10 = 0; - PINMODE0_bit.P0_11 = 0; - - FIO0DIR_bit.P0_10 = 1; - FIO0DIR_bit.P0_11 = 0; - - FIO0MASK_bit.P0_10 = 1; - FIO0MASK_bit.P0_11 = 1; - - VICINTSELECT &= ~(1 << VIC_UART2); - VICVECTADDR28 = (CPU_INT32U)Uart2_Isr; - VICINTENABLE = (1 << VIC_UART2); - - Uart2_Flush(); - - OS_EXIT_CRITICAL(); -} - - - diff --git a/PROJECT/drivers/modem/uart2.h b/PROJECT/drivers/modem/uart2.h deleted file mode 100644 index bd65706..0000000 --- a/PROJECT/drivers/modem/uart2.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _UART_H_ -#define _UART_H_ - - -#define UART2_RX_BUFSIZE 128 -#define UART2_TX_BUFSIZE 64 - - -extern void Uart2_Init(CPU_INT32U uart_speed); -extern void Uart2_Flush(void); -extern int Uart2_Gotc(void); -extern int Uart2_Getc(void); -extern int Uart2_Ready(void); -extern int Uart2_Putc(CPU_INT08U ch); - - -#endif //#ifndef _UART_H_ - diff --git a/PROJECT/menu/menudesc.c b/PROJECT/menu/menudesc.c index 5a1f9e0..7a44a25 100644 --- a/PROJECT/menu/menudesc.c +++ b/PROJECT/menu/menudesc.c @@ -219,8 +219,8 @@ const TMenuLine line_StatisticsMenu_4 = { (void*)ClearStatMenu // панель для перехода }; -const TMenuLineArray arr_StatisticsMenuArray[] = {&line_StatisticsMenu_0, &line_StatisticsMenu_2, &line_StatisticsMenu_3, &line_StatisticsMenu_4, NULL}; -const TMenuPanel StatisticsMenuPanel[] = {arr_StatisticsMenuArray, NULL, 4, MENU_PANEL_STANDARD}; +const TMenuLineArray arr_StatisticsMenuArray[] = {&line_StatisticsMenu_0, &line_StatisticsMenu_2, /*&line_StatisticsMenu_3,*/ &line_StatisticsMenu_4, NULL}; +const TMenuPanel StatisticsMenuPanel[] = {arr_StatisticsMenuArray, NULL, 3, MENU_PANEL_STANDARD}; /*********************************** @@ -512,8 +512,8 @@ const TMenuLine line_SettingsMenu_7 = { NULL // панель для перехода }; */ -const TMenuLineArray arr_SettingsMenuArray[] = {&line_SettingsMenu_0, &line_SettingsMenu_2, &line_SettingsMenu_5, &line_SettingsMenu_3, &line_SettingsMenu_6, &line_SettingsMenu_8, NULL}; -const TMenuPanel SettingsMenuPanel[] = {arr_SettingsMenuArray, NULL, 6, MENU_PANEL_STANDARD}; +const TMenuLineArray arr_SettingsMenuArray[] = {&line_SettingsMenu_0, &line_SettingsMenu_2, &line_SettingsMenu_5, &line_SettingsMenu_3, &line_SettingsMenu_6, /*&line_SettingsMenu_8,*/ NULL}; +const TMenuPanel SettingsMenuPanel[] = {arr_SettingsMenuArray, NULL, 5, MENU_PANEL_STANDARD}; @@ -1065,8 +1065,8 @@ const TMenuLine line_CashMenu_5 = { NULL // панель для перехода }; -const TMenuLineArray arr_ValidatorMenuArray[] = {&line_CashMenu_0, &line_CashMenu_1, &line_CashMenu_2, &line_CashMenu_3, &line_CashMenu_4, &line_CashMenu_5, NULL}; -const TMenuPanel ValidatorSetupPanel[] = {arr_ValidatorMenuArray, OnEnterCoinMenu, 6, MENU_PANEL_STANDARD}; +const TMenuLineArray arr_ValidatorMenuArray[] = {&line_CashMenu_0, &line_CashMenu_1, /*&line_CashMenu_2,*/ &line_CashMenu_3, &line_CashMenu_4, &line_CashMenu_5, NULL}; +const TMenuPanel ValidatorSetupPanel[] = {arr_ValidatorMenuArray, OnEnterCoinMenu, 5, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА МОДЕМА @@ -1653,9 +1653,9 @@ void PrintEventJournalRecord(TEventRecord *record) if (record->event) { // есть событие GetEventStr(str_EventNumber, record->event); - if ((record->event == JOURNAL_EVENT_MONEY_NOTE) || (record->event == JOURNAL_EVENT_MONEY_COIN)) + if ((record->event >= JOURNAL_EVENT_MONEY_NOTE_POST1) && (record->event <= JOURNAL_EVENT_MONEY_COIN_POST6)) { - sprintf(str_EventData, "%d руб.", record->data); + sprintf(str_EventData, "%d руб.пост %d", record->data, record->event%6); } else if (record->event == JOURNAL_EVENT_START_SESSION) { diff --git a/PROJECT/services/coin.c b/PROJECT/services/coin.c index 0a90bc2..4468f73 100644 --- a/PROJECT/services/coin.c +++ b/PROJECT/services/coin.c @@ -5,7 +5,6 @@ #include "coin.h" #include "data.h" #include "datadesc.h" -#include "modem.h" #include OS_STK CoinTaskStk[COIN_TASK_STK_SIZE]; @@ -17,7 +16,8 @@ CPU_INT32U CashImpCounter[COUNT_POST]; static CPU_INT32U cash_pulse = 5000; static CPU_INT32U cash_pause = 2000; -static char pend_cash_counter[COUNT_POST] = 0; + +static char pend_cash_counter[COUNT_POST]; static CPU_INT32U pend_cash_timestamp[COUNT_POST]; void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause) @@ -51,14 +51,14 @@ void CoinTask(void *p_arg) GetData(&CashModeDesc, &cash_mode, i, DATA_FLAG_DIRECT_INDEX); GetData(&EnableValidatorDesc, &cash_enable, i, DATA_FLAG_DIRECT_INDEX); } - + OSTimeDly(1); if (enable_coin) { if (GetCoinCount(i)) { - PostUserEvent(EVENT_COIN_INSERTED); + PostUserEvent(EVENT_COIN_INSERTED_POST1 + i); } } else @@ -93,7 +93,7 @@ void CoinTask(void *p_arg) { if (labs(OSTimeGet() - last_cash_time[i]) > 500) { - PostUserEvent(EVENT_CASH_INSERTED); + PostUserEvent(EVENT_CASH_INSERTED_POST1 + i); } } else @@ -178,8 +178,14 @@ CPU_INT32U GetResetCashCount(int index) // инициализация монетоприемника void InitCoin(void) { - //CoinImpCounter = 0; - //CashImpCounter = 0; + for(int i = 0; i < COUNT_POST; i++) + { + CoinImpCounter[i] = 0; + CashImpCounter[i] = 0; + + pend_cash_counter[i] = 0; + } + InitImpInput(); OSTaskCreate(CoinTask, (void *)0, (OS_STK *)&CoinTaskStk[COIN_TASK_STK_SIZE-1], COIN_TASK_PRIO); } diff --git a/PROJECT/services/validator.c b/PROJECT/services/validator.c deleted file mode 100644 index e3cc092..0000000 --- a/PROJECT/services/validator.c +++ /dev/null @@ -1,373 +0,0 @@ -#include -#include "validator.h" -#include "CCRSProtocol.h" -#include "uart1.h" -#include "app_serv.h" -#include "journal.h" -#include "data.h" -#include "datadesc.h" - - -OS_STK ValidatorTaskStk[VALIDATOR_TASK_STK_SIZE]; -OS_EVENT *VLock = NULL; - -void CC_BusReset(void); -int ValidatorConnect(void); - -// статус подключения купюрника -unsigned char VConnStat = VCONN_STATUS_NOCONN; - -TBillRecord VBillTable[24]; -/// таблица с целочисленными значениями номиналов - для GUI -CPU_INT32U BillNominals[24]; - -TBillStatus VBillStatus; -/// счетчик денег -CPU_INT32U VBillCount = 0; -/// индекс номинала последней приянтой купюры -CPU_INT32U VLastBillIndex = V_BILLS_NUMBER; - -void ValidatorTask(void *p_arg) -{ - char incas = 0; - // 1. если нет связи, пробуем коннектиться командой RESET - // 2. BUS RESET - min 100 ms - // 3. POLL надо делать каждые 100-200 мс, рекомендуется больше 200 - - VBillCount = 0; - VConnStat = VCONN_STATUS_NOCONN; - ClrErrorFlag(ERROR_VALIDATOR_CONN); - ClrErrorFlag(ERROR_VALIDATOR_FAILURE); - - while(1) - { - TPollResults polldata; - OSTimeDly(CC_POLL_TIME_OUT); - - CPU_INT32U enable, cash_mode; - GetData(&EnableValidatorDesc, &enable, 0, DATA_FLAG_SYSTEM_INDEX); - GetData(&CashModeDesc, &cash_mode, 0, DATA_FLAG_SYSTEM_INDEX); - - // обработка статуса связи - if (VConnStat == VCONN_STATUS_NOCONN) - { // нет подключения - if ((!enable) || (cash_mode != 0)) - { // не включен - VConnStat = VCONN_STATUS_NOCONN; - ClrErrorFlag(ERROR_VALIDATOR_CONN); - ClrErrorFlag(ERROR_VALIDATOR_FAILURE); - continue; - } - // надо проинициализироваться - if (ValidatorConnect() != 0) {SetErrorFlag(ERROR_VALIDATOR_CONN); continue;} - // успешно - ClrErrorFlag(ERROR_VALIDATOR_CONN); - ClrErrorFlag(ERROR_VALIDATOR_FAILURE); - VConnStat = VCONN_STATUS_CONN; - } - else - { // подключение есть - if (!enable) - { // не включен - VConnStat = VCONN_STATUS_NOCONN; - ClrErrorFlag(ERROR_VALIDATOR_CONN); - ClrErrorFlag(ERROR_VALIDATOR_FAILURE); - continue; - } - } - - // запрос статуса увалидатора - if (CC_CmdPoll(ADDR_FL, &polldata)) - {// разбираем ответ на poll - - if ((incas) && (polldata.Z1 != ST_BOX)) - { - incas = 0; - PostUserEvent(EVENT_INCASSATION_FINISH); - } - - switch (polldata.Z1){ - // States CCNET states and events - case ST_POWER_UP: - case ST_POWER_BILL_ESCROW: - case ST_POWER_BILL_STACKER: - case ST_INITIALIZE: - case ST_IDLING: - case ST_ACCEPTING: - case ST_PACKING: - case ST_RETURNING: - case ST_DISABLED: - case ST_HOLDING: - case ST_BUSY: - ClrValidatorErrors(); - break; - case ST_REJECTING: - ClrErrorFlag(ERROR_VALIDATOR_FAILURE); - switch (polldata.Z2){ - case RJ_INSERTION: //!< Rejection because of insertion problem - case RJ_REMAINING: //!< Rejection because of other bill remaining in the device - SetErrorFlag(ERROR_VALIDATOR_INSERTION); - break; - case RJ_MAGNETIC: //!< Rejection because of invalid magnetic pattern - SetErrorFlag(ERROR_VALIDATOR_MAGNETIC); - break; - case RJ_CONVEYING: //!< Rejection because of conveying - SetErrorFlag(ERROR_VALIDATOR_CONVEYING); - break; - case RJ_IDENT: //!< Rejection because of identification failure - SetErrorFlag(ERROR_VALIDATOR_IDENT); - break; - case RJ_VRFY: //!< Rejection because of verification failure - SetErrorFlag(ERROR_VALIDATOR_VRFY); - break; - case RJ_OPT: //!< Rejection because of optical pattern mismatch - SetErrorFlag(ERROR_VALIDATOR_OPT); - break; - case RJ_INHIBIT: //!< Rejection because the denomination is inhibited - SetErrorFlag(ERROR_VALIDATOR_INHIBIT); - break; - case RJ_CAP: //!< Rejection because of capacity sensor pattern mismatch - SetErrorFlag(ERROR_VALIDATOR_CAP); - break; - case RJ_LNG: //!< Rejection because of invalid bill length - SetErrorFlag(ERROR_VALIDATOR_LNG); - break; - default: - break; - } - break; - case ST_ST_FULL: //!< DROP CASSETTE IS FULL state - SetErrorFlag(ERROR_STACKER_FULL); - break; - case ST_BOX: //!< DROP CASSETTE REMOVED state - //SetErrorFlag(ERROR_STACKER_REMOVED); - if (incas == 0) - { - PostUserEvent(EVENT_INCASSATION); - ClrValidatorErrors(); - incas = 1; - } - break; - case ST_BV_JAMMED: //!< JAM IN VALIDATOR state - SetErrorFlag(ERROR_BV_JAMMED); - break; - case ST_ST_JAMMED: //!< JAM IN STACKER state - SetErrorFlag(ERROR_ST_JAMMED); - break; - case ST_CHEATED: //!< CHEATED event - SetErrorFlag(ERROR_CHEATED); - break; - case ST_FAILURE: - switch (polldata.Z2){ - case FLR_STACKER: //!< Stacking mechanism failure - SetErrorFlag(ERROR_FLR_STACKER); - break; - case FLR_TR_SPEED: //!< Invalid speed of transport mechanism - SetErrorFlag(ERROR_TR_SPEED); - break; - case FLR_TRANSPORT: //!< Transport mechanism failure - SetErrorFlag(ERROR_FLR_TRANSPORT); - break; - case FLR_ALIGNING: //!< Aligning mechanism failure - SetErrorFlag(ERROR_FLR_ALIGNIN); - break; - case FLR_INIT_CAS: //!< Initial cassette status failure - SetErrorFlag(ERROR_FLR_INIT_CAS); - break; - case FLR_OPT: //!< Optical channel failure - SetErrorFlag(ERROR_FLR_OPT); - break; - case FLR_MAG: //!< Inductive channel failure - SetErrorFlag(ERROR_FLR_MAG); - break; - case FLR_CAP: //!< Capacity sensor failure - SetErrorFlag(ERROR_FLR_CAP); - break; - } - // надо переподключиться к модему, а то так и будет висеть - SetErrorFlag(ERROR_VALIDATOR_CONN); - VConnStat = VCONN_STATUS_NOCONN; - break; - // Failure codes - case FLR_STACKER: - case FLR_TR_SPEED: - case FLR_TRANSPORT: - case FLR_ALIGNING: - case FLR_INIT_CAS: - case FLR_OPT: - case FLR_MAG: - case FLR_CAP: - SetErrorFlag(ERROR_VALIDATOR_FAILURE); - break; - // Credit events - case ST_PACKED: - // банкнота упакована - // запретим прием - if (!CC_CmdBillType(0x000000, 0x000000, ADDR_FL)){SetErrorFlag(ERROR_VALIDATOR_CONN);} - // запостим событие пользовательскому серверу - if (polldata.Z2 < V_BILLS_NUMBER) - { - VBillCount += VBillTable[polldata.Z2].Denomination; - // сохраняем индекс купюры - VLastBillIndex = polldata.Z2; - } - else - { - VBillCount = 0; - // неправильный индекс - VLastBillIndex = V_BILLS_NUMBER; - } - PostUserEvent(EVENT_BILL_STACKED); - ClrValidatorErrors(); - break; - case ESCROW: - if (polldata.Z2 < V_BILLS_NUMBER) - { - //VBillCount += VBillTable[polldata.Z2].Denomination; - // сохраняем индекс купюры - //VLastBillIndex = polldata.Z2; - } - else - { - VBillCount = 0; - // неправильный индекс - VLastBillIndex = V_BILLS_NUMBER; - } - PostUserEvent(EVENT_BILL_ESCROW); - ClrValidatorErrors(); - break; - case RETURNED: - ClrValidatorErrors(); - break; - default: - ClrValidatorErrors(); - break; - }// switch (polldata.Z1) - ClrErrorFlag(ERROR_VALIDATOR_CONN); - VConnStat = VCONN_STATUS_CONN; - } - else - { // ошибка - SetErrorFlag(ERROR_VALIDATOR_CONN); - VConnStat = VCONN_STATUS_NOCONN; - } - - } - -} - - -int ValidatorConnect(void) -{ - int i; - OSTimeDly(200); - - for (i = 0; i < 24; i++) - { - BillNominals[i] = 0; - } - - CC_BusReset(); - - // сбросим валидатор - if (!CC_CmdReset(ADDR_FL)) return -1; - - // прочитаем таблицу номиналов валют - if (!CC_CmdGetBillTable(ADDR_FL, VBillTable)) return -2; - - for (i = 0; i < 24; i++) - { - BillNominals[i] = (CPU_INT32U)VBillTable[i].Denomination; - } - - // разрешим прием - if (!CC_CmdBillType(0xffffff, 0xffffffff, ADDR_FL)) return -3; - - VConnStat = VCONN_STATUS_CONN; - - return 0; -} - - -int IsValidatorConnected(void) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - OS_ENTER_CRITICAL(); - int retval; - if (VConnStat == VCONN_STATUS_CONN) retval=1; - else retval=0; - OS_EXIT_CRITICAL(); - return retval; -} - - -// запуск залачи валидатора -void StartUpValidator(void) -{ - Uart1_Init(CC_VALIDATOR_SPEED); - - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - - OS_ENTER_CRITICAL(); - - // BUS RESET init - PINSEL4_bit.P2_4 = 0; - PINMODE4_bit.P2_4 = 0; - FIO2DIR_bit.P2_4 = 1; - FIO2MASK_bit.P2_4 = 0; - FIO2CLR_bit.P2_4 = 1; - - OS_EXIT_CRITICAL(); - - if (!VLock) - { - VLock = OSSemCreate(1); - OSTaskCreate(ValidatorTask, (void *)0, (OS_STK *)&ValidatorTaskStk[VALIDATOR_TASK_STK_SIZE-1], VALIDATOR_TASK_PRIO); - } -} - - -void CC_BusReset(void) -{ - VPend(); - FIO2CLR_bit.P2_4 = 1; - OSTimeDly(CC_BUS_RESET_TIME_OUT); - FIO2SET_bit.P2_4 = 1; - VPost(); -} - -// занять валидатор -void VPend(void) -{ - CPU_INT08U err; - do{ - OSSemPend(VLock, 1, &err); - if (!err) break; - OSTimeDly(1); - }while (err); -} - -// освободить валидатор -void VPost(void) -{ - OSSemPost(VLock); -} - -// прочитать счетчик денег от купюрника и сбросить -CPU_INT32U GetResetBillCount(CPU_INT32U *bill_index) -{ - #if OS_CRITICAL_METHOD == 3 - OS_CPU_SR cpu_sr = 0; - #endif - OS_ENTER_CRITICAL(); - CPU_INT32U count = VBillCount; - VBillCount = 0; - *bill_index = VLastBillIndex; - OS_EXIT_CRITICAL(); - return count; -} - diff --git a/PROJECT/services/validator.h b/PROJECT/services/validator.h deleted file mode 100644 index 8a82785..0000000 --- a/PROJECT/services/validator.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _VALIDATOR_H_ -#define _VALIDATOR_H_ - -#define CC_VALIDATOR_SPEED 9600 -#define CC_POLL_TIME_OUT 150 -#define CC_BUS_RESET_TIME_OUT 100 - -#define VCONN_STATUS_CONN 0 -#define VCONN_STATUS_NOCONN 1 - -// максимальное число поддерживаемых банкнот -#define V_BILLS_NUMBER 24 - -extern void StartUpValidator(void); -extern int IsValidatorConnected(void); -extern void VPend(void); -extern void VPost(void); -extern CPU_INT32U GetResetBillCount(CPU_INT32U *bill_index); - -#endif //#define _VALIDATOR_H_ diff --git a/settings/sk-mlpc2368.dni b/settings/sk-mlpc2368.dni index c8fe701..362b3d7 100644 --- a/settings/sk-mlpc2368.dni +++ b/settings/sk-mlpc2368.dni @@ -14,7 +14,7 @@ Count=0 Enabled=0 ShowSource=1 [DebugChecksum] -Checksum=-1481857352 +Checksum=-390368809 [Exceptions] StopOnUncaught=_ 0 StopOnThrow=_ 0 diff --git a/settings/sk-mlpc2368.wsdt b/settings/sk-mlpc2368.wsdt index 69fbe7c..a9839db 100644 --- a/settings/sk-mlpc2368.wsdt +++ b/settings/sk-mlpc2368.wsdt @@ -42,7 +42,7 @@ Workspace - sk-mlpc2368sk-mlpc2368/PROJECTsk-mlpc2368/PROJECT/datask-mlpc2368/PROJECT/driverssk-mlpc2368/PROJECT/drivers/keyboardsk-mlpc2368/PROJECT/libssk-mlpc2368/PROJECT/menusk-mlpc2368/PROJECT/services + sk-mlpc2368sk-mlpc2368/PROJECTsk-mlpc2368/PROJECT/appsk-mlpc2368/PROJECT/datask-mlpc2368/PROJECT/driverssk-mlpc2368/PROJECT/libssk-mlpc2368/PROJECT/menusk-mlpc2368/PROJECT/services @@ -52,14 +52,14 @@ - TextEditor$WS_DIR$\PROJECT\services\fr.c06600TextEditor$WS_DIR$\PROJECT\services\coin.c00277287TextEditor$WS_DIR$\PROJECT\data\datadesc.c06653105631056TextEditor$WS_DIR$\PROJECT\data\data.h07318871887TextEditor$WS_DIR$\PROJECT\app\app_serv.h00107107TextEditor$WS_DIR$\..\..\8\positive_6_24\OS\app\app.c02911311131TextEditor$WS_DIR$\PROJECT\app\app_serv.c08824202420TextEditor$WS_DIR$\PROJECT\menu\menudesc.c0100240365403657TextEditor$WS_DIR$\OS\app\app.c02911311131TextEditor$WS_DIR$\OS\uc\cpu\cpu.h08747014701TextEditor$WS_DIR$\PROJECT\menu\menu.h04814241424TextEditor$WS_DIR$\PROJECT\data\datadesc.h021079187918TextEditor$WS_DIR$\PROJECT\data\fram_map.h00212212TextEditor$WS_DIR$\PROJECT\app\control.h0049490100000010000001 + TextEditor$WS_DIR$\PROJECT\menu\menu.h04814241424TextEditor$WS_DIR$\PROJECT\data\fram_map.h036923923TextEditor$WS_DIR$\PROJECT\app\control.h004949TextEditor$WS_DIR$\PROJECT\app\journal.h05433573357TextEditor$WS_DIR$\PROJECT\app\journal.c03781020510205TextEditor$WS_DIR$\PROJECT\services\coin.c029839849TextEditor$WS_DIR$\PROJECT\data\datadesc.c07813492734927TextEditor$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h00470470TextEditor$WS_DIR$\PROJECT\menu\menu.c020660496049TextEditor$WS_DIR$\OS\app\app.c02911311131TextEditor$WS_DIR$\PROJECT\data\data.h09223452345TextEditor$WS_DIR$\OS\app\app_cfg.h005858TextEditor$WS_DIR$\PROJECT\data\data.c032891469146TextEditor$WS_DIR$\PROJECT\data\datadesc.h019672157215TextEditor$WS_DIR$\PROJECT\menu\menudesc.c09933982839828TextEditor$WS_DIR$\..\..\8\positive_6_24\OS\app\app.c02614311431TextEditor$WS_DIR$\PROJECT\app\app_serv.c02929943994316TextEditor$WS_DIR$\PROJECT\services\fr.c025981928192TextEditor$WS_DIR$\PROJECT\services\console.c010933323332TextEditor$WS_DIR$\OS\uc\cpu\cpu.h08545784589TextEditor$WS_DIR$\OS\uc\lib\lib_def.h0111597359810100000010000001 - iaridepm.enu1-2-2719266-2-2200200156250210305209375758149-2-21871282-2-212841891003125198738156250210305 + iaridepm.enu1-2-2566266-2-2200200156250210305209375597266-2-23401282-2-212843421003125359621156250210305 diff --git a/sk-mlpc2368.dep b/sk-mlpc2368.dep index fb5b477..aa2b362 100644 --- a/sk-mlpc2368.dep +++ b/sk-mlpc2368.dep @@ -2,14 +2,13 @@ 2 - 3627459064 + 269454336 Flash Central $PROJ_DIR$\PROJECT\drivers\uart.h $PROJ_DIR$\PROJECT\services\coin.h $PROJ_DIR$\PROJECT\services\console.h - $PROJ_DIR$\PROJECT\drivers\modem\modem.h $PROJ_DIR$\PROJECT\libs\crc16.h $PROJ_DIR$\PROJECT\drivers\fiscal\uart0.c $PROJ_DIR$\PROJECT\drivers\fiscal\uart0.h @@ -17,9 +16,7 @@ $PROJ_DIR$\PROJECT\menu\menu.h $PROJ_DIR$\PROJECT\drivers\fram\fram.h $PROJ_DIR$\PROJECT\drivers\fram\spi.c - $PROJ_DIR$\PROJECT\drivers\modem\uart2.h $PROJ_DIR$\PROJECT\drivers\fram\spi.h - $PROJ_DIR$\PROJECT\drivers\modem\uart2.c $PROJ_DIR$\PROJECT\drivers\uart.c $PROJ_DIR$\PROJECT\libs\crc16.c $PROJ_DIR$\PROJECT\libs\lpc23xx-iap.c @@ -28,7 +25,6 @@ $PROJ_DIR$\PROJECT\menu\menu.c $PROJ_DIR$\PROJECT\drivers\lcd\lcd.c $PROJ_DIR$\PROJECT\menu\menudesc.c - $PROJ_DIR$\PROJECT\drivers\modem\modem.c $PROJ_DIR$\PROJECT\services\console.c $PROJ_DIR$\PROJECT\drivers\fiscal\fiscal.h $PROJ_DIR$\PROJECT\drivers\keyboard\keyboard.h @@ -69,7 +65,6 @@ $PROJ_DIR$\Flash Central\Obj\net_arp.pbi $TOOLKIT_DIR$\inc\c\ystdio.h $TOOLKIT_DIR$\inc\c\xencoding_limits.h - $TOOLKIT_DIR$\inc\c\math.h $TOOLKIT_DIR$\inc\c\intrinsics.h $TOOLKIT_DIR$\inc\c\ycheck.h $TOOLKIT_DIR$\inc\c\io_macros.h @@ -79,7 +74,6 @@ $TOOLKIT_DIR$\inc\c\stddef.h $TOOLKIT_DIR$\inc\c\xlocale_c.h $TOOLKIT_DIR$\lib\dl4t_tln.a - $TOOLKIT_DIR$\inc\c\xtgmath.h $PROJ_DIR$\Flash Central\Obj\crc16.o $PROJ_DIR$\Flash Central\Obj\net_util_a.o $PROJ_DIR$\Flash Central\Obj\time.o @@ -87,7 +81,6 @@ $PROJ_DIR$\Flash Central\Obj\fr.o $PROJ_DIR$\Flash Central\Obj\lib_mem.pbi $PROJ_DIR$\Flash Central\Obj\app.pbi - $PROJ_DIR$\Flash Central\Obj\modem.o $PROJ_DIR$\Flash Central\Obj\os_dcc.pbi $PROJ_DIR$\Flash Central\Obj\os_flag.pbi $PROJ_DIR$\Flash Central\Obj\console.o @@ -96,7 +89,6 @@ $PROJ_DIR$\Flash Central\Obj\bsp.pbi $PROJ_DIR$\Flash Central\Obj\menudesc.o $PROJ_DIR$\Flash Central\Obj\os_cpu_a.o - $PROJ_DIR$\Flash Central\Obj\validator.o $PROJ_DIR$\Flash Central\Obj\os_mem.pbi $PROJ_DIR$\Flash Central\Obj\coin.o $PROJ_DIR$\Flash Central\Obj\cstartup.o @@ -104,7 +96,6 @@ $PROJ_DIR$\Flash Central\Obj\datadesc.pbi $PROJ_DIR$\Flash Central\Obj\cpu_a.o $PROJ_DIR$\Flash Central\Obj\os_mbox.pbi - $PROJ_DIR$\Flash Central\Obj\uart2.o $PROJ_DIR$\Flash Central\Obj\mode.o $PROJ_DIR$\Flash Central\Obj\os_cpu_c.pbi $PROJ_DIR$\Flash Central\Obj\os_core.pbi @@ -112,7 +103,6 @@ $PROJ_DIR$\Flash Central\Obj\net_isr.o $PROJ_DIR$\Flash Central\Obj\app.o $PROJ_DIR$\Flash Central\Obj\uart0.o - $PROJ_DIR$\Flash Central\Obj\CCRSProtocol.o $PROJ_DIR$\Flash Central\Obj\os_flag.o $PROJ_DIR$\Flash Central\Obj\host_app.o $PROJ_DIR$\Flash Central\Obj\lib_str.o @@ -125,7 +115,6 @@ $PROJ_DIR$\Flash Central\Obj\os_mem.o $PROJ_DIR$\Flash Central\Obj\os_dbg.pbi $PROJ_DIR$\Flash Central\Obj\keyboard.o - $PROJ_DIR$\Flash Central\Obj\uart1.o $PROJ_DIR$\Flash Central\Obj\journal.o $PROJ_DIR$\Flash Central\Obj\fiscal.o $PROJ_DIR$\Flash Central\Obj\lcd.o @@ -133,7 +122,6 @@ $PROJ_DIR$\Flash Central\List\sk_mlpc2368.map $PROJ_DIR$\Flash Central\Obj\lib_mem.o $PROJ_DIR$\Flash Central\Obj\os_dcc.o - $PROJ_DIR$\Flash Central\Obj\modem_task.o $PROJ_DIR$\Flash Central\Obj\datadesc.o $PROJ_DIR$\Flash Central\Obj\bsp.o $PROJ_DIR$\Flash Central\Obj\os_dbg.o @@ -142,7 +130,6 @@ $PROJ_DIR$\PROJECT\drivers\fiscal\fiscal.c $PROJ_DIR$\PROJECT\app\console_cmd.h $PROJ_DIR$\PROJECT\app\control.h - $PROJ_DIR$\PROJECT\app\modem_task.h $PROJ_DIR$\OS\uc\tcpip\Source\net_udp.h $PROJ_DIR$\PROJECT\data\datadesc.c $PROJ_DIR$\OS\uc\tcpip\Source\net_udp.c @@ -150,29 +137,21 @@ $PROJ_DIR$\PROJECT\app\control.c $PROJ_DIR$\PROJECT\data\datadesc.h $PROJ_DIR$\PROJECT\app\journal.h - $PROJ_DIR$\PROJECT\app\modem_task.c $PROJ_DIR$\PROJECT\app\host_app.c $PROJ_DIR$\PROJECT\app\journal.c $PROJ_DIR$\PROJECT\data\data.h $PROJ_DIR$\PROJECT\data\data.c - $PROJ_DIR$\PROJECT\drivers\ccnet\CCRSProtocol.c - $PROJ_DIR$\PROJECT\drivers\ccnet\CCRSProtocol.h $PROJ_DIR$\PROJECT\app\app_serv.h $PROJ_DIR$\OS\uc\tcpip\Source\net_util.h $PROJ_DIR$\PROJECT\app\console_cmd.c $PROJ_DIR$\OS\uc\tcpip\Source\net_util.c $PROJ_DIR$\PROJECT\app\app_serv.c $PROJ_DIR$\PROJECT\data\fram_map.h - $PROJ_DIR$\PROJECT\drivers\ccnet\uart1.c - $PROJ_DIR$\PROJECT\drivers\ccnet\uart1.h - $PROJ_DIR$\PROJECT\drivers\ccnet\VMCConst.h $TOOLKIT_DIR$\inc\c\ctype.h $TOOLKIT_DIR$\inc\c\DLib_Defaults.h $TOOLKIT_DIR$\inc\c\wchar.h - $TOOLKIT_DIR$\inc\c\ymath.h $PROJ_DIR$\PROJECT\services\mode.c $PROJ_DIR$\PROJECT\services\mode.h - $PROJ_DIR$\PROJECT\services\validator.c $TOOLKIT_DIR$\lib\shs_l.a $PROJ_DIR$\..\..\8\positive_6_24\OS\app\app.c $PROJ_DIR$\PROJECT\services\fr.h @@ -180,7 +159,6 @@ $TOOLKIT_DIR$\inc\c\xmtx.h $PROJ_DIR$\Flash Central\Obj\control.o $PROJ_DIR$\PROJECT\services\time.h - $PROJ_DIR$\PROJECT\services\validator.h $PROJ_DIR$\PROJECT\version.h $TOOLKIT_DIR$\inc\c\string.h $TOOLKIT_DIR$\inc\c\stdarg.h @@ -230,29 +208,23 @@ $PROJ_DIR$\Flash Central\Obj\time.pbi $PROJ_DIR$\Flash Central\Obj\uart0.pbi $PROJ_DIR$\Flash Central\Obj\journal.pbi - $PROJ_DIR$\Flash Central\Obj\modem.pbi $PROJ_DIR$\Flash Central\Obj\lcd.pbi $PROJ_DIR$\Flash Central\Obj\keyboard.pbi $PROJ_DIR$\Flash Central\Obj\console.pbi $PROJ_DIR$\Flash Central\Obj\control.pbi $PROJ_DIR$\Flash Central\Obj\fr.pbi - $PROJ_DIR$\Flash Central\Obj\modem_task.pbi $PROJ_DIR$\Flash Central\Obj\fram.pbi $PROJ_DIR$\Flash Central\Obj\console_cmd.pbi - $PROJ_DIR$\Flash Central\Obj\uart2.pbi $PROJ_DIR$\Flash Central\Obj\crc16.pbi $PROJ_DIR$\Flash Central\Obj\coin.pbi $PROJ_DIR$\Flash Central\Obj\fiscal.pbi - $PROJ_DIR$\Flash Central\Obj\CCRSProtocol.pbi $PROJ_DIR$\Flash Central\Obj\host_app.pbi $PROJ_DIR$\Flash Central\Obj\lpc23xx-iap.pbi $PROJ_DIR$\Flash Central\Obj\menudesc.pbi $PROJ_DIR$\Flash Central\Obj\mode.pbi - $PROJ_DIR$\Flash Central\Obj\uart1.pbi $PROJ_DIR$\Flash Central\Obj\sk-mlpc2368.pbd $PROJ_DIR$\Flash Central\Obj\data.pbi $PROJ_DIR$\Flash Central\Obj\menu.pbi - $PROJ_DIR$\Flash Central\Obj\validator.pbi $PROJ_DIR$\OS\app\includes.h $PROJ_DIR$\OS\app\os_cfg.h $PROJ_DIR$\OS\app\app_cfg.h @@ -282,12 +254,10 @@ $PROJ_DIR$\OS\uc\os_ii\source\os_q.c $PROJ_DIR$\OS\uc\os_ii\port\os_cpu_a.asm $PROJ_DIR$\OS\uc\os_ii\source\os_flag.c - $PROJ_DIR$\OS\uc\tcpip\Doc\TCP-IP-Manual.pdf $PROJ_DIR$\OS\uc\os_ii\port\os_cpu_c.c $PROJ_DIR$\OS\uc\lib\lib_def.h $PROJ_DIR$\OS\uc\os_ii\source\os_mbox.c $PROJ_DIR$\OS\uc\os_ii\port\os_dbg.c - $PROJ_DIR$\OS\bsp\LPC2368_Flash.mac $PROJ_DIR$\OS\uc\cpu\cpu_def.h $PROJ_DIR$\OS\bsp\net_isr.c $PROJ_DIR$\OS\bsp\iolpc2368.h @@ -303,7 +273,6 @@ $PROJ_DIR$\OS\uc\tcpip\Source\net_ascii.c $PROJ_DIR$\OS\uc\tcpip\Source\net_ascii.h $PROJ_DIR$\OS\uc\tcpip\IF\net_if_pkt.c - $PROJ_DIR$\OS\uc\tcpip\NIC\ETHER\PHY\DP83848\net_phy.h $PROJ_DIR$\OS\uc\tcpip\NIC\ETHER\PHY\KS8721BL\net_phy.c $PROJ_DIR$\OS\uc\tcpip\NIC\ETHER\PHY\KS8721BL\net_phy.h $PROJ_DIR$\OS\uc\tcpip\Source\net_bsd.c @@ -313,7 +282,6 @@ $PROJ_DIR$\OS\uc\tcpip\OS\net_os.c $PROJ_DIR$\OS\uc\tcpip\NIC\ETHER\PHY\net_phy_def.h $PROJ_DIR$\OS\uc\tcpip\Ports\ARM\IAR\net_util_a.asm - $PROJ_DIR$\OS\uc\tcpip\NIC\ETHER\PHY\DP83848\net_phy.c $PROJ_DIR$\OS\uc\tcpip\Source\net.h $PROJ_DIR$\OS\uc\tcpip\Source\net_stat.h $PROJ_DIR$\OS\uc\tcpip\Source\net_tcp.h @@ -345,21 +313,21 @@ ICCARM - 105 + 96 BICOMP - 222 + 200 ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 6 + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 5 BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 6 + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 5 @@ -368,7 +336,112 @@ ICCARM - 115 + 105 + + + BICOMP + 196 + + + + + ICCARM + 254 61 244 221 220 232 42 60 46 142 157 31 58 163 50 242 252 10 + + + BICOMP + 254 61 244 221 220 232 42 60 46 142 31 58 163 50 242 252 10 + + + + + $PROJ_DIR$\PROJECT\libs\crc16.c + + + ICCARM + 68 + + + BICOMP + 209 + + + + + $PROJ_DIR$\PROJECT\libs\lpc23xx-iap.c + + + ICCARM + 71 + + + BICOMP + 213 + + + + + ICCARM + 165 60 46 142 157 31 58 163 219 160 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 165 60 46 142 31 58 163 219 160 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\PROJECT\drivers\keyboard\keyboard.c + + + ICCARM + 108 + + + BICOMP + 203 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 21 135 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 21 135 + + + + + $PROJ_DIR$\PROJECT\drivers\fram\fram.c + + + ICCARM + 102 + + + BICOMP + 207 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 10 8 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 10 8 + + + + + $PROJ_DIR$\PROJECT\menu\menu.c + + + ICCARM + 93 BICOMP @@ -378,139 +451,11 @@ ICCARM - 284 66 272 249 248 260 46 65 50 161 179 35 62 185 54 270 282 12 + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 7 23 130 123 20 133 21 6 145 135 152 BICOMP - 284 66 272 249 248 260 46 65 50 161 35 62 185 54 270 282 12 - - - - - $PROJ_DIR$\PROJECT\drivers\modem\uart2.c - - - ICCARM - 98 - - - BICOMP - 233 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 11 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 11 - - - - - $PROJ_DIR$\PROJECT\libs\crc16.c - - - ICCARM - 74 - - - BICOMP - 234 - - - - - $PROJ_DIR$\PROJECT\libs\lpc23xx-iap.c - - - ICCARM - 77 - - - BICOMP - 239 - - - - - ICCARM - 187 65 50 161 179 35 62 185 247 182 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 187 65 50 161 35 62 185 247 182 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\PROJECT\drivers\keyboard\keyboard.c - - - ICCARM - 118 - - - BICOMP - 226 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 25 151 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 25 151 - - - - - $PROJ_DIR$\PROJECT\drivers\fram\fram.c - - - ICCARM - 112 - - - BICOMP - 231 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 12 9 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 12 9 - - - - - $PROJ_DIR$\PROJECT\menu\menu.c - - - ICCARM - 102 - - - BICOMP - 245 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 8 27 143 135 24 147 25 7 165 151 173 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 8 27 143 135 24 147 25 7 165 151 173 + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 7 23 130 123 20 133 21 6 145 135 152 @@ -519,45 +464,26 @@ ICCARM - 122 + 111 BICOMP - 225 + 202 ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 64 7 + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 59 6 BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 64 7 + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 59 6 $PROJ_DIR$\PROJECT\menu\menudesc.c - - - ICCARM - 88 - - - BICOMP - 240 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 151 8 27 143 135 24 147 142 173 165 175 - - - - - $PROJ_DIR$\PROJECT\drivers\modem\modem.c ICCARM @@ -565,17 +491,17 @@ BICOMP - 224 + 214 ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 3 136 151 147 142 135 11 + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 135 7 23 130 123 20 133 129 152 145 153 BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 3 136 151 147 142 135 11 + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 135 7 23 130 123 20 133 129 152 145 153 @@ -584,798 +510,7 @@ ICCARM - 84 - - - BICOMP - 227 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 2 134 187 9 156 142 147 135 143 24 151 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 2 134 187 9 156 142 147 135 143 24 151 - - - - - $PROJ_DIR$\PROJECT\services\coin.c - - - ICCARM - 92 - - - BICOMP - 235 - - - - - ICCARM - 284 66 272 249 248 260 270 282 151 1 147 142 135 3 46 65 50 161 179 35 62 185 54 - - - BICOMP - 284 66 272 249 248 260 270 282 151 1 147 142 135 3 46 65 50 161 35 62 185 54 - - - - - $PROJ_DIR$\PROJECT\drivers\fiscal\fiscal.c - - - ICCARM - 121 - - - BICOMP - 236 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 6 24 169 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 6 24 169 - - - - - $PROJ_DIR$\PROJECT\data\datadesc.c - - - ICCARM - 128 - - - BICOMP - 95 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 147 142 135 8 27 143 24 9 156 173 4 136 151 3 1 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 147 142 135 8 27 143 24 9 156 173 4 136 151 3 1 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_udp.c - - - ICCARM - 191 - - - BICOMP - 38 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\PROJECT\app\control.c - - - ICCARM - 172 - - - BICOMP - 228 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 135 147 142 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 135 147 142 - - - - - $PROJ_DIR$\PROJECT\app\modem_task.c - - - ICCARM - 127 - - - BICOMP - 230 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 143 135 24 3 136 151 147 142 173 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 143 135 24 3 136 151 147 142 173 - - - - - $PROJ_DIR$\PROJECT\app\host_app.c - - - ICCARM - 108 - - - BICOMP - 238 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 151 132 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 151 132 - - - - - $PROJ_DIR$\PROJECT\app\journal.c - - - ICCARM - 120 - - - BICOMP - 223 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 143 135 24 9 156 142 147 173 169 4 165 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 143 135 24 9 156 142 147 173 169 4 165 - - - - - $PROJ_DIR$\PROJECT\data\data.c - - - ICCARM - 113 - - - BICOMP - 244 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 147 142 135 9 173 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 147 142 135 9 173 - - - - - $PROJ_DIR$\PROJECT\drivers\ccnet\CCRSProtocol.c - - - ICCARM - 106 - - - BICOMP - 237 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 150 159 174 158 63 163 73 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 150 159 174 158 63 163 73 - - - - - $PROJ_DIR$\PROJECT\app\console_cmd.c - - - ICCARM - 195 - - - BICOMP - 232 - - - - - ICCARM - 134 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 187 9 156 142 147 135 143 24 173 4 151 175 - - - BICOMP - 134 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 187 9 156 142 147 135 143 24 173 4 151 175 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_util.c - - - ICCARM - 203 - - - BICOMP - 32 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\PROJECT\app\app_serv.c - - - ICCARM - 193 - - - BICOMP - 39 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 151 3 174 1 173 24 8 147 165 27 143 135 142 150 169 4 136 132 2 25 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 151 3 174 1 173 24 8 147 165 27 143 135 142 150 169 4 136 132 2 25 - - - - - $PROJ_DIR$\PROJECT\drivers\ccnet\uart1.c - - - ICCARM - 119 - - - BICOMP - 242 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 158 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 158 - - - - - $PROJ_DIR$\PROJECT\services\mode.c - - - ICCARM - 99 - - - BICOMP - 241 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 165 151 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 165 151 - - - - - $PROJ_DIR$\PROJECT\services\validator.c - - - ICCARM - 90 - - - BICOMP - 246 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 174 150 158 151 143 135 24 147 142 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 174 150 158 151 143 135 24 147 142 - - - - - $PROJ_DIR$\PROJECT\services\fr.c - - - ICCARM - 78 - - - BICOMP - 229 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 151 24 169 6 147 142 135 143 173 9 156 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 151 24 169 6 147 142 135 143 173 9 156 - - - - - $PROJ_DIR$\PROJECT\services\time.c - - - ICCARM - 76 - - - BICOMP - 221 - - - - - ICCARM - 284 66 272 249 248 260 270 282 151 173 46 65 50 161 179 35 62 185 54 182 61 176 184 - - - BICOMP - 284 66 272 249 248 260 270 282 151 173 46 65 50 161 35 62 185 54 182 61 176 184 - - - - - [ROOT_NODE] - - - ILINK - 220 124 - - - - - $PROJ_DIR$\Flash Central\Exe\sk_mlpc2368.out - - - OBJCOPY - 183 - - - ILINK - 124 - - - - - ILINK - 285 106 104 193 129 92 84 195 172 96 74 93 113 128 121 78 112 108 120 118 122 125 109 77 102 88 99 81 127 217 201 210 199 110 202 208 213 212 194 206 196 192 209 103 216 219 200 211 190 197 215 191 203 75 123 89 131 130 126 107 114 116 111 214 198 188 207 189 115 76 105 119 98 90 167 180 68 72 - - - - - $PROJ_DIR$\Flash Central\Obj\sk-mlpc2368.pbd - - - BILINK - 237 80 39 87 235 227 232 228 234 244 95 236 229 231 238 223 226 225 79 94 239 245 240 241 224 230 51 60 49 43 86 57 29 45 42 56 205 36 30 59 85 44 48 53 33 47 34 52 38 32 101 100 117 82 83 97 91 31 40 204 58 41 55 218 221 222 242 233 246 - - - - - $PROJ_DIR$\OS\bsp\bsp.c - - - ICCARM - 129 - - - BICOMP - 87 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\bsp\cstartup.s - - - AARM - 93 - - - - - $PROJ_DIR$\OS\app\app.c - - - ICCARM - 104 - - - BICOMP - 80 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 299 12 9 2 156 142 147 135 143 24 7 25 151 26 187 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 299 12 9 2 156 142 147 135 143 24 7 25 151 26 187 - - - - - $PROJ_DIR$\OS\uc\os_ii\source\os_task.c - - - ICCARM - 188 - - - BICOMP - 58 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\os_ii\source\os_time.c - - - ICCARM - 207 - - - BICOMP - 41 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\os_ii\source\os_tmr.c - - - ICCARM - 189 - - - BICOMP - 55 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\tcpip\IF\Ether\net_if.c - - - ICCARM - 196 - - - BICOMP - 36 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\os_ii\source\os_mem.c - - - ICCARM - 116 - - - BICOMP - 91 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\bsp\net_bsp.c - - - ICCARM - 110 - - - BICOMP - 86 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 299 305 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 299 305 - - - - - $PROJ_DIR$\OS\uc\lib\lib_mem.c - - - ICCARM - 125 - - - BICOMP - 79 - - - - - ICCARM - 265 270 282 278 249 - - - BICOMP - 265 270 282 278 249 - - - - - $PROJ_DIR$\OS\uc\cpu\cpu_a.s - - - AARM - 96 - - - - - $PROJ_DIR$\OS\uc\lib\lib_str.c - - - ICCARM - 109 - - - BICOMP - 94 - - - - - ICCARM - 286 270 282 278 249 46 65 50 161 179 35 62 185 54 160 67 186 171 69 71 162 181 37 182 61 - - - BICOMP - 286 270 282 278 249 46 65 50 161 35 62 185 54 160 67 186 171 69 71 162 181 37 182 61 - - - - - $PROJ_DIR$\OS\uc\os_ii\port\os_dcc.c - - - ICCARM - 126 - - - BICOMP - 82 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\os_ii\source\os_core.c - - - ICCARM - 123 - - - BICOMP - 101 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\os_ii\source\os_mutex.c - - - ICCARM - 111 - - - BICOMP - 31 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\os_ii\source\os_sem.c - - - ICCARM - 198 + 77 BICOMP @@ -1385,521 +520,89 @@ ICCARM - 272 249 248 260 + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 2 122 165 8 140 129 133 123 130 20 135 BICOMP - 272 249 248 260 + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 2 122 165 8 140 129 133 123 130 20 135 - $PROJ_DIR$\OS\uc\os_ii\source\os_q.c + $PROJ_DIR$\PROJECT\services\coin.c ICCARM - 214 + 84 BICOMP - 40 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\os_ii\port\os_cpu_a.asm - - - AARM - 89 - - - - - $PROJ_DIR$\OS\uc\os_ii\source\os_flag.c - - - ICCARM - 107 - - - BICOMP - 83 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\os_ii\port\os_cpu_c.c - - - ICCARM - 131 - - - BICOMP - 100 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\os_ii\source\os_mbox.c - - - ICCARM - 114 - - - BICOMP - 97 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\uc\os_ii\port\os_dbg.c - - - ICCARM - 130 - - - BICOMP - 117 - - - - - ICCARM - 272 249 248 260 - - - BICOMP - 272 249 248 260 - - - - - $PROJ_DIR$\OS\bsp\net_isr.c - - - ICCARM - 103 - - - BICOMP - 85 - - - - - ICCARM - 247 182 65 50 161 179 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 247 182 65 50 161 35 62 185 54 61 176 184 160 67 186 171 46 69 71 162 177 70 284 66 272 249 248 260 270 282 278 265 286 181 37 251 308 317 303 254 312 140 313 326 309 311 315 331 152 263 293 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net.c - - - ICCARM - 217 - - - BICOMP - 51 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_arp.c - - - ICCARM - 201 - - - BICOMP - 60 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\NIC\ETHER\LPC2368\net_nic.c - - - ICCARM - 216 - - - BICOMP - 44 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 299 305 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 299 305 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_ascii.c - - - ICCARM 210 - - BICOMP - 49 - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 254 61 244 221 220 232 242 252 135 1 133 129 123 42 60 46 142 157 31 58 163 50 BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 254 61 244 221 220 232 242 252 135 1 133 129 123 42 60 46 142 31 58 163 50 - $PROJ_DIR$\OS\uc\tcpip\IF\net_if_pkt.c + $PROJ_DIR$\PROJECT\drivers\fiscal\fiscal.c ICCARM - 192 + 110 BICOMP - 30 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\NIC\ETHER\PHY\KS8721BL\net_phy.c - - - ICCARM - 200 - - - BICOMP - 53 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 299 305 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 299 305 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_bsd.c - - - ICCARM - 199 - - - BICOMP - 43 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\OS\net_os.c - - - ICCARM - 219 - - - BICOMP - 48 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\Ports\ARM\IAR\net_util_a.asm - - - AARM - 75 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_sock.c - - - ICCARM 211 + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 5 20 148 + BICOMP - 33 + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 5 20 148 + + + + + $PROJ_DIR$\PROJECT\data\datadesc.c + + + ICCARM + 116 + + + BICOMP + 87 ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 133 129 123 7 23 130 20 8 140 152 3 1 BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 133 129 123 7 23 130 20 8 140 152 3 1 - $PROJ_DIR$\OS\uc\tcpip\Source\net_dbg.c + $PROJ_DIR$\OS\uc\tcpip\Source\net_udp.c ICCARM - 212 - - - BICOMP - 42 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_conn.c - - - ICCARM - 208 - - - BICOMP - 29 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_buf.c - - - ICCARM - 202 - - - BICOMP - 57 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_err.c - - - ICCARM - 194 - - - BICOMP - 56 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_icmp.c - - - ICCARM - 206 - - - BICOMP - 205 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_stat.c - - - ICCARM - 190 - - - BICOMP - 47 - - - - - ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 - - - - - $PROJ_DIR$\OS\uc\tcpip\Source\net_tcp.c - - - ICCARM - 197 + 169 BICOMP @@ -1909,43 +612,839 @@ ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 - $PROJ_DIR$\OS\uc\tcpip\Source\net_tmr.c + $PROJ_DIR$\PROJECT\app\control.c ICCARM - 215 + 151 BICOMP - 52 + 205 ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 123 133 129 BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 123 133 129 - $PROJ_DIR$\OS\uc\tcpip\Source\net_ctr.c + $PROJ_DIR$\PROJECT\app\host_app.c ICCARM - 213 + 98 + + + BICOMP + 212 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 135 120 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 135 120 + + + + + $PROJ_DIR$\PROJECT\app\journal.c + + + ICCARM + 109 + + + BICOMP + 201 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 130 123 20 8 140 129 133 152 148 3 145 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 130 123 20 8 140 129 133 152 148 3 145 + + + + + $PROJ_DIR$\PROJECT\data\data.c + + + ICCARM + 103 + + + BICOMP + 217 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 133 129 123 8 152 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 133 129 123 8 152 + + + + + $PROJ_DIR$\PROJECT\app\console_cmd.c + + + ICCARM + 173 + + + BICOMP + 208 + + + + + ICCARM + 122 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 165 8 140 129 133 123 130 20 152 3 135 153 + + + BICOMP + 122 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 165 8 140 129 133 123 130 20 152 3 135 153 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_util.c + + + ICCARM + 181 + + + BICOMP + 28 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\PROJECT\app\app_serv.c + + + BICOMP + 35 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 135 1 152 20 7 133 145 23 130 123 129 148 3 120 2 21 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 135 1 152 20 7 133 145 23 130 123 129 148 3 120 2 21 + + + + + $PROJ_DIR$\PROJECT\services\mode.c + + + ICCARM + 90 + + + BICOMP + 215 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 145 135 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 145 135 + + + + + $PROJ_DIR$\PROJECT\services\fr.c + + + ICCARM + 72 + + + BICOMP + 206 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 135 20 148 5 133 129 123 130 152 8 140 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 135 20 148 5 133 129 123 130 152 8 140 + + + + + $PROJ_DIR$\PROJECT\services\time.c + + + ICCARM + 70 + + + BICOMP + 199 + + + + + ICCARM + 254 61 244 221 220 232 242 252 135 152 42 60 46 142 157 31 58 163 50 160 57 154 162 + + + BICOMP + 254 61 244 221 220 232 242 252 135 152 42 60 46 142 31 58 163 50 160 57 154 162 + + + + + [ROOT_NODE] + + + ILINK + 198 113 + + + + + $PROJ_DIR$\Flash Central\Exe\sk_mlpc2368.out + + + OBJCOPY + 161 + + + ILINK + 113 + + + + + ILINK + 255 95 171 117 84 77 173 151 88 68 85 103 116 110 72 102 98 109 108 111 114 99 71 93 81 90 195 179 188 177 100 180 186 191 190 172 184 174 170 187 94 194 197 178 189 168 175 193 169 181 69 112 82 119 118 115 97 104 106 101 192 176 166 185 167 105 70 96 146 158 63 67 + + + + + $PROJ_DIR$\Flash Central\Obj\sk-mlpc2368.pbd + + + BILINK + 74 35 80 210 204 208 205 209 217 87 211 206 207 212 201 203 202 73 86 213 218 214 215 47 56 45 39 79 53 25 41 38 52 183 32 26 55 78 40 44 49 29 43 30 48 34 28 92 91 107 75 76 89 83 27 36 182 54 37 51 196 199 200 + + + + + $PROJ_DIR$\OS\bsp\bsp.c + + + ICCARM + 117 + + + BICOMP + 80 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\bsp\cstartup.s + + + AARM + 85 + + + + + $PROJ_DIR$\OS\app\app.c + + + ICCARM + 95 + + + BICOMP + 74 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 268 10 8 2 140 129 133 123 130 20 6 21 135 22 165 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 268 10 8 2 140 129 133 123 130 20 6 21 135 22 165 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_task.c + + + ICCARM + 166 + + + BICOMP + 54 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_time.c + + + ICCARM + 185 + + + BICOMP + 37 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_tmr.c + + + ICCARM + 167 + + + BICOMP + 51 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\tcpip\IF\Ether\net_if.c + + + ICCARM + 174 + + + BICOMP + 32 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_mem.c + + + ICCARM + 106 + + + BICOMP + 83 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\bsp\net_bsp.c + + + ICCARM + 100 + + + BICOMP + 79 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 268 274 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 268 274 + + + + + $PROJ_DIR$\OS\uc\lib\lib_mem.c + + + ICCARM + 114 + + + BICOMP + 73 + + + + + ICCARM + 237 242 252 249 221 + + + BICOMP + 237 242 252 249 221 + + + + + $PROJ_DIR$\OS\uc\cpu\cpu_a.s + + + AARM + 88 + + + + + $PROJ_DIR$\OS\uc\lib\lib_str.c + + + ICCARM + 99 + + + BICOMP + 86 + + + + + ICCARM + 256 242 252 249 221 42 60 46 142 157 31 58 163 50 141 62 164 150 64 66 143 159 33 160 57 + + + BICOMP + 256 242 252 249 221 42 60 46 142 31 58 163 50 141 62 164 150 64 66 143 159 33 160 57 + + + + + $PROJ_DIR$\OS\uc\os_ii\port\os_dcc.c + + + ICCARM + 115 + + + BICOMP + 75 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_core.c + + + ICCARM + 112 + + + BICOMP + 92 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_mutex.c + + + ICCARM + 101 + + + BICOMP + 27 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_sem.c + + + ICCARM + 176 + + + BICOMP + 182 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_q.c + + + ICCARM + 192 + + + BICOMP + 36 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\port\os_cpu_a.asm + + + AARM + 82 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_flag.c + + + ICCARM + 97 + + + BICOMP + 76 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\port\os_cpu_c.c + + + ICCARM + 119 + + + BICOMP + 91 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\source\os_mbox.c + + + ICCARM + 104 + + + BICOMP + 89 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\uc\os_ii\port\os_dbg.c + + + ICCARM + 118 + + + BICOMP + 107 + + + + + ICCARM + 244 221 220 232 + + + BICOMP + 244 221 220 232 + + + + + $PROJ_DIR$\OS\bsp\net_isr.c + + + ICCARM + 94 + + + BICOMP + 78 + + + + + ICCARM + 219 160 60 46 142 157 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 219 160 60 46 142 31 58 163 50 57 154 162 141 62 164 150 42 64 66 143 155 65 254 61 244 221 220 232 242 252 249 237 256 159 33 223 276 285 272 226 280 127 281 294 277 279 283 299 136 235 263 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net.c + + + ICCARM + 195 + + + BICOMP + 47 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_arp.c + + + ICCARM + 179 + + + BICOMP + 56 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\NIC\ETHER\LPC2368\net_nic.c + + + ICCARM + 194 + + + BICOMP + 40 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 268 274 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 268 274 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_ascii.c + + + ICCARM + 188 BICOMP @@ -1955,11 +1454,342 @@ ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\IF\net_if_pkt.c + + + ICCARM + 170 + + + BICOMP + 26 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\NIC\ETHER\PHY\KS8721BL\net_phy.c + + + ICCARM + 178 + + + BICOMP + 49 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 268 274 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 268 274 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_bsd.c + + + ICCARM + 177 + + + BICOMP + 39 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\OS\net_os.c + + + ICCARM + 197 + + + BICOMP + 44 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Ports\ARM\IAR\net_util_a.asm + + + AARM + 69 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_sock.c + + + ICCARM + 189 + + + BICOMP + 29 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_dbg.c + + + ICCARM + 190 + + + BICOMP + 38 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_conn.c + + + ICCARM + 186 + + + BICOMP + 25 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_buf.c + + + ICCARM + 180 + + + BICOMP + 53 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_err.c + + + ICCARM + 172 + + + BICOMP + 52 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_icmp.c + + + ICCARM + 184 + + + BICOMP + 183 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_stat.c + + + ICCARM + 168 + + + BICOMP + 43 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_tcp.c + + + ICCARM + 175 + + + BICOMP + 30 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_tmr.c + + + ICCARM + 193 + + + BICOMP + 48 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + + + $PROJ_DIR$\OS\uc\tcpip\Source\net_ctr.c + + + ICCARM + 191 + + + BICOMP + 41 + + + + + ICCARM + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 + + + BICOMP + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 @@ -1968,21 +1798,21 @@ ICCARM - 209 + 187 BICOMP - 59 + 55 ICCARM - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 BICOMP - 308 270 282 278 265 249 317 303 254 312 140 313 326 309 311 315 331 152 263 293 272 248 260 287 289 292 302 330 327 137 310 295 301 332 319 + 276 242 252 249 237 221 285 272 226 280 127 281 294 277 279 283 299 136 235 263 244 220 232 257 259 262 271 298 295 124 278 265 270 300 287 @@ -3612,6 +3442,10 @@ + + [MULTI_TOOL] + ILINK + diff --git a/sk-mlpc2368.ewp b/sk-mlpc2368.ewp index 3bb2455..9179290 100644 --- a/sk-mlpc2368.ewp +++ b/sk-mlpc2368.ewp @@ -1006,7 +1006,7 @@