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

📄 main.cpp

📁 电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下
💻 CPP
字号:
// #include <qapplication.h>#include "baseclass/publicclass.h"#include "dataprocess.h"#include "baseclass/signalprocess.h"#include "baseclass/ysexception.h"#include "baseclass/moduleinit.h"#include "baseclass/threadclass.h"#include "baseclass/yspubfunction.h"CPublicClass g_PublicClass;/////////////////////////////////////////////////////////////////////////当主模块调用时,带参数:模块名称 -r(可以重启) -d(注册模块) -p//当独立启动时,带参数 :-r(可以重启) -d(注册模块)//-o(调试信息显示在控制台) -p(调试信息发送回操作模块)//-trace=(设备号,11111)是否监视报文///////////////////////////////////////////////////////////////////////int main( int argc, char ** argv ){//     QApplication a( argc, argv );    //分析参数    g_PublicClass.AnylizeParam("",argc,argv);    if(_CheckParam(argc,argv,"-v"))		//显示版本信息    {	printf("版本:5.0.0.2\n");	printf("最后一次修改日期:2005-12-30\n");	printf("制造商:南京银山电子有限公司\n");// 	printf("开发工具:Qt%s\n",qVersion());	abort();    }    if(_CheckParam(argc,argv,"-help"))		//显示帮助信息    {	_DisplayHelp();    }    g_PublicClass.m_SelfPid=getpid();    //安装信号发生处理机制    g_PublicClass.m_Signal.InstallSignalProcess2();   	//处理正常退出    g_PublicClass.m_Signal.InstallSignalProcess3();		//处理内存错误退出    g_PublicClass.m_Signal.InstallSignalProcess4();		//处理浮点错误退出    g_PublicClass.m_Signal.InstallSignalProcess5();		//处理断开的管道    g_PublicClass.m_Signal.InstallSignal_NoticQueue();	//安装队列数据通知信号    //读配置文件    g_PublicClass.GetConfigFileInfo("subconfig.xml");    /*    printf("m_SendFlag:%d\n",g_PublicClass.m_MonitorData.m_SendFlag);    printf("m_RecvFlag:%d\n",g_PublicClass.m_MonitorData.m_RecvFlag);    for(int k=0;k<5;k++)	printf("m_MachineNo:%d\n",g_PublicClass.m_MonitorData.m_MachineNo[k]);    printf("m_isDebug:%d\n",g_PublicClass.m_isDebug);    printf("m_OutToConsole:%d\n",g_PublicClass.m_OutToConsole);    printf("m_DebugFile:%s\n",g_PublicClass.m_DebugFile.data());    _printf_error(ERROR,"%d,%s\n",g_PublicClass.m_MonitorData.m_SendFlag,g_PublicClass.m_DebugFile.data());    abort();*/    //数据库检测    CDataProcess dp;    while(!dp.CheckDatabase())    {	_printf_error(ERROR,"数据库连接失败!\n");sleep(1);    }    //得到发送,接收队列号,如果没有产生,则在函数中产生    long hdbc=-1;    while(!dp.GetPublicInfo(hdbc))    {	printf("进程号没有创建,请先启动后台服务......\n");	sleep(1);    }    //安装信号发生处理机制    g_PublicClass.m_Signal.InstallSignalProcess1();    //参数    int retry=0;    if(_CheckParam(argc,argv,"-r")) {retry=1;}    hdbc=-1;    /*if(_CheckParam(argc,argv,"-d")) */{dp.InsertToModuleInfo(hdbc,"00",retry);}    QString szfile = "";    szfile.sprintf("%s/devini/%s.ini", g_PublicClass.GetWorkPath().data(), g_PublicClass.m_ModuleName.data());    if (!g_PublicClass.m_Ini.ReadIniFile(szfile))	printf("--@@MOUDLE devini file open error! filename=%s @@--\n", szfile.data());    //启动下级设备    CModuleInit si;    si.StartDevices(NULL);    pthread_t t;    int ret=0;    ret=pthread_create(&t,NULL,RecvMsgQueueThread,NULL);    ret=pthread_create(&t,NULL,SendMsgQueueThread,NULL);    //ret=pthread_create(&t,NULL,ProcessRecvMsgThread,NULL);    //ret=pthread_create(&t,NULL,DispDataThread,NULL);    //ret=pthread_create(&t,NULL,ChangeModuleInfoThread,NULL);    _printf_error(OTHER,"%s-启动",g_PublicClass.m_ModuleName.data());//     return a.exec();		while(1)usleep(200*1000*1000);}

⌨️ 快捷键说明

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