339 lines
7.1 KiB
C
339 lines
7.1 KiB
C
|
|
#ifndef _TCP_AUTOCAL_H_
|
|
#define _TCP_AUTOCAL_H_
|
|
//tcp>>>>-------------
|
|
|
|
#define E_UDP_ADJ_DPD 1
|
|
|
|
//tcp-frame
|
|
#define TCP_AUTOCAL_FRAME_HEADER 0X5AA5
|
|
#define TCP_AUTOCAL_FRAME_TAIL 0XFEEF
|
|
|
|
#define TCP_AUTOCAL_FRAME_LEN_WITHOUT_DATA 16
|
|
#define TCP_AUTOCAL_FRAME_NOT_SUM_LEN 4 //整报文中,不需要参数校验和计算的长度
|
|
#define TCP_AUTOCAL_RET_TYPE_SEND 0
|
|
#define TCP_AUTOCAL_RET_TYPE_RET (1<<15)
|
|
|
|
#define TCP_AUTOCAL_FRAME_OK (0)
|
|
#define TCP_AUTOCAL_FRAME_ERR (1<<14)
|
|
|
|
//buf
|
|
#define TCP_AUTOCAL_REMOTE_MAX_REC_LEN 128
|
|
#define TCP_AUTOCAL_REMOTE_MAX_SEND_LEN 128
|
|
#define TCP_AUTOCAL_REMOTE_MAX_PRO_LEN 128
|
|
|
|
//port
|
|
#define PA_TCP_PORT 6000
|
|
#define METERT_TCP_PORT 6020
|
|
|
|
#define EXC_UDP_PORT 6010
|
|
|
|
|
|
|
|
//err-num
|
|
#define TCP_AUTOCAL_ERR_NONE 0
|
|
#define TCP_AUTOCAL_ERR_CHECK_SUM 1
|
|
#define TCP_AUTOCAL_ERR_CMD_TYPE 2
|
|
#define TCP_AUTOCAL_ERR_CMD_INDEX 3
|
|
#define TCP_AUTOCAL_ERR_SET_DATA 4
|
|
#define TCP_AUTOCAL_ERR_FRAME_FORAMT 5
|
|
#define TCP_AUTOCAL_ERR_RST_KEY 6
|
|
#define TCP_AUTOCAL_ERR_LOCAL_MODE 7
|
|
#define TCP_AUTOCAL_ERR_DST_ID 8
|
|
#define TCP_AUTOCAL_ERR_SRC_ID 9
|
|
#define TCP_AUTOCAL_ERR_UNKNOW_FRAME 0XFF //此错误,表示报文格式未知,不做应答
|
|
|
|
//link
|
|
#define DEV_TIMEOUT 20
|
|
|
|
//band
|
|
#define NET_BW_6M 0x0c
|
|
#define NET_BW_7M 0x0b
|
|
#define NET_BW_8M 0x0a
|
|
|
|
|
|
//cmd-index
|
|
typedef enum
|
|
{
|
|
E_READ_POWER_METER_PARA = 0x1001,
|
|
E_READ_POWER_AMP_PARA = 0x2001,
|
|
E_READ_EXC_PARA = 0x3002,
|
|
E_READ_DEV_CMD_END=0x9000,
|
|
}E_TCP_READ_DEV_PARA_CMD;
|
|
typedef enum
|
|
{
|
|
E_WRITE_POWER_METER_PARA = 0x1001,
|
|
E_WRITE_POWER_AMP_PARA = 0x2001,
|
|
E_WRITE_EXC_PARA = 0x3002,
|
|
E_WRITE_DEV_CMD_END=0x9000,
|
|
}E_TCP_WRITE_DEV_PARA_CMD;
|
|
|
|
|
|
typedef enum{
|
|
E_AUTOCAL_OK=0,
|
|
E_PA_LINK_ERR,
|
|
E_METER_LINK_ERR,
|
|
E_METER_PARA_ERR,
|
|
E_PA_PARA_ERR,
|
|
E_PA_PARA_SEND_TIMEOUT_ERR,
|
|
E_METER_PARA_ADJ_ERR,
|
|
E_PA_FWD_PARA_ADJ_ERR,//E_PA_PARA_ADJ_ERR
|
|
E_PA_REF_PARA_ADJ_ERR,
|
|
E_DEVS_FREQ_DISACCORD_ERR,
|
|
E_DEVS_FREQ_SWITCH_ERR,
|
|
E_EXCITER_OUTPUT_MAX_ERR,
|
|
|
|
E_FREQ_OVER_RANGE_ERR,
|
|
E_FIRST_FREQ_MANUAL_CACLIB_ERR,
|
|
E_FIRST_FREQ_MANUAL_SAVE_ERR,
|
|
CALI_STAGE1=0x30,
|
|
E_AUTOCAL_FINISH=0x66
|
|
}E_AUTOCAL_ERR;
|
|
|
|
typedef enum{
|
|
CHECK_OK=0,
|
|
CHECK_ERR
|
|
}E_CHECK_STATUS;
|
|
|
|
typedef enum{
|
|
STAGE1_STEP_CHECK_LINK=0,
|
|
STAGE1_STEP_SEND_FIRST_FREQ,
|
|
STAGE1_STEP_PROMPT_MANUAL_CALIB,
|
|
|
|
STAGE1_STEP_CHECK_FIRST_FREQ,
|
|
STAGE1_STEP_PROMPT_FIRST_FREQ_OK,
|
|
|
|
|
|
STAGE2_STEP_BASE=0x20,
|
|
STAGE2_STEP_CHECK_LINK,
|
|
STAGE2_STEP_CONFIG_BASE_PARA,
|
|
STAGE2_STEP_CHECK_FIRST_FREQ,
|
|
STAGE2_STEP_SEND_CONFIG_PARA,
|
|
STAGE2_STEP_CHECK_EXC_POWER,
|
|
STAGE2_STEP_ADJ_PA_PARA,
|
|
STAGE2_STEP_NEXT_FREQ,
|
|
|
|
|
|
STAGE_STEP_CHECKED_ERR=0xff
|
|
|
|
|
|
}E_CALIB_SETP;
|
|
|
|
typedef enum{AUTO_CALIB_IDLE=0,AUTO_CALIB_STAGE1,AUTO_CALIB_STAGE2,AUTO_CALIB_FIRST_FREQ_CHECK,AUTO_CALIB_END}E_AUTO_CALIB_STAGE;
|
|
|
|
typedef enum{
|
|
E_CALI_OFF=0,
|
|
E_CALI_HOLD,
|
|
E_CALI_START,//E_CALI_UPDATE,
|
|
E_CALI_CHECK,
|
|
E_CALI_UPDATE,
|
|
}E_AUTOCAL_STATUS;
|
|
|
|
|
|
//cmd-type
|
|
typedef enum{CMD_TYPE_READ=1,CMD_TYPE_SET=2,CMD_TYPE_END}E_CMD_TYPE;
|
|
|
|
//dev-id PA/CTL公用一个ID
|
|
typedef enum{DEV_PA_ID=0x100,DEV_EXCITER_ID=0x200,DEV_METER_ID=0x400,DEV_REMOTE_PC_ID=0xA00}E_DEV_ID;
|
|
|
|
//dec-index-offset
|
|
#define POWER_METER_CMD_INDEX_OFFSET 0x1000
|
|
#define PA_CMD_INDEX_OFFSET 0x2000
|
|
#define EXCITER_CMD_INDEX_OFFSET 0x3000
|
|
|
|
//frame
|
|
typedef struct
|
|
{
|
|
uint16 header;
|
|
uint16 length; //整帧报文总长度
|
|
uint16 src_dev_id;
|
|
uint16 dst_dev_id;
|
|
uint16 cmd_type;
|
|
uint16 cmd_index;
|
|
uint32 data[4]; //实际长度有length域决定
|
|
uint16 sum;
|
|
uint16 tail;
|
|
}S_AUTOCAL_TCP_FRAME;
|
|
|
|
//power-meter
|
|
typedef struct
|
|
{
|
|
uint32 fwd_power;
|
|
uint32 ref_power;
|
|
uint32 fwd_db;
|
|
uint32 ref_db;
|
|
uint32 freq_ch;
|
|
uint32 band;
|
|
}S_POWER_METER_PARA;
|
|
typedef struct
|
|
{
|
|
uint32 band;
|
|
uint32 freq_ch;
|
|
}S_POWER_METER_TCP_SET_PARA;
|
|
|
|
//pa
|
|
typedef struct
|
|
{
|
|
uint32 fwd_power;
|
|
uint32 ref_power;
|
|
uint32 fwd_db;
|
|
uint32 ref_db;
|
|
uint32 freq_ch;
|
|
uint32 band;
|
|
uint32 fwd_adj;
|
|
uint32 ref_adj;
|
|
}S_DEV_PA_PARA;
|
|
typedef struct
|
|
{
|
|
uint32 band;
|
|
uint32 freq_ch;
|
|
uint32 fwd_adj;
|
|
uint32 ref_adj;
|
|
}S_PA_TCP_SET_PARA;
|
|
|
|
|
|
//tcp<<<<-------------
|
|
|
|
|
|
//设备参数>>>>-----------
|
|
typedef struct
|
|
{
|
|
uint16 freq_ch;
|
|
uint16 band;
|
|
uint32 fwd_power;
|
|
uint16 ref_power;
|
|
uint16 fwd_db;
|
|
uint16 ref_db;
|
|
uint8 linkErr;
|
|
}st_POWER_METER_LOG;
|
|
typedef struct
|
|
{
|
|
uint16 freq_ch;
|
|
uint16 band;
|
|
uint32 fwd_power;
|
|
uint16 ref_power;
|
|
uint16 fwd_adj;
|
|
uint16 ref_adj;
|
|
uint8 linkErr;
|
|
}st_PA_LOG;
|
|
typedef struct
|
|
{
|
|
st_POWER_METER_LOG meter;
|
|
st_PA_LOG pa;
|
|
}st_AUTO_CALIBRATION_LOG;
|
|
typedef struct
|
|
{
|
|
uint16 freq_ch;
|
|
uint16 band;
|
|
}st_POWER_METER_SET;
|
|
typedef struct
|
|
{
|
|
uint16 freq_ch;
|
|
uint16 band;
|
|
uint16 fwd_adj;
|
|
uint16 ref_adj;
|
|
}st_PA_SET;
|
|
typedef struct
|
|
{
|
|
st_POWER_METER_SET meter;
|
|
st_PA_SET pa;
|
|
}st_AUTO_CALIBRATION_SET;
|
|
typedef struct
|
|
{
|
|
st_POWER_METER_LOG log;
|
|
st_POWER_METER_SET set;
|
|
}st_METER_PARA;
|
|
typedef struct
|
|
{
|
|
st_PA_LOG log;
|
|
st_PA_SET set;
|
|
}st_PA_PARA;
|
|
typedef struct
|
|
{
|
|
st_METER_PARA meter;
|
|
st_PA_PARA pa;
|
|
uint8 tx_freq;
|
|
}st_AUTO_CAL_PARA;
|
|
|
|
typedef struct
|
|
{
|
|
uint16 pa_cnt;
|
|
uint8 pa_link;
|
|
uint16 meter_cnt;
|
|
uint8 meter_link;
|
|
}st_DEV_LINK;
|
|
|
|
|
|
//设备参数<<<<-----------
|
|
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint16 first_freq;
|
|
uint16 base_freq;
|
|
uint16 exc_power;
|
|
uint16 exc_pow_first;// 第一个频点的功率
|
|
uint16 exc_pow_min;
|
|
uint16 exc_pow_max;
|
|
|
|
uint32 pa_fwd;
|
|
uint32 pa_fwd_first;
|
|
uint16 pa_fwd_adj;
|
|
uint16 pa_fwd_adj_first;// 第一个频点的修正值
|
|
uint16 pa_fwd_adj_min;
|
|
uint16 pa_fwd_adj_max;
|
|
|
|
uint32 meter_fwd;
|
|
uint32 meter_fwd_first;
|
|
|
|
uint16 exc_dw_range;//频点切换时激励器向下的最大范围
|
|
uint16 exc_up_range;
|
|
|
|
uint16 exc_cal_fwd;//计算调节的功率值
|
|
}S_AUTOCAL_BASE_PARA;
|
|
|
|
|
|
|
|
//测试>>>>-------------
|
|
enum{NET_SOCKET=1,NET_CONNECT};
|
|
enum{NET_INDEX_PA=0,NET_INDEX_METER,NET_INDEX_END};
|
|
typedef struct{
|
|
uint8 socket;
|
|
uint8 connect;
|
|
}st_NET_TEST;
|
|
typedef enum
|
|
{
|
|
ERR_NONE=0,
|
|
PA_SOCKET_ERR,
|
|
METRT_SOCKET_ERR,
|
|
PA_CONNECT_ERR,
|
|
METRT_CONNECT_ERR,
|
|
PA_SEND_ERR,
|
|
METER_SEND_ERR,
|
|
}e_ERR_NUM;
|
|
//测试<<<<-------------
|
|
void update_power_meter_para(void);
|
|
void update_pa_para(void);
|
|
|
|
void tcp_write_power_meter_msg(void);
|
|
void tcp_write_pa_msg(void);
|
|
|
|
void tcp_client_task(void * pvParameters);
|
|
void tcp_client_pa_task(void * pvParameters);
|
|
void tcp_client_meter_task(void * pvParameters);
|
|
|
|
uint8 udp_send_pa_test(void);
|
|
uint8 update_autocal_base(void);
|
|
uint8 update_autocal_base(void);
|
|
uint8 save_autocal_base(void);
|
|
uint8 init_autocal_base(void);
|
|
|
|
void udp_read_pa_info(void);
|
|
|
|
void auto_udp_task(void * pvParameters);
|
|
|
|
#endif
|
|
|
|
|