修改了Web后台的部分界面,增加了HAmqtt中的总电量传感器,后台新增mqtt上报频率设置

This commit is contained in:
OOP
2025-03-03 21:49:41 +08:00
parent e1e00b60ce
commit 9f9d4c7a56
4468 changed files with 1473046 additions and 10728 deletions

View File

@@ -0,0 +1,239 @@
/**
**************************************************************************************
* @file eq.h
* @brief EQ part of CODEC
*
* @author Aissen Li
* @version V5.5.0
*
* $Created: 2012-10-22 15:39:09$
*
* © Shanghai Mountain View Silicon Technology Co.,Ltd. All rights reserved.
**************************************************************************************
*/
#ifndef __EQ_H__
#define __EQ_H__
#ifdef __cplusplus
extern "C" {
#endif//__cplusplus
#include "type.h"
#define SW_EQ_PROC_FRAME_SAMPLES (192)
#define MAX_SW_EQ_FILTERS_COUNT (10 )
#define MAX_SW_EQ_FILTER_ORDER (3 )
/**
* @brief EQ filter type set
*/
typedef enum _EQ_FILTER_TYPE_SET
{
EQ_FILTER_TYPE_UNKNOW = -1,
EQ_FILTER_TYPE_PEAKING,
EQ_FILTER_TYPE_LOW_SHELF,
EQ_FILTER_TYPE_HIGH_SHELF,
EQ_FILTER_TYPE_LOW_PASS,
EQ_FILTER_TYPE_HIGH_PASS,
EQ_FILTER_TYPE_BAND_PASS
} EQ_FILTER_TYPE_SET;
/**
* @brief EQ filter parameters struct
*/
typedef struct _EqFilterParams
{
int16_t type; /**< filter type, @see EQ_FILTER_TYPE_SET */
uint16_t f0; /**< center frequency (peak) or mid-point frequency (shelf) */
int16_t Q; /**< quality factor (peak) or slope (shelf), format: Q6.10 */
uint16_t sqrtA; /**< Sqrt root value of Amplitude, Gain = 20*log10(A*A), format: Q6.10 */
} EqFilterParams;
/**
* @brief EQ filter coefficients saved as: [b0][b1][b2][a1][a2], [a0] equal to 1.0
*/
typedef struct _EqFilterCoefs
{
int32_t b0: 32;
int32_t b1: 32;
int32_t b2: 32;
int32_t a1: 32;
int32_t a2: 32;
int32_t : 0;
} EqFilterCoefs;
/**
* @brief Configure EQ style parameters
* @param SamplingRate sample rate8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 are supported.
* @param FilterParams EQ style filters parameters
* @param FilterNum EQ style filters count, the value can be 0~5
* @param PreGain EQ style pre-gain, magnitude value, data format Q3.16,
* value range 0x0000~0x7FFFF, convert dB vale is 20*log10(PreGain/2^16) dB,
* 0x00000 means MUTE !
* 0x04000 convert dB vale is -12.04 dB
* 0x08000 convert dB vale is -6.02 dB
* 0x10000 convert dB vale is 0 dB
* 0x7FFFF convert dB vale is 18.06 dB
* @return NONE
*/
void EqStyleConfigure(uint16_t SamplingRate, EqFilterParams* FilterParams, uint32_t FilterNum, uint32_t PreGain);
/**
* @brief Set EQ style pre-gain
* @param PreGain EQ style pre-gain, magnitude value, data format Q3.16,
* value range 0x0000~0x7FFFF, convert dB vale is 20*log10(PreGain/2^16) dB,
* 0x00000 means MUTE !
* 0x04000 convert dB vale is -12.04 dB
* 0x08000 convert dB vale is -6.02 dB
* 0x10000 convert dB vale is 0 dB
* 0x7FFFF convert dB vale is 18.06 dB
* @return NONE
*/
void EqPreGainSet(uint32_t PreGain);
/**
* @brief Get EQ style pre-gain
* @return PreGain EQ style pre-gain, magnitude value, data format Q3.16,
* value range 0x0000~0x7FFFF, convert dB vale is 20*log10(PreGain/2^16) dB,
* 0x00000 means MUTE !
* 0x04000 convert dB vale is -12.04 dB
* 0x08000 convert dB vale is -6.02 dB
* 0x10000 convert dB vale is 0 dB
* 0x7FFFF convert dB vale is 18.06 dB
* @return NONE
*/
uint32_t EqPreGainGet(void);
/**
* @brief Enable EQ
* @param None
* @return None
*/
void EqEnable(void);
/**
* @brief Disable EQ
* @param None
* @return None
*/
void EqDisable(void);
/**
* @brief Check whether eq is enabled
* @param NONE
* @return TRUE:enable, FALSE:disable
*/
bool EqIsUsed(void);
/**
* @brief Clear hardware EQ delay buffer
* @param None
* @return None
*/
void EqRamClear(void);
/***********************************************************************************************
* The Following Code is Software EQ API definition.
***********************************************************************************************/
typedef struct _SwEqContext
{
int16_t FiltersCount;
int16_t WorkStatus;
int32_t FiltersHistoryDataX[MAX_SW_EQ_FILTERS_COUNT][2/*#Channel*/][MAX_SW_EQ_FILTER_ORDER - 1];
int32_t FiltersHistoryDataY[MAX_SW_EQ_FILTERS_COUNT][2/*#Channel*/][MAX_SW_EQ_FILTER_ORDER - 1];
uint32_t PreGain;
EqFilterCoefs FiltersCoefs[MAX_SW_EQ_FILTERS_COUNT];
}SwEqContext;
typedef struct _SwEqWorkBuffer
{
int32_t PcmBuffer[SW_EQ_PROC_FRAME_SAMPLES];
}SwEqWorkBuffer;
/**
* @brief Software EQ initialize
* @param SwEQ Software EQ context pointer
* @return None
*/
void SwEqInit(SwEqContext* SwEQ);
/**
* @brief Configure software EQ style parameters
* @param SwEQ software EQ context pointer
* @param SamplingRate sample rate, 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 are supported.
* @param FilterParams EQ style filters parameters
* @param FilterNum EQ style filters count, value can be 0~MAX_SW_EQ_FILTERS_COUNT
* @param PreGain EQ style pre-gain, magnitude value, data format Q3.16,
* value range 0x0000~0x7FFFF, convert dB vale is 20*log10(PreGain/2^16) dB,
* 0x00000 means MUTE !
* 0x04000 convert dB vale is -12.04 dB
* 0x08000 convert dB vale is -6.02 dB
* 0x10000 convert dB vale is 0 dB
* 0x7FFFF convert dB vale is 18.06 dB
* @return NONE
*/
void SwEqStyleConfigure(SwEqContext* SwEQ, uint16_t SamplingRate, EqFilterParams* FilterParams, uint32_t FilterNum, uint32_t PreGain);
/**
* @brief Apply software EQ
* @param SwEQ Software EQ context pointer
* @param Buffer Software EQ work buffer pointer, this buffer can be free after calling function SwEqApply done.
* @param PcmDataInOut Address for both input and output pcm samples
* @param PcmSamplesCount Pcm samples count, value can be 0~SW_EQ_PROC_FRAME_SAMPLES
* @param NumChannels Number of pcm samples channels, value can be 1 or 2
* @return NONE
*/
void SwEqApply(SwEqContext* SwEQ, SwEqWorkBuffer* Buffer, int16_t* PcmDataInOut, int32_t PcmSamplesCount, int32_t NumChannels);
/**
* @brief Set software EQ style pre-gain
* @param SwEQ Software EQ context pointer
* @param PreGain software EQ style pre-gain, magnitude value, data format Q3.16,
* value range 0x0000~0x7FFFF, convert dB vale is 20*log10(PreGain/2^16) dB,
* 0x00000 means MUTE !
* 0x04000 convert dB vale is -12.04 dB
* 0x08000 convert dB vale is -6.02 dB
* 0x10000 convert dB vale is 0 dB
* 0x7FFFF convert dB vale is 18.06 dB
* @return NONE
*/
void SwEqPreGainSet(SwEqContext* SwEQ, uint32_t PreGain);
/**
* @brief Clear software EQ delay buffer
* @param SwEQ Software EQ context pointer
* @return None
*/
void SwEqRamClear(SwEqContext* SwEQ);
/**
* @brief Enable software EQ
* @param SwEQ Software EQ context pointer
* @return None
*/
void SwEqEnable(SwEqContext* SwEQ);
/**
* @brief Disable software EQ
* @param SwEQ Software EQ context pointer
* @return None
*/
void SwEqDisable(SwEqContext* SwEQ);
/**
* @brief Check if software EQ is working
* @param SwEQ Software EQ context pointer
* @return None
*/
bool SwEqIsEnabled(SwEqContext* SwEQ);
#ifdef __cplusplus
}
#endif//__cplusplus
#endif//__EQ_H__