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

📄 ysdataprocess.h

📁 电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下
💻 H
字号:
#ifndef YSDATAPROCESS_H#define YSDATAPROCESS_H#include "publicclass.h"class BCDataProcess{    public:    BCDataProcess();    virtual ~BCDataProcess();    private:    CLocalMutex m_DataLocker;    public:			//公用函数    bool ConnectDatabase(long &hdbc);						//连接数据库函数    bool DisConnectDatabase(long &hdbc);						//断开数据库    bool CheckDatabase();							//检查数据库是否可以连接(数据库名,用户,密码已经初始化到全局变量中)    bool CheckDatabase(QString dbname,QString dbuser,QString dbpass);		//检查数据库是否可以连接    bool isConnectDatabase(long &hdbc,bool &bNew,bool bForceCheck=false);		//数据库是否连接,如果没有连接产生一个新的连接    int GetNextValue(long &hdbc,QString Sequence);					//得到数据库序列的下一个值    bool DeleteRecordNoChild(long &hdbc,QString table,QString recordindex);		//删除表=table,记录号=recordindex的记录    bool DeleteRecord(long &hdbc,QString table,QString Where="");			//删除表=table,满足Where条件的记录    QString NormalQuery(long &hdbc,QString Table,QString Where,QString ResultField);	//得到表=Table,满足Where条件记录的字段值    int IsRecordExist(long &hdbc,QString table,QString Where="");			//判断表=table中是否存在满足Where条件的记录    public:    QString GetRecordIndexByStationNo(long &hdbc,int iNo);  			//从子站号得到子站的记录号    QString GetRecordIndexByMachineNo(long &hdbc,int StationNo,int MachineNo);	//从站号,设备号得到设备的记录号    QString GetLineNoByMachineNo(long &hdbc,int StationNo,int MachineNo);		//从站号,设备号得到线路号    QString GetLineNameByMachineNo(long &hdbc,int StationNo,int MachineNo);	//从站号,设备号得到线路名    QString GetLineName(long &hdbc,QString RecordIndex);				//用线路记录号得到线路名称    QString GetCimPathName(long &hdbc,int StationNo,int MachineNo);        QString GetCimName(long &hdbc,int StationNo,int MachineNo);    public:    bool ChangeSwitchState(long &hdbc, int msgtype, void* pAct, int size);    public:    bool GetPublicInfo(long &hdbc);						//得到消息队列号及后台服务进程号    bool UpdateSignalTestTime(long &hdbc,int pid);					//后台服务修改测试信号发送的时间(目前未使用)					    bool SendTestSignal(long &hdbc);						//后台服务对各个已注册模块发送测试信号    void StartAllModule(long &hdbc);						//主模块启动下级模块调用    bool StartSomeDevModule(long &hdbc,QString ModuleName);			//启动一个模块名=ModuleName的模块    virtual bool FillCommunicationParam(long &hdbc,QString RecordIndex,QString CommType,st_deviceinfo &st);//填充通讯参数    bool FillDeviceInfo(long &hdbc,QString TableName,QString RecordIndex,st_deviceinfo &st);    bool WriteSysLog(long &hdbc,int EventClass,QString Event,int ESource=0,int LClass=0,int Result=0);    bool InsertToModuleInfo(long &hdbc,QString ClassFlag,int isRetry);			//注册模块信息    bool InsertToDeviceInfo(long &hdbc,QString ModuleName,int StationNo,int MachineNo,			    int ThreadId,int CommState,QString ClassFlag,QString RecordIndex,QString ParentIndex);	//注册下级设备信息    bool KillAllRegProcess(long &hdbc);    bool WhenSrvModuleExit(long &hdbc,int Pid);    bool WhenModuleExit(long &hdbc , int Pid) ;					//当模块退出时调用(目前未使用)	Liang 2206/6/28    bool CheckModuleRunning(long &hdbc,int Pid);					//检查进程号=Pid的模块是否在运行    bool CheckModuleRunning(long &hdbc,QString ModuleName);			//检查模块名称=ModuleName的模块是否在运行    bool GetModulePidByMachineNo(long &hdbc,int MachineNo,int &pid,int &threadid);	//从设备号得到模块的进程号,线程号    int  GetModulePid(long &hdbc,QString ClassFlag);				//带入类别编码得到进程号    bool GetDevicesFromModule(long &hdbc,QString ModuleName,QString ParentIndex,DeviceInfoListType &devicelist);//得到模块下属的设备列表     QString GetRecordIndexByEventNum(long &hdbc,QString Tablename,int MachineNo,int FaultNum);    public:    bool PushEventToFile(void* event,int DataType,int size);    bool PopEventToFile(char* &event,int &DataType,int &size);    bool CopyFile(long fromsize);    public:    virtual bool NoticOperModule(long &hdbc,st_nodeinfo &info);    virtual bool NoticOperModule(long &hdbc,QString TableName,QString RecordIndex,int DataType,int flag=0);    virtual void NoticSendModule(long &hdbc,int MainNo,int sender);//通知上行模块,有突发数据需要传送	    virtual bool MakeToSendState(long &hdbc,st_nodeinfo &info);					//    virtual bool FilterMessage(long &hdbc,int MachineNo,st_nodeinfo &info);    public:    virtual bool InsertRecordToSendState(long &hdbc,QString TableName,QString fRecordIndex,					 int iPubLevel,int MainNo,int Status);		//向SendState表中插入一条记录    virtual bool InsertParam(long &hdbc,QString UniqueCmd,QString ParamType,st_paramvalue &st);	//插入一条定值    virtual bool InsertParam(long &hdbc,QString UniqueCmd,QString ParamType,void* pParam,int size);	//插入一批定值    virtual bool InsertSelfChk(long &hdbc,st_event &st,QString &RecordIndex);				//插入自检报告    virtual bool InsertSelfChkAct(long &hdbc,void* pAct,int size,QString PRecordIndex);			//插入自检报告表身    virtual bool InsertFaultReport(long &hdbc,st_fault &st,QString &RecordIndex);				//插入故障报告    virtual bool InsertFaultAct(long &hdbc,void* pAct,int size,QString PRecordIndex);			//插入故障报告之动作元件    //virtual bool SaveFaultAnalogValueToDb(long &hdbc,void* pFaultAnalog,int iSize,QString RfRecordIndex);    //virtual bool SaveFaultFilesToDb(long &hdbc,QString RfRecordIndex,int MachineNo,int FaultNum,QString FileName,QString FileType);			//插入故障报告之波形    //virtual bool PreMakeNoteList(long &hdbc,st_nodeinfo &info);    //virtual bool InsertJbToSendState(long &hdbc,QString TableName,QString JbRecordIndex,int iPubLevel,int MainNo,int Status);    //virtual bool CheckIntervalAndInsert(long &hdbc,QString StRecordIndex,QString SiRecordIndex,QString currDateTime,int TimeSpace,QString& RecordIndex,int& FaultNum);    virtual bool InsertFaultWave(long &hdbc,st_fault &st,QString &RecordIndex);        virtual bool InsertFaultWaveFiles(long &hdbc,QString WRecordIndex,int MachineNo,QString FileName,QString FileType);    virtual bool InsertFaultDetail(long &hdbc,st_detail &st,QString &RecordIndex);    virtual bool ExportWaveFile(long &hdbc,QString RecordIndex,QString FileName);			//输出波形文件    virtual bool AddChildDevices(CDeviceNode* pNode,DeviceInfoListType &devicelist,unsigned int threadid);        //Liang 2206/6/27    public :	    void SetDeviceRun(int number , bool run) ;	//true->run , false->stop    //Liang 2206/6/28    void SendCommStateToMain(int number , bool run) ;	//在数据库中插入设备号为number的状态(送主站用) , true->run , false->stop    void NotifyMsg(int number , uint dataype , const QString &RecordIndex , const QString &TableName) ;    void UpdateCOMMSTATE(int number , bool exception) ;	//Liang 2206/8/7};#endif

⌨️ 快捷键说明

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