// 信号全局定义
// Author: 周涛
// Date: 2023-9-12

#ifndef SIGNALPUBLIC_H
#define SIGNALPUBLIC_H

#include "sysdef.h"

//// 信号生产模块
#define SIGNAL_ONE_PI 3.14159265358979323846
#define SIGNAL_TWO_PI (2 * SIGNAL_ONE_PI)
#define SIGNAL_SAMPLE_RATIO 48000 // DAC采样率(一个Sample=4BYTE)
#define SIGNAL_BASE_LEN 1193      // 1193
#define SIGNAL_BASE_ROOT_LEN 390  // 596(二代机)//390(一代机)
#define SIGNAL_CONV_LEN 5544      // 基带信号长度(4BYTE)

#define SIGNAL_SIGNAL_UINT32_LEN 6000                              // 每秒单声道发送非零信号长度(4字节)
#define SIGNAL_SIGNAL_UINT16_LEN (SIGNAL_SIGNAL_UINT32_LEN * 2)    // 每秒单声道发送非零信号长度(2字节)
#define SIGNAL_LR_FRAME_LEN (SIGNAL_SIGNAL_UINT16_LEN * 2)         // 每秒双声道发送非零信号长度(2BYTE)
#define SIGNAL_SIGNAL_SLOT_LEN ((SIGNAL_SAMPLE_RATIO / 4) * 2 * 2) // 一个时隙信号长度(2BYTE，2通道)(每秒被分成4个时隙)

#define SIGNAL_SIGNAL_DMA_SEND_LEN 4000                                                           // DMA每次转运信号长度(2BYTE)
#define SIGNAL_SIGNAL_SECOND_SEND_TIMES (SIGNAL_SIGNAL_SLOT_LEN * 4) / SIGNAL_SIGNAL_DMA_SEND_LEN // 每秒信号发送次数(2BYTE)
#define SIGNAL_LR_FRAME_SEND_TIMES (SIGNAL_LR_FRAME_LEN / SIGNAL_SIGNAL_DMA_SEND_LEN)             // LR帧发送次数(2BYTE)

////信号发送模块
#define SIGNAL_BASE_ID_BIT_LEN 10                                                       // 基站ID位宽
#define SIGNAL_PERIOD_FRAME_LEN (SIGNAL_SAMPLE_RATIO * 2 * 2 * SIGNAL_BASE_ID_BIT_LEN)  // 一个周期信号的长度(2BYTE，2通道)
#define SIGNAL_PERIOD_SEND_TIMES (SIGNAL_PERIOD_FRAME_LEN / SIGNAL_SIGNAL_DMA_SEND_LEN) // 一个周期信号的发送次数(2BYTE)

#endif
