mirror of
https://github.com/dimoniche/solarium.vlad.git
synced 2026-01-30 04:53:30 +03:00
333 lines
9.9 KiB
C
333 lines
9.9 KiB
C
#ifndef _APP_SERV_H_
|
|
#define _APP_SERV_H_
|
|
|
|
#include "app_cfg.h"
|
|
#include "control.h"
|
|
#include <cpu.h>
|
|
|
|
#define APP_DEBUG 0
|
|
|
|
#define CONSOLE_TCP_DEFAULT_PORT 10000
|
|
|
|
#define RELAY_COUNT 3
|
|
|
|
#if defined(BOARD_SOLARIUM_VLAD)
|
|
typedef struct
|
|
{
|
|
CPU_INT08U user_menu;
|
|
///
|
|
#define USER_MENU_IDLE 0
|
|
///
|
|
#define USER_MENU_WARNING_1 1
|
|
///
|
|
#define USER_MENU_WARNING_2 2
|
|
///
|
|
#define USER_MENU_SELECT_CH 3
|
|
///
|
|
#define USER_MENU_SELECT_MODE 4
|
|
///
|
|
#define USER_MENU_ACK_MODE 5
|
|
///
|
|
#define USER_MENU_SELECT_PAY_TYPE 6
|
|
///
|
|
#define USER_MENU_CASH_PAYING 7
|
|
///
|
|
#define USER_MENU_CARD_PAYING 8
|
|
///
|
|
#define USER_MENU_CARD_PROCESSING 9
|
|
///
|
|
#define USER_MENU_CARD_FAIL 10
|
|
///
|
|
#define USER_MENU_CARD_OK 11
|
|
///
|
|
#define USER_MENU_SHOW_THANKS 12
|
|
///
|
|
#define USER_MENU_SERVICE_PASS 13
|
|
///
|
|
#define USER_MENU_SELECT_CH_CLEANING 14
|
|
#define USER_MENU_SELECT_CH_SERVICE 15
|
|
#define USER_MENU_SELECT_CH_TESTMODE 16
|
|
///
|
|
#define USER_MENU_SKIN_ATTENTION_1 17
|
|
///
|
|
#define USER_MENU_SKIN_ATTENTION_2 18
|
|
///
|
|
#define USER_MENU_SKIN_ATTENTION_3 19
|
|
///
|
|
#define USER_MENU_SKIN_ATTENTION_4 20
|
|
///
|
|
#define USER_MENU_SELECT_SERVICE_TIME 21
|
|
|
|
// ìåíþ äëÿ êàðòî÷íîé ñèñòåìû
|
|
#define USER_MENU_WAIT_CARD 30
|
|
#define USER_MENU_BALANCE_CARD 31
|
|
#define USER_MENU_START_INSERT_CARD_MONEY 32
|
|
#define USER_MENU_ALL_PRICE 33
|
|
#define USER_MENU_SILVER_BONUS 34
|
|
#define USER_MENU_GOLD_BONUS 35
|
|
#define USER_MENU_PLATINUM_BONUS 36
|
|
#define USER_MENU_BRILLANCE_BONUS 37
|
|
#define USER_MENU_START_PAY_CARD 38
|
|
#define USER_MENU_INSERT_BANK_CARD 39
|
|
#define USER_MENU_ERROR_BANK_CARD 40
|
|
#define USER_MENU_INSERT_BONUS_CARD 41
|
|
#define USER_MENU_FINISH_PAY_BONUS_CARD 42
|
|
|
|
#define USER_MENU_ABONENT_PROCESSING 43
|
|
#define USER_MENU_ABONENT_WRONG 44
|
|
|
|
///
|
|
#define USER_MENU_ERROR 255
|
|
|
|
CPU_INT08U user_menu_prev;
|
|
|
|
CPU_INT08U menu_timeout;
|
|
#define MENU_THANKS_TIMEOUT 5
|
|
#define MENU_CARD_FAIL_TIMEOUT 3
|
|
#define MENU_CARD_ABONEMENT_FAIL_TIMEOUT 6
|
|
#define MENU_ATTENTION_TIMEOUT 5
|
|
|
|
CPU_INT08U ch_index;
|
|
CPU_INT08U mode_index;
|
|
CPU_INT08U pay_index;
|
|
#define PAY_TYPE_CARD_ABONEMENT 0
|
|
#define PAY_TYPE_CARD 1
|
|
#define PAY_TYPE_CASH 2
|
|
|
|
CPU_INT08U solar_state[CHANNELS_NUM];
|
|
#define SOLAR_STATE_FREE 0
|
|
#define SOLAR_STATE_TIMEOUT_PRE 1
|
|
#define SOLAR_STATE_SUNBURN 2
|
|
#define SOLAR_STATE_VENT 3
|
|
#define SOLAR_STATE_TIMEOUT_AFTER 4
|
|
#define SOLAR_STATE_PAUSE 5
|
|
#define SOLAR_STATE_CLEANING 6
|
|
|
|
CPU_INT08U sunburn_mode[CHANNELS_NUM];
|
|
#define SUNBURN_MODE_COLLATEN 0
|
|
#define SUNBURN_MODE_UF 1
|
|
#define SUNBURN_MODE_MAX 2
|
|
|
|
CPU_INT08U pause_timeout[CHANNELS_NUM];
|
|
#define SOLAR_PAUSE_TIMEOUT 60
|
|
|
|
CPU_INT08U skin_flags;
|
|
CPU_INT16U blink_ctr;
|
|
|
|
CPU_INT32U timetoend[CHANNELS_NUM];
|
|
CPU_INT32U relay_timeout[CHANNELS_NUM];
|
|
CPU_INT32U timetopay;
|
|
CPU_INT32U moneytopay;
|
|
CPU_INT32U last_key_time;
|
|
#define MENU_KEY_PRESS_TIMEOUT_MS 300000
|
|
|
|
CPU_INT32U time_cleaning_start[CHANNELS_NUM];
|
|
|
|
CPU_INT08U solar_srv[CHANNELS_NUM];
|
|
#define SOLAR_IN_SERVICE 1
|
|
#define SOLAR_IN_TEST 2
|
|
|
|
CPU_INT32U last_card_manipulation_time;
|
|
#define MENU_CARD_MANIPULATION_TIMEOUT_MS 10000
|
|
#define MENU_CARD_WRONG_TIMEOUT_MS 3000
|
|
#define MENU_WAIT_CARD_ABONEMENT_TIMEOUT_MS 20000
|
|
|
|
CPU_INT08U current_abonement;
|
|
#define SILVER_ABONEMENT 0
|
|
#define GOLD_ABONEMENT 1
|
|
#define PLATINUM_ABONEMENT 2
|
|
#define DIAMOND_ABONEMENT 3
|
|
|
|
CPU_INT32U abonementtopay;
|
|
|
|
} ApplicationState;
|
|
extern ApplicationState app_state;
|
|
#endif
|
|
|
|
#if defined(BOARD_SOLARIUM_WEB)
|
|
typedef struct
|
|
{
|
|
CPU_INT08U state;
|
|
/// ñâîáîäíî
|
|
#define APP_STATE_IDLE 0
|
|
/// çàïðîñ æåëàåìîãî âðåìåíè ó ïîëüçîâàòåëÿ
|
|
#define APP_STATE_USER_INPUT 1
|
|
/// îæèäàíèå ïîäòâåðæäåíèÿ âðåìåíè
|
|
#define APP_STATE_WAITING_ACK 2
|
|
/// ïàóçà ïåðåä ñåàíñîì
|
|
#define APP_STATE_PRE_PAUSE 3
|
|
/// çàãàð
|
|
#define APP_STATE_SUNBURN 4
|
|
/// âåíòèëÿöèÿ
|
|
#define APP_STATE_VENTILATION 5
|
|
CPU_INT32S timetoend;
|
|
CPU_INT32U userinputtime;
|
|
CPU_INT32U userinputmoney;
|
|
|
|
CPU_INT32S user_id;
|
|
CPU_INT32S timefromserver;
|
|
CPU_INT32S moneyfromserver;
|
|
|
|
} ApplicationState;
|
|
extern ApplicationState app_state;
|
|
|
|
#define SOLARIUM_LAMPS_ON() {FIO0SET_bit.P0_24 = 1;}
|
|
#define SOLARIUM_LAMPS_OFF() {FIO0CLR_bit.P0_24 = 1;}
|
|
#define SOLARIUM_VENT_ON() {FIO0SET_bit.P0_23 = 1;}
|
|
#define SOLARIUM_VENT_OFF() {FIO0CLR_bit.P0_23 = 1;}
|
|
#define SOLARIUM_ZUMMER_ON() {FIO1SET_bit.P1_21 = 1;}
|
|
#define SOLARIUM_ZUMMER_OFF() {FIO1CLR_bit.P1_21 = 1;}
|
|
|
|
/// òàéìàóò ñâÿçè ñ ñåðâåðîì, åñëè ñåðâåð äîëãî íå çàïðàøèâàë ñòàòóñ, îòîáðàæàåì, ÷òî ñâÿçè íåò
|
|
#define HTTP_SERVER_CONN_OK_TIMEOUT 5
|
|
|
|
extern const char* AppStatusStr(CPU_INT08U state);
|
|
extern void ZummerBeep(void);
|
|
extern void ZummerLongBeep(void);
|
|
|
|
#endif
|
|
|
|
extern CPU_INT32U incas_bill_nom_counter[24];
|
|
extern CPU_INT32U incas_common_bill_counter;
|
|
|
|
#define KBRD_TASK_STK_SIZE 64
|
|
#define USER_TASK_STK_SIZE 320
|
|
#define MENU_TASK_STK_SIZE 256
|
|
#define COIN_TASK_STK_SIZE 64
|
|
#define VALIDATOR_TASK_STK_SIZE 192
|
|
#define FISCAL_TASK_STK_SIZE 192
|
|
#define MODEM_TASK_STK_SIZE 256
|
|
#define CONSOLE_TASK_STK_SIZE 320
|
|
#define HOST_TASK_STK_SIZE 256
|
|
#define TERM_TASK_STK_SIZE 512
|
|
#define HTTPD_TASK_STK_SIZE 512
|
|
#define SCORE_TASK_STK_SIZE 128
|
|
#define MUSIC_TASK_STK_SIZE 256
|
|
|
|
#define VALIDATOR_TASK_PRIO (USER_HIGHEST_PRIO)
|
|
#define USER_TASK_PRIO (USER_HIGHEST_PRIO + 1)
|
|
#define COIN_TASK_PRIO (USER_HIGHEST_PRIO + 2)
|
|
#define KBRD_TASK_PRIO (USER_HIGHEST_PRIO + 3)
|
|
#define FISCAL_TASK_PRIO (USER_HIGHEST_PRIO + 4)
|
|
#define MENU_TASK_PRIO (USER_HIGHEST_PRIO + 5)
|
|
#define CONSOLE_TASK_PRIO (USER_HIGHEST_PRIO + 6)
|
|
#define HOST_TASK_PRIO (USER_HIGHEST_PRIO + 7)
|
|
#define HTTPD_TASK_PRIO (USER_HIGHEST_PRIO + 8)
|
|
#define TERM_TASK_PRIO (USER_HIGHEST_PRIO + 9)
|
|
#define SCORE_TASK_PRIO (USER_HIGHEST_PRIO + 10)
|
|
#define MUSIC_TASK_PRIO (USER_HIGHEST_PRIO + 11)
|
|
#define MODEM_TASK_PRIO (USER_LOWEST_PRIO)
|
|
|
|
|
|
enum{
|
|
EVENT_SEC = 1,
|
|
EVENT_STARTUP,
|
|
|
|
EVENT_COIN_INSERTED,
|
|
EVENT_BILL_ESCROW,
|
|
EVENT_BILL_STACKED,
|
|
|
|
EVENT_MODE_CHANGE,
|
|
|
|
EVENT_KEY_EMPTY,
|
|
EVENT_KEY_POST1,
|
|
EVENT_KEY_POST2,
|
|
EVENT_KEY_POST3,
|
|
EVENT_KEY_POST4,
|
|
EVENT_KEY_POST5,
|
|
EVENT_KEY_POST6,
|
|
EVENT_KEY_POST7,
|
|
EVENT_KEY_POST8,
|
|
EVENT_KEY_CANSEL,
|
|
EVENT_KEY_START,
|
|
EVENT_KEY_LEFT,
|
|
EVENT_KEY_RIGHT,
|
|
EVENT_KEY_DOWN,
|
|
EVENT_KEY_UP,
|
|
EVENT_KEY_STOP,
|
|
#if defined(BOARD_SOLARIUM_WEB)
|
|
EVENT_KEY_DIGIT0,
|
|
EVENT_KEY_DIGIT1,
|
|
EVENT_KEY_DIGIT2,
|
|
EVENT_KEY_DIGIT3,
|
|
EVENT_KEY_DIGIT4,
|
|
EVENT_KEY_DIGIT5,
|
|
EVENT_KEY_DIGIT6,
|
|
EVENT_KEY_DIGIT7,
|
|
EVENT_KEY_DIGIT8,
|
|
EVENT_KEY_DIGIT9,
|
|
EVENT_KEY_STAR,
|
|
EVENT_KEY_SHARP,
|
|
EVENT_REQUEST_USER_INPUT,
|
|
EVENT_USER_INPUT_FINISHED,
|
|
EVENT_SHOW_ZERO_MONEY,
|
|
EVENT_NACK_USER_INPUT,
|
|
EVENT_ACK_USER_INPUT,
|
|
EVENT_ABORT_OPERATIONS,
|
|
EVENT_SYSTEM_REBOOT,
|
|
#endif
|
|
|
|
#if defined(BOARD_SOLARIUM_VLAD)
|
|
EVENT_KEY_F1,
|
|
EVENT_KEY_F2,
|
|
EVENT_KEY_F3,
|
|
EVENT_KEY_SOLAR_START1,
|
|
EVENT_KEY_SOLAR_START2,
|
|
EVENT_KEY_SOLAR_START3,//28
|
|
EVENT_KEY_SOLAR_STOP1,
|
|
EVENT_KEY_SOLAR_STOP2,
|
|
EVENT_KEY_SOLAR_STOP3,
|
|
EVENT_OPEN_RELAY1,
|
|
EVENT_OPEN_RELAY2,
|
|
EVENT_OPEN_RELAY3,
|
|
EVENT_CLOSE_RELAY1,
|
|
EVENT_CLOSE_RELAY2,
|
|
EVENT_CLOSE_RELAY3,
|
|
EVENT_BLINK,
|
|
EVENT_FINISH_PAYMENT,
|
|
EVENT_PASS_OK,
|
|
EVENT_PASS_FAIL,
|
|
EVENT_PLAY_SOUND_FILE,
|
|
EVENT_STOP_SOUND_FILE,
|
|
EVENT_UPDATE_MUSIC_VOLUME,
|
|
#endif
|
|
|
|
EVENT_INCASSATION,
|
|
EVENT_INCASSATION_FINISH,
|
|
#if defined(BOARD_POST_CARWASH)
|
|
EVENT_PULSEOUT
|
|
#elif defined(BOARD_CENTRAL_CARWASH)
|
|
EVENT_REREAD_SIGNAL_LEVEL,
|
|
#endif
|
|
|
|
#if defined(BOARD_SOLARIUM_VLAD)
|
|
EVENT_FINISH_PAYMENT_ABONEMENT,
|
|
EVENT_FINISH_PAYMENT_ABONEMENT_SOLARIUM,
|
|
#endif
|
|
};
|
|
|
|
#define EVENT_KEY_LEFT EVENT_KEY_POST2
|
|
#define EVENT_KEY_RIGHT EVENT_KEY_POST5
|
|
|
|
extern CPU_INT32U SystemTime;
|
|
extern CPU_INT32U TerminalMoney;
|
|
extern CPU_INT08U RecentChannel;
|
|
|
|
extern void StartUserApplication(void);
|
|
extern void UserStartupFunc(void);
|
|
extern void PostUserEvent(int event);
|
|
extern void InitUserMenu(void);
|
|
extern int GetRecentChannelPrice(CPU_INT08U ch, CPU_INT32U* price, CPU_INT32U* time);
|
|
extern void save_config_params(void);
|
|
extern void init_config_params(void);
|
|
extern void AddOutPulses(int count, int len_ms, int len_pause_ms);
|
|
extern void UserPrintErrorMenu(void);
|
|
extern CPU_INT32U GetAcceptedMoney(void);
|
|
extern void SetAcceptedMoney(CPU_INT32U money);
|
|
extern void PrintCardBill(void);
|
|
extern void UserPrintTerminalRequestMenu();
|
|
extern void UserPrintPaymentErrorMenu(void);
|
|
extern void UserPrintResultMenu(void);
|
|
|
|
#endif //#ifndef _APP_SERV_H_
|