📄 defs.h
字号:
#ifndef __DEFS_H__
#define __DEFS_H__
//error handling
#define SUCCESS 0
#define FAILURE -1
#define SOFTWARE_FAULT 1
#define DEVICE_FAILURE 2
#define UNRECOGNIZABLE_SIGNAL 3
//logging
//basic data type definition
#include "Complex.h"
typedef unsigned char BYTE;
//constants
#define PI 3.1415927
//basic ADSL constants
#define UPSTREAM 0
#define DOWNSTREAM 1
#define MAX_READ_SAMPLE (2048 + 256)
#define MAX_TONE_COUNT (MAX_READ_SAMPLE / 2)
//ADSL standard class. different classes have different filter characteristics
#define ADSL_ABOVE_POTS 0
#define ADSL_ABOVE_ISDN 1
#define ADSL_SAME_CABLE_AS_TCM_ISDN 2
//max tone count used by a symbol
#define G_992_1_ANNEX_A_UPSTREAM_MAX_TONE 32
#define G_992_1_ANNEX_A_DOWNSTREAM_MAX_TONE 256
//循环前缀长
#define G_992_1_ANNEX_A_DOWNSTREAM_CYCLIC_PREFIX_LENGTH 32
#define G_992_1_ANNEX_A_UPSTREAM_CYCLIC_PREFIX_LENGTH 4
//采样频率
#define DOWNSTREAM_SAMPLE_FREQENCE 2.208e6
#define UPSTREAM_SAMPLE_FREQENCE 276e3
#include <math.h>
//信号功率
//#define Beta pow(2,13)/(16*sqrt(2)*5.3)
#define Beta 68.3
//ANSI T1.413 activation and acknowledgment tone
#define ANSI_T1_413_R_ACT_REQ 8
//G.994.1 4.3125KHz signaling family carrier sets
#define G_994_1_CARRIER_SET_A43 0
#define G_994_1_CARRIER_SET_B43 1
#define G_994_1_CARRIER_SET_C43 2
#define G_994_1_CARRIER_SET_J43 3
#define G_994_1_CARRIER_SET_A43c 4
#define MAX_POSSIBLE_CARRIER_SETS 5
#define MAX_TONES_PER_CARRIER_SET 3
//以下数组最高维是ADSL standard class
extern int CONS_PossibleCarrierSets[][MAX_POSSIBLE_CARRIER_SETS];
extern int CONS_CarrierSetTones[][2][MAX_TONES_PER_CARRIER_SET];
extern int CONS_FirstToneIndex[][2];
extern int CONS_LastToneIndex[][2];
//协议分析的常量
//数据不包含信息
#define NO_INFOMATION -1
#define FLAG 0x7E
#define GALF 0x81
//G.994.1每个比特的符号数
#define SYMBOL_PER_DPSK_BIT 8
//R-ToneReq信号保持同相的个数
#define R_TONESREQ_SYMBOL_COUNT 69
//算法参数
//R-ToneReq信号保持同相的个数阈值,用于判断是否是该信号
#define R_TONESREQ_SYMBOL_COUNT_LOW 64
#define R_TONESREQ_SYMBOL_COUNT_HIGH 74
//R-ToneReq信号相位翻转个数阈值,用于确认该信号
#define R_TONESREQ_REVERSE_COUNT_THRESHOLD 2
//在一个DPSK比特的若干符号中用于进行判决的序号范围
#define DPSK_FIRST_CHECK_SYMBOL 3
#define DPSK_LAST_CHECK_SYMBOL 5
//DPSK字节错误门限
#define DPSK_ERROR_THRESHOLD 3
#define SIGNAL_CHECK_LENGTH 3
//#define INITTRAIN_SIGNAL_CHECK_SKIP_COUNT 10
#define INITTRAIN_SIGNAL_CHECK_COUNT 6
#define INITTRAIN_CHANNEL_ANALYZER_CHECK_COUNT 1000
//Rates1阶段最大符号个数
#define MAX_RATES1_BYTE_NUMBER 2 + 992 / 8
#define MAX_CRC_BYTE_NUMBER 16 / 8
#define MAX_MSG1_BYTE_NUMBER 2 + 48 / 8
#define MAX_EXCHANGE_BYTE_NUMBER 2 + 510
//exchange阶段调制连续使用的音频个数
#define EXCHANGE_MODULATE_USED_TONE_COUNT 4
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -