mirror of
https://github.com/dimoniche/solarium.vlad.git
synced 2026-01-29 20:43:31 +03:00
294 lines
8.3 KiB
C
294 lines
8.3 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_ERROR 255
|
||
|
||
CPU_INT08U user_menu_prev;
|
||
|
||
CPU_INT08U menu_timeout;
|
||
#define MENU_THANKS_TIMEOUT 5
|
||
#define MENU_CARD_FAIL_TIMEOUT 3
|
||
#define MENU_ATTENTION_TIMEOUT 5
|
||
|
||
CPU_INT08U ch_index;
|
||
CPU_INT08U mode_index;
|
||
CPU_INT08U pay_index;
|
||
#define PAY_TYPE_CASH 0
|
||
#define PAY_TYPE_CARD 1
|
||
|
||
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
|
||
|
||
} ApplicationState;
|
||
extern ApplicationState app_state;
|
||
#endif
|
||
|
||
#if defined(BOARD_SOLARIUM_WEB)
|
||
typedef struct
|
||
{
|
||
CPU_INT08U state;
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
#define APP_STATE_IDLE 0
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
#define APP_STATE_USER_INPUT 1
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
#define APP_STATE_WAITING_ACK 2
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
#define APP_STATE_PRE_PAUSE 3
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
#define APP_STATE_SUNBURN 4
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
#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;}
|
||
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||
#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
|
||
};
|
||
|
||
#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_
|