首次提交

This commit is contained in:
2026-06-16 11:18:22 +08:00
commit 068ef188e7
201 changed files with 57503 additions and 0 deletions
+259
View File
@@ -0,0 +1,259 @@
#ifndef device_uhd_struct_h
#define device_uhd_struct_h
#include <vector>
#include <memory>
#include <iostream>
#define ZDSamSum 200000000//8路窄带采样率之和
#define ZDChMax 8 //每路大通道下窄带通道总数
enum UHD_ParamType : int
{
CenterFreq = 0,
BandWidth = 1,
SampleFreq = 2,
Gain = 3,
PowerRef = 4,
KDDCSwitch = 5,
KFFTSwitch = 6,
ZDDCSwitch = 7,
ZDDCParam = 8,
KFFTParam = 9,
ClockSource = 10,
SnapshotSwitch = 11,
Snapshot_tm_s = 12,
};
enum UHD_FFTWin : unsigned char
{
jxc =0,// 矩形窗 = 0,
hnc = 1,// 汉宁窗 = 1,
hmc = 2, // 海明窗 = 2,
blkmc = 3,// 布莱克曼窗 = 3,
};
enum UHD_FFTLen : unsigned int
{
_1024 = 1024,
_2048 = 2048,
_4096 = 4096,
_8192 = 8192,
_16384 = 16384,
_32768 = 32768,
};
#pragma pack(push)
#pragma pack(1)
struct UHD_ZDParam
{
unsigned char KCH = 0;//宽带通道号
unsigned short ZCH = 0;//窄带通道号
long long CenterFreq = 0; // 中频
int BandWidth = 0; //带宽
int SampleFreq = 0; // 采样率
int ExtraPer = 1024;//抽取率 4-40962的指数
bool bSwitch_ZDDC = false;
};
struct UHD_KDParam
{
unsigned char KCH = 0;//宽带通道号
long long CenterFreq = 10000000;
int BandWidth = 160000000;
int SampleFreq = 200000000;
bool bSwitch_6GCH = false;
bool bSwitch_KDDC = false;
bool bSwitch_KFFT = false;
double gain = 0;
UHD_ZDParam ZDParam[ZDChMax];
int ExtraPer;
bool Snapshot_Switch=false;
int Snapshot_tm_s = 0;
unsigned long long old_sf;
unsigned long long old_cf;
unsigned long long old_bw;
};
#pragma region 枚举/结构体
/** @brief TODO: 时码类型枚举
* @enum LibWZ57_Enum_TimeType
*/
enum Enum_TimeType : uint8_t
{
Enum_TimeType_Invlid = 0, /**< 无效的*/
Enum_TimeType_IRIG_B = 1, /**< IRIG-B*/
Enum_TimeType_RMC = 2, /**< RMC*/
Enum_TimeType_ABSCNTTM = 3, /**< 绝对计数时间*/
Enum_TimeType_REFCNTTM = 4, /**< 相对计数时间*/
};
typedef struct struct_DateTime
{
Enum_TimeType TimeType; /**< 10 时码类型*/
/** @brief 10个字节的时码信息
* @details
* 根据 @ref LibWZ57_Enum_TimeType TimeType,对应不同的 联合体
*/
union TimeInfo
{
///@brief IRIG-B
///@struct IRIGB_Head
struct IRIGB_Head
{
uint8_t Year; /**< 年 字节1*/
uint16_t Day; /**< 日 字节2*/
uint8_t Hour; /**< 时 字节1*/
uint8_t Minute; /**< 分 字节1*/
uint8_t Second; /**< 秒 字节1*/
uint32_t NanoSec; /**< 纳 字节4*/
} IRIGB_Head;
///@brief RMC
///@struct RMC_Head
struct RMC_Head
{
uint8_t Year; /**< 年 字节1*/
uint8_t Month; /**< 月 字节1*/
uint8_t Day; /**< 日 字节1*/
uint8_t Hour; /**< 时 字节1*/
uint8_t Minute; /**< 分 字节1*/
uint8_t Second; /**< 秒 字节1*/
uint32_t NanoSec; /**< 纳 字节4*/
} RMC_Head;
///@brief 绝对计数时间
///@struct ABSCNTTM_Head
struct ABSCNTTM_Head
{
///@brief 秒 字节6; 基准秒计数时间+相对秒计数时间 单位:秒
uint8_t Second[6];
///@brief 纳秒 字节4;
uint32_t NanoSec;
} ABSCNTTM_Head;
///@brief 相对计数时间
///@struct REFCNTTM_Head
struct REFCNTTM_Head
{
///@brief 秒 字节6; 相对秒计数时间单位:秒
uint8_t Second[6];
///@brief 纳秒 字节4;
uint32_t NanoSec;
} REFCNTTM_Head;
} TimeInfo;
} struct_DataTime;
#pragma region 枚举
/*****************************
*数据类型
*****************************/
enum UHD_Enum_DataType : unsigned char
{
zd_ddc = 1,
kd_ddc = 2,
kd_fft = 3,
GPS_Info = 16,
// 窄带DDC = 0x01,
// 宽带DDC = 0x02,
// 宽带FFT = 0x03,
};
#pragma endregion
#pragma region 结构体
#pragma region UHD_Struct_KFFT UHD_Struct_KDDC UHD_Struct_ZDDC
/// <summary>
/// 宽带FFT头
/// </summary>
typedef struct
{
/// <summary>
/// 帧标识 6 0x2828F628F6F6 固定值
/// </summary>
unsigned int Head;
/// <summary>
///
/// </summary>
unsigned short Head2;
/// <summary>
/// 协议版本 1 0x80
/// </summary>
unsigned char DealVersion;
/// <summary>
/// 帧头长度 1 64
/// </summary>
unsigned char FrameHeadLen;
/// <summary>
/// 数据长度 2 2048
/// </summary>
unsigned short DataLen;
/// <summary>
/// 有效数据长度 2 2048
/// </summary>
unsigned short UsefullLen;
/// <summary>
/// 数据类型 1
/// </summary>
UHD_Enum_DataType DataType;
unsigned char Other1;
/// <summary>
/// 通道号
/// </summary>
unsigned char Channel;
unsigned char Other2;
unsigned short ZDChannel;
/// <summary>
/// 帧计数 2 0 ~ 65535 循环递增
/// </summary>
unsigned short FrameIndex;
/// <summary>
/// 帧起止标识 1 0x0
/// </summary>
unsigned char FrameBeginFlag;
struct_DateTime DateTm;
/// <summary>
/// 采样率 4 单位Hz
/// </summary>
unsigned int SampleFreq_Hz;
/// <summary>
/// 带宽 4 单位Hz
/// </summary>
unsigned int BandWidth_Hz;
/// <summary>
/// 中心频点 4 单位Hz,低位
/// </summary>
unsigned int CenterFreq_Hz_Low;
/// <summary>
/// 中心频点 2 单位Hz,高位
/// </summary>
unsigned short CenterFreq_Hz_High;
union
{
unsigned char other5[18];
struct
{
unsigned char other4[6];
/// <summary>
/// FFT长度 65536
/// </summary>
int FFTPoint;
unsigned char other5[2];
float other6;
/// <summary>
/// 段内帧号
/// </summary>
unsigned short SubFrame;
} FFT;
} Param;
//数据 2048 共1024个数据,1个数据2字节。
} UHD_Struct_KFFT, UHD_Struct_KDDC, UHD_Struct_ZDDC;
#pragma endregion
#pragma endregion
#pragma pack(pop)
#pragma endregion
#endif