1523 lines
40 KiB
C
Executable File
1523 lines
40 KiB
C
Executable File
#ifndef __LCD_TASK_H
|
|
#define __LCD_TASK_H
|
|
#include "type.h"
|
|
#include "config.h"
|
|
#include "lcd.h"
|
|
|
|
#include "gps.h"
|
|
|
|
/*
|
|
#include "gps.h"
|
|
#include "stdio.h"
|
|
#include "rtc.h"
|
|
*/
|
|
|
|
#define FPGA_AMP_SAT_MAX (65530)
|
|
#define FPGA_AMP_SAT_DEF (23000)
|
|
|
|
|
|
#define LOCAL_MAC_FIRST_OCTET 0X94
|
|
#define LOCAL_MAC_SECOND_OCTET 0X40
|
|
#define LOCAL_MAC_THIRD_OCTET 0XA2
|
|
|
|
#define LCD_LIGHT_OFF 0
|
|
#define LCD_LIGHT_ON 1
|
|
#define CTRL_REMOTE 0
|
|
#define CTRL_LOCAL 1
|
|
#define SYS_MODE_LEGACY 0
|
|
#define SYS_MODE_ATSC30 1
|
|
#define NON_OP_MAX_TIME 30*60 //无按键液晶灭时间 改为30分钟
|
|
#define NON_OP_RETURN_LOG 30 //判断系统空闲时间
|
|
#define CHECK_SIGNAL_TIME 100 //100 TICK 秒
|
|
#define CHECK_LATCH_TIME 100
|
|
#if DEBUG_AUTO_ADPC
|
|
#define CHECK_SIGNAL_NUM 16 //韩国转发器,空闲时检测信号平均个数
|
|
#else
|
|
#define CHECK_SIGNAL_NUM 128 //韩国转发器,空闲时检测信号平均个数
|
|
#endif
|
|
|
|
#define IMD_LOW_HOLD 50 //IMD下下限
|
|
#define TSNR_LOW_HOLD 27 //tsnr下限
|
|
#define TSNR_VALID_HOLD 15 //tsnr最低有效值
|
|
#define MAX_AUTO_UPDATE_TIME 9
|
|
#define R_IMD_DEFAULT 4 //imd 相对门限值
|
|
#define R_SNR_DEFAULT 2 //snr 相对门限值
|
|
|
|
#define A_SNR_DEFAUTL 32 //绝对门限
|
|
#define A_IMD_DEFAULT 36 //
|
|
|
|
|
|
#define REFRESH_PID_TIME 20 //刷新pid时间 单位s
|
|
|
|
#define DEFAULT_FREQ_NUM 44 //默认频点,对应707M 改成653
|
|
|
|
|
|
#define FAC_POWER_DEFAULT 0xFF
|
|
#define FAC_POWER_U 1<<0
|
|
#define FAC_POWER_V3 1<<1
|
|
#define FAC_POWER_V1 1<<2
|
|
#define FAC_POWER_ADD 1<<3
|
|
|
|
#define ATV_FREQ_8M_MIN 3
|
|
#define ATV_FREQ_8M_MAX 62
|
|
#define ATV_DEFAULT_FREQ_NUM 42 //默认频点,对应707M 改成653
|
|
|
|
|
|
#define FREQ_MIN_V1 2
|
|
#define FREQ_MAX_V1 6
|
|
|
|
#define FREQ_MIN_V 7
|
|
#define FREQ_MAX_V 13 //7
|
|
|
|
#define FREQ_MIN_V3 FREQ_MIN_V
|
|
#define FREQ_MAX_V3 FREQ_MAX_V
|
|
|
|
#define FREQ_MIN_U 14
|
|
#define FREQ_MAX_U 83
|
|
|
|
#define FREQ_MAX_ALL 83
|
|
|
|
#define FREQ_6M_MIN_U 14
|
|
#define FREQ_6M_MAX_U 83
|
|
|
|
#define UPDATE_DELAY 40 //切换test后,延时校正时间
|
|
|
|
|
|
#define LINE_MAX_NUM 40 //一行可以显示的字符数
|
|
|
|
#define PROMPT_CHAR "*" //编辑提示符
|
|
#define PROMPT_CHANGE "?" //进入修改状态提示符
|
|
|
|
|
|
#define MAX_PROMPT_NUM 32
|
|
|
|
|
|
#define NET_MAX_DELAY (10000000-1) //net屏 delay最大值
|
|
#define RF_MAX_HZ 50000
|
|
|
|
#define RF_POWER_P_C_ON (RF_POWER_MAX+100) //归一化打开时的最大值 增加量 5db
|
|
#define RF_POWER_MAX 600 //单位0.05db
|
|
#define RF_POWER_ZERO 500 //0db 对应的power数
|
|
#define RF_POWER_DB_MAX 1424 //db最大值
|
|
|
|
#define AD_MAX_POWER_DEFAULT 600 //高级菜单默认最大功率 0
|
|
|
|
#define WE_POWER_ZERO 300 //we屏 0db对应值
|
|
#define WE_POWER_MIN 0
|
|
#define WE_POWER_MAX 500
|
|
#define WE_POWER_MAX_V1_1 720 //V1.1物理功率余量允许到+21dB
|
|
|
|
typedef enum
|
|
{
|
|
HARDWARE_VERSION_V1_0 = 0,
|
|
HARDWARE_VERSION_V1_1,
|
|
HARDWARE_VERSION_END
|
|
} HARDWARE_VERSION;
|
|
|
|
#define DEFAULT_HARDWARE_VERSION HARDWARE_VERSION_V1_1
|
|
|
|
#define OCXO_MAX 10 //单位0.1hz system菜单
|
|
#define OCXO_UNIT 106 //保存时的放大倍数
|
|
#define LOG_RSSI_ADJUST 107 //读取tuner的rssi修正值
|
|
|
|
#if USE_NEW_POWER_CFG
|
|
#define DEFAULT_RF_POWER_DB RF_POWER_ZERO
|
|
#define DEFAULT_RF_POWER_DB_3X RF_POWER_ZERO
|
|
#else
|
|
#define DEFAULT_RF_POWER_DB 1051
|
|
#define DEFAULT_RF_POWER_DB_3X 951 //3x默认功率偏高5db,此处要小一点
|
|
#endif
|
|
|
|
#define SYS_LCD 10 //客户菜单开始序号,防止前边log菜单增加
|
|
#define ADV_LCD 100 //高级菜单序号
|
|
#define FAC_LCD 200 //工厂菜单开始序号
|
|
#define SPE_LCD 300 //特殊屏幕开始序号
|
|
|
|
#define PER_TICK_MS 10 //每tick ms值
|
|
#define KEY_ENTER_INTERVAL 800 //确认键按键间隔 单位ms
|
|
#define KEY_EXIT_INTERVAL 500 //取消键按键间隔
|
|
#define KEY_DEFAULT_INTERVAL 140 //其他按键默认间隔
|
|
#define KEY_JITTER_TIME 40 //按键去抖动间隔
|
|
|
|
#define POWER_CALC_REF_DET 38 //FWD计算时的det值
|
|
#define OFFSET_OF_STRUCT(st,para) ((uint32)&(((st *)0)->para))
|
|
|
|
#define CHECK_FPGA_GPS_LOCK_INTERVAL 100 //1S
|
|
#define CHECK_TS_ERR_INTERVAL 100 //1S
|
|
#define CHECK_AMP_ERR_INTERVAL 20000
|
|
#define CHECK_AGC_TIME 50 //0.5S
|
|
#define CHECK_AGC_MIN_ENUM 100
|
|
#define CHECK_AGC_MAX_ENUM 256*10
|
|
|
|
/* FSSI 量程: gain index gi_max(弱)->0%, gi_min(强)->100%。
|
|
* RTL 钳位下限 195(agc_spi_ctrl_gen.v)。真机扫功率标定后可收窄(Task13 V2)。 */
|
|
#define FSSI_GI_MIN 195
|
|
#define FSSI_GI_MAX 255
|
|
|
|
#define EEPROM_BACKUP_PARA_TYPE_NONE 0
|
|
#define EEPROM_BACKUP_PARA_TYPE_PREF 1 //工厂默认参数备份
|
|
#define EEPROM_BACKUP_PARA_TYPE_CUST 2 //客户手动备份
|
|
|
|
#define EEPROM_BACKUP_VALID_WORD 0X31 //备份区参数是否有效标志
|
|
|
|
|
|
#define KOREA_SNR_ADJ_MAX 50
|
|
#define KOREA_WD_SPE_VALUE 0X45
|
|
|
|
|
|
#define NET_SFN 0
|
|
#define NET_MFN 1
|
|
|
|
typedef enum
|
|
{
|
|
ASI_INPUT_TUNER = 0,
|
|
ASI_INPUT_TS ,
|
|
ASI_INPUT_EAS,
|
|
TSOIP_INPUT_IP,
|
|
SMPTE_INPUT,
|
|
ASI_INPUT_END,
|
|
}E_ASI_INPUT_TYPE;
|
|
|
|
typedef enum{
|
|
E_CHG_TX_POWER=1,
|
|
E_CHG_TX_FREQ,
|
|
E_CHG_CW,
|
|
E_CHG_TX_RF,
|
|
E_CHG_DPD,//5
|
|
}E_EXCID;
|
|
|
|
|
|
|
|
#define PSIP_MAX_CHANNLE_NUM 13
|
|
|
|
#define PSTS_CTRL_DISABLE 0
|
|
#define PSTS_CTRL_ENABLE 1
|
|
#define PSTS_CTRL_CLEAR 2
|
|
|
|
|
|
|
|
typedef struct
|
|
{
|
|
BOOL flag;
|
|
uint32 sec;
|
|
}S_UPDATE_AUTO_ADPC;
|
|
|
|
typedef enum
|
|
{
|
|
ASI_GP1A=0,
|
|
ASI_GP1B,
|
|
ASI_GP2A,
|
|
ASI_GP2B,
|
|
ASI_NONE,
|
|
}ASI_INPUT_SOURCE;
|
|
|
|
typedef enum
|
|
{
|
|
ASI_TS1_USED =0,
|
|
ASI_TS2_USED,
|
|
ASI_EAS_USED,
|
|
ASI_TUNER_USED,
|
|
TSOIP_USED,//add
|
|
SMPTE_USED,//add
|
|
ASI_NONE_ERR,
|
|
}ASI_GRP_STATE;
|
|
|
|
typedef enum
|
|
{
|
|
ASI_OK=0,
|
|
ASI_ERR,
|
|
}ASI_INPUT_STATE;
|
|
|
|
typedef struct
|
|
{
|
|
ASI_GRP_STATE input;
|
|
ASI_INPUT_STATE status;
|
|
}S_ASI_INPUT,*PS_ASI_INPUT;
|
|
|
|
//bit0,1: 00:ts1 01:ts2: 10:tuner 11:eas bit567 为1分别表示 ts1_lock eas_lock(ts2lock 复用) tuner_lock
|
|
//bit567 1:lock 0:err
|
|
typedef union
|
|
{
|
|
struct
|
|
{
|
|
uint8 ASI_STATUS :3; //old 0:TS1 1:TS1 2:TUNER 3:EAS
|
|
// 000:ts1 001:ts2 010:tuner
|
|
// 011:none 100:tsoip 110:smpte
|
|
uint8 SMPTE :1; //b3 add
|
|
uint8 TSOIP :1; //b4 add
|
|
uint8 TS1 :1; //b5 1:TS1 LOCKED
|
|
uint8 TS2_EAS :1; //b6 1:TS2/EAS LOCKE
|
|
uint8 TUNER :1; //b7 1:TUNER LOCKED
|
|
}PART;
|
|
uint8 asi;
|
|
}S_ASI_FPGA;
|
|
/*
|
|
|
|
[0] :overtemp
|
|
[1] :GPS UNLOCK/LOCK
|
|
[2] :overflow/underflow
|
|
[3-4]:INPUT
|
|
[5] :INPUT STATUS
|
|
|
|
*/
|
|
typedef struct
|
|
{
|
|
uint32 almOverTemperature:1; // 0 normal, 1 over temperature
|
|
uint32 almGpsLock:1; // 0 lock, 1 unlock
|
|
uint32 almOverFlow:1; // 0 undo
|
|
uint32 almInput:2;
|
|
uint32 almInputFlg:1;
|
|
uint32 rev:26;
|
|
}bt_LOG_ALARM;
|
|
|
|
typedef union
|
|
{
|
|
bt_LOG_ALARM btPart;
|
|
uint32 u32AlarmLog;
|
|
}S_ALARMS;
|
|
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32 mh;
|
|
uint32 ts_rate;
|
|
uint16 ref_log;
|
|
uint8 rxfreq; //频道号
|
|
uint8 txfreq;
|
|
|
|
uint8 gps;
|
|
uint8 gps_status;
|
|
uint8 gps_freq[2]; //byte1 :0 正 1负 byte2: 高4 A 低4 B -> +nE-m
|
|
uint8 temperature[4];
|
|
|
|
uint8 adpc;
|
|
uint8 resved;
|
|
uint8 asi_input; //检测到的输入口
|
|
uint8 input_ok_flag; //0:err 1:ok
|
|
|
|
uint8 status;
|
|
uint8 agc;
|
|
uint8 ts_under;
|
|
uint8 rsnr;
|
|
|
|
int8 rssi;
|
|
uint8 tsnr;
|
|
uint8 l_imd;
|
|
uint8 u_imd;
|
|
|
|
uint8 mode;
|
|
uint8 use_gps;
|
|
uint8 gps_1pps;
|
|
uint8 syserr;
|
|
|
|
uint8 Hz_10M;
|
|
uint8 tx;
|
|
uint8 fwd;
|
|
uint8 amp;
|
|
|
|
uint8 tuner_init_status;
|
|
uint8 tuner_lock_status;
|
|
int8 tuner_strength;
|
|
uint32 tuner_snr;
|
|
|
|
uint8 agc_state;
|
|
int agc_adj;
|
|
|
|
uint8 cfr_busy_stage1;
|
|
uint8 cfr_busy_stage2;
|
|
uint8 cfr_busy_stage3;
|
|
|
|
u8 ntp_state;
|
|
u8 ntp_state_last;
|
|
u8 ntp_manual_sync;
|
|
u8 ntp_ip_chg_flg;
|
|
u32 ntp_sync_delay;
|
|
}S_LOG_PARA,*PS_LOG_PARA;
|
|
|
|
typedef enum
|
|
{
|
|
TEST_OFF = 0,
|
|
TEST_ON,
|
|
}TEST_EM;
|
|
|
|
//" MODE ADPC MON RFOUT ASI PCR GPS RST"
|
|
typedef struct
|
|
{
|
|
uint8 adpc_err;
|
|
uint8 adpc_step;
|
|
uint8 adpc_delay;
|
|
uint8 adpc;
|
|
|
|
uint8 mode;
|
|
uint8 gps;
|
|
int8 ocxo;
|
|
uint8 net;
|
|
|
|
uint8 input; //asi tuner
|
|
uint8 ctrl;
|
|
uint8 test;
|
|
uint8 spec_enable;
|
|
|
|
uint8 web_title[ATSC_TITLE_LEN];
|
|
uint8 ab_mode; // [0:default only A] [1:ABswitch]
|
|
uint8 sntp_en;
|
|
uint8 sntp_sip[4];
|
|
uint8 sntp_date[SNTP_DATE_STRING_LEN];
|
|
uint8 sntp_time[SNTP_TIME_STRING_LEN];
|
|
|
|
uint8 dpd_phase;
|
|
uint8 flash_valid;
|
|
|
|
uint16 tsnr;
|
|
uint16 maxp;
|
|
uint16 flash_get_err_num;
|
|
|
|
uint8 save_load_data_percent;
|
|
uint8 final_stage;
|
|
|
|
uint8 ntp_ip[4];
|
|
int16 timezone_offset;
|
|
uint8 ntp_switch;
|
|
uint8 agc_att;
|
|
uint16 adrv9009_att;
|
|
uint8 orx_manu_gain;
|
|
uint8 hardware_version;
|
|
}S_SYSTEM_PARA,*PS_SYSTEM_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
int32 hz; //+-50.000k
|
|
uint16 power;
|
|
uint16 db;
|
|
|
|
uint8 rxfreq;
|
|
uint8 txfreq;
|
|
uint8 agc;
|
|
uint8 agc_err;
|
|
|
|
uint8 cw;
|
|
uint8 rf;
|
|
uint8 tx;
|
|
uint8 ssref;
|
|
|
|
uint32 lvl;
|
|
uint32 ref;
|
|
uint16 adrv_att;//todo temp
|
|
uint8 loop_fpara;
|
|
uint8 loop_fbw;
|
|
uint8 agc_att;
|
|
|
|
uint16 adrv9009_att;
|
|
uint8 orx_manu_gain;
|
|
}S_RF_PARA,*PS_RF_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint32 delay;
|
|
uint16 txid;
|
|
uint16 netid;
|
|
|
|
uint8 bratio;
|
|
uint8 reserved[3];
|
|
}S_NETWORK_PARA,*PS_NETWORK_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint16 pid_det;
|
|
uint8 sync;
|
|
uint8 tcp_c;
|
|
|
|
uint8 zp1f;
|
|
uint8 reserved[3];
|
|
}S_MODE_PARA,*PS_MODE_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint32 det_cnt;
|
|
uint32 det_pid;
|
|
uint32 pid_det;
|
|
|
|
uint32 count; //循环中使用
|
|
uint32 det_pid_count[5];
|
|
uint32 pid_count[5];
|
|
}S_PID_STATUS_PARA,*PS_PID_STATUS_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 pcr;
|
|
uint8 slow_up;
|
|
uint8 slow_down;
|
|
uint8 swrt;
|
|
|
|
uint8 pac; //同步与 wh屏pac;
|
|
uint8 asiout;
|
|
uint8 reserverd[2];
|
|
//uint16 power_max;
|
|
}S_ADVANCE_PARA,*PS_ADVANCE_PARA;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint8 m_ts;
|
|
uint8 m_10m;
|
|
uint8 m_1pps;
|
|
uint8 m_dly_hh;
|
|
|
|
uint8 m_dly_mm;
|
|
uint8 m_dly_ss;
|
|
uint8 reserved[2];
|
|
}S_ADVANCE2_PARA,*PS_ADVANCE2_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint16 power_ref; // 低12位有效,高位是标志位 ,仅读时判断该位,写时不存
|
|
uint8 rc_cmd;
|
|
uint8 fwd_cal;
|
|
|
|
uint8 cor; //暂时添加 功率类型 0:100W 1:1000W
|
|
uint8 cw;
|
|
uint8 fwd_cal_dly;
|
|
uint8 rst;
|
|
|
|
uint8 mptv; //0:lptv 1:mptv //仅AW_ATSC_9X版本中使用
|
|
uint8 cal_fagc_cw; // PR13: FWD cal时刻FAGC控制字高字节(0.5dB/step); 复用原reserverd1[1]; 0xFF=未标定
|
|
uint16 max_power;
|
|
|
|
uint16 ofst; // function == fwd_cal
|
|
uint16 cal_orx_pwr_hdb; // PR13: FWD cal时刻ORx数字功率, 归一化到0.5dB的步数(orx_pwr_halfdb输出); 0xFFFF=未标定
|
|
}S_ADVANCE3_PARA,*PS_ADVANCE3_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 pdt;
|
|
uint8 reserve_cfr;//cfr;
|
|
uint8 adpc;
|
|
uint8 fssi;
|
|
|
|
uint8 auto_adpc;
|
|
uint8 ab_flag;
|
|
uint8 ab_sec;
|
|
uint8 reserved;
|
|
|
|
}S_ADVANCE4_PARA,*PS_ADVANCE4_PARA;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint8 time;
|
|
uint8 a_snr;
|
|
uint8 a_imd; //绝对门限值
|
|
uint8 r_snr;
|
|
|
|
uint8 r_imd; //相对门限
|
|
uint8 c_t; //剩余次数,不存E2,上电该值等于time
|
|
uint8 dpd;
|
|
uint8 use_dpd; //实际使用的DPD类型; 若由OFF直接到UPDATE,则强制NEW,否则根据设置类型UPDATE
|
|
}S_ADVANCE5_PARA,*PS_ADVANCE5_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 reset;
|
|
uint8 u1;
|
|
uint8 u2;
|
|
uint8 rf;
|
|
|
|
uint8 gps;
|
|
uint8 ts;
|
|
uint8 sys;
|
|
uint8 m_1pps;
|
|
|
|
uint8 sfn;
|
|
uint8 reverved[3];
|
|
}S_LATCH_PARA, *PS_LATCH_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint64 sn;
|
|
uint32 gui_key;
|
|
|
|
uint32 psip_key;
|
|
uint32 eas_key;
|
|
uint8 psip_key_valid;
|
|
uint8 eas_key_valid;
|
|
|
|
uint8 gui_key_valid;//uint8 reserverd[2];
|
|
}S_SN_PARA,*PS_SN_PARA;
|
|
|
|
|
|
//---------
|
|
#if 1
|
|
typedef struct
|
|
{
|
|
uint8_t RTC_WeekDay; /*!< Specifies the RTC Date WeekDay.
|
|
This parameter can be a value of @ref RTC_WeekDay_Definitions */
|
|
|
|
uint8_t RTC_Month; /*!< Specifies the RTC Date Month (in BCD format).
|
|
This parameter can be a value of @ref RTC_Month_Date_Definitions */
|
|
|
|
uint8_t RTC_Date; /*!< Specifies the RTC Date.
|
|
This parameter must be set to a value in the 1-31 range. */
|
|
|
|
uint8_t RTC_Year; /*!< Specifies the RTC Date Year.
|
|
This parameter must be set to a value in the 0-99 range. */
|
|
}RTC_DateTypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
uint8_t RTC_Hours; /*!< Specifies the RTC Time Hour.
|
|
This parameter must be set to a value in the 0-12 range
|
|
if the RTC_HourFormat_12 is selected or 0-23 range if
|
|
the RTC_HourFormat_24 is selected. */
|
|
|
|
uint8_t RTC_Minutes; /*!< Specifies the RTC Time Minutes.
|
|
This parameter must be set to a value in the 0-59 range. */
|
|
|
|
uint8_t RTC_Seconds; /*!< Specifies the RTC Time Seconds.
|
|
This parameter must be set to a value in the 0-59 range. */
|
|
|
|
uint8_t RTC_H12; /*!< Specifies the RTC AM/PM Time.
|
|
This parameter can be a value of @ref RTC_AM_PM_Definitions */
|
|
}RTC_TimeTypeDef;
|
|
|
|
//----------
|
|
|
|
typedef struct
|
|
{
|
|
uint8 distortion_sw;//内部失真曲线开关
|
|
uint16 agc_pwr; //射频agc目标电平控制字
|
|
uint16 err_th; //dpd误差值保护门限
|
|
uint8 err_cnt_th; //dpd误差数量保护门限
|
|
uint16 amp_sat; //发射信号饱和门限
|
|
uint16 amp_sat_sqr; //
|
|
uint16 dpd_test;
|
|
uint8 dpd_mode; //支持两种流程
|
|
uint8 phase6_minute;//阶段6执行的时间
|
|
uint16 wpp_th; //dpd保护门限
|
|
uint16 gl; // gain_limit
|
|
uint8 dpd_ctl;
|
|
}S_DPD_PARA,*PS_DPD_PARA;
|
|
|
|
//本地用户信息,明文保存!!!
|
|
typedef enum {LOGIN_NULL=0,LOGIN_NORMAL,LOGIN_ADMIN,LOGIN_ENGINEER}LOGIN_TYPE;
|
|
|
|
#define MAX_REG_USER_INFO 5 //本地保存的用户数目
|
|
|
|
#define MAX_USER_NAME_LEN 16
|
|
#define MAX_USER_PW_LEN 16
|
|
#define MAX_CFG_LEN 16
|
|
|
|
typedef struct
|
|
{
|
|
uint8 user_type;
|
|
uint8 reservd1[3];
|
|
|
|
char name[MAX_USER_NAME_LEN];
|
|
char password[MAX_USER_PW_LEN];
|
|
}S_USER_INFO,*PS_USER_INFO;
|
|
|
|
|
|
enum{E_DPD_MODE_AUTO=0,E_DPD_MODE_MANUAL};
|
|
//----------
|
|
|
|
// para of tsoip
|
|
typedef struct
|
|
{
|
|
uint8 ts_in_flag; //ASI端是否有码流输入 有为1,无为0,下同
|
|
uint8 ts_out_flag; //ASI输出码率是否正常 对应的就是IP_IN是否正常
|
|
uint8 ts_err;
|
|
uint8 sys_err;
|
|
|
|
uint32 ip_out_rate_kbps; //ip口输出
|
|
uint32 asi_out_rate_kbps; //asi口输出
|
|
|
|
uint8 tsio_state;//h20190221 //获取到ip12的选择和锁定状态(从FPGA读取)
|
|
}S_TSOIP_LOG_PARA,*PS_TSOIP_LOG_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 id;
|
|
uint8 fpga_upgrade; //fpga切换到升级模式,不存E2,默认为0
|
|
uint8 upgrade;
|
|
uint8 phy_type;
|
|
|
|
uint8 dest_ip[4]; // for ts to ip
|
|
uint8 ip[4]; // when [receive_type] :signle, tsoip work at ip
|
|
uint8 gateway[4];
|
|
uint8 mask[4];
|
|
|
|
uint8 mac[4];
|
|
|
|
uint8 multi_address[4]; // when receive_type is multi
|
|
|
|
uint16 port; //本地接收端口
|
|
uint16 dest_port; //发送端口号
|
|
|
|
uint16 udp_rtp; //0:udp 1:rtp //为了和老代码保持兼容, 使用2字节类型
|
|
uint16 packet_len; //0:188 1:204;
|
|
uint16 receive_type; //1:sigle 0:multi
|
|
uint16 rst;
|
|
|
|
uint8 ip_direct;
|
|
uint8 resvd[1];
|
|
uint16 fec; //IP2TS端为只读模式,否则可配置,下面3个参数相同
|
|
|
|
uint8 ip12_sel; //h20190221 //将ip1或ip2设定为输入,01选择ip1,10选择ip2(下发FPGA)
|
|
uint8 ret;//h20190221
|
|
uint8 sfn_mfn_sel;
|
|
|
|
|
|
uint16 delay;
|
|
uint16 para_reset; //IP2TS参数恢复默认
|
|
uint16 row;
|
|
uint16 col;
|
|
}S_TSOIP_CONFIG_PARA,*PS_TSOIP_CONFIG_PARA;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint8 hw[20];
|
|
uint8 fpga[20];
|
|
uint8 mcu[20];
|
|
|
|
uint8 fpga_hex[4];
|
|
uint8 mcu_hex[4];
|
|
uint32 i2c_ver; //最高字节 mcuVN.N 然后依次 mm dd fpgaVn.n
|
|
}S_TSOIP_VER_PARA,*PS_TSOIP_VER_PARA;
|
|
|
|
|
|
// TSOIP
|
|
typedef struct
|
|
{
|
|
S_TSOIP_LOG_PARA tsoip_log_para;
|
|
S_TSOIP_CONFIG_PARA tsoip_config_para;
|
|
S_TSOIP_VER_PARA tsoip_ver_para;
|
|
#if USE_HTTP_LOGIN
|
|
S_USER_INFO reg_user_info[MAX_REG_USER_INFO];
|
|
#endif
|
|
}S_IP2TS_PARA; // TSOIP全局参数
|
|
|
|
#endif//
|
|
//-----------
|
|
|
|
typedef struct
|
|
{
|
|
RTC_DateTypeDef dd;
|
|
RTC_TimeTypeDef tt;
|
|
int8 gmt;
|
|
uint8 resved[3];
|
|
}S_ADVANCE_DT_PARA,*PS_ADVANCE_DT_PARA;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32 confirm;
|
|
}S_UP_CONFIRM_PARA,*PS_UP_CONFIRM_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint32 confirm;
|
|
}S_DISPINFO_CONFIRM_PARA,*PS_DISPINFO_CONFIRM_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 id;
|
|
uint8 bps;
|
|
uint8 standard;
|
|
uint8 reserved;
|
|
uint8 ip[4];
|
|
uint8 gateway[4];
|
|
uint8 mask[4];
|
|
uint8 dns[4];
|
|
uint8 pa_link_ctrl_rf;
|
|
}S_CONFIG_PARA,*PS_CONFIG_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint16 ra_enum; //关键词冲突,前边加ra
|
|
uint16 fagc;
|
|
uint16 pha;
|
|
uint16 dagc;
|
|
uint16 iqdc;
|
|
uint16 perr;
|
|
uint8 sta;
|
|
uint8 reserved[3];
|
|
}S_RA_PARA,*PS_RA_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint16 hz;
|
|
uint16 gpsc;
|
|
|
|
uint8 b0;
|
|
uint8 b1;
|
|
uint8 b2;
|
|
uint8 p0;
|
|
|
|
uint8 b8;
|
|
uint8 reserve_cfr;//cfr;
|
|
uint8 alarm;
|
|
uint8 rst;
|
|
}S_WB_PARA,*PS_WB_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 crg;
|
|
uint8 pr;
|
|
uint8 ch;
|
|
uint8 cl;
|
|
|
|
uint8 dh;
|
|
uint8 dl;
|
|
uint8 til;
|
|
uint8 tfl;
|
|
|
|
uint8 tls;
|
|
uint8 pg;
|
|
uint8 reserved[2];
|
|
}S_WC_PARA,*PS_WC_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 cfr_work;
|
|
uint16 cfr_clip;
|
|
|
|
int8 sa;
|
|
int8 sb;
|
|
|
|
int8 sc;
|
|
int8 sd;
|
|
uint8 reserved[2];
|
|
/*uint8 twk;
|
|
uint8 pfg;
|
|
uint8 pdg;
|
|
uint8 feg;
|
|
|
|
uint8 deg;
|
|
uint8 lct;
|
|
#if USE_SNR_ADJ
|
|
int8 sa;
|
|
int8 sb;
|
|
|
|
int8 sc;
|
|
int8 sd;
|
|
uint8 reserved[2];
|
|
#else
|
|
uint8 sa;
|
|
uint8 sb;
|
|
|
|
uint8 sc;
|
|
uint8 sd;
|
|
uint8 reserved[2];
|
|
#endif*/
|
|
}S_WD_PARA,*PS_WD_PARA;
|
|
typedef struct
|
|
{
|
|
uint8 ch;
|
|
uint8 reserved1;
|
|
uint8 ltn;
|
|
uint8 dsc;
|
|
|
|
uint8 snc;
|
|
uint8 dpgh;
|
|
uint8 dpgm;
|
|
uint8 dpgl;
|
|
|
|
uint8 fsc;
|
|
uint8 sp;
|
|
uint16 power;
|
|
}S_WE_PARA,*PS_WE_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint16 equc;
|
|
uint8 pdt;
|
|
uint8 sp;
|
|
|
|
uint8 l;
|
|
uint8 n;
|
|
uint8 m;
|
|
uint8 ah;
|
|
|
|
uint8 al;
|
|
uint8 agc;
|
|
uint8 g;
|
|
uint8 th;
|
|
}S_WF_PARA,*PS_WF_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 fpga[16];
|
|
uint8 fpga2[16];
|
|
uint8 attr[16];
|
|
uint8 mcu[16];
|
|
#if USE_DRY_LOOP
|
|
uint8 dryloop[8];
|
|
#endif
|
|
uint8 flag; //0 atsc 1:attr
|
|
uint8 fla; //0 F 1:I
|
|
uint8 reserved[2];
|
|
}S_RG_PARA,*PS_RG_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 pd;
|
|
uint8 bw;
|
|
uint8 ralh;
|
|
uint8 rall;
|
|
|
|
uint8 balh;
|
|
uint8 ball;
|
|
uint8 pwrt;
|
|
uint8 pac;//功放开关
|
|
|
|
uint8 func;
|
|
uint8 chip; // ad chip 0:1655, 1:4821
|
|
uint8 reserved[2];
|
|
uint8 temp_unit;//1-C,0-F
|
|
}S_WH_PARA,*PS_WH_PARA; //该屏菜单变量只能加后面, balh = ad.swrt;
|
|
|
|
typedef struct
|
|
{
|
|
int8 gmt;
|
|
uint8 p_c; //功率归一化
|
|
uint8 s_freq;
|
|
uint8 reserverd1;
|
|
|
|
uint8 rf_dly;
|
|
uint8 reserverd2;
|
|
uint8 mode;
|
|
uint8 picture;
|
|
|
|
#if DEBUG_AUTO_ADPC
|
|
uint8 snr;
|
|
uint8 imd;
|
|
uint8 snr2;
|
|
uint8 imd2;
|
|
#endif
|
|
uint8 ctl_dpd;
|
|
uint8 ph10_time;
|
|
}S_WJ_PARA,*PS_WJ_PARA;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint8 m_snr;
|
|
uint8 m_imd; //参考带肩
|
|
uint16 i_cnt;
|
|
|
|
uint16 d_cnt;
|
|
uint16 fifo;
|
|
|
|
uint32 rst_time;
|
|
}S_RI_PARA,*PS_RI_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 alarm_ip[4];
|
|
uint8 ss;
|
|
uint8 reserverd[3];
|
|
uint8 mac[4]; // must in the end
|
|
}S_WK_PARA,*PS_WK_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 band;
|
|
uint8 spe;
|
|
uint8 eebak;
|
|
uint8 ip2ts;
|
|
|
|
uint8 s_p;
|
|
uint8 l_p;
|
|
uint8 exc_5x; //激励器类型 0:3x+ 1:5x+
|
|
uint8 reseved[1];
|
|
uint8 roll_off_sel;//rolloff 0-[0.06 new rolloff],1-[0.11 original rolloff-默认]
|
|
uint8 spec_shift; //频移 0-[频谱右移1/7MHz],1-[不频移-默认]
|
|
}S_WL_PARA,*PS_WL_PARA;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint8 dio_tx; //当前dryloop上TX按键状态
|
|
int8 power_diff; //dryloop上 power增减值 上次查询到此次查询中间的差值 查询时发送给功放,发送后清零
|
|
uint8 alarm;
|
|
uint8 tx_crm_is_dio; //功放是否为remote且TX_CRM为IO,若是,则该值为1,否则为0
|
|
uint8 tx_open; //功放射频是否打开, 1:打开 0:关闭
|
|
}S_MPTV_PARA;
|
|
|
|
#define PSIP_SHT_NAME_LEN 8
|
|
|
|
typedef struct
|
|
{
|
|
uint16 used;
|
|
uint16 channel_num;
|
|
uint16 maj_num;
|
|
uint16 min_num;
|
|
|
|
uint8 sht_name[PSIP_SHT_NAME_LEN];
|
|
}S_PSIP_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint16 tsid;
|
|
uint8 index; //用来指定当前操作的sip para序号
|
|
uint8 channel_max;
|
|
|
|
uint16 ts_ctrl;
|
|
uint16 local_update_flag; //本地需要更新标志
|
|
|
|
S_PSIP_PARA sip_para[PSIP_MAX_CHANNLE_NUM];
|
|
}S_PSTS_PARA,*PS_PSTS_PARA;
|
|
|
|
|
|
#define MAX_FREQ_NUM 80 //现在频点最多70个
|
|
|
|
|
|
#if ATSC_USA_AMP
|
|
typedef struct
|
|
{
|
|
float vol_9v; //9V电压
|
|
float vol_50v; //50V电压
|
|
float cur_50v; //50V电流
|
|
float gv_881; //前级栅极电压
|
|
float pa_fwd; //发射功率
|
|
float pa_reflect; //反射功率
|
|
float swr; //驻波比
|
|
float temp_pa; //功放温度
|
|
uint8 signal_reflect; //反射功率异常信号;
|
|
uint8 signal_fwd; //发射功率异常信号
|
|
uint8 signal_temp; //温度异常信号
|
|
uint8 pac_lev; //功率等级
|
|
float cur_50V_2; //电流2
|
|
float cur_50v_3;
|
|
float cur_50v_4;
|
|
float pa_in;
|
|
float vol_12v;
|
|
uint32 tick_cnt; //计数
|
|
uint8 reserved1; //保留字节4字节
|
|
uint8 reserved2[3];
|
|
}S_PA_PARA,*PS_PA_PARA; //功率放大器参数
|
|
|
|
typedef struct
|
|
{
|
|
uint8 ip[4];
|
|
uint8 gateway[4];
|
|
uint8 mask[4];
|
|
}S_PA_CONFIG_PARA,*PS_PA_CONFIG_PARA;
|
|
#endif
|
|
|
|
|
|
typedef struct{
|
|
uint8 a_fssi;
|
|
uint8 b_fssi;
|
|
uint8 disable_up_flg;
|
|
uint8 load_store_curve_flg;
|
|
volatile uint8 display_stop;
|
|
int display_thr;
|
|
}S_EXTEND_SYS_STATE;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
S_LOG_PARA log_para;
|
|
S_SYSTEM_PARA system_para;
|
|
S_RF_PARA rf_para;
|
|
S_NETWORK_PARA network_para;
|
|
S_CONFIG_PARA config_para; //客户菜单参数
|
|
S_MODE_PARA mode_para;
|
|
S_ADVANCE_PARA ad_para; //高级参数1
|
|
S_ADVANCE2_PARA ad2_para; //高级参数2
|
|
S_ADVANCE3_PARA ad3_para; //高级参数3
|
|
S_ADVANCE4_PARA ad4_para;
|
|
S_ADVANCE5_PARA ad5_para;
|
|
S_SN_PARA sn_para;
|
|
S_LATCH_PARA latch_para;
|
|
S_PID_STATUS_PARA pid_status;
|
|
S_ADVANCE_DT_PARA ad_dt_para; //全局变量无此结构体
|
|
#if USE_PSTS
|
|
S_PSTS_PARA psts_para;
|
|
#endif
|
|
#if ATSC_USA_AMP
|
|
S_PA_PARA avr_pa_para; //功放
|
|
S_PA_CONFIG_PARA pa_config_para;
|
|
#endif
|
|
S_USER_INFO reg_user_info[MAX_REG_USER_INFO]; //0:管理员 液晶屏和网页可改 1:来宾帐户,固定不可改 2:隐藏账户--不可改
|
|
|
|
S_RA_PARA ra_para;
|
|
S_WB_PARA wb_para;
|
|
S_WC_PARA wc_para;
|
|
S_WD_PARA wd_para;
|
|
S_WE_PARA we_para;
|
|
S_WF_PARA wf_para;
|
|
S_RG_PARA rg_para;
|
|
S_WH_PARA wh_para;
|
|
S_RI_PARA ri_para;
|
|
S_WJ_PARA wj_para;
|
|
S_WK_PARA wk_para;
|
|
S_WL_PARA wl_para;
|
|
S_DPD_PARA dpd_para;
|
|
|
|
|
|
S_MPTV_PARA mptv;
|
|
uint8 dry_loop_amp;
|
|
BOOL agc_auto_off_flag;
|
|
uint8 ref_agc;
|
|
uint8 pac_flag;
|
|
uint8 fpga_load_wait_flag; //缓开机相关
|
|
uint8 tuner_status_flag; //tuner是否连接
|
|
uint8 cus_rst_flag; //客户菜单
|
|
uint8 fac_rst_flag; //V段 U段区分
|
|
uint8 bak_check_flag; //是否需要校检判断
|
|
uint8 bak_err_flag; //出错标记
|
|
//uint8 ca_value;
|
|
uint8 fpga_ver_tmp[16];
|
|
uint8 lcd_web_lock;
|
|
}S_ATSC_PARA; //系统全局参数
|
|
|
|
|
|
#define MAX_FREQ_NUM 80 //现在频点最多70个
|
|
|
|
|
|
#define SET_IP_DATA(ipaddr,a,b,c,d)\
|
|
do{\
|
|
(ipaddr[0]) = (a);\
|
|
(ipaddr[1]) = (b);\
|
|
(ipaddr[2]) = (c);\
|
|
(ipaddr[3]) = (d);\
|
|
}while(0)
|
|
|
|
typedef enum
|
|
{
|
|
IP2TS_I2C_ADD_IP = 0X01,
|
|
IP2TS_I2C_ADD_MASK,
|
|
IP2TS_I2C_ADD_GATEWAY,
|
|
IP2TS_I2C_ADD_MULTI,
|
|
IP2TS_I2C_ADD_DEST_IP,
|
|
IP2TS_I2C_ADD_PORT,
|
|
IP2TS_I2C_ADD_REC_TYPE, //单播或组播类型
|
|
IP2TS_I2C_ADD_RESET,
|
|
IP2TS_I2C_ADD_UDP_RTP, //包类型
|
|
IP2TS_I2C_ADD_PACKET_LEN, //包长
|
|
IP2TS_I2C_ADD_VERSION, //本地址只读,版本号信息
|
|
IP2TS_I2C_ADD_FEC,
|
|
IP2TS_I2C_ADD_ROW,
|
|
IP2TS_I2C_ADD_COL,
|
|
IP2TS_I2C_ADD_DELAY,
|
|
|
|
IP2TS_I2C_IP_BAK,
|
|
IP2TS_I2C_PORT_BAK,
|
|
}IP2TS_PARA_I2C_ADDRESS;
|
|
|
|
typedef enum
|
|
{
|
|
IP2TS_TYPE_UDP = 0,
|
|
IP2TS_TYPE_RTP,
|
|
}IP2TS_IP_TYPE;
|
|
|
|
typedef enum
|
|
{
|
|
IP2TS_REC_TYPE_MULTI = 0,
|
|
IP2TS_REC_TYPE_SINGLE
|
|
}IP2TS_IP_REC_TYPE;
|
|
|
|
typedef enum
|
|
{
|
|
IP2TS_PACKET_188 = 0,
|
|
IP2TS_PACKET_204,
|
|
}IP2TS_PACKET_LEN;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 ip[4]; // 本地IP
|
|
uint8 mask[4]; // 子网掩码
|
|
uint8 gateway[4]; // 网关
|
|
uint8 multi_address[4]; // 组播地址
|
|
|
|
uint16 port; // 本地端口号
|
|
uint16 udp_rtp;
|
|
uint16 packet_len;
|
|
uint16 receive_type;
|
|
|
|
uint8 ip_bak[4];
|
|
uint16 port_bak;
|
|
uint8 resrvd2[2];
|
|
|
|
uint16 fec;
|
|
uint16 row;
|
|
uint16 col;
|
|
uint16 delay;
|
|
|
|
uint32 ts2ip_version; //0xaabbccdd aa:ts MCU版本号 bbcc:月日信息 dd:FPGA版本号 显示为Va.a-bbcc(Vdd)
|
|
uint32 valid; //数据有效标志
|
|
uint32 delay_sec; //延时 在液晶屏改动过程中,避免主任务刷新参数
|
|
}TS_NET_STRUCT,*PTS_NET_STRUCT;
|
|
|
|
//第一个参数为currentmenu 后边待定
|
|
typedef void(*MENU_REFRESH_FUNC)(void *, void *);
|
|
typedef void(*MENU_SAVE_PARA)(void*);
|
|
//第一个参数为currentmenu
|
|
typedef BOOL(*MENU_KEY_FUNC)(void *,uint8);
|
|
typedef void(*MENU_READ_PARA)(void);
|
|
|
|
/**
|
|
屏幕为2*24大小
|
|
______________________________________________________
|
|
| |
|
|
| |
|
|
|______________________________________________________|
|
|
*/
|
|
typedef struct _MENU_S
|
|
{
|
|
uint16 index; //菜单序号 序号从0开始
|
|
uint16 level; //当前菜单等级 等级从0开始 0级为log屏幕
|
|
uint16 pre_index; //上一级菜单序号
|
|
uint16 level_index; //当前菜单在该子目录中的序号
|
|
uint16 item_index; //该菜单下有多个项目时,由该变量记录序号 以方便进入下级目录 默认为0 或者用于记录当前提示符的位置
|
|
uint16 item_total; //该菜单下提示符*号的个数 若为只读,可默认为0
|
|
MENU_REFRESH_FUNC refresh_func;
|
|
MENU_KEY_FUNC key_func;
|
|
MENU_SAVE_PARA save_para_func;
|
|
MENU_READ_PARA read_para_func;
|
|
char* disp_string[2];
|
|
}MENU_S,*PMENU_S;
|
|
|
|
typedef struct
|
|
{
|
|
uint32 light;
|
|
uint32 non_op_time;
|
|
}LCD_STATUS_S,*PLCD_STATUS_S;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 line;
|
|
uint8 pos[MAX_PROMPT_NUM];
|
|
}PROMPT_POS,*PPROMT_POS; //只读屏时,表示各个参数输出时对应的位置,若为可设置屏,为各提示符输出位置
|
|
typedef struct
|
|
{
|
|
uint32 idle_flag; //系统空闲
|
|
uint32 auto_update_time; //是否做过自动校正,默认正常运行过程中只能做一次自动校正;
|
|
uint32 full_flag; //采样定是否已足够128个(一个循环)
|
|
uint32 index; //序号
|
|
uint32 adpc_flag; //APDC自动校正启动标志
|
|
uint8 tsnr[CHECK_SIGNAL_NUM];
|
|
uint8 l_imd[CHECK_SIGNAL_NUM];
|
|
uint8 u_imd[CHECK_SIGNAL_NUM];
|
|
uint32 tsnr_sum;
|
|
uint32 l_imd_sum;
|
|
uint32 u_imd_sum;
|
|
uint32 tsnr_abm_time;
|
|
uint32 l_imd_abm_time;
|
|
uint32 u_imd_abm_time;
|
|
}S_CHECK_SIGNAL,*PS_CHECK_SIGNAL;
|
|
|
|
|
|
|
|
typedef enum
|
|
{
|
|
DRYLOOP_CMD_SET_TS = 0x01,
|
|
DRYLOOP_CMD_SET_RF = 0x02,
|
|
DRYLOOP_CMD_SET_SYS = 0X03,
|
|
DRYLOOP_CMD_GET_VER = 0X04,
|
|
DRYLOOP_CMD_SET_FWD = 0X05,
|
|
|
|
DRYLOOP_CMD_GET_RF = 0X10,
|
|
DRYLOOP_CMD_GET_POWER= 0X11,
|
|
DRYLOOP_CMD_GET_AMP = 0X12
|
|
}DRYLOOP_CMD_TYPE;
|
|
|
|
typedef enum
|
|
{
|
|
ADPC_OFF=0,
|
|
ADPC_HOLD,
|
|
ADPC_UPDATE1,
|
|
ADPC_UPDATE2,
|
|
ADPC_UPDATE3,
|
|
ADPC_UPDATE4, //自动校正完成后,再做一次UPDATE2,此处实际等同update2
|
|
ADPC_UPDATE5,//20191024
|
|
|
|
STATUS_LOAD_DATE = 0xAA,
|
|
STATUS_SAVE_DATE = 0xBB,
|
|
}ADPC_EM;
|
|
|
|
typedef enum
|
|
{
|
|
ADPC_STATUS_OK=0,
|
|
ADPC_STATUS_LARGE,
|
|
ADPC_STATUS_SMALL,
|
|
ADPC_STATUS_ERR1,
|
|
ADPC_STATUS_ERR2,
|
|
ADPC_STATUS_ERR3,
|
|
|
|
}ADPC_STATUS_EM;
|
|
|
|
typedef enum
|
|
{
|
|
MENU_CUSTOM=1,
|
|
MENU_FACTORY=2,
|
|
MENU_POWER=3,
|
|
MENU_LOG,
|
|
}MENU_EM;
|
|
|
|
|
|
typedef enum{TYPE_KEY,TYPE_SEC}E_LCD_TYPE;
|
|
|
|
extern S_ATSC_PARA atsc_para;
|
|
|
|
#define NOT_SW_PARA(para) do{(para)=(para)?0:1;}while(0)
|
|
|
|
#define SIZE_OF_ARRAY(s) (sizeof(s)/sizeof(s[0]))
|
|
#define SIZE_OF_STRUCT(s) (sizeof(s)/sizeof(s[0]))
|
|
|
|
#define JUDGE_AGC_ON()
|
|
|
|
#if USE_CTRL_MODE
|
|
#define JUDGE_CTRL() \
|
|
if(atsc_para.system_para.ctrl==CTRL_REMOTE) \
|
|
{ \
|
|
break; \
|
|
}else \
|
|
{if(current_menu->index<FAC_LCD) para_change_flag = TRUE;}
|
|
|
|
#else
|
|
#define JUDGE_CTRL()
|
|
#endif
|
|
//由于牵涉到*变? 若当前屏幕中某一个变量占用多个光标位置时,可能需手动调整
|
|
// 1)change_flag = flase 时,随意移动;
|
|
// 2)change_flag = ture 时,在参数整体内可移动(替换原来的2个宏) 3)其他情况不能移动
|
|
#define DEC_ITEM_INDEX(p) \
|
|
do{ \
|
|
if(para_change_flag==FALSE){ \
|
|
p->item_index = p->item_index>0?p->item_index-1:p->item_total-1; \
|
|
} \
|
|
else{ \
|
|
if(left_flag){ \
|
|
p->item_index = p->item_index>0?p->item_index-1:p->item_total-1; \
|
|
} \
|
|
} \
|
|
}while(0)
|
|
|
|
#define INC_ITEM_INDEX(p) \
|
|
do{ \
|
|
if(para_change_flag==FALSE){ \
|
|
p->item_index = p->item_index<p->item_total-1?p->item_index+1:0; \
|
|
}else{ \
|
|
if(right_flag){ \
|
|
p->item_index = p->item_index<p->item_total-1?p->item_index+1:0; \
|
|
} \
|
|
} \
|
|
}while(0)
|
|
|
|
#define DEC_ITEM_INDEX_ALL(p) do{p->item_index = p->item_index>0 ? p->item_index-1 : p->item_total-1;}while(0)
|
|
#define INC_ITEM_INDEX_ALL(p) do{p->item_index = p->item_index<p->item_total-1 ? p->item_index+1 : 0; }while(0)
|
|
|
|
|
|
extern uint32 update_flag;
|
|
void set_menu_init(void);
|
|
uint32 txfreq_to_hz(uint32 chn);
|
|
void init_version_info(void);
|
|
void update_log_para(void);
|
|
void save_fpga_pid(uint32 type);
|
|
void detect_id(void);
|
|
int32 degree2fah(int32 degree);
|
|
void get_asi_input(uint8 asi,S_ASI_INPUT *pinput);
|
|
void show_wait_info(char *pbuf);
|
|
void show_wait_info_with_sec(uint32 sec);
|
|
void show_cycle_tick(uint32 tick);
|
|
void show_debug_num(uint32 tick ,uint32 num);
|
|
void check_update_adpc_para(void);
|
|
void check_agc_off(void);
|
|
void save_new_cor(uint32 cor);
|
|
//extern void get_sys_time(S_SYS_TIME *ptime);
|
|
//extern void lcd_write_arrow(unsigned char x,unsigned char y,ARROW_DIRECTON direct);
|
|
void lcd_write_arrow(uint32 x,uint32 y,ARROW_DIRECTON direct);
|
|
|
|
extern void e2rom_load_default_param(unsigned char menu);
|
|
extern void AGC_Set(void);
|
|
extern void AGC_Start(void);
|
|
extern void light_on(void);
|
|
extern void light_off(void);
|
|
extern uint8 get_key_value(void);
|
|
|
|
|
|
extern void e2rom_save_sys(S_SYSTEM_PARA *ppara);
|
|
extern void e2rom_save_rf(S_RF_PARA *ppara);
|
|
extern void e2rom_save_wb(S_WB_PARA *ppara);
|
|
extern void e2rom_save_wc(S_WC_PARA *ppara);
|
|
extern void e2rom_save_wd(S_WD_PARA *ppara);
|
|
extern void e2rom_save_network(S_NETWORK_PARA *ppara);
|
|
extern void e2rom_save_mode(S_MODE_PARA *ppara);
|
|
extern void e2rom_save_config(S_CONFIG_PARA *ppara);
|
|
#if ATSC_USA_AMP
|
|
extern void e2rom_save_pa_config(S_PA_CONFIG_PARA *ppara);
|
|
#endif
|
|
extern void e2rom_load_default_param(unsigned char menu);
|
|
extern void e2rom_save_wb(S_WB_PARA *ppara);
|
|
extern void e2rom_save_wc(S_WC_PARA *ppara);
|
|
extern void e2rom_save_wd(S_WD_PARA *ppara);
|
|
extern void e2rom_save_we(S_WE_PARA *ppara);
|
|
extern void e2rom_save_wf(S_WF_PARA *ppara);
|
|
extern void e2rom_save_wh(S_WH_PARA *ppara);
|
|
extern void e2rom_save_wj(S_WJ_PARA *ppara);
|
|
extern void e2rom_save_wk(S_WK_PARA *ppara);
|
|
extern void e2rom_save_wl(S_WL_PARA *ppara);
|
|
extern void e2rom_save_dpd_para(S_DPD_PARA *ppara);
|
|
|
|
void e2rom_save_psts_ch(S_PSIP_PARA *psip,uint32 num);
|
|
void e2rom_read_psts_ch(S_PSIP_PARA *psip,uint32 num);
|
|
void e2rom_save_psts(S_PSTS_PARA *ppara);
|
|
void e2rom_init_psts(S_PSTS_PARA *ppara);
|
|
void e2rom_read_psts(S_PSTS_PARA *ppara);
|
|
|
|
extern void e2rom_read_leak(uint32 chn,S_WE_PARA *ppara);
|
|
extern void e2rom_save_leak(uint32 UI_ch, S_WE_PARA *ppara);
|
|
extern uint16 get_we_power_max(void);
|
|
extern void e2rom_save_ad(S_ADVANCE_PARA *ppara);
|
|
extern void e2rom_save_ad2(S_ADVANCE2_PARA *ppara);
|
|
extern void e2rom_save_ad3(S_ADVANCE3_PARA *ppara);
|
|
extern void e2rom_save_ad4(S_ADVANCE4_PARA *ppara);
|
|
extern void e2rom_save_ad5(S_ADVANCE5_PARA *ppara);
|
|
extern void e2rom_save_user_info(S_USER_INFO *ppara);
|
|
|
|
extern void web_save_pdt(uint8 pdt);
|
|
extern void e2rom_read_power_db(uint32 cor); //power db
|
|
extern void e2rom_save_power(S_RF_PARA *ppara);
|
|
extern void tcp_spect_calc_sn_licence(uint32 key, uint64 * psn);
|
|
extern void fpga_save_mode(S_MODE_PARA *ppara);
|
|
extern void fpga_save_network(S_NETWORK_PARA *ppara);
|
|
extern void fpga_save_sys(S_SYSTEM_PARA *ppara);
|
|
extern void fpga_save_chn(S_RF_PARA *ppara);
|
|
extern void fpga_save_rf(S_RF_PARA *ppara);
|
|
extern void fpga_save_wb(S_WB_PARA *ppara);
|
|
extern void fpga_save_wc(S_WC_PARA *ppara);
|
|
extern void fpga_save_wd(S_WD_PARA *ppara);
|
|
extern void fpga_save_we(S_WE_PARA *ppara);
|
|
extern void fpga_save_wf(S_WF_PARA *ppara);
|
|
extern void fpga_save_wh(S_WH_PARA *ppara);
|
|
extern void fpga_save_wj(S_WJ_PARA *ppara);
|
|
extern void fpga_save_all_para(BOOL flag);
|
|
extern void adpc_load_data(uint32 cmd,uint32 adpc);
|
|
extern void fpga_write_adpc(uint32 adpc);
|
|
extern void fpga_save_ad(S_ADVANCE_PARA *ppara);
|
|
extern void fpga_save_ad2(S_ADVANCE2_PARA *ppara);
|
|
extern void fpga_save_ad3(S_ADVANCE3_PARA *ppara);
|
|
extern void fpga_save_ad4(S_ADVANCE4_PARA *ppara);
|
|
extern void fpga_save_power(S_WE_PARA *pwe,S_RF_PARA *prf);
|
|
extern void freq_nochange(uint8 chn,uint8 chn2);
|
|
void fpga_save_psts(S_PSTS_PARA *ppara);
|
|
|
|
extern void config_fpga_soft(uint32 app);
|
|
extern void tuner_init(uint32 channel);
|
|
|
|
|
|
uint32 tuner_get_lock(void);
|
|
uint32 tuner_get_snr(void);
|
|
uint32 get_tuner_init_ok_flag(void);
|
|
extern int8 tuner_read_rssi(void);
|
|
extern void SoftwareUpdateBegin(void);
|
|
extern void fpga_save_agc_vol(void);
|
|
|
|
extern uint32 CPU_SR_Save(void);
|
|
extern void CPU_SR_Restore(uint32);
|
|
extern GPGSA_T *gps_get_sa(void);
|
|
extern uint32 get_max_index(uint32 *pdate,uint32 max_num);
|
|
extern void local_ip_init(void);
|
|
extern void local_ip_change(void);
|
|
extern void config_fpga_para(void);
|
|
extern void dec_auto_adpc_time(void);
|
|
extern void e2rom_save_latch(S_LATCH_PARA *ppara, S_SYSTEM_PARA *psys);
|
|
extern void fpga_save_latch(S_LATCH_PARA *ppara, S_SYSTEM_PARA *psys);
|
|
extern void enter_menu(uint32 index);
|
|
extern void update_latch_para(void);
|
|
extern void update_sys_time(void);
|
|
extern void dryloop_amp_on(BOOL);
|
|
extern void dryloop_uart_send_cmd(DRYLOOP_CMD_TYPE cmd,void *pdata);
|
|
extern uint32 Net_write_RF(uint8 param);
|
|
extern void e2rom_save_sn(S_SN_PARA *ppara);
|
|
extern void delay_ms(uint32 m);
|
|
extern void user_send_msg(uint32,uint32);
|
|
extern void set_force_stop_adpc(BOOL flag);
|
|
#if USE_PSTS
|
|
extern void psts_para_clear(S_PSTS_PARA *ppara);
|
|
#endif
|
|
|
|
void lcd_task(void * pvParameters);
|
|
void enter_menu(uint32 index);
|
|
void enter_son_menu(uint32 index);
|
|
void ret_father_menu(void);
|
|
void light_on_forever(void);
|
|
void disp_common_string(MENU_S *p);
|
|
void lcd_write_prompt(const PROMPT_POS *ppos,PMENU_S pmenu);
|
|
void read_log_para(void);
|
|
uint32 check_lcd_light(uint32 type);;
|
|
|
|
void add_4_hex(uint16 *pdata,uint32 pos);
|
|
void dec_4_hex(uint16 *pdata,uint32 pos);
|
|
extern void adpc_load_data(uint32 cmd,uint32 adpc);
|
|
void eebak_clear(uint8 standard);
|
|
extern void dryloop_process(void);
|
|
extern void sys_reset_rst_time(void);
|
|
//void mac_change(uint32 mac);
|
|
uint32 ts_get_input_status(uint8 tmp);
|
|
uint32 ts_get_input_port(uint8 tmp);
|
|
uint32 psip_calc_sn_licence(uint32 key,uint64 *psn);
|
|
uint32 eas_calc_sn_licence(uint32 key,uint64 *psn);
|
|
void rf_power_set_new(uint16 new_power);
|
|
void apply_rf_power_para(S_RF_PARA *ppara);
|
|
|
|
static int math_abs(int i) //内嵌形式
|
|
{
|
|
return i>0?i:-i;
|
|
}
|
|
#ifndef htonl
|
|
#define htonl(a) \
|
|
((((a) >> 24) & 0x000000ff) | \
|
|
(((a) >> 8) & 0x0000ff00) | \
|
|
(((a) << 8) & 0x00ff0000) | \
|
|
(((a) << 24) & 0xff000000))
|
|
#endif
|
|
|
|
void lcd_task(void * pvParameters);
|
|
|
|
S_CONFIG_PARA *get_atsc_config_para(void);
|
|
|
|
extern void trigger_rf_agc_proc(uint8 trigger);
|
|
extern uint8 check_rf_agc_trigger();
|
|
extern int sys_rf_agc_switch_proc(uint8 trigger);
|
|
extern int turn_off_rf_agc_state(uint8 excid);
|
|
extern void set_sys_rf_agc(uint8 agc);
|
|
|
|
void lcd_thr_id(void * pvParameters);
|
|
extern int thr_lcd_thread(void);
|
|
extern void set_trigger_lcd_menu(uint8 lcd_trigger);
|
|
extern void remote_set_power_process(uint32 new_power);
|
|
extern void get_tsnr_limd_uimd(uint16 *ptsnr, uint8 *plmid, uint8 *pumid);
|
|
extern void save_ts_misc2(void *psave);
|
|
extern void save_ts_muti2(void *psave);
|
|
extern void save_ts_mask2(void *psave);
|
|
extern void save_ts_gate2(void *psave);
|
|
extern void save_ts_ip2(void *psave);
|
|
extern void save_ts_ip(void *psave);
|
|
extern void save_ts_gate(void *psave);
|
|
extern void save_ts_mask(void *psave);
|
|
extern void save_ts_muti(void *psave);
|
|
extern void save_ts_misc(void *psave);
|
|
extern void save_ts_fec(void *psave);
|
|
extern void save_ts_fec2(void *psave);
|
|
extern void save_dpd_config(void *psave);
|
|
extern void save_ad3_para(void *psave);
|
|
|
|
extern void web_save_roll_off(uint8 roll_off);
|
|
|
|
extern void psts_para_update(S_PSTS_PARA *ppara);
|
|
extern void set_trigger_lcd_menu(uint8 lcd_trigger);
|
|
extern void atsc_set_force_stop_adpc(BOOL flag);
|
|
extern void save_user_para(void *psave);
|
|
|
|
extern uint8 g_ca_value;
|
|
void realtime_update_fpga_version_reg();
|
|
|
|
#endif
|
|
|
|
|
|
/*************************************END************************************************/
|