diff --git a/ChannelItem.h b/ChannelItem.h index 74ff48b..94ca1ba 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -24,7 +24,7 @@ private: Ui::ChannelItem *ui; - double channelDelay; + double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.h b/ChannelItem.h index 74ff48b..94ca1ba 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -24,7 +24,7 @@ private: Ui::ChannelItem *ui; - double channelDelay; + double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 173f4a5..3236187 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -81,7 +81,7 @@ - + 微软雅黑 @@ -97,7 +97,7 @@ - + 微软雅黑 @@ -142,7 +142,7 @@ - + 微软雅黑 @@ -158,7 +158,7 @@ - + 微软雅黑 @@ -199,7 +199,7 @@ - + 微软雅黑 @@ -215,7 +215,7 @@ - + 微软雅黑 @@ -260,7 +260,7 @@ - + 微软雅黑 @@ -276,7 +276,7 @@ - + 微软雅黑 @@ -317,7 +317,7 @@ - + 微软雅黑 @@ -333,7 +333,7 @@ - + 微软雅黑 @@ -525,7 +525,7 @@ - + 微软雅黑 diff --git a/ChannelItem.h b/ChannelItem.h index 74ff48b..94ca1ba 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -24,7 +24,7 @@ private: Ui::ChannelItem *ui; - double channelDelay; + double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 173f4a5..3236187 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -81,7 +81,7 @@ - + 微软雅黑 @@ -97,7 +97,7 @@ - + 微软雅黑 @@ -142,7 +142,7 @@ - + 微软雅黑 @@ -158,7 +158,7 @@ - + 微软雅黑 @@ -199,7 +199,7 @@ - + 微软雅黑 @@ -215,7 +215,7 @@ - + 微软雅黑 @@ -260,7 +260,7 @@ - + 微软雅黑 @@ -276,7 +276,7 @@ - + 微软雅黑 @@ -317,7 +317,7 @@ - + 微软雅黑 @@ -333,7 +333,7 @@ - + 微软雅黑 @@ -525,7 +525,7 @@ - + 微软雅黑 diff --git a/DataProcessAlgorithm.cpp b/DataProcessAlgorithm.cpp new file mode 100644 index 0000000..95ce0e2 --- /dev/null +++ b/DataProcessAlgorithm.cpp @@ -0,0 +1,29 @@ +#include "DataProcessAlgorithm.h" +#include + +DataProcessAlgorithm::DataProcessAlgorithm(QObject *parent) : QObject(parent) +{ + +} + +double DataProcessAlgorithm::allan(double x[], int d, int aN, int ai) +{ + int j = 0; + int i = 0; + double tau0; //tau0是基本采样间隔,由计数器或比相仪的最小采样间隔决定,最小为1s + double sum = 0.0; + double allan[2] = {0.0}; + double *y = new double[aN]; + double tau_2 = pow(d * tau0, 2); //pow是计算x的y次幂 + for (i = 0; i < aN - 2 * d; i = i+1) + { + y[i] = pow(x[i+2*d] - 2 * x[i+d] + x[i], 2); + sum=sum+y[i]; + j+=1; + } + allan[0] = sum/(2*tau_2*(aN-2*d)); //delta的平方 + allan[1] = sqrt(sum/(2*tau_2*(aN-2*d))); //delta + + j = 0; + return allan[ai]; +} diff --git a/ChannelItem.h b/ChannelItem.h index 74ff48b..94ca1ba 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -24,7 +24,7 @@ private: Ui::ChannelItem *ui; - double channelDelay; + double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 173f4a5..3236187 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -81,7 +81,7 @@ - + 微软雅黑 @@ -97,7 +97,7 @@ - + 微软雅黑 @@ -142,7 +142,7 @@ - + 微软雅黑 @@ -158,7 +158,7 @@ - + 微软雅黑 @@ -199,7 +199,7 @@ - + 微软雅黑 @@ -215,7 +215,7 @@ - + 微软雅黑 @@ -260,7 +260,7 @@ - + 微软雅黑 @@ -276,7 +276,7 @@ - + 微软雅黑 @@ -317,7 +317,7 @@ - + 微软雅黑 @@ -333,7 +333,7 @@ - + 微软雅黑 @@ -525,7 +525,7 @@ - + 微软雅黑 diff --git a/DataProcessAlgorithm.cpp b/DataProcessAlgorithm.cpp new file mode 100644 index 0000000..95ce0e2 --- /dev/null +++ b/DataProcessAlgorithm.cpp @@ -0,0 +1,29 @@ +#include "DataProcessAlgorithm.h" +#include + +DataProcessAlgorithm::DataProcessAlgorithm(QObject *parent) : QObject(parent) +{ + +} + +double DataProcessAlgorithm::allan(double x[], int d, int aN, int ai) +{ + int j = 0; + int i = 0; + double tau0; //tau0是基本采样间隔,由计数器或比相仪的最小采样间隔决定,最小为1s + double sum = 0.0; + double allan[2] = {0.0}; + double *y = new double[aN]; + double tau_2 = pow(d * tau0, 2); //pow是计算x的y次幂 + for (i = 0; i < aN - 2 * d; i = i+1) + { + y[i] = pow(x[i+2*d] - 2 * x[i+d] + x[i], 2); + sum=sum+y[i]; + j+=1; + } + allan[0] = sum/(2*tau_2*(aN-2*d)); //delta的平方 + allan[1] = sqrt(sum/(2*tau_2*(aN-2*d))); //delta + + j = 0; + return allan[ai]; +} diff --git a/DataProcessAlgorithm.h b/DataProcessAlgorithm.h new file mode 100644 index 0000000..055df83 --- /dev/null +++ b/DataProcessAlgorithm.h @@ -0,0 +1,18 @@ +#ifndef DATAPROCESSALGORITHM_H +#define DATAPROCESSALGORITHM_H + +#include + +class DataProcessAlgorithm : public QObject +{ + Q_OBJECT +public: + explicit DataProcessAlgorithm(QObject *parent = nullptr); + + double allan(double x[], int d, int aN, int ai); + +signals: + +}; + +#endif // DATAPROCESSALGORITHM_H diff --git a/ChannelItem.h b/ChannelItem.h index 74ff48b..94ca1ba 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -24,7 +24,7 @@ private: Ui::ChannelItem *ui; - double channelDelay; + double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 173f4a5..3236187 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -81,7 +81,7 @@ - + 微软雅黑 @@ -97,7 +97,7 @@ - + 微软雅黑 @@ -142,7 +142,7 @@ - + 微软雅黑 @@ -158,7 +158,7 @@ - + 微软雅黑 @@ -199,7 +199,7 @@ - + 微软雅黑 @@ -215,7 +215,7 @@ - + 微软雅黑 @@ -260,7 +260,7 @@ - + 微软雅黑 @@ -276,7 +276,7 @@ - + 微软雅黑 @@ -317,7 +317,7 @@ - + 微软雅黑 @@ -333,7 +333,7 @@ - + 微软雅黑 @@ -525,7 +525,7 @@ - + 微软雅黑 diff --git a/DataProcessAlgorithm.cpp b/DataProcessAlgorithm.cpp new file mode 100644 index 0000000..95ce0e2 --- /dev/null +++ b/DataProcessAlgorithm.cpp @@ -0,0 +1,29 @@ +#include "DataProcessAlgorithm.h" +#include + +DataProcessAlgorithm::DataProcessAlgorithm(QObject *parent) : QObject(parent) +{ + +} + +double DataProcessAlgorithm::allan(double x[], int d, int aN, int ai) +{ + int j = 0; + int i = 0; + double tau0; //tau0是基本采样间隔,由计数器或比相仪的最小采样间隔决定,最小为1s + double sum = 0.0; + double allan[2] = {0.0}; + double *y = new double[aN]; + double tau_2 = pow(d * tau0, 2); //pow是计算x的y次幂 + for (i = 0; i < aN - 2 * d; i = i+1) + { + y[i] = pow(x[i+2*d] - 2 * x[i+d] + x[i], 2); + sum=sum+y[i]; + j+=1; + } + allan[0] = sum/(2*tau_2*(aN-2*d)); //delta的平方 + allan[1] = sqrt(sum/(2*tau_2*(aN-2*d))); //delta + + j = 0; + return allan[ai]; +} diff --git a/DataProcessAlgorithm.h b/DataProcessAlgorithm.h new file mode 100644 index 0000000..055df83 --- /dev/null +++ b/DataProcessAlgorithm.h @@ -0,0 +1,18 @@ +#ifndef DATAPROCESSALGORITHM_H +#define DATAPROCESSALGORITHM_H + +#include + +class DataProcessAlgorithm : public QObject +{ + Q_OBJECT +public: + explicit DataProcessAlgorithm(QObject *parent = nullptr); + + double allan(double x[], int d, int aN, int ai); + +signals: + +}; + +#endif // DATAPROCESSALGORITHM_H diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index ca48f14..d2d47d3 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -4,22 +4,24 @@ CONFIG += c++11 -FORMS += ChannelItem.ui \ - SetConfig.ui +FORMS += ChannelItem.ui FORMS += PhaseWindow.ui +FORMS += SetConfig.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - SetConfig.h +HEADERS += PhaseDevice.h HEADERS += ChannelItem.h HEADERS += PhaseWindow.h +HEADERS += SetConfig.h +HEADERS += DataProcessAlgorithm.h -SOURCES += PhaseDevice.cpp \ - SetConfig.cpp +SOURCES += PhaseDevice.cpp SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp +SOURCES += SetConfig.cpp +SOURCES += DataProcessAlgorithm.cpp SOURCES += main.cpp # Default rules for deployment. diff --git a/ChannelItem.h b/ChannelItem.h index 74ff48b..94ca1ba 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -24,7 +24,7 @@ private: Ui::ChannelItem *ui; - double channelDelay; + double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 173f4a5..3236187 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -81,7 +81,7 @@ - + 微软雅黑 @@ -97,7 +97,7 @@ - + 微软雅黑 @@ -142,7 +142,7 @@ - + 微软雅黑 @@ -158,7 +158,7 @@ - + 微软雅黑 @@ -199,7 +199,7 @@ - + 微软雅黑 @@ -215,7 +215,7 @@ - + 微软雅黑 @@ -260,7 +260,7 @@ - + 微软雅黑 @@ -276,7 +276,7 @@ - + 微软雅黑 @@ -317,7 +317,7 @@ - + 微软雅黑 @@ -333,7 +333,7 @@ - + 微软雅黑 @@ -525,7 +525,7 @@ - + 微软雅黑 diff --git a/DataProcessAlgorithm.cpp b/DataProcessAlgorithm.cpp new file mode 100644 index 0000000..95ce0e2 --- /dev/null +++ b/DataProcessAlgorithm.cpp @@ -0,0 +1,29 @@ +#include "DataProcessAlgorithm.h" +#include + +DataProcessAlgorithm::DataProcessAlgorithm(QObject *parent) : QObject(parent) +{ + +} + +double DataProcessAlgorithm::allan(double x[], int d, int aN, int ai) +{ + int j = 0; + int i = 0; + double tau0; //tau0是基本采样间隔,由计数器或比相仪的最小采样间隔决定,最小为1s + double sum = 0.0; + double allan[2] = {0.0}; + double *y = new double[aN]; + double tau_2 = pow(d * tau0, 2); //pow是计算x的y次幂 + for (i = 0; i < aN - 2 * d; i = i+1) + { + y[i] = pow(x[i+2*d] - 2 * x[i+d] + x[i], 2); + sum=sum+y[i]; + j+=1; + } + allan[0] = sum/(2*tau_2*(aN-2*d)); //delta的平方 + allan[1] = sqrt(sum/(2*tau_2*(aN-2*d))); //delta + + j = 0; + return allan[ai]; +} diff --git a/DataProcessAlgorithm.h b/DataProcessAlgorithm.h new file mode 100644 index 0000000..055df83 --- /dev/null +++ b/DataProcessAlgorithm.h @@ -0,0 +1,18 @@ +#ifndef DATAPROCESSALGORITHM_H +#define DATAPROCESSALGORITHM_H + +#include + +class DataProcessAlgorithm : public QObject +{ + Q_OBJECT +public: + explicit DataProcessAlgorithm(QObject *parent = nullptr); + + double allan(double x[], int d, int aN, int ai); + +signals: + +}; + +#endif // DATAPROCESSALGORITHM_H diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index ca48f14..d2d47d3 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -4,22 +4,24 @@ CONFIG += c++11 -FORMS += ChannelItem.ui \ - SetConfig.ui +FORMS += ChannelItem.ui FORMS += PhaseWindow.ui +FORMS += SetConfig.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - SetConfig.h +HEADERS += PhaseDevice.h HEADERS += ChannelItem.h HEADERS += PhaseWindow.h +HEADERS += SetConfig.h +HEADERS += DataProcessAlgorithm.h -SOURCES += PhaseDevice.cpp \ - SetConfig.cpp +SOURCES += PhaseDevice.cpp SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp +SOURCES += SetConfig.cpp +SOURCES += DataProcessAlgorithm.cpp SOURCES += main.cpp # Default rules for deployment. diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index d1824d6..f111ef2 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/ChannelItem.h b/ChannelItem.h index 74ff48b..94ca1ba 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -24,7 +24,7 @@ private: Ui::ChannelItem *ui; - double channelDelay; + double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 173f4a5..3236187 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -81,7 +81,7 @@ - + 微软雅黑 @@ -97,7 +97,7 @@ - + 微软雅黑 @@ -142,7 +142,7 @@ - + 微软雅黑 @@ -158,7 +158,7 @@ - + 微软雅黑 @@ -199,7 +199,7 @@ - + 微软雅黑 @@ -215,7 +215,7 @@ - + 微软雅黑 @@ -260,7 +260,7 @@ - + 微软雅黑 @@ -276,7 +276,7 @@ - + 微软雅黑 @@ -317,7 +317,7 @@ - + 微软雅黑 @@ -333,7 +333,7 @@ - + 微软雅黑 @@ -525,7 +525,7 @@ - + 微软雅黑 diff --git a/DataProcessAlgorithm.cpp b/DataProcessAlgorithm.cpp new file mode 100644 index 0000000..95ce0e2 --- /dev/null +++ b/DataProcessAlgorithm.cpp @@ -0,0 +1,29 @@ +#include "DataProcessAlgorithm.h" +#include + +DataProcessAlgorithm::DataProcessAlgorithm(QObject *parent) : QObject(parent) +{ + +} + +double DataProcessAlgorithm::allan(double x[], int d, int aN, int ai) +{ + int j = 0; + int i = 0; + double tau0; //tau0是基本采样间隔,由计数器或比相仪的最小采样间隔决定,最小为1s + double sum = 0.0; + double allan[2] = {0.0}; + double *y = new double[aN]; + double tau_2 = pow(d * tau0, 2); //pow是计算x的y次幂 + for (i = 0; i < aN - 2 * d; i = i+1) + { + y[i] = pow(x[i+2*d] - 2 * x[i+d] + x[i], 2); + sum=sum+y[i]; + j+=1; + } + allan[0] = sum/(2*tau_2*(aN-2*d)); //delta的平方 + allan[1] = sqrt(sum/(2*tau_2*(aN-2*d))); //delta + + j = 0; + return allan[ai]; +} diff --git a/DataProcessAlgorithm.h b/DataProcessAlgorithm.h new file mode 100644 index 0000000..055df83 --- /dev/null +++ b/DataProcessAlgorithm.h @@ -0,0 +1,18 @@ +#ifndef DATAPROCESSALGORITHM_H +#define DATAPROCESSALGORITHM_H + +#include + +class DataProcessAlgorithm : public QObject +{ + Q_OBJECT +public: + explicit DataProcessAlgorithm(QObject *parent = nullptr); + + double allan(double x[], int d, int aN, int ai); + +signals: + +}; + +#endif // DATAPROCESSALGORITHM_H diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index ca48f14..d2d47d3 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -4,22 +4,24 @@ CONFIG += c++11 -FORMS += ChannelItem.ui \ - SetConfig.ui +FORMS += ChannelItem.ui FORMS += PhaseWindow.ui +FORMS += SetConfig.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - SetConfig.h +HEADERS += PhaseDevice.h HEADERS += ChannelItem.h HEADERS += PhaseWindow.h +HEADERS += SetConfig.h +HEADERS += DataProcessAlgorithm.h -SOURCES += PhaseDevice.cpp \ - SetConfig.cpp +SOURCES += PhaseDevice.cpp SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp +SOURCES += SetConfig.cpp +SOURCES += DataProcessAlgorithm.cpp SOURCES += main.cpp # Default rules for deployment. diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index d1824d6..f111ef2 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/common/utils/UDPClientUtil.cpp b/common/utils/UDPClientUtil.cpp index 6695afe..b7ebbe0 100644 --- a/common/utils/UDPClientUtil.cpp +++ b/common/utils/UDPClientUtil.cpp @@ -7,7 +7,7 @@ { client = new QUdpSocket(this); - client->bind(QHostAddress("127.0.0.1"), SettingConfig::getInstance().LISTEN_PORT); + client->bind(QHostAddress("192.168.0.201"), SettingConfig::getInstance().LISTEN_PORT); connect(client, &QUdpSocket::readyRead, this, &UDPClientUtil::readData); }