Files

340 lines
6.2 KiB
C
Executable File

#ifndef _IWEB_TASK_H_
#define _IWEB_TASK_H_
#include "type.h"
#include "config.h"
#include "web_server.h"
#define NEW_EMV7_ONESHU 1
#define SHU_TEST 0
#define _DEBUG_DISPLAY_SOCKET_WEB_ 0
#define _LOAD_RAM_PARA_ 1
#define _LOAD_FILE_PARA_ 1
#define _STORE_FILE_PARA_ 1
#define _TOTAL_STATUS_ 0
#define _TOTAL_SET_ 1
#define OUTPUT_LOG_FILE_SHELL "sh /aw/anywave/web/sh/output_log_file.sh"
//获取最开始的5条日志信息
#define LOG_WEB_PER_FRAME_NUM 5
#define CGI_PRINT 1
#define configTICK_RATE_HZ 100
#define OS_TICKS_PER_SEC (configTICK_RATE_HZ)
#define TCP_SOCKET_SERVER_PORT 30002 //7777
//#define CHECK_UPGRADE_PACKAGE "sh /aw/anywave/web/sh/upgrade_shell/check_package.sh"
//#define DO_UPGRADE_RUN "sh /aw/anywave/web/sh/upgrade_shell/extract_run_package.sh"
#define CGI_CTTB_WEB_SYSPARA 1
#define CGI_CTTB_WEB_RFPARA 2
#define CGI_CTTB_WEB_MODE_MFN 3
#define CGI_CTTB_WEB_MODE_SFN 4
/*#define CGI_CTTB_WEB_TS2IP_1 5
#define CGI_CTTB_WEB_TS2IP_2 6
#define CGI_CTTB_SYS_ADMIN_IPCFG 7*/
#define CGI_ATSC_WEB_SYSPARA 1
#define CGI_ATSC_WEB_RFPARA 2
#define CGI_ATSC_WEB_MODE_MFN 3
#define CGI_ATSC_WEB_MODE_SFN 4
/*
typedef enum
{
WEB_LOGIN = 0,
WEB_STATUS,
WEB_SET,
WEB_RF,
WEB_MODE,
WEB_TS,
WEB_LATCH,
WEB_NET,
WEB_LOG,
WEB_PSIP,
WEB_STATUS_1,
WEB_SET_1,
WEB_RF_1,
WEB_MODE_1,
WEB_TS_1,
WEB_LATCH_1,
WEB_NET_1,
WEB_INDEX_END,
WEB_SET_FREQ
} WEB_FLAG_INDEX;
*/
typedef struct
{
uint32 ip_out;
uint32 ip_out_rate_kbps;
uint32 asi_out;
uint32 asi_out_rate_kbps;
}S_CGI_STATE_PARA_TSOIP;
//---------------------------------------------------
#define __usr_confirm_webh__ 1
#if __usr_confirm_webh__
typedef enum {
GET_METHOD=0,
SET_METHOD,
UPDATE_METHOD
}en_MSG_TYPE;
//key
enum {
COM_STATUS_FORMS0_KEY,
WEB_UPGRADE,
/* sysstatus */
CGIKEY_SYS_STATUS,
CGIKEY_STATUS_TUNER,
CGIKEY_STATUS_PAC,
CGIKEY_STATUS_GPS,
CGIKEY_SYS_VER,
CGIKEY_STATUS_MAC_SN,
/* sys cfg */
CGIKEY_SYS_CFG,
CGIKEY_SYS_NET,
CGIKEY_SYS_DPD_STATE,
CGIKEY_SYS_RST,
CGIKEY_SYS_TIME, // time
/* RF cfg */
CGIKEY_RF_CFG,
/* RF cfg */
CGIKEY_TSID_PSIP,
CGIKEY_TSID_PSIP_CFG,
CGIKEY_TSOIP_NUM,
/* tsoip_info */
CGIKEY_TSOIP_INFO,
/* tsoip */
CGIKEY_TSOIP_SYSTS1,
CGIKEY_TSOIP_SYSTS2,
CGIKEY_TSOIP_NET1,
CGIKEY_TSOIP_NET2,
/* log */
LOG_FILE_OUTPUT,
CGIKEY_WEB_TITLE,
CGIKEY_ATSC1_LICENCES,
CGIKEY_ATSC1_SYSTEM_KEY,
CGIKEY_SYS_NTP,
CGIKEY_SYS_TIMEZONE,
CGIKEY_CFG_USR_PASSWD,
#if 0
/* Mode cfg */
CGIKEY_MODE_MFN_CFG,
CGIKEY_MODE_SFN_CFG,
#endif
/* 10 MHz reference output enable (PR07). Appended at the very end so no
* existing key value is renumbered — the CGI<->app socket keyType must
* stay byte-aligned with every cgi_socket.h copy. */
CGIKEY_M10_CFG,
/* IQ spectrum/8VSB analysis enable; keep appended to preserve old values. */
CGIKEY_SPEC_CFG,
END_KEY
};
struct cgi_key_list {
char *key;
char *value;
struct cgi_key_list *next;
};
typedef int (*get_func_t)(char *buf,short maxlen);
typedef int (*set_func_t)(char *value,short maxlen);
typedef int (*read_func_t)(char *value,short maxlen);
typedef int (*save_func_t)(char *value,short maxlen);
typedef struct cgi_func_list {
uint16 keyNum;
get_func_t get_func;
set_func_t set_func;
read_func_t read_func;
save_func_t save_func;
}cgi_func_list;
typedef struct cgi_process_elem {
int method;
int keyType;
char data[1024];
}cgi_process_elem_t,st_CGI_SOCK_PKG;
typedef enum {
TYPE_U8=0,
TYPE_I8,
TYPE_U16,
TYPE_I16,
TYPE_U32,
TYPE_I32,
TYPE_FLOAT,
TYPE_DOUBLE,
TYPE_STRING,
}en_PARA_TYPE;
typedef enum
{
FACTOR_1=0,
FACTOR_100,
FACTOR_OTHER
}en_FACTOR;
typedef struct
{
void* paraVal;
en_PARA_TYPE paraType;
en_FACTOR paraFactor;
}st_CGI_PARA;
#endif//__usr_confirm_webh__
//---------------------------------------------------
typedef struct
{
unsigned char addr4;
unsigned char addr3;
unsigned char addr2;
unsigned char addr1;
}st_NET_PART_BYTE;
typedef enum
{
NET_INFO_IP=1,
NET_INFO_MASK,
NET_INFO_GATEWAY
}en_NET_PARA_TYPE;
/*
typedef union
{
struct
{
unsigned char addr4;
unsigned char addr3;
unsigned char addr2;
unsigned char addr1;
}PART;
unsigned int addr;
}IPV4,*PIPV4;*/
typedef struct
{
IPV4 ip;
IPV4 mask;
IPV4 gateway;
}st_CAB_NET_PARA;
#define MSG_DATA_LEN 256
typedef struct _msg_cgi_sock_
{
unsigned char msgtype; // 0:get 1:set 2:update
char key[10]; //
char data[MSG_DATA_LEN];
}msg_t, *msg_t_p;
typedef enum
{
SET_SYS_BOOT,
SET_SYS_SHUTDOWN,
SET_SYS_WAIT
}en_BOOT_SHUTDOWN;
/*
typedef struct {
uint8 asi_input; // 码流选择
u8_sw asi_status;
u8_sw rate_status;
uint8 gps_status;
u8_sw sip_status;
u8_sw pps_status;
uint8 tsnr;// 7
uint8 l_imd;
uint8 r_imd;
uint8 sfn_status; //单频网状态 0:正常 1:失效
uint8 rf_cry; //射频本振 0:正常 1:失效
uint32 temp;
uint32 max_dly;
uint32 net_dly;
uint32 lcl_dly;
uint32 ts1_pure_rate;
uint32 ts2_pure_rate;
}S_CGI_STATE_PARA_T;
typedef struct
{
uint8 ldpc_qam;
uint8 pn;
uint8 zbpilot;
uint8 int_int;
}S_CGI_MODE_MFN_PARA_T;
typedef struct
{
uint32 delay;
uint16 txid;
u8_sw cf;
u8_sw sipdel;
uint8 zp;
}S_CGI_MODE_SFN_PARA_T;
*/
extern void *web_thr(void *ppara);
extern void http_save_change_para(void *p);
extern void http_load_default_para(uint32 type, void *p);
void ntp_manual_sync(void);
void check_ntp_sync_state(void);
int set_ntp_server_ip_to_system(u8 *pip, u8 ntp_switch, u8 only_manual_sync);
#endif//_IWEB_TASK_H_