#include #include "app_serv.h" #include "menu.h" #include "menudesc.h" #include "data.h" #include "datadesc.h" #include "control.h" #include "journal.h" #include "time.h" #include "mode.h" #include "keyboard.h" #include "ftp_app.h" #include "version.h" char FlagForPrintReport=0; /*********************************** СТАРТОВОЕ МЕНЮ-ЗАСТАВКА ***********************************/ #if defined(BOARD_SOLARIUM_WEB) const CPU_INT08U str_StartMenu_0[] = " СОЛЯРИй "; const CPU_INT08U str_StartMenu_1[] = " ВЕРСИЯ "DEVICE_FW_VERSION; #else const CPU_INT08U str_StartMenu_0[] = "-------------------"; const CPU_INT08U str_StartMenu_1[] = " Идет проверка"; const CPU_INT08U str_StartMenu_2[] = " оборудования!"; const CPU_INT08U str_StartMenu_3[] = "-------------------"; #endif const TMenuLine line_StartMenu_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_StartMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_StartMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_StartMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if !defined(BOARD_SOLARIUM_WEB) const TMenuLine line_StartMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_StartMenu_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_StartMenu_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_StartMenu_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLineArray arr_StartMenuArray[] = {&line_StartMenu_0, &line_StartMenu_1, #if !defined(BOARD_SOLARIUM_WEB) &line_StartMenu_2, &line_StartMenu_3, #endif NULL}; const TMenuPanel StartMenuPanel[] = {arr_StartMenuArray, NULL, #if defined(BOARD_SOLARIUM_WEB) 2, #else 4, #endif MENU_PANEL_STATIC}; /*********************************** МЕНЮ ИНКАССАЦИЯ ***********************************/ const CPU_INT08U str_IncasMenu_0[] = " ВНИМАНИЕ "; const CPU_INT08U str_IncasMenu_1[] = " ИНКАССАЦИЯ "; const CPU_INT08U str_IncasMenu_2[] = "-------------------"; const TMenuLine line_IncasMenu_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_IncasMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_IncasMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_IncasMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_IncasMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_IncasMenu_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_IncasMenu_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_UserMenu_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_IncasMenuArray[] = {&line_IncasMenu_0, &line_IncasMenu_1, &line_IncasMenu_2, &line_IncasMenu_3, NULL}; const TMenuPanel IncasMenuPanel[] = {arr_IncasMenuArray, NULL, 4, MENU_PANEL_STATIC}; /*********************************** МЕНЮ "В ЖУРНАЛЕ ЗАПИСЕЙ НЕТ" ***********************************/ #if defined(BOARD_SOLARIUM_WEB) const CPU_INT08U str_JournalEmptyMenu_0[] = " В ЖУРНАЛЕ"; const CPU_INT08U str_JournalEmptyMenu_1[] = " ЗАПИСЕй НЕТ"; #else const CPU_INT08U str_JournalEmptyMenu_0[] = ""; const CPU_INT08U str_JournalEmptyMenu_1[] = " В журнале"; const CPU_INT08U str_JournalEmptyMenu_2[] = " записей нет"; const CPU_INT08U str_JournalEmptyMenu_3[] = ""; #endif const TMenuLine line_JournalEmptyMenu_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_JournalEmptyMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_JournalEmptyMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_JournalEmptyMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if !defined(BOARD_SOLARIUM_WEB) const TMenuLine line_JournalEmptyMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_JournalEmptyMenu_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_JournalEmptyMenu_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_JournalEmptyMenu_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLineArray arr_JournalEmptyMenuArray[] = {&line_JournalEmptyMenu_0, &line_JournalEmptyMenu_1, #if !defined(BOARD_SOLARIUM_WEB) &line_JournalEmptyMenu_2, &line_JournalEmptyMenu_3, #endif NULL}; const TMenuPanel JournalEmptyMenuPanel[] = {arr_JournalEmptyMenuArray, NULL, #if !defined(BOARD_SOLARIUM_WEB) 4, #else 2, #endif MENU_PANEL_STATIC}; /*********************************** СЕРВИСНОЕ МЕНЮ ***********************************/ #if defined(BOARD_SOLARIUM_WEB) const CPU_INT08U str_ServiceMenu_0[] = "СЕРВИС "DEVICE_FW_VERSION; const CPU_INT08U str_ServiceMenu_1[] = "НАСТРОйКА"; const CPU_INT08U str_ServiceMenu_2[] = "СТАТИСТИКА"; const CPU_INT08U str_ServiceMenu_3[] = "ЖУРНАЛ"; #else const CPU_INT08U str_ServiceMenu_0[] = "СЕРВИС вер.ПО "DEVICE_FW_VERSION; const CPU_INT08U str_ServiceMenu_1[] = "Настройки"; const CPU_INT08U str_ServiceMenu_2[] = "Статистика"; const CPU_INT08U str_ServiceMenu_3[] = "Журналы"; const CPU_INT08U str_ServiceMenu_4[] = "Команды ФР"; #endif const TMenuLine line_ServiceMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ServiceMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ServiceMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_ServiceMenu_1, // указатель на текстовую строку или дескриптор (void*)&SettingsMenuPanel // панель для перехода }; const TMenuLine line_ServiceMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_ServiceMenu_2, // указатель на текстовую строку или дескриптор (void*)&StatisticsMenuPanel // панель для перехода }; const TMenuLine line_ServiceMenu_3 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_ServiceMenu_3, // указатель на текстовую строку или дескриптор (void*)&SelectJournalMenuPanel // панель для перехода }; #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_SOLARIUM_VLAD) const TMenuLine line_ServiceMenu_4 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_ServiceMenu_4, // указатель на текстовую строку или дескриптор (void*)&ReportMenuPanel // панель для перехода }; #endif const TMenuLineArray arr_ServiceMenuArray[] = {&line_ServiceMenu_0, &line_ServiceMenu_1, &line_ServiceMenu_2, &line_ServiceMenu_3, #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_SOLARIUM_VLAD) &line_ServiceMenu_4, #endif NULL}; const TMenuPanel ServiceMenuPanel[] = {arr_ServiceMenuArray, NULL, #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_SOLARIUM_VLAD) 5, #else 4, #endif MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СТАТИСТИКА ***********************************/ #if defined(BOARD_CENTRAL_CARWASH) const CPU_INT08U str_StatisticsMenu_0[] = " СТАТИСТИКА"; #else const CPU_INT08U str_StatisticsMenu_0[] = " СТАТИСТИКА"; #endif const CPU_INT08U str_StatisticsMenu_1[] = "По постам"; #if defined(BOARD_CENTRAL_CARWASH) const CPU_INT08U str_StatisticsMenu_2[] = "Общая"; const CPU_INT08U str_StatisticsMenu_3[] = "Счетчики купюр"; const CPU_INT08U str_StatisticsMenu_4[] = "Очистка статистики"; #else const CPU_INT08U str_StatisticsMenu_2[] = "ПРОСМОТР"; const CPU_INT08U str_StatisticsMenu_4[] = "ОЧИСТКА"; #endif const TMenuLine line_StatisticsMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_StatisticsMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_StatisticsMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_StatisticsMenu_1, // указатель на текстовую строку или дескриптор (void*)ChanStatMenuPanel // панель для перехода }; const TMenuLine line_StatisticsMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_StatisticsMenu_2, // указатель на текстовую строку или дескриптор (void*)CommStatMenuPanel // панель для перехода }; #if defined(BOARD_CENTRAL_CARWASH) const TMenuLine line_StatisticsMenu_3 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_StatisticsMenu_3, // указатель на текстовую строку или дескриптор (void*)BillCountersPanel // панель для перехода }; #endif const TMenuLine line_StatisticsMenu_4 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_StatisticsMenu_4, // указатель на текстовую строку или дескриптор (void*)ClearStatMenu // панель для перехода }; const TMenuLineArray arr_StatisticsMenuArray[] = {&line_StatisticsMenu_0, #if defined(BOARD_CENTRAL_CARWASH) &line_StatisticsMenu_1, #endif &line_StatisticsMenu_2, #if defined(BOARD_CENTRAL_CARWASH) &line_StatisticsMenu_3, #endif &line_StatisticsMenu_4, NULL}; const TMenuPanel StatisticsMenuPanel[] = {arr_StatisticsMenuArray, NULL, #if defined(BOARD_CENTRAL_CARWASH) 5, #else 3, #endif MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ОЧИСТКА СТАТИСТИКИ ***********************************/ #if !defined(BOARD_SOLARIUM_WEB) const char str_ClearStatMenu_0[] = " ДЛЯ ОЧИСТКИ"; const char str_ClearStatMenu_1[] = "СТАТИСТИКИ ВВЕДИТЕ"; #else const char str_ClearStatMenu_0[] = "ВВЕДИТЕ ПАРОЛЬ"; #endif void OnEnterPanelClearStat(void) { TempPass = 0; KbrdPost(KEY_START); } const TMenuLine line_ClearStatMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ClearStatMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if !defined(BOARD_SOLARIUM_WEB) const TMenuLine line_ClearStatMenu_1 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ClearStatMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLine line_ClearStatMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassTempDesc2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_ClearStatMenuArray[] = {&line_ClearStatMenu_0, #if !defined(BOARD_SOLARIUM_WEB) &line_ClearStatMenu_1, #endif &line_ClearStatMenu_2, NULL}; const TMenuPanel ClearStatMenu[] = {arr_ClearStatMenuArray, OnEnterPanelClearStat, #if !defined(BOARD_SOLARIUM_WEB) 3, #else 2, #endif MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ОЧИСТКА ЖУРНАЛОВ ***********************************/ #if !defined(BOARD_SOLARIUM_WEB) const char str_ClearJournalMenu_0[] = " ДЛЯ ОЧИСТКИ"; const char str_ClearJournalMenu_1[] = " ЖУРНАЛОВ ВВЕДИТЕ"; #else const char str_ClearJournalMenu_0[] = "ВВЕДИТЕ ПАРОЛЬ"; #endif void OnEnterPanelClearJournal(void) { TempPass = 0; KbrdPost(KEY_START); } const TMenuLine line_ClearJournalMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ClearJournalMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if !defined(BOARD_SOLARIUM_WEB) const TMenuLine line_ClearJournalMenu_1 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ClearJournalMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLine line_ClearJournalMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassTempDesc2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_ClearJournalMenuArray[] = {&line_ClearJournalMenu_0, #if !defined(BOARD_SOLARIUM_WEB) &line_ClearJournalMenu_1, #endif &line_ClearJournalMenu_2, NULL}; const TMenuPanel ClearJournalMenuPanel[] = {arr_ClearJournalMenuArray, OnEnterPanelClearStat, #if !defined(BOARD_SOLARIUM_WEB) 3, #else 2, #endif MENU_PANEL_STANDARD}; /*********************************** МЕНЮ КАНАЛЬНАЯ СТАТИСТИКА ***********************************/ const TMenuLine line_ChannelCountersMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&ChannelStIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelCountersMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterChannelRunDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelCountersMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterChannelMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelCountersMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterChannelCardDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; /* const TMenuLine line_ChannelCountersMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterChannelTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; */ const TMenuLineArray arr_ChannelCountersArray[] = {&line_ChannelCountersMenu_0, &line_ChannelCountersMenu_1, &line_ChannelCountersMenu_2, &line_ChannelCountersMenu_3, NULL}; const TMenuPanel ChannelCountersPanel[] = {arr_ChannelCountersArray, NULL, 4, MENU_PANEL_STATIC}; /*********************************** МЕНЮ СЧЕТЧИКИ КУПЮР ***********************************/ const TMenuLine line_BillCountersMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&BillnomIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_BillCountersMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&BillnomDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_BillCountersMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&BillnomCountersDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_BillCountersMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&BillCounterDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; extern CPU_INT32U BillnomViewIndex; void OnEnterBillCountersMenu() { BillnomViewIndex = 0; } const TMenuLineArray arr_BillCountersArray[] = {&line_BillCountersMenu_0, &line_BillCountersMenu_1, &line_BillCountersMenu_2, &line_BillCountersMenu_3, NULL}; const TMenuPanel BillCountersPanel[] = {arr_BillCountersArray, OnEnterBillCountersMenu, 4, MENU_PANEL_STATIC}; /*********************************** МЕНЮ ОБЩАЯ СТАТИСТИКА ***********************************/ const CPU_INT08U str_CommonCountersMenu_0[] = "КОРОТКИЕ СЧЕТЧИКИ"; const TMenuLine line_CommonCountersMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)&str_CommonCountersMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_POST_CARWASH) || defined(BOARD_SOLARIUM_VLAD) const TMenuLine line_CommonCountersMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CommonCountersMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterCardDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #elif defined(BOARD_SOLARIUM_WEB) const TMenuLine line_CommonCountersMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterRunDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CommonCountersMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLineArray arr_CommonCountersArray[] = {&line_CommonCountersMenu_0, &line_CommonCountersMenu_1, &line_CommonCountersMenu_2, NULL}; const TMenuPanel CommonCountersPanel[] = {arr_CommonCountersArray, NULL, 3, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ОБЩАЯ СТАТИСТИКА ДЛИННЫЕ СЧЕТЧИКИ ***********************************/ const CPU_INT08U str_CommonCountersLongMenu_0[] = "ДЛИННЫЕ СЧЕТЧИКИ"; const TMenuLine line_CommonCountersLongMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)&str_CommonCountersLongMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_POST_CARWASH) || defined(BOARD_SOLARIUM_VLAD) const TMenuLine line_CommonCountersLongMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterLongMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CommonCountersLongMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterLongCardDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #elif defined(BOARD_SOLARIUM_WEB) const TMenuLine line_CommonCountersLongMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterLongRunDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CommonCountersLongMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterLongTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLineArray arr_CommonCountersLongArray[] = {&line_CommonCountersLongMenu_0, &line_CommonCountersLongMenu_1, &line_CommonCountersLongMenu_2, NULL}; const TMenuPanel CommonCountersLongPanel[] = {arr_CommonCountersLongArray, NULL, 3, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКИ ***********************************/ const CPU_INT08U str_SettingsMenu_0[] = " НАСТРОйКА"; #if defined(BOARD_SOLARIUM_WEB) const CPU_INT08U str_SettingsMenu_3[] = "СЕТЬ"; const CPU_INT08U str_SettingsMenu_4[] = "ПАРОЛЬ"; const CPU_INT08U str_SettingsMenu_5[] = "ВРЕМЯ"; const CPU_INT08U str_SettingsMenu_6[] = "СБРОС"; const CPU_INT08U str_SettingsMenu_7[] = "УПРАВЛЕНИЕ"; #else #if defined(BOARD_SOLARIUM_VLAD) const CPU_INT08U str_SettingsMenu_1[] = "Солярии"; const CPU_INT08U str_SettingsMenu_7[] = "Скидки"; const CPU_INT08U str_SettingsMenu_10[] = "Абонементы"; const CPU_INT08U str_SettingsMenu_8[] = "Типы кожи"; #else const CPU_INT08U str_SettingsMenu_1[] = "Посты"; #endif const CPU_INT08U str_SettingsMenu_2[] = "Оборудование"; const CPU_INT08U str_SettingsMenu_3[] = "Сеть"; const CPU_INT08U str_SettingsMenu_4[] = "Установка пароля"; const CPU_INT08U str_SettingsMenu_5[] = "Установка времени"; const CPU_INT08U str_SettingsMenu_6[] = "Сброс настроек"; #ifdef CONFIG_FTP_CLIENT_ENABLE const CPU_INT08U str_SettingsMenu_9[] = "FTP"; #endif #endif const TMenuLine line_SettingsMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_SettingsMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_POST_CARWASH) || defined(BOARD_SOLARIUM_VLAD) const TMenuLine line_SettingsMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_1, // указатель на текстовую строку или дескриптор #if defined(BOARD_SOLARIUM_VLAD) (void*)&SolariumMenuPanel // панель для перехода #else (void*)&ChannelMenuPanel // панель для перехода #endif }; const TMenuLine line_SettingsMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_2, // указатель на текстовую строку или дескриптор (void*)&DeviceMenuPanel // панель для перехода }; #endif #if defined(BOARD_SOLARIUM_WEB) const TMenuLine line_SettingsMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_7, // указатель на текстовую строку или дескриптор (void*)&SolariumSettingsPanel // панель для перехода }; #endif #if defined(BOARD_SOLARIUM_VLAD) const TMenuLine line_SettingsMenu_9 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_7, // указатель на текстовую строку или дескриптор (void*)&DiscountMainMenuPanel // панель для перехода }; const TMenuLine line_SettingsMenu_10 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_8, // указатель на текстовую строку или дескриптор (void*)&SkinTypeSettingsMenuPanel // панель для перехода }; const TMenuLine line_SettingsMenu_12 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_10, // указатель на текстовую строку или дескриптор (void*)&AbonementMenuPanel // панель для перехода }; #endif const TMenuLine line_SettingsMenu_8 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_3, // указатель на текстовую строку или дескриптор (void*)&NetworkMenuPanel // панель для перехода }; const TMenuLine line_SettingsMenu_3 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_4, // указатель на текстовую строку или дескриптор (void*)&SetPassMenuPanel // панель для перехода }; const TMenuLine line_SettingsMenu_5 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_5, // указатель на текстовую строку или дескриптор (void*)&TimeSetupMenuPanel // панель для перехода }; #if defined(BOARD_SOLARIUM_WEB) const TMenuLine line_SettingsMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&ZummerEnableDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLine line_SettingsMenu_7 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SettingsMenu_6, // указатель на текстовую строку или дескриптор (void*)&ResetSettingsMenuPanel // панель для перехода }; #ifdef CONFIG_FTP_CLIENT_ENABLE const TMenuLine line_SettingsMenu_11 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)&str_SettingsMenu_9, // указатель на текстовую строку или дескриптор (void*)&FtpSettingsMenuPanel // панель для перехода }; #endif const TMenuLineArray arr_SettingsMenuArray[] = {&line_SettingsMenu_0, #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_SOLARIUM_VLAD) &line_SettingsMenu_1, #endif #if defined(BOARD_SOLARIUM_VLAD) &line_SettingsMenu_10, &line_SettingsMenu_12, &line_SettingsMenu_9, #endif #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_SOLARIUM_VLAD) &line_SettingsMenu_2, #endif #if defined(BOARD_SOLARIUM_WEB) &line_SettingsMenu_1, #endif &line_SettingsMenu_8, #ifdef CONFIG_FTP_CLIENT_ENABLE &line_SettingsMenu_11, #endif &line_SettingsMenu_5, &line_SettingsMenu_3, #if defined(BOARD_SOLARIUM_WEB) &line_SettingsMenu_6, #endif #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_SOLARIUM_VLAD) &line_SettingsMenu_7, #endif NULL}; const TMenuPanel SettingsMenuPanel[] = {arr_SettingsMenuArray, NULL, #if defined(BOARD_CENTRAL_CARWASH) 7 #elif defined(BOARD_SOLARIUM_VLAD) 10 #else 6 #endif #ifdef CONFIG_FTP_CLIENT_ENABLE + 1 #endif , MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА КАНАЛОВ ***********************************/ const TMenuLine line_ChannelMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&ChannelIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&EnableChannelDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PostIpStatusDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PostIpAddrDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SelectProtectDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PostImpCostDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PostLenCostDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_7 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PostPauseLenCostDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_8 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PostMinutePriceDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_9 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PostPauseDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_10 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PostTimerDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelMenu_11 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PostSignalDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_ChannelMenuArray[] = {&line_ChannelMenu_0, &line_ChannelMenu_1, &line_ChannelMenu_2, &line_ChannelMenu_4, &line_ChannelMenu_5, &line_ChannelMenu_3, &line_ChannelMenu_6, &line_ChannelMenu_7, &line_ChannelMenu_8, &line_ChannelMenu_9, &line_ChannelMenu_10, &line_ChannelMenu_11, NULL}; char flag_enter_periods=0; void OnEnterChannelSettingsMenu(void) { if (!flag_enter_periods) { ChannelIndex = 0; } else { flag_enter_periods = 0; } #if defined(BOARD_CENTRAL_CARWASH) PostUserEvent(EVENT_REREAD_SIGNAL_LEVEL); #endif } const TMenuPanel ChannelMenuPanel[] = {arr_ChannelMenuArray, OnEnterChannelSettingsMenu, 12, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА СЕТИ ***********************************/ const CPU_INT08U str_NetworkMenu_0[] = " НАСТРОйКА СЕТИ"; const TMenuLine line_NetworkMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_NetworkMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_NetworkMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&IpAddrDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_NetworkMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&NetMaskDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_NetworkMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&GatewayDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_NetworkMenuArray[] = {&line_NetworkMenu_0, &line_NetworkMenu_1, &line_NetworkMenu_2, &line_NetworkMenu_3, NULL}; const TMenuPanel NetworkMenuPanel[] = {arr_NetworkMenuArray, NULL, 4, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА ЦЕНЫ НА БУДНЯХ ***********************************/ void OnEnterPanelPrice(void) { PeriodIndex = ChannelIndex*PRICE_PERIODS_NUM; flag_enter_periods = 1; } const TMenuLine line_PriceMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&PeriodWeekdaysIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_PriceMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&T_Start_WeekdaysDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_PriceMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&T_End_WeekdaysDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_PriceMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PriceWeekdaysDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_PriceMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PriceTimeWeekdaysDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_PriceMenuArray[] = {&line_PriceMenu_0, &line_PriceMenu_1, &line_PriceMenu_2, &line_PriceMenu_3, &line_PriceMenu_4, NULL}; const TMenuPanel PriceWeekdaysMenuPanel[] = {arr_PriceMenuArray, OnEnterPanelPrice, 5, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ВВОД ТЕКУЩЕГО ПАРОЛЯ ***********************************/ const char str_SetPassMenu_0[] = "ВВЕДИТЕ ТЕКУЩИй"; const char str_SetPassMenu_1[] = "Ввод мастер-пароля"; void OnEnterPanelSetPass(void) { TempPass = 0; #if defined(BOARD_SOLARIUM_WEB) KbrdPost(KEY_START); #endif } const TMenuLine line_SetPassMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_SetPassMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SetPassMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassTempDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SetPassMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)&str_SetPassMenu_1, // указатель на текстовую строку или дескриптор (void*)MasterPassMenuPanel // панель для перехода }; const TMenuLine line_SetPassMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&EnableGlobalPassDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_SetPassMenuArray[] = {&line_SetPassMenu_0, &line_SetPassMenu_1, &line_SetPassMenu_2, #if defined(BOARD_SOLARIUM_VLAD) &line_SetPassMenu_3, #endif NULL}; const TMenuPanel SetPassMenuPanel[] = {arr_SetPassMenuArray, OnEnterPanelSetPass, #if defined(BOARD_SOLARIUM_VLAD) 4, #else 3, #endif MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ВВОД МАСТЕР-ПАРОЛЯ ***********************************/ const char str_MasterPassMenu_0[] = "ВВЕДИТЕ МАСТЕР-"; void OnEnterPanelMasterPass(void) { TempPass = 0; } const TMenuLine line_MasterPassMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_MasterPassMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_MasterPassMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&MasterPassTempDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_MasterPassMenuArray[] = {&line_MasterPassMenu_0, &line_MasterPassMenu_1, NULL}; const TMenuPanel MasterPassMenuPanel[] = {arr_MasterPassMenuArray, OnEnterPanelSetPass, 3, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ВВОД ТЕКУЩЕГО ПАРОЛЯ ***********************************/ #if defined(BOARD_CENTRAL_CARWASH) const char str_ResetSetingsMenu_0[] = " ДЛЯ СБРОСА"; const char str_ResetSetingsMenu_1[] = " НАСТРОЕК ВВЕДИТЕ"; #else const char str_ResetSetingsMenu_0[] = "СБРОС НАСТРОЕК"; #endif void OnEnterPanelResetSetings(void) { TempPass = 0; KbrdPost(KEY_START); } const TMenuLine line_ResetSetingsMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ResetSetingsMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if defined(BOARD_CENTRAL_CARWASH) const TMenuLine line_ResetSetingsMenu_1 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ResetSetingsMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLine line_ResetSetingsMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassTempDesc1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_ResetSettingsMenuArray[] = {&line_ResetSetingsMenu_0, #if defined(BOARD_CENTRAL_CARWASH) &line_ResetSetingsMenu_1, #endif &line_ResetSetingsMenu_2, NULL}; const TMenuPanel ResetSettingsMenuPanel[] = {arr_ResetSettingsMenuArray, OnEnterPanelResetSetings, #if defined(BOARD_CENTRAL_CARWASH) 3, #else 2, #endif MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ВВОД НОВОГО ПАРОЛЯ ***********************************/ const char str_SetNewPassMenu_0[] = " ВВЕДИТЕ НОВЫй"; void OnEnterPanelSetNewPass(void) { KbrdPost(KEY_START); } const TMenuLine line_SetNewPassMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_SetNewPassMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SetNewPassMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_SetNewPassMenuArray[] = {&line_SetNewPassMenu_0, &line_SetNewPassMenu_1, NULL}; const TMenuPanel SetNewPassMenuPanel[] = {arr_SetNewPassMenuArray, OnEnterPanelSetNewPass, 2, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА ЦЕНЫ НА ВЫХОДНЫХ ***********************************/ const TMenuLine line_PriceMenuWend_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&PeriodWeekendIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_PriceMenuWend_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&T_Start_WeekendDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_PriceMenuWend_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&T_End_WeekendDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_PriceMenuWend_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PriceWeekendDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_PriceMenuWend_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PriceTimeWeekendDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_PriceMenuArrayWend[] = {&line_PriceMenuWend_0, &line_PriceMenuWend_1, &line_PriceMenuWend_2, &line_PriceMenuWend_3, &line_PriceMenuWend_4, NULL}; const TMenuPanel PriceWeekendMenuPanel[] = {arr_PriceMenuArrayWend, OnEnterPanelPrice, 5, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА ОБОРУДОВАНИЯ ***********************************/ const CPU_INT08U str_DeviceMenu_0[] = " ОБОРУДОВАНИЕ"; const CPU_INT08U str_DeviceMenu_1[] = "ФР"; const CPU_INT08U str_DeviceMenu_2[] = "Монетоприемник"; const CPU_INT08U str_DeviceMenu_3[] = "Модем"; const CPU_INT08U str_DeviceMenu_5[] = "Банк.терминал"; #if defined(CONFIG_MUSIC_ENABLE) const CPU_INT08U str_DeviceMenu_6[] = "Звук"; #endif #if defined(BOARD_SOLARIUM_VLAD) const CPU_INT08U str_DeviceMenu_7[] = "Табло"; const CPU_INT08U str_DeviceMenu_9[] = "Абонемент"; #endif #if defined(CONFIG_RELAY_ENABLE) const CPU_INT08U str_DeviceMenu_8[] = "Реле"; #endif const TMenuLine line_DeviceMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_DeviceMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DeviceMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_DeviceMenu_1, // указатель на текстовую строку или дескриптор (void*)&FrMenuPanel // панель для перехода }; const TMenuLine line_DeviceMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&EnableValidatorDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DeviceMenu_3 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_DeviceMenu_2, // указатель на текстовую строку или дескриптор (void*)&CoinSetupPanel // панель для перехода }; const TMenuLine line_DeviceMenu_4 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_DeviceMenu_3, // указатель на текстовую строку или дескриптор (void*)&ModemSetupPanel // панель для перехода }; const TMenuLine line_DeviceMenu_5 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_DeviceMenu_5, // указатель на текстовую строку или дескриптор (void*)&TermMenuPanel // панель для перехода }; #if defined(CONFIG_MUSIC_ENABLE) const TMenuLine line_DeviceMenu_6 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_DeviceMenu_6, // указатель на текстовую строку или дескриптор (void*)&SoundSettingsPanel // панель для перехода }; #endif #if defined(BOARD_SOLARIUM_VLAD) const TMenuLine line_DeviceMenu_7 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_DeviceMenu_7, // указатель на текстовую строку или дескриптор (void*)&ScoreSettingsPanel // панель для перехода }; const TMenuLine line_DeviceMenu_9 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_DeviceMenu_9, // указатель на текстовую строку или дескриптор (void*)&AbonementSetupPanel // панель для перехода }; #endif #if defined(CONFIG_RELAY_ENABLE) const TMenuLine line_DeviceMenu_8 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_DeviceMenu_8, // указатель на текстовую строку или дескриптор (void*)&RelaySettingsPanel // панель для перехода }; #endif const TMenuLineArray arr_DeviceMenuArray[] = {&line_DeviceMenu_0, &line_DeviceMenu_1, &line_DeviceMenu_2, &line_DeviceMenu_3, #if defined(CONFIG_MODEM_ENABLE) &line_DeviceMenu_4, #endif &line_DeviceMenu_5, #if defined(CONFIG_MUSIC_ENABLE) &line_DeviceMenu_6, #endif #if defined(BOARD_SOLARIUM_VLAD) &line_DeviceMenu_7, &line_DeviceMenu_9, #endif #if defined(CONFIG_RELAY_ENABLE) &line_DeviceMenu_8, #endif NULL}; const TMenuPanel DeviceMenuPanel[] = {arr_DeviceMenuArray, NULL, 5 #if defined(CONFIG_MUSIC_ENABLE) + 1 #endif #if defined(CONFIG_MODEM_ENABLE) + 1 #endif #if defined(BOARD_SOLARIUM_VLAD) + 2 #endif #if defined(CONFIG_RELAY_ENABLE) + 1 #endif , MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА ФР ***********************************/ const CPU_INT08U str_FrMenu_0[] = " НАСТРОйКИ ФР"; const TMenuLine line_FrMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_FrMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FrMenu_1 = { MENU_LINE_SHOW_DESC, 0, (void*)&EnableFiscalDesc, NULL }; const TMenuLine line_FrMenu_2 = { MENU_LINE_SHOW_DESC, // ??? ?????? ???? 0, // ???. ????? (void*)&BillFormatDesc, // ????????? ?? ????????? ?????? ??? ?????????? NULL // ?????? ??? ???????? }; const TMenuLine line_FrMenu_3 = { MENU_LINE_SHOW_DESC, 0, (void*)&CommandV2Desc, NULL }; const TMenuLine line_FrMenu_4 = { MENU_LINE_SHOW_DESC, 0, (void*)&TaxSystemDesc, NULL }; const TMenuLine line_FrMenu_5 = { MENU_LINE_SHOW_DESC, 0, (void*)&TaxFormatDesc, NULL }; const TMenuLine line_FrMenu_6 = { MENU_LINE_SHOW_DESC, 0, (void*)&SubjSellDesc, NULL }; const TMenuLine line_FrMenu_7 = { MENU_LINE_SHOW_DESC, // ??? ?????? ???? 0, // ???. ????? (void*)&ServiceNameDesc, // ????????? ?? ????????? ?????? ??? ?????????? NULL // ?????? ??? ???????? }; const TMenuLine line_FrMenu_8 = { MENU_LINE_SHOW_DESC, 0, (void*)&DisableFiscalErrorsDesc, NULL }; const TMenuLineArray arr_FrMenuArray[] = {&line_FrMenu_0, &line_FrMenu_1, &line_FrMenu_2, &line_FrMenu_3, &line_FrMenu_4, &line_FrMenu_5, &line_FrMenu_6, &line_FrMenu_7, &line_FrMenu_8, NULL}; const TMenuPanel FrMenuPanel[] = {arr_FrMenuArray, NULL, 9, MENU_PANEL_STANDARD}; #if defined(CONFIG_TERMINAL_ENABLE) /*********************************** МЕНЮ НАСТРОЙКА БАНКОВСКОГО ТЕРМИНАЛА ***********************************/ const CPU_INT08U str_TermMenu_0[] = "НАСТР.БАНК.ТЕРМ-ЛА"; const CPU_INT08U str_TermMenu_4[] = "Настройка суммы"; const TMenuLine line_TermMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_TermMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_TermMenu_1 = { MENU_LINE_SHOW_DESC, 0, (void*)&EnableTerminalDesc, NULL }; const TMenuLine line_TermMenu_2 = { MENU_LINE_SHOW_DESC, 0, (void*)&TerminalProtocolDesc, NULL }; const TMenuLine line_TermMenu_3 = { MENU_LINE_SHOW_DESC, 0, (void*)&TerminalIpAddrDesc, NULL }; const TMenuLine line_TermMenu_4 = { MENU_LINE_SHOW_DESC, 0, (void*)&TerminalPortDesc, NULL }; const TMenuLine line_TermMenu_5 = { MENU_LINE_SHOW_DESC, 0, (void*)&MakeSverkaDesc, NULL }; const TMenuLine line_TermMenu_6 = { MENU_LINE_SHOW_DESC, 0, (void*)&MakeSyncDesc, NULL }; #if defined(BOARD_CENTRAL_CARWASH) const TMenuLine line_TermMenu_7 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_TermMenu_4, // указатель на текстовую строку или дескриптор (void*)&KeyMoneySelectPanel // панель для перехода }; #endif const TMenuLineArray arr_TermMenuArray[] = {&line_TermMenu_0, &line_TermMenu_1, &line_TermMenu_2, &line_TermMenu_3, &line_TermMenu_4, &line_TermMenu_5, &line_TermMenu_6, #if defined(BOARD_CENTRAL_CARWASH) &line_TermMenu_7, #endif NULL}; const TMenuPanel TermMenuPanel[] = {arr_TermMenuArray, NULL, #if defined(BOARD_CENTRAL_CARWASH) 8, #else 7, #endif MENU_PANEL_STANDARD}; #endif /*********************************** МЕНЮ СУММ НА КНОПКИ ДЛЯ БАНКОВСКОГО ТЕРМИНАЛА ***********************************/ const TMenuLine line_KeyMoneyMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&KeyMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_KeyMoneyMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SelectedMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_KeyMoneyMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&KeyActionDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_KeyMoneyMenuArray[] = {&line_KeyMoneyMenu_0, &line_KeyMoneyMenu_1, &line_KeyMoneyMenu_2, NULL}; const TMenuPanel KeyMoneySelectPanel[] = {arr_KeyMoneyMenuArray, NULL, 3, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА МОНЕТОПРИЕМНИКА ***********************************/ const CPU_INT08U str_CoinMenu_0[] = "НАСТРОйКИ МОНЕТОПР."; const TMenuLine line_CoinMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_CoinMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CoinMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&EnableCoinDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CoinMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CoinPerPulseDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CoinMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CoinPulseLenDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CoinMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CoinPauseLenDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CoinMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CoinPulseDeltaDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_CoinMenuArray[] = {&line_CoinMenu_0, &line_CoinMenu_1, &line_CoinMenu_2, &line_CoinMenu_3, &line_CoinMenu_4, &line_CoinMenu_5, NULL}; const TMenuPanel CoinSetupPanel[] = {arr_CoinMenuArray, NULL, 6, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА АБОНЕМЕНТА ***********************************/ const CPU_INT08U str_AbonementMenuSet_0[] = "НАСТРОйКИ АБОНЕМЕН."; const TMenuLine line_AbonementMenuSet_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_AbonementMenuSet_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AbonementMenuSet_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&EnableAbonementDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_AbonementMenuArray[] = {&line_AbonementMenuSet_0, &line_AbonementMenuSet_1, NULL}; const TMenuPanel AbonementSetupPanel[] = {arr_AbonementMenuArray, NULL, 2, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА МОДЕМА ***********************************/ const CPU_INT08U str_ModemMenu_0[] = " НАСТРОйКИ МОДЕМА"; const TMenuLine line_ModemMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ModemMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ModemMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&EnableModemDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ModemMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&ModemStatusDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ModemMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&StatSendHourMinDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ModemMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&EnableEmailJournalSendDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ModemMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DeviceIDDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ModemMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SendTestEmailDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_ModemMenuArray[] = {&line_ModemMenu_0, &line_ModemMenu_1, &line_ModemMenu_2, &line_ModemMenu_3, &line_ModemMenu_4, &line_ModemMenu_5, &line_ModemMenu_6, NULL}; const TMenuPanel ModemSetupPanel[] = {arr_ModemMenuArray, NULL, 7, MENU_PANEL_STANDARD}; /*********************************** ЗАСТАВКА ДЛЯ КЛИЕНТА ***********************************/ char str_UserMenu_0[22] = ""; char str_UserMenu_1[22] = ""; char str_UserMenu_2[22] = ""; char str_UserMenu_3[22] = ""; int PrintUserMenuStr(char* str, CPU_INT08U n) { char *strptr; char *instr; // выровняем по центру для красоты switch (n) { case 0: strptr = str_UserMenu_0; break; case 1: strptr = str_UserMenu_1; break; #if !defined(BOARD_SOLARIUM_WEB) case 2: strptr = str_UserMenu_2; break; case 3: strptr = str_UserMenu_3; break; #endif default: return 0; } // найдем начало строки, отличное от пробела instr = str; while (*instr==0x20) instr++; memset(strptr, 0x20, 20); strptr[20] = 0; int len = strlen(instr); #ifdef CONFIG_LCD_1602A if ((len >= 16) || ((8-len/2-1) < 0)) {strcpy(strptr, instr); return strlen(strptr);} strcpy(&strptr[8-len/2-1], instr); return strlen(strptr); #else if ((len >= 20) || ((10-len/2-1) < 0)) {strcpy(strptr, instr); return strlen(strptr);} strcpy(&strptr[10-len/2-1], instr); return strlen(strptr); #endif } int PrintUserMenuStrUnalign(char* str, CPU_INT08U n) { char *strptr; switch (n) { case 0: strptr = str_UserMenu_0; break; case 1: strptr = str_UserMenu_1; break; #if !defined(BOARD_SOLARIUM_WEB) case 2: strptr = str_UserMenu_2; break; case 3: strptr = str_UserMenu_3; break; #endif default: return 0; } #ifdef CONFIG_LCD_1602A strncpy(strptr, str, 16); #else strncpy(strptr, str, 20); #endif return strlen(strptr); } const TMenuLine line_FirstMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_UserMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FirstMenu_1 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_UserMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if !defined(BOARD_SOLARIUM_WEB) const TMenuLine line_FirstMenu_2 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_UserMenu_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FirstMenu_3 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_UserMenu_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLineArray FirstMenuArray[] = {&line_FirstMenu_0, &line_FirstMenu_1, #if !defined(BOARD_SOLARIUM_WEB) &line_FirstMenu_2, &line_FirstMenu_3, #endif NULL}; const TMenuPanel FirstMenuPanel[] = {FirstMenuArray, InitUserMenu, #if !defined(BOARD_SOLARIUM_WEB) 4, #else 2, #endif MENU_PANEL_STATIC}; /*********************************** ПАНЕЛЬ "НЕВЕРНЫЙ ПАРОЛЬ" ***********************************/ #if defined(BOARD_SOLARIUM_WEB) const CPU_INT08U str_ErrPass_0[] = " ОШИБКА"; #else const CPU_INT08U str_ErrPass_0[] = " Ошибка "; #endif const CPU_INT08U str_ErrPass_1[] = " Неверный пароль"; const CPU_INT08U str_ErrPass_2[] = ""; const TMenuLine line_ErrPassMenu_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_ErrPass_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ErrPassMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_ErrPass_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ErrPassMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_ErrPass_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if defined(BOARD_SOLARIUM_WEB) const TMenuLineArray ErrPassMenuArray[] = {&line_ErrPassMenu_0, &line_ErrPassMenu_2, NULL}; const TMenuPanel ErrorPassPanel[] = {ErrPassMenuArray, NULL, 2, MENU_PANEL_STATIC}; #else const TMenuLineArray ErrPassMenuArray[] = {&line_ErrPassMenu_2, &line_ErrPassMenu_0, &line_ErrPassMenu_1, &line_ErrPassMenu_2, NULL}; const TMenuPanel ErrorPassPanel[] = {ErrPassMenuArray, NULL, 3, MENU_PANEL_STATIC}; #endif /*********************************** ПАНЕЛЬ "НАСТРОЙКИ СБРОШЕНЫ" ***********************************/ #if defined(BOARD_SOLARIUM_WEB) const CPU_INT08U str_SettingsIsResetPass_0[] = " НАСТРОйКИ"; const CPU_INT08U str_SettingsIsResetPass_1[] = " СБРОШЕНЫ"; #else const CPU_INT08U str_SettingsIsResetPass_0[] = " Установлены "; const CPU_INT08U str_SettingsIsResetPass_1[] = " заводские "; const CPU_INT08U str_SettingsIsResetPass_2[] = " значения"; const CPU_INT08U str_SettingsIsResetPass_3[] = " параметров"; #endif const TMenuLine line__SettingsIsResetMenu_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_SettingsIsResetPass_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line__SettingsIsResetMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_SettingsIsResetPass_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if !defined(BOARD_SOLARIUM_WEB) const TMenuLine line__SettingsIsResetMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_SettingsIsResetPass_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line__SettingsIsResetMenu_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_SettingsIsResetPass_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #endif const TMenuLineArray SettingsIsResetMenuArray[] = {&line__SettingsIsResetMenu_0, &line__SettingsIsResetMenu_1, #if !defined(BOARD_SOLARIUM_WEB) &line__SettingsIsResetMenu_2, &line__SettingsIsResetMenu_3, #endif NULL}; const TMenuPanel SettingsIsReset[] = {SettingsIsResetMenuArray, NULL, #if !defined(BOARD_SOLARIUM_WEB) 4, #else 2, #endif MENU_PANEL_STATIC}; /*********************************** ПАНЕЛЬ "СТАТИСТИКА ОЧИЩЕНА" ***********************************/ #if defined(BOARD_CENTRAL_CARWASH) const CPU_INT08U str_StatIsResetPass_0[] = " Статистика"; const CPU_INT08U str_StatIsResetPass_1[] = " очищена"; #else const CPU_INT08U str_StatIsResetPass_0[] = " СТАТИСТИКА"; const CPU_INT08U str_StatIsResetPass_1[] = " ОЧИЩЕНА"; #endif const CPU_INT08U str_StatIsResetPass_2[] = ""; const TMenuLine line__StatIsResetMenu_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_StatIsResetPass_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line__StatIsResetMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_StatIsResetPass_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line__StatIsResetMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_StatIsResetPass_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if defined(BOARD_CENTRAL_CARWASH) const TMenuLineArray StatIsResetMenuArray[] = {&line__StatIsResetMenu_2, &line__StatIsResetMenu_0, &line__StatIsResetMenu_1, &line__StatIsResetMenu_2, NULL}; const TMenuPanel StatIsReset[] = {StatIsResetMenuArray, NULL, 4, MENU_PANEL_STATIC}; #else const TMenuLineArray StatIsResetMenuArray[] = {&line__StatIsResetMenu_0, &line__StatIsResetMenu_1, NULL}; const TMenuPanel StatIsReset[] = {StatIsResetMenuArray, NULL, 2, MENU_PANEL_STATIC}; #endif /*********************************** ПАНЕЛЬ "ЖУРНАЛЫ ОЧИЩЕНЫ" ***********************************/ #if defined(BOARD_CENTRAL_CARWASH) const CPU_INT08U str_JournalIsResetPass_0[] = " Журналы "; const CPU_INT08U str_JournalIsResetPass_1[] = " очищены"; #else const CPU_INT08U str_JournalIsResetPass_0[] = " ЖУРНАЛЫ"; const CPU_INT08U str_JournalIsResetPass_1[] = " ОЧИЩЕНЫ"; #endif const CPU_INT08U str_JournalIsResetPass_2[] = ""; const TMenuLine line__JournalIsResetMenu_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_JournalIsResetPass_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line__JournalIsResetMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_JournalIsResetPass_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line__JournalIsResetMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_JournalIsResetPass_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; #if defined(BOARD_CENTRAL_CARWASH) const TMenuLineArray JournalIsResetMenuArray[] = {&line__JournalIsResetMenu_2, &line__JournalIsResetMenu_0, &line__JournalIsResetMenu_1, &line__JournalIsResetMenu_2, NULL}; const TMenuPanel JournalIsReset[] = {JournalIsResetMenuArray, NULL, 4, MENU_PANEL_STATIC}; #else const TMenuLineArray JournalIsResetMenuArray[] = {&line__JournalIsResetMenu_0, &line__JournalIsResetMenu_1, NULL}; const TMenuPanel JournalIsReset[] = {JournalIsResetMenuArray, NULL, 2, MENU_PANEL_STATIC}; #endif /*********************************** ПАНЕЛЬ ВНЕСЕНИЯ ДЕНЕГ ***********************************/ const CPU_INT08U str_GetMoney_0[] = " Внесите деньги"; const TMenuLine line_GetMoneyMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_GetMoney_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_GetMoneyMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)&AcceptedMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_GetMoneyMenu_2 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_GetMoney_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_GetMoneyMenu_3 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_GetMoney_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray GetMoneyMenuArray[] = {&line_GetMoneyMenu_0, &line_GetMoneyMenu_1, &line_GetMoneyMenu_2, &line_GetMoneyMenu_3, NULL}; const TMenuPanel GetMoneyMenuPanel[] = {GetMoneyMenuArray, NULL, 4, MENU_PANEL_STATIC}; /*********************************** МЕНЮ ВЫБОР ЖУРНАЛА ДЛЯ ПРОСМОТРА ***********************************/ #if !defined(BOARD_SOLARIUM_WEB) const CPU_INT08U str_SelectJournalMenu_0[] = "ПРОСМОТР ЖУРНАЛОВ"; const CPU_INT08U str_SelectJournalMenu_1[] = "Журнал событий"; const CPU_INT08U str_SelectJournalMenu_2[] = "Очистка журналов"; #else const CPU_INT08U str_SelectJournalMenu_0[] = " ЖУРНАЛ"; const CPU_INT08U str_SelectJournalMenu_1[] = "ПРОСМОТР"; const CPU_INT08U str_SelectJournalMenu_2[] = "ОЧИСТКА"; #endif const TMenuLine line_SelectJournalMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_SelectJournalMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SelectJournalMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SelectJournalMenu_1, // указатель на текстовую строку или дескриптор (void*)&EventJournalMenuPanel // панель для перехода }; const TMenuLine line_SelectJournalMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SelectJournalMenu_2, // указатель на текстовую строку или дескриптор (void*)&ClearJournalMenuPanel // панель для перехода }; const TMenuLineArray arr_SelectJournalMenuArray[] = {&line_SelectJournalMenu_0, &line_SelectJournalMenu_1, &line_SelectJournalMenu_2, NULL}; const TMenuPanel SelectJournalMenuPanel[] = {arr_SelectJournalMenuArray, NULL, 3, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ПЕЧАТЬ ОТЧЕТОВ ***********************************/ const CPU_INT08U str_ReportMenu_0[] = " КОМАНДЫ ФР"; const CPU_INT08U str_ReportMenu_1[] = "X-отчет"; const CPU_INT08U str_ReportMenu_2[] = "Z-отчет"; const CPU_INT08U str_ReportMenu_3[] = "Аннулирование чека"; const TMenuLine line_ReportMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ReportMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ReportMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_ReportMenu_1, // указатель на текстовую строку или дескриптор (void*)&xReportMenuPanel // панель для перехода }; const TMenuLine line_ReportMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_ReportMenu_2, // указатель на текстовую строку или дескриптор (void*)&zReportMenuPanel // панель для перехода }; const TMenuLine line_ReportMenu_3 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_ReportMenu_3, // указатель на текстовую строку или дескриптор (void*)&CanselCheckMenuPanel // панель для перехода }; void OnEnterReportsPanel(void) { CPU_INT32U enable; GetData(&EnableFiscalDesc, &enable, 0, DATA_FLAG_SYSTEM_INDEX); if (!enable) { GoToPreviousMenu(); GoToMenu(FrIsOffMenuPanel); } FlagForPrintReport = 0; } const TMenuLineArray arr_ReportMenuArray[] = {&line_ReportMenu_0, &line_ReportMenu_1, &line_ReportMenu_2, &line_ReportMenu_3, NULL}; const TMenuPanel ReportMenuPanel[] = {arr_ReportMenuArray, OnEnterReportsPanel, 4, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ПЕЧАТЬ X-ОТЧЕТА ***********************************/ const CPU_INT08U str_xReportMenu_0[] = " X-ОТЧЕТ"; const CPU_INT08U str_xReportMenu_1[] = "Напечатать суточный"; const CPU_INT08U str_xReportMenu_2[] = " отчет без гашения?"; const CPU_INT08U str_xReportMenu_3[] = "ДА-ОК НЕТ-ОТМЕНА"; const TMenuLine line_xReportMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_xReportMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_xReportMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_xReportMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_xReportMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_xReportMenu_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_xReportMenu_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_xReportMenu_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterZXReportPanel(void) { OSTimeDly(20); FlagForPrintReport = 1; } const TMenuLineArray arr_xReportMenuArray[] = {&line_xReportMenu_0, &line_xReportMenu_1, &line_xReportMenu_2, &line_xReportMenu_3, NULL}; const TMenuPanel xReportMenuPanel[] = {arr_xReportMenuArray, OnEnterZXReportPanel, 4, MENU_PANEL_STATIC}; /*********************************** МЕНЮ ПЕЧАТЬ Z-ОТЧЕТА ***********************************/ const CPU_INT08U str_zReportMenu_0[] = " Z-ОТЧЕТ"; const CPU_INT08U str_zReportMenu_1[] = "Напечатать суточный"; const CPU_INT08U str_zReportMenu_2[] = " отчет с гашением?"; const TMenuLine line_zReportMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_zReportMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_zReportMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_zReportMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_zReportMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_zReportMenu_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_zReportMenu_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_xReportMenu_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_zReportMenuArray[] = {&line_zReportMenu_0, &line_zReportMenu_1, &line_zReportMenu_2, &line_zReportMenu_3, NULL}; const TMenuPanel zReportMenuPanel[] = {arr_zReportMenuArray, OnEnterZXReportPanel, 4, MENU_PANEL_STATIC}; /*********************************** МЕНЮ АННУЛИРОВАНИЕ ЧЕКА ***********************************/ const CPU_INT08U str_CanselCheckMenu_0[] = " "; const CPU_INT08U str_CanselCheckMenu_1[] = " Аннулировть чек?"; const CPU_INT08U str_CanselCheckMenu_2[] = " "; const TMenuLine line_CanselCheckMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_CanselCheckMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CanselCheckMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_CanselCheckMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CanselCheckMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_CanselCheckMenu_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_CanselCheckMenu_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_xReportMenu_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_CanselCheckMenuArray[] = {&line_CanselCheckMenu_0, &line_CanselCheckMenu_1, &line_CanselCheckMenu_2, &line_CanselCheckMenu_3, NULL}; const TMenuPanel CanselCheckMenuPanel[] = {arr_CanselCheckMenuArray, OnEnterZXReportPanel, 4, MENU_PANEL_STATIC}; /*********************************** МЕНЮ ПЕЧАТЬ Z-ОТЧЕТОВ ИЗ БУФЕРА ***********************************/ const CPU_INT08U str_bufReportMenu_0[] = " Z-ОТЧЕТЫ ИЗ БУФЕРА"; const CPU_INT08U str_bufReportMenu_1[] = "Напечатать суточные"; const CPU_INT08U str_bufReportMenu_2[] = " отчеты из буфера?"; const TMenuLine line_bufReportMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_bufReportMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_bufReportMenu_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_bufReportMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_bufReportMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_bufReportMenu_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_bufReportMenu_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_xReportMenu_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_bufReportMenuArray[] = {&line_bufReportMenu_0, &line_bufReportMenu_1, &line_bufReportMenu_2, &line_xReportMenu_3, NULL}; const TMenuPanel bufReportMenuPanel[] = {arr_bufReportMenuArray, OnEnterZXReportPanel, 4, MENU_PANEL_STATIC}; /*********************************** МЕНЮ ФР ОТКЛЮЧЕН ***********************************/ const CPU_INT08U str_FrIsOff_0[] = ""; const CPU_INT08U str_FrIsOff_1[] = " ФР отключен"; const CPU_INT08U str_FrIsOff_2[] = "печать невозможна"; const TMenuLine line_FrIsOff_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_FrIsOff_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FrIsOff_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FrIsOff_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FrIsOff_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FrIsOff_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_FrIsOffMenuArray[] = {&line_FrIsOff_0, &line_FrIsOff_1, &line_FrIsOff_2, NULL}; const TMenuPanel FrIsOffMenuPanel[] = {arr_FrIsOffMenuArray, NULL, 3, MENU_PANEL_STATIC}; /*********************************** МЕНЮ ПРОСМОТР ЖУРНАЛА СОБЫТИЙ ***********************************/ char str_EventNumber[24]; char str_EventData[24]; const TMenuLine line_EventJournalMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&EventJournalIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_EventJournalMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&JournalEventTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_EventJournalMenu_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_EventNumber, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_EventJournalMenu_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_EventData, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void PrintEventJournalRecord(TEventRecord *record, char *str_event, char *str_data) { if (record->event) { // есть событие GetEventStr(str_event, record->event); if (record->event == JOURNAL_CANSEL_BILL) { if (!record->data) strcpy(str_data, "OK"); else strcpy(str_data, "Ошибка"); } else if (record->event == JOURNAL_EVENT_FTP_SEND) { CPU_INT32U flags = record->data >> 1; if ((flags & FTP_FLAG_SEND_COUNTERS | FTP_FLAG_SEND_LOGS) == (FTP_FLAG_SEND_COUNTERS | FTP_FLAG_SEND_LOGS)) strcpy(str_data, "стат.+журн."); else if (flags & FTP_FLAG_SEND_COUNTERS) strcpy(str_data, "стат."); else if (flags & FTP_FLAG_SEND_LOGS) strcpy(str_data, "журнал"); if ((record->data & 0x01) == 0) strcpy(&str_data[strlen(str_data)], " успешно"); else strcpy(&str_data[strlen(str_data)], " ошибка"); } else if (record->event == JOURNAL_EVENT_SOLARIUM_CLEANING_START) { sprintf(str_data, "солярия %d", record->channel + 1); } else if ((record->event == JOURNAL_EVENT_SOLARIUM_SERVICE_START) || (record->event == JOURNAL_EVENT_SOLARIUM_TESTMODE_START)) { sprintf(&str_event[strlen(str_event)], "сол.%d", record->channel+1); strcpy(str_data, "длит. "); PrintSecToMinSec(&str_data[strlen(str_data)], record->data); } else if (record->event == JOURNAL_EVENT_SOLARIUM_CLEANING_END) { sprintf(&str_event[strlen(str_event)], "сол.%d", record->channel+1); strcpy(str_data, "длит. "); PrintSecToMinSec(&str_data[strlen(str_data)], record->data); } else if ((record->event == JOURNAL_EVENT_SOLARIUM_SERVICE_END) || (record->event == JOURNAL_EVENT_SOLARIUM_TESTMODE_END)) { sprintf(&str_event[strlen(str_event)], "сол.%d", record->channel+1); strcpy(str_data, " "); } else if (record->event == JOURNAL_EVENT_POST_UNAVIABLE) { sprintf(&str_event[strlen(str_event)], " %d", record->channel + 1); strcpy(str_data, " "); } else if ((record->event == JOURNAL_EVENT_MONEY_NOTE) || (record->event == JOURNAL_EVENT_MONEY_COIN) || (record->event == JOURNAL_EVENT_CARD_ACCEPTED)) { #if defined(BOARD_SOLARIUM_VLAD) sprintf(str_data, "%dруб.%02dкоп.", record->data / 100, record->data % 100); #else sprintf(str_data, "%d руб.", record->data); #endif } else if (record->event == JOURNAL_EVENT_CARD_REJECTED) { sprintf(&str_event[strlen(str_event)], "Пост %d", record->channel+1); strcpy(str_data, "Отказ"); } else if (record->event == JOURNAL_EVENT_START_SESSION) { #if defined(BOARD_CENTRAL_CARWASH) sprintf(&str_event[strlen(str_event)], "Пост %d", record->channel+1); sprintf(str_data, "Блок.на "); PrintSecToMinSec(&str_data[strlen(str_data)], record->data); #elif defined(BOARD_SOLARIUM_WEB) sprintf(str_data, "ДЛИТ."); PrintSecToMinSec(&str_data[strlen(str_data)], record->data); #elif defined(BOARD_SOLARIUM_VLAD) sprintf(str_data, "солярий %d ", record->channel + 1); PrintSecToMinSec(&str_data[strlen(str_data)], record->data); #else str_data[0] = 0; #endif } else if (record->event == JOURNAL_EVENT_END_SESSION) { #if defined(BOARD_CENTRAL_CARWASH) sprintf(&str_event[strlen(str_event)], "Пост %d", record->channel+1); sprintf(str_data, ""); #elif defined(BOARD_SOLARIUM_WEB) sprintf(str_data, "ДЛИТ."); PrintSecToMinSec(&str_data[strlen(str_data)], record->data); #elif defined(BOARD_SOLARIUM_VLAD) sprintf(str_data, "солярий %d ", record->channel + 1); #else str_data[0] = 0; #endif } else if (record->event == JOURNAL_EVENT_DEVICE_ON) { sprintf(str_event, "ВКЛЮЧЕНИЕ"); sprintf(str_data, "УСТРОйСТВА"); } else if (record->event == JOURNAL_EVENT_PRINT_BILL) { #if defined(BOARD_SOLARIUM_VLAD) sprintf(str_data, "Сол.#%d", record->channel+1); #else sprintf(str_data, "Пост %d", record->channel+1); #endif } else if (record->event == JOURNAL_EVENT_PRINT_Z) { sprintf(str_data, ""); } else if (record->event == JOURNAL_EVENT_PRINT_X) { sprintf(str_data, ""); } else if (record->event == JOURNAL_EVENT_PRINT_BUF) { sprintf(str_data, ""); } else if (record->event == JOURNAL_EVENT_CHANGE_MODE) { if (record->data == MODE_WORK) sprintf(str_data, "работа"); else sprintf(str_data, "настройка"); } else if (record->event == JOURNAL_EVENT_INCASSATION) { sprintf(str_data, "%u руб.", record->data); } else if (record->event == JOURNAL_EVENT_PASS_FAIL) { sprintf(str_data, "%u", record->data); } else if ((record->event == JOURNAL_EVENT_EMAIL_OK) || (record->event == JOURNAL_EVENT_EMAIL_FAIL)) { sprintf(str_data, ""); } else { GetDataItem(&JournalErrorNumberDesc0, (CPU_INT08U*)str_event, record->event); GetDataItem(&JournalErrorNumberDesc1, (CPU_INT08U*)str_data, record->event); } } else { // пустая запись sprintf(str_event, "пусто"); sprintf(str_data, "пусто"); } } void OnEnterEventJournal(void) { TEventRecord record; EventJournalIndex = 0; CPU_INT32U last = 0; for (CPU_INT32U i=0; i= last) { last = record.time; EventJournalIndex = i; } } if (!last) {SetMenu(JournalEmptyMenuPanel); return;} GetEventRecord(&record, EventJournalIndex); PrintEventJournalRecord(&record, str_EventNumber, str_EventData); } const TMenuLineArray arr_EventJournalMenuArray[] = {&line_EventJournalMenu_0, &line_EventJournalMenu_1, &line_EventJournalMenu_2, &line_EventJournalMenu_3 ,NULL}; const TMenuPanel EventJournalMenuPanel[] = {arr_EventJournalMenuArray, OnEnterEventJournal, 4, #if defined(BOARD_CENTRAL_CARWASH) MENU_PANEL_STATIC #else MENU_PANEL_STANDARD #endif }; /*********************************** МЕНЮ НАСТРОЙКА ВРЕМЕНИ ***********************************/ #if defined(BOARD_SOLARIUM_WEB) const CPU_INT08U str_TimeSetupMenu_0[] = " ВРЕМЯ"; #else const CPU_INT08U str_TimeSetupMenu_0[] = "УСТАНОВКА ВРЕМЕНИ"; #endif const TMenuLine line_TimeSetupMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_TimeSetupMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_TimeSetupMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SystemTimeEditDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_TimeSetupMenuArray[] = {&line_TimeSetupMenu_0, &line_TimeSetupMenu_1, NULL}; const TMenuPanel TimeSetupMenuPanel[] = {arr_TimeSetupMenuArray, NULL, 2, MENU_PANEL_STANDARD}; #if !defined(BOARD_SOLARIUM_VLAD) /*********************************** МЕНЮ Общая статистика ***********************************/ #if defined(BOARD_SOLARIUM_WEB) const CPU_INT08U str_CommonStatMenu_0[] = "ОБЩАЯ СТАТИСТИКА"; const CPU_INT08U str_CommonStatMenu_1[] = "КОРОТКИЕ СЧЕТЧ."; const CPU_INT08U str_CommonStatMenu_2[] = "ДЛИННЫЕ СЧЕТЧ."; #else const CPU_INT08U str_CommonStatMenu_0[] = " ОБЩАЯ СТАТИСТИКА"; const CPU_INT08U str_CommonStatMenu_1[] = "Короткие счетчики"; const CPU_INT08U str_CommonStatMenu_2[] = "Длинные счетчики"; #endif const TMenuLine line_StatMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_CommonStatMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_StatMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_CommonStatMenu_1, // указатель на текстовую строку или дескриптор (void*)CommonCountersPanel // панель для перехода }; const TMenuLine line_StatMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_CommonStatMenu_2, // указатель на текстовую строку или дескриптор (void*)CommonCountersLongPanel // панель для перехода }; const TMenuLineArray arr_StatMenuArray[] = {&line_StatMenu_0, &line_StatMenu_1, &line_StatMenu_2, NULL}; const TMenuPanel CommStatMenuPanel[] = {arr_StatMenuArray, NULL, 3, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ Канальная статистика статистика ***********************************/ const CPU_INT08U str_ChanStatMenu_0[] = " СТАТ-КА ПО ПОСТАМ"; const TMenuLine line_ChanStatMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ChanStatMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChanStatMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_CommonStatMenu_1, // указатель на текстовую строку или дескриптор (void*)ChannelCountersPanel // панель для перехода }; const TMenuLine line_ChanStatMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_CommonStatMenu_2, // указатель на текстовую строку или дескриптор (void*)ChannelCountersLongPanel // панель для перехода }; const TMenuLineArray arr_ChanStatMenuArray[] = {&line_ChanStatMenu_0, &line_ChanStatMenu_1, &line_ChanStatMenu_2, NULL}; const TMenuPanel ChanStatMenuPanel[] = {arr_ChanStatMenuArray, NULL, 3, MENU_PANEL_STANDARD}; #endif /*********************************** МЕНЮ КАНАЛЬНАЯ СТАТИСТИКА ДЛИННЫЕ СЧЕТЧИКИ ***********************************/ const TMenuLine line_ChannelCountersLongMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&ChannelStLongIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelCountersLongMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterChannelRunLongDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelCountersLongMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterChannelMoneyLongDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ChannelCountersLongMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterChannelCardLongDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_ChannelCountersLongArray[] = {&line_ChannelCountersLongMenu_0, &line_ChannelCountersLongMenu_1, &line_ChannelCountersLongMenu_2, &line_ChannelCountersLongMenu_3, NULL}; const TMenuPanel ChannelCountersLongPanel[] = {arr_ChannelCountersLongArray, NULL, 4, MENU_PANEL_STANDARD}; #if defined(BOARD_SOLARIUM_WEB) /*********************************** МЕНЮ НАСТРОЙКИ УПРАВЛЕНИЯ СОЛЯРИЕМ ***********************************/ const CPU_INT08U str_SolariumSettingsMenu_0[] = " УПРАВЛЕНИЕ"; const CPU_INT08U str_SolariumSettingsMenu_1[] = "СТОИМОСТЬ"; const TMenuLine line_SolariumSettingsMenu_0 = { MENU_LINE_STRING, MENU_FIXED_LINE, // доп. флаги (void*)&str_SolariumSettingsMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumSettingsMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolariumTypeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumSettingsMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolariumTimeoutDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumSettingsMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolariumPauseDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumSettingsMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolariumVentilationTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumSettingsMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolariumMinTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumSettingsMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolariumMaxTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumSettingsMenu_7 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolariumPricePerMinDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_SolariumSettingsArray[] = {&line_SolariumSettingsMenu_0, &line_SolariumSettingsMenu_1, &line_SolariumSettingsMenu_2, &line_SolariumSettingsMenu_3, &line_SolariumSettingsMenu_4, &line_SolariumSettingsMenu_5, &line_SolariumSettingsMenu_6, &line_SolariumSettingsMenu_7, NULL}; const TMenuPanel SolariumSettingsPanel[] = {arr_SolariumSettingsArray, NULL, 8, MENU_PANEL_STANDARD}; #endif #if defined(CONFIG_MUSIC_ENABLE) /*********************************** МЕНЮ НАСТРОЙКИ ЗВУКА ***********************************/ const CPU_INT08U str_SoundSettingsMenu_0[] = " ЗВУК "; const TMenuLine line_SoundSettingsMenu_0 = { MENU_LINE_STRING, MENU_FIXED_LINE, // доп. флаги (void*)&str_SoundSettingsMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SoundSettingsMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SoundTypeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SoundSettingsMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PlayerStatusDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SoundSettingsMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SoundIpAddrDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SoundSettingsMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SdCardStatusDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SoundSettingsMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SoundVolumeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SoundSettingsMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SoundFileIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_SoundSettingsArray[] = {&line_SoundSettingsMenu_0, &line_SoundSettingsMenu_1, &line_SoundSettingsMenu_2, &line_SoundSettingsMenu_3, &line_SoundSettingsMenu_4, &line_SoundSettingsMenu_5, &line_SoundSettingsMenu_6, NULL}; const TMenuPanel SoundSettingsPanel[] = {arr_SoundSettingsArray, NULL, 7, MENU_PANEL_STANDARD}; #endif // #if defined(CONFIG_MUSIC_ENABLE) #if defined(BOARD_SOLARIUM_VLAD) /*********************************** МЕНЮ НАСТРОЙКИ СОЛЯРИЕВ ***********************************/ const CPU_INT08U str_SolariumMenu_0[] = "Режимы"; const TMenuLine line_SolariumMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&ChannelIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&EnableChannelDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarMinimumTimeMinutesDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumMenu_3 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SolariumMenu_0, // указатель на текстовую строку или дескриптор (void*)SolariumModesPanel }; const TMenuLine line_SolariumMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarVentilationTimeMinutesDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarTimeoutBeforeMinutesDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarTimeoutAfterMinutesDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumMenu_7 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarControlChannelDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumMenu_8 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarCleaningTimeoutMinutesDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterSolariumMenu(void) { ChannelIndex = solar_modes_index / SOLAR_MODES_COUNT; } const TMenuLineArray arr_SolariumArray[] = {&line_SolariumMenu_0, &line_SolariumMenu_1, &line_SolariumMenu_2, &line_SolariumMenu_3, &line_SolariumMenu_4, &line_SolariumMenu_5, &line_SolariumMenu_6, &line_SolariumMenu_7, &line_SolariumMenu_8, NULL}; const TMenuPanel SolariumMenuPanel[] = {arr_SolariumArray, OnEnterSolariumMenu, 9, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ РЕЖИМОВ СОЛЯРИЕВ ***********************************/ const TMenuLine line_SolariumModesMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&SolariumModesDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumModesMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarLampsCountDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumModesMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarPricePerMinuteDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumModesMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarCurrentPricePerMinuteForViewDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolariumModesMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SolarMaximumTimeMinutesDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterSolarModesMenu(void) { solar_modes_index = ChannelIndex * SOLAR_MODES_COUNT; } const TMenuLineArray arr_SolariumModesArray[] = {&line_SolariumModesMenu_0, &line_SolariumModesMenu_1, &line_SolariumModesMenu_2, &line_SolariumModesMenu_3, &line_SolariumModesMenu_4, NULL}; const TMenuPanel SolariumModesPanel[] = {arr_SolariumModesArray, OnEnterSolarModesMenu, 5, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СКИДКИ ***********************************/ const CPU_INT08U str_DiscountMainMenu_0[] = " СКИДКИ"; const CPU_INT08U str_DiscountMainMenu_1[] = "По часам"; const CPU_INT08U str_DiscountMainMenu_2[] = "По дням недели"; const CPU_INT08U str_DiscountMainMenu_3[] = "По месяцам"; const CPU_INT08U str_DiscountMainMenu_4[] = "Разовые"; const TMenuLine line_DiscountMainMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)&str_DiscountMainMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountMainMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DiscountValueCurrentDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountMainMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)&str_DiscountMainMenu_1, // указатель на текстовую строку или дескриптор (void*)&DiscountHourMenuPanel // панель для перехода }; const TMenuLine line_DiscountMainMenu_3 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)&str_DiscountMainMenu_2, // указатель на текстовую строку или дескриптор (void*)&DiscountDayMenuPanel // панель для перехода }; const TMenuLine line_DiscountMainMenu_4 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)&str_DiscountMainMenu_3, // указатель на текстовую строку или дескриптор (void*)DiscountMonthMenuPanel // панель для перехода }; const TMenuLine line_DiscountMainMenu_5 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)&str_DiscountMainMenu_4, // указатель на текстовую строку или дескриптор (void*)DiscountCustomMenuPanel // панель для перехода }; const TMenuLineArray arr_DiscountMainArray[] = {&line_DiscountMainMenu_0, &line_DiscountMainMenu_1, &line_DiscountMainMenu_2, &line_DiscountMainMenu_3, &line_DiscountMainMenu_4, &line_DiscountMainMenu_5, NULL}; const TMenuPanel DiscountMainMenuPanel[] = {arr_DiscountMainArray, NULL, 6, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ АБОНЕМЕНТЫ ***********************************/ const TMenuLine line_AbonementMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&AbonementIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AbonementMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&AbonementMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AbonementMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&AbonementBonusDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AbonementMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&AbonementBestBeforeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterAbonementMenu(void) { abonement_index = 0; } const TMenuLineArray arr_AbonementArray[] = {&line_AbonementMenu_0, &line_AbonementMenu_1, &line_AbonementMenu_2, &line_AbonementMenu_3, NULL}; const TMenuPanel AbonementMenuPanel[] = {arr_AbonementArray, OnEnterAbonementMenu, 4, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СКИДКИ ПО ЧАСАМ ***********************************/ const TMenuLine line_DiscountHourMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&DiscountIndexHourDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountHourMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DiscountBeginHourDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountHourMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DiscountEndHourDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountHourMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DiscountValueHourDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterDiscountHourMenu(void) { discount_index = 0; } const TMenuLineArray arr_DiscountHourArray[] = {&line_DiscountHourMenu_0, &line_DiscountHourMenu_1, &line_DiscountHourMenu_2, &line_DiscountHourMenu_3, NULL}; const TMenuPanel DiscountHourMenuPanel[] = {arr_DiscountHourArray, OnEnterDiscountHourMenu, 4, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СКИДКИ ПО ДНЯМ ***********************************/ const TMenuLine line_DiscountDayMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&DiscountIndexDayDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountDayMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DiscountValueDayDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterDiscountDayMenu(void) { discount_index = 0; } const TMenuLineArray arr_DiscountDayArray[] = {&line_DiscountDayMenu_0, &line_DiscountDayMenu_1, NULL}; const TMenuPanel DiscountDayMenuPanel[] = {arr_DiscountDayArray, OnEnterDiscountDayMenu, 2, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СКИДКИ ПО МЕСЯЦАМ ***********************************/ const TMenuLine line_DiscountMonthMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&DiscountIndexMonthDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountMonthMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DiscountValueMonthDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterDiscountMonthMenu(void) { discount_index = 0; } const TMenuLineArray arr_DiscountMonthArray[] = {&line_DiscountMonthMenu_0, &line_DiscountMonthMenu_1, NULL}; const TMenuPanel DiscountMonthMenuPanel[] = {arr_DiscountMonthArray, OnEnterDiscountMonthMenu, 2, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СКИДКИ РАЗОВЫЕ ***********************************/ const TMenuLine line_DiscountCustomMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&DiscountIndexCustomDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountCustomMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DiscountValueCustomDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountCustomMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DiscountDateBeginCustomDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_DiscountCustomMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&DiscountDateEndCustomDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterDiscountCustomMenu(void) { discount_index = 0; } const TMenuLineArray arr_DiscountCustomArray[] = {&line_DiscountCustomMenu_0, &line_DiscountCustomMenu_1, &line_DiscountCustomMenu_2, &line_DiscountCustomMenu_3, NULL}; const TMenuPanel DiscountCustomMenuPanel[] = {arr_DiscountCustomArray, OnEnterDiscountCustomMenu, 4, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СКИДКИ РАЗОВЫЕ ***********************************/ const TMenuLine line_ScoreSettingsMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&ScoreIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ScoreSettingsMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&ScoreEnableDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ScoreSettingsMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&ScoreRs485SpeedDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ScoreSettingsMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&ScoreRs485AddressDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ScoreSettingsMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&ScoreColumnDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ScoreSettingsMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&ScoreStateDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ScoreSettingsMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&ScoreCommandDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_ScoreSettingsArray[] = {&line_ScoreSettingsMenu_0, &line_ScoreSettingsMenu_1, &line_ScoreSettingsMenu_2, &line_ScoreSettingsMenu_3, &line_ScoreSettingsMenu_4, &line_ScoreSettingsMenu_5, &line_ScoreSettingsMenu_6, NULL}; const TMenuPanel ScoreSettingsPanel[] = {arr_ScoreSettingsArray, NULL, 7, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ВВОД ПАРОЛЯ ДЛЯ ОБСЛУЖИВАНИЯ СОЛЯРИЯ ***********************************/ const char str_ReqServPassMenu_0[] = " ПАРОЛb ЗАПУСКА"; const char str_ReqServPassMenu_1[] = " ПАРОЛb УБОРКИ"; const char str_ReqServPassMenu_2[] = " ПАРОЛb СЕРВИСА"; const char str_ReqServPassMenu_3[] = " ПАРОЛb ТЕСТА"; void OnEnterPanelReqCleaningPass(void) { TempPass = 0; strcpy(str_UserMenu_0, str_ReqServPassMenu_1); } void OnEnterPanelReqServicePass(void) { TempPass = 0; strcpy(str_UserMenu_0, str_ReqServPassMenu_2); } void OnEnterPanelReqTestPass(void) { TempPass = 0; strcpy(str_UserMenu_0, str_ReqServPassMenu_3); } void OnEnterPanelReqStartupPass(void) { TempPass = 0; strcpy(str_UserMenu_0, str_ReqServPassMenu_0); } const TMenuLine line_ReqServPassMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_UserMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ReqServPassMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassTempDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_ReqServPassMenuArray[] = {&line_ReqServPassMenu_0, &line_ReqServPassMenu_1, NULL}; const TMenuPanel ReqCleaningPassMenuPanel[] = {arr_ReqServPassMenuArray, OnEnterPanelReqCleaningPass, 2, MENU_PANEL_STANDARD}; const TMenuPanel ReqServicePassMenuPanel[] = {arr_ReqServPassMenuArray, OnEnterPanelReqServicePass, 2, MENU_PANEL_STANDARD}; const TMenuPanel ReqTestPassMenuPanel[] = {arr_ReqServPassMenuArray, OnEnterPanelReqTestPass, 2, MENU_PANEL_STANDARD}; const TMenuPanel ReqStartupPassMenuPanel[] = {arr_ReqServPassMenuArray, OnEnterPanelReqStartupPass, 2, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СЧЕТЧИКОВ ПО РЕЖИМАМ ***********************************/ const TMenuLine line_SolarModesCountersMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&SolariumModeIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarModesCountersMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterModeMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarModesCountersMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterModeCardMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarModesCountersMenu_7 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterModeCardBonusDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarModesCountersMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterModeRunsDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarModesCountersMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterModeWorkTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarModesCountersMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterModeTestRunsDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarModesCountersMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterModeWorkTestTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterSolarModesCountersMenu(void) { solar_modes_index = 0; } const TMenuLineArray arr_SolarModesCountersArray[] = {&line_SolarModesCountersMenu_0, &line_SolarModesCountersMenu_1, &line_SolarModesCountersMenu_6, &line_SolarModesCountersMenu_7, &line_SolarModesCountersMenu_2, &line_SolarModesCountersMenu_3, &line_SolarModesCountersMenu_4, &line_SolarModesCountersMenu_5, NULL}; const TMenuPanel SolarModesCountersPanel[] = {arr_SolarModesCountersArray, OnEnterSolarModesCountersMenu, 8, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СЧЕТЧИКОВ ПО СОЛЯРИЯМ И РЕЖИМАМ ***********************************/ const TMenuLine line_SolarChannelsCountersMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&SolariumModesDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarChannelsCountersMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterSolarMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarChannelsCountersMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterSolarCardMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarChannelsCountersMenu_7 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterSolarCardBonusDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarChannelsCountersMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterSolarRunsDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarChannelsCountersMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterSolarWorkTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarChannelsCountersMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterSolarTestRunsDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarChannelsCountersMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterSolarTestWorkTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterSolarChannelsCountersMenu(void) { solar_modes_index = 0; } const TMenuLineArray arr_SolarChannelsCountersArray[] = {&line_SolarChannelsCountersMenu_0, &line_SolarChannelsCountersMenu_1, &line_SolarChannelsCountersMenu_6, &line_SolarChannelsCountersMenu_7, &line_SolarChannelsCountersMenu_2, &line_SolarChannelsCountersMenu_3, &line_SolarChannelsCountersMenu_4, &line_SolarChannelsCountersMenu_5, NULL}; const TMenuPanel SolarChannelsCountersPanel[] = {arr_SolarChannelsCountersArray, OnEnterSolarChannelsCountersMenu, 8, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ счетчиков по абонементам ***********************************/ const CPU_INT08U str_AbonementCounters_0[] = "СБРОС СЧЕТЧИКОВ"; const TMenuLine line_AbonementsCountersMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&AbonementIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AbonementsCountersMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterMoneyAbonementDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AbonementsCountersMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterRunsAbonementDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AbonementsCountersMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterBonusAbonementDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; void OnEnterAbonementCountersMenu(void) { // abonement_index = 0; } const TMenuLineArray arr_AbonementCountersArray[] = {&line_AbonementsCountersMenu_0, &line_AbonementsCountersMenu_1, &line_AbonementsCountersMenu_2, &line_AbonementsCountersMenu_3, NULL}; const TMenuPanel AbonementCountersPanel[] = {arr_AbonementCountersArray, OnEnterAbonementCountersMenu, 5, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ СЧЕТЧИКОВ ПО ВРЕМЕНИ НАРАБОТКИ ЛАМП ***********************************/ const CPU_INT08U str_SolarLampsCounters_0[] = "СБРОС СЧЕТЧИКОВ"; const TMenuLine line_SolarLampsCountersMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&ChannelIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarLampsCountersMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterCollatenTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarLampsCountersMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterUFTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarLampsCountersMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterAllTestCountDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarLampsCountersMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterAllTestTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarLampsCountersMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterTestMeanTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarLampsCountersMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterCleaningCountDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarLampsCountersMenu_7 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterCleaningTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarLampsCountersMenu_8 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterCleaningMeanTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarLampsCountersMenu_9 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_SolarLampsCounters_0, // указатель на текстовую строку или дескриптор (void*)ClearLampsMenu // панель для перехода }; void OnEnterSolarLampsCountersMenu(void) { // ChannelIndex = 0; } const TMenuLineArray arr_SolarLampsCountersArray[] = {&line_SolarLampsCountersMenu_0, &line_SolarLampsCountersMenu_1, &line_SolarLampsCountersMenu_2, &line_SolarLampsCountersMenu_3, &line_SolarLampsCountersMenu_4, &line_SolarLampsCountersMenu_5, &line_SolarLampsCountersMenu_6, &line_SolarLampsCountersMenu_7, &line_SolarLampsCountersMenu_8, &line_SolarLampsCountersMenu_9, NULL}; const TMenuPanel SolarLampsCountersPanel[] = {arr_SolarLampsCountersArray, OnEnterSolarLampsCountersMenu, 10, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ОБЩИХ СЧЕТЧИКОВ ***********************************/ const CPU_INT08U str_SolarCommonCountersMenu_0[] = " СЧЕТЧИКИ ДЕНЕГ"; const TMenuLine line_SolarCommonCountersMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_SolarCommonCountersMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarCommonCountersMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterCommonMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarCommonCountersMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterCashMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarCommonCountersMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterCardMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SolarCommonCountersMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&CounterAbonementMoneyDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_SolarCommonCountersArray[] = {&line_SolarCommonCountersMenu_0, &line_SolarCommonCountersMenu_1, &line_SolarCommonCountersMenu_2, &line_SolarCommonCountersMenu_3, &line_SolarCommonCountersMenu_4, NULL}; const TMenuPanel SolarCommonCountersPanel[] = {arr_SolarCommonCountersArray, NULL, 5, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ПРОСМОТР СТАТИСТИКИ ***********************************/ const CPU_INT08U str_CommonStatMenu_0[] = "ПРОСМОТР СТАТИСТИКИ"; const CPU_INT08U str_CommonStatMenu_1[] = "По соляриям"; const CPU_INT08U str_CommonStatMenu_2[] = "По режимам"; const CPU_INT08U str_CommonStatMenu_3[] = "Наработка"; const CPU_INT08U str_CommonStatMenu_4[] = "Деньги"; const CPU_INT08U str_CommonStatMenu_5[] = "Абомементы"; const TMenuLine line_StatMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_CommonStatMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_StatMenu_1 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_CommonStatMenu_1, // указатель на текстовую строку или дескриптор (void*)SolarChannelsCountersPanel // панель для перехода }; const TMenuLine line_StatMenu_2 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_CommonStatMenu_2, // указатель на текстовую строку или дескриптор (void*)SolarModesCountersPanel // панель для перехода }; const TMenuLine line_StatMenu_3 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_CommonStatMenu_3, // указатель на текстовую строку или дескриптор (void*)SolarLampsCountersPanel // панель для перехода }; const TMenuLine line_StatMenu_4 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_CommonStatMenu_4, // указатель на текстовую строку или дескриптор (void*)SolarCommonCountersPanel // панель для перехода }; const TMenuLine line_StatMenu_5 = { MENU_LINE_GOTO_MENU, // тип пункта меню 0, // доп. флаги (void*)str_CommonStatMenu_5, // указатель на текстовую строку или дескриптор (void*)AbonementCountersPanel // панель для перехода }; const TMenuLineArray arr_StatMenuArray[] = {&line_StatMenu_0, &line_StatMenu_1, &line_StatMenu_2, &line_StatMenu_3, &line_StatMenu_4, &line_StatMenu_5, NULL}; const TMenuPanel CommStatMenuPanel[] = {arr_StatMenuArray, NULL, 6, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА ТИПОВ КОЖИ ***********************************/ const TMenuLine line_SkinTypeSettingsMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&SkinTypeIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SkinTypeSettingsMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SkinCollatenMaxTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SkinTypeSettingsMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SkinUFMaxTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_SkinTypeSettingsMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&SkinMaximalMaxTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_SkinTypeSettingsArray[] = {&line_SkinTypeSettingsMenu_0, &line_SkinTypeSettingsMenu_1, &line_SkinTypeSettingsMenu_2, &line_SkinTypeSettingsMenu_3, NULL}; const TMenuPanel SkinTypeSettingsMenuPanel[] = {arr_SkinTypeSettingsArray, NULL, 4, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ ОЧИСТКА СЧЕТЧИКОВ ЛАМП ПО СОЛЯРИЯМ ***********************************/ const char str_ClearLampsMenu_0[] = " ОЧИСТКА"; const char str_ClearLampsMenu_1[] = "СЧЕТЧИКОВ НАРАБОТКИ"; const TMenuLine line_ClearLampsMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ClearLampsMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ClearLampsMenu_1 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_ClearLampsMenu_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_ClearLampsMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassTempDesc2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_ClearLampsMenuArray[] = {&line_ClearLampsMenu_0, &line_ClearLampsMenu_1, &line_ClearLampsMenu_2, NULL}; const TMenuPanel ClearLampsMenu[] = {arr_ClearLampsMenuArray, OnEnterPanelClearStat, 3, MENU_PANEL_STANDARD}; /*********************************** МЕНЮ НАСТРОЙКА ВСЕХ ПАРОЛЕЙ ***********************************/ const char str_AllPasswordsMenu_0[] = " ПАРОЛИ"; const TMenuLine line_AllPasswordsMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)str_AllPasswordsMenu_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AllPasswordsMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassDescAdmin, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AllPasswordsMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassDescCleaning, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AllPasswordsMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassDescService, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_AllPasswordsMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&PassDescTest, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_AllPasswordsArray[] = {&line_AllPasswordsMenu_0, &line_AllPasswordsMenu_1, &line_AllPasswordsMenu_2, &line_AllPasswordsMenu_3, &line_AllPasswordsMenu_4, NULL}; const TMenuPanel AllPasswordsMenuPanel[] = {arr_AllPasswordsArray, NULL, 5, MENU_PANEL_STANDARD}; #endif // #if defined(BOARD_SOLARIUM_VLAD) #if defined(CONFIG_RELAY_ENABLE) /*********************************** МЕНЮ НАСТРОЙКА РЕЛЕ ***********************************/ const TMenuLine line_RelaySettingsMenu_0 = { MENU_LINE_SHOW_DESC, // тип пункта меню MENU_FIXED_LINE|MENU_INDEX_LINE, // доп. флаги (void*)&RelayIndexDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_RelaySettingsMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&RelayEnableDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_RelaySettingsMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&RelayIpAddrDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_RelaySettingsMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&RelayChannelDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_RelaySettingsMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&RelayOpenTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_RelaySettingsMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&RelayCommandDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_RelaySettingsArray[] = {&line_RelaySettingsMenu_0, &line_RelaySettingsMenu_1, &line_RelaySettingsMenu_2, &line_RelaySettingsMenu_3, &line_RelaySettingsMenu_4, &line_RelaySettingsMenu_5, NULL}; const TMenuPanel RelaySettingsPanel[] = {arr_RelaySettingsArray, NULL, 6, MENU_PANEL_STANDARD}; #endif // #if defined(CONFIG_RELAY_ENABLE) #ifdef CONFIG_FTP_CLIENT_ENABLE /*********************************** МЕНЮ НАСТРОЙКА FTP-КЛИЕНТА ***********************************/ const char str_FtpSettings_0[] = " НАСТРОйКА FTP"; const TMenuLine line_FtpSettingsMenu_0 = { MENU_LINE_STRING, // тип пункта меню MENU_FIXED_LINE, // доп. флаги (void*)&str_FtpSettings_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_1 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpEnableDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpServerIpAddrDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_3 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpServerLoginDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_4 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpServerPassDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_5 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpDeviceNumberDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_6 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpSendHourMinDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_7 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpSendIntervalDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_8 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpLastSendTimeDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_9 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpLastSendResultDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpSettingsMenu_10 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги (void*)&FtpSendNowCmdDesc, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray arr_FtpSettingsArray[] = {&line_FtpSettingsMenu_0, &line_FtpSettingsMenu_1, &line_FtpSettingsMenu_2, &line_FtpSettingsMenu_3, &line_FtpSettingsMenu_4, &line_FtpSettingsMenu_5, &line_FtpSettingsMenu_6, &line_FtpSettingsMenu_7, &line_FtpSettingsMenu_8, &line_FtpSettingsMenu_9, &line_FtpSettingsMenu_10, NULL}; const TMenuPanel FtpSettingsMenuPanel[] = {arr_FtpSettingsArray, NULL, 11, MENU_PANEL_STANDARD}; #endif /*********************************** ПАНЕЛЬ "ОТПРАВКА FTP" ***********************************/ const CPU_INT08U str_FtpInProgress_0[] = ""; const CPU_INT08U str_FtpInProgress_1[] = " ОТПРАВКА ДАННЫХ"; const CPU_INT08U str_FtpInProgress_2[] = " НА СЕРВЕР..."; const CPU_INT08U str_FtpInProgress_3[] = ""; const TMenuLine line_FtpInProgress_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpInProgress_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpInProgress_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpInProgress_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpInProgress_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpInProgress_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpInProgress_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpInProgress_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray FtpInProgressMenuArray[] = {&line_FtpInProgress_0, &line_FtpInProgress_1, &line_FtpInProgress_2, &line_FtpInProgress_3, NULL}; const TMenuPanel FtpUploadInProgressMenu[] = {FtpInProgressMenuArray, NULL, 4, MENU_PANEL_STATIC}; /*********************************** ПАНЕЛЬ "ОТПРАВКА УСПЕШНА, ОЧИСТКА ВЫПОЛНЕНА" ***********************************/ const CPU_INT08U str_FtpOK_0[] = ""; const CPU_INT08U str_FtpOK_1[] = " ОТПРАВКА УСПЕШНА"; const CPU_INT08U str_FtpOK_2[] = " ОЧИСТКА ВЫПОЛНЕНА"; const CPU_INT08U str_FtpOK_3[] = ""; const TMenuLine line_FtpOK_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpOK_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpOK_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpOK_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpOK_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpOK_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpOK_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpOK_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray FtpOKMenuArray[] = {&line_FtpOK_0, &line_FtpOK_1, &line_FtpOK_2, &line_FtpOK_3, NULL}; const TMenuPanel FtpOKMenu[] = {FtpOKMenuArray, NULL, 4, MENU_PANEL_STATIC}; /*********************************** ПАНЕЛЬ "ОШИБКА ОТПРАВКИ, ОЧИСТКА ОТМЕНЕНА" ***********************************/ const CPU_INT08U str_FtpFAIL_0[] = ""; const CPU_INT08U str_FtpFAIL_1[] = " ОШИБКА ОТПРАВКИ"; const CPU_INT08U str_FtpFAIL_2[] = " ОЧИСТКА ОТМЕНЕНА"; const CPU_INT08U str_FtpFAIL_3[] = ""; const TMenuLine line_FtpFAIL_0 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpFAIL_0, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpFAIL_1 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpFAIL_1, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpFAIL_2 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpFAIL_2, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLine line_FtpFAIL_3 = { MENU_LINE_STRING, // тип пункта меню 0, // доп. флаги (void*)str_FtpFAIL_3, // указатель на текстовую строку или дескриптор NULL // панель для перехода }; const TMenuLineArray FtpFAILMenuArray[] = {&line_FtpFAIL_0, &line_FtpFAIL_1, &line_FtpFAIL_2, &line_FtpFAIL_3, NULL}; const TMenuPanel FtpFAILMenu[] = {FtpFAILMenuArray, NULL, 4, MENU_PANEL_STATIC};