📄 ysdataprocess.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 + -