|
@@ -705,6 +705,11 @@ void OscilloscopeData::threadProcessData()
|
|
|
/* 处理数据 */
|
|
|
// SPDLOG_LOGGER_DEBUG(m_logger, "开始处理数据,通道A数据: {}, 通道B数据: {}", m_bufferChnA[32000], m_bufferChnB[32000]);
|
|
|
/* 矫正零电压值 */
|
|
|
+ for(uint32_t i = 0; i < BUFFER_SIZE / 2; i++)
|
|
|
+ {
|
|
|
+ m_bufferChnA[i] = m_bufferChnA[i] + m_diffVoltageA;
|
|
|
+ // m_bufferChnB[i] = m_bufferChnB[i] + m_diffVoltageB;
|
|
|
+ }
|
|
|
}
|
|
|
/* 打印1000个数据 */
|
|
|
// for(uint32_t i = 0; i < BUFFER_SIZE/2; i++)
|
|
@@ -825,34 +830,11 @@ void OscilloscopeData::parseEyeMapData(unsigned char* buffer, unsigned int size)
|
|
|
int numTmp = bufferSize - 1;
|
|
|
float num11 = 0.0;
|
|
|
|
|
|
- bool flag2 = false;
|
|
|
- /* */
|
|
|
uint8_t b2 = 0;
|
|
|
uint8_t b3 = 0;
|
|
|
uint8_t b = 0;
|
|
|
- int num5 = 0;
|
|
|
- /* 进行插值,每个采样点之间插30个值 */
|
|
|
- // for (int i = 0; i < numTmp; i++)
|
|
|
- // {
|
|
|
- // b2 = array[i]; /* 偶数位 */
|
|
|
- // b3 = array[i + 1]; /* 奇数位 */
|
|
|
- // /* 在b2和b3之间添加30个插值 */
|
|
|
- // num11 = (float)(b3 - b2) / 30.f; /* 将幅值分成30份 */
|
|
|
- // vecData.push_back(EyeDataT(true, b2));
|
|
|
- // num5 = 30;
|
|
|
- // /* Qt的全局随机数生成器 */
|
|
|
- // auto random = QRandomGenerator::global();
|
|
|
- // for (int j = 0; j < num5; j++)
|
|
|
- // {
|
|
|
- // /* 四舍五入 */
|
|
|
- // b = std::round((num11 * (float)j) + (int)b2);
|
|
|
- // // flag2 = ((1 == random.Next(1)) ? true : false);
|
|
|
- // // flag2 = ((1 == random->bounded(0, 1)) ? true : false);
|
|
|
- // vecData.push_back(EyeDataT(true, b));
|
|
|
- // }
|
|
|
- // vecData.push_back(EyeDataT(true, b3));
|
|
|
- // }
|
|
|
- /* 进行插值,每个采样点之间插值 */
|
|
|
+
|
|
|
+ /* 进行插值,每个采样点之间插值根据实际的采样点来计算,插值后的采样点个数比1000略大 */
|
|
|
int numMulti2 = 0;
|
|
|
double numMulti1 = 1000.0 / saTotal;
|
|
|
if(numMulti1 > 1.0 && numMulti1 < 2.0)
|
|
@@ -1045,6 +1027,9 @@ void OscilloscopeData::setZeroVoltageAndCalibration(OscChannel chn, OscChannelRa
|
|
|
uint8_t altitudeByteA = 0;
|
|
|
m_zeroVoltageA = m_mapChAZeroVoltage.value(range);
|
|
|
altitudeByteA = m_mapChAVoltageAmplitudeRatio.value(range);
|
|
|
+ m_diffVoltageA = m_zeroVoltageA - 128;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
if(range == OscChannelRange::CR_100MV)
|
|
|
{
|
|
@@ -1088,6 +1073,7 @@ void OscilloscopeData::setZeroVoltageAndCalibration(OscChannel chn, OscChannelRa
|
|
|
uint8_t altitudeByteB = 0;
|
|
|
m_zeroVoltageB = m_mapChBZeroVoltage.value(range);
|
|
|
altitudeByteB = m_mapChBVoltageAmplitudeRatio.value(range);
|
|
|
+ m_diffVoltageB = m_zeroVoltageB - 128;
|
|
|
|
|
|
if(range == OscChannelRange::CR_100MV)
|
|
|
{
|