⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 power.h

📁 一个基于QT的电网监控程序
💻 H
字号:
#ifndef POWER_H#define POWER_H #include "mainwindow.h"#include "fft.h"#include "report.h"#include "bar.h"#include "VAHZ.h"#include "WPF.h"#include "parse.h"#include "set_dialog.h"#include <qpopupmenu.h>#include <qmenubar.h>#include <qmenudata.h>#include <qtoolbar.h>#include <qtoolbutton.h>#include <qpixmap.h>#include <qmainwindow.h>#include <qlistview.h>#include <qtimer.h>#include <math.h>#include <stdlib.h>#include <stdio.h>#include <sys/time.h>#define COF (100*PI*0.0003125)#define DEVICE_TLC2543 "/dev/tlc2543"#define TIME_DEBUG 1class Power:public Gui{    Q_OBJECTpublic:    	Power( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );    	~Power();		enum SysStat{START,STOP};	enum ListStat{NONE,GENERAL_REPORT,GENERAL_VAHZ,GENERAL_WPF,PHASE_A_HARMONIC,PHASE_A_WAVEFORMS,PHASE_B_HARMONIC,PHASE_B_WAVEFORMS,PHASE_C_HARMONIC,PHASE_C_WAVEFORMS};public slots:    	virtual void fstart();        	virtual void fstop();	virtual void fsetting();	virtual void flistClicked(QListViewItem *);    	virtual void system_flush();private:	SysStat system_stat;			//系统状态,运行或停止	ListStat listview_stat;		//列表当前显示状态	int listen_port;			//服务器端口号	int current_factor_PhaseA_int,current_factor_PhaseB_int,current_factor_PhaseC_int;		//电流变比	int voltage_factor_PhaseA_int,voltage_factor_PhaseB_int,voltage_factor_PhaseC_int;		//电压变比	double current_factor_PhaseA_double,current_factor_PhaseB_double,current_factor_PhaseC_double;	//电流变比	double voltage_factor_PhaseA_double,voltage_factor_PhaseB_double,voltage_factor_PhaseC_double;	//电压变比	char ip_addr[20];			//ip地址	char netmask[20];			//子网掩码	char gateway[20];			//网关地址		VAHZ *vahz;			//电流,电压对象	WPF *wpf;			//功率对象	Report *report1;			//报表对象	Bar *BarPhA_A,*BarPhA_V,*BarPhB_A,*BarPhB_V,*BarPhC_A,*BarPhC_V;	//bar对象		QTimer *sys_timer;			//系统定时器		QPopupMenu *file,*operation,*option,*about;	QToolBar *toolbar;	QToolButton *start,*stop,*setting;	QPixmap starticon,stopicon,settingicon;	MyDialog *SetDialog;	QListViewItem *Phase_A,*Phase_B,*Phase_C,*General_ABC;	QListViewItem *Phase_A_Harmonic,*Phase_A_Waveforms;	QListViewItem *Phase_B_Harmonic,*Phase_B_Waveforms;	QListViewItem *Phase_C_Harmonic,*Phase_C_Waveforms;	QListViewItem *General_VAHZ,*General_Report,*General_WPF;		int startID,stopID,quitID,settingID,aboutID;  		int Phase_channel;	int fd;				//AD 文件句并		double HarmonicV[64],HarmonicA[64],Vrms,Arms,VHZ,AHZ,W_Phase,S_Phase,PF_Phase;      	Real Aconf[64],Vconf[64];			//raw AD data	int AD_tmp[130];	Complex ArrayFFT0[64],ArrayFFT1[64];		//fft data		Real con_sin(int i, int random1,int random2,int random3,int Pha1=0,int Pha2=0,int Pha3=0);   	double count_rms(double *Harmonic, int cnt);   	double count_HZ(double *Harmonic, int cnt);   	double count_W(double *RealV,int cnt,double VFactor, double *RealA, int cnt,double AFactor);#if TIME_DEBUG	struct timeval timer_debug[10];	float timer_elapsed[9];#endif};/*  Auxiliary class to provide fancy menu items with different  fonts.  */class MyMenuItem : public QCustomMenuItem{public:    MyMenuItem( const QString& s, const QFont& f )	: string( s ), font( f ){};    ~MyMenuItem(){}    void paint( QPainter* p, const QColorGroup& /*cg*/, bool /*act*/, bool /*enabled*/, int x, int y, int w, int h )    {	p->setFont ( font );	p->drawText( x, y, w, h, AlignLeft | AlignVCenter | ShowPrefix | DontClip, string );    }    QSize sizeHint()    {	return QFontMetrics( font ).size( AlignLeft | AlignVCenter | ShowPrefix | DontClip,  string );    }private:    QString string;    QFont font;};#endif  //end of POWER_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -