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

📄 yspubfunction.cpp

📁 电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下
💻 CPP
字号:
#include "yspubfunction.h"#include "localmutex.h"//#include <fstream.h>//#include <iostream.h>#include "publicclass.h"extern CPublicClass g_PublicClass;CLocalMutex g_PrintfLocal,g_SysLogLock;bool _CheckParam( int argc, char ** argv,QString scheck){    if(argc<=0) return 0;    for(int i=0;i<argc;i++)    {	QString s;s.sprintf("%s",argv[i]);	if(s==scheck) return true;    }    return false;}int _CheckParamWild( int argc, char ** argv,QString scheck){    if(argc<=0) return 0;    for(int i=0;i<argc;i++)    {	QString s;s.sprintf("%s",argv[i]);	s=s.lower();scheck=scheck.lower();	if(s.find(scheck,0)>=0) return i;    }    return -1;}QString _GetFileAbsPath(QString FileName){	QString s;int index=-1;	index=FileName.findRev("/");//	if(index<0) return QDir::currentDirPath();	s=FileName.mid(0,index);	return s;}QString _GetFileName(QString FileName){//   printf("Filename=%s\n", FileName.data());	QString s;int index=-1;	index=FileName.findRev("/");	if(index<0) 	    return FileName;	s=FileName.mid(index+1);	printf("s=%s\n", FileName.data());	return s;}int  _getKeyId(){    QString s=getTimeStr();    return s.toInt();}bool _isFileExists(QString Filename){    return QFile::exists (Filename);}ulong _getFileLength(QString Filename){    QFile f(Filename);    return (ulong)f.size();}QString _getFileNameNoExtend(QString FileName){    int index=FileName.find('.');    if(index<0) return FileName;    FileName=FileName.mid(0,index);return FileName;}QString _mST(QString s,int length,int align){    QString tmps,s1,s2;    if((int)s.length()<length)    {	switch(align)	{	case 0:	//left	    {		tmps=s+s1.fill(' ',length-s.length());	    }	    break;	case 1:	//center	    {		int iMid=(length-s.length())/2;		tmps=s1.fill(' ',iMid)+s+s1.fill(' ',length-s.length()-iMid);	    }	    break;	case 2:	    {		tmps=s1.fill(' ',length-s.length())+s;	    }	    break;	}    }    else    {	tmps=s.mid(0,length);    }    return tmps;}QString _TRVT(int valuetype){    if(valuetype==0) return "整型";    else if(valuetype==1) return "字符";    else if(valuetype==2) return "浮点型";    else return "未知";    return "未知";}bool _CheckModuleRun(QString ModuleName){	ModuleName = ModuleName ;	return false ;}void _DisplayHelp(){    printf("参数:-module=<模块名称>[带入模块名称]例:zmmodule -module=zmmodule\n");    printf("参数:-n     [是否启动下级模块]          例:zmmodule -n 不启动下级模块\n");    printf("参数:-r     [一旦异常允许后台重启]      例:zmmodule -r 允许重启\n");        printf("参数:-debug=<调试信息输出的文件名称/auto/console> [程序为调试状态] 例:zmmodule -debug=/home/temp.txt 输出\n");    printf("参数:-trace=<设备号/-1> 例:zmmodule -trace=201,recv/send/all\n");        printf("参数:-help   [显示帮助信息]             例:zmmodule -help \n");    printf("参数:-v     [列出版本信息]             例:zmmodule -v 列出版本信息,并退出\n");    abort();}int _printf_error(int iclass,const char* fmt,...){    g_SysLogLock.lock();    QString Path=g_PublicClass.GetWorkPath()+"/syslog";    mkdir(Path.data(),0666);    QString Name;Name.sprintf("%s/%sSyslog",Path.data(),g_PublicClass.m_ModuleName.data());    Name+=".log";    va_list ap;    va_start(ap, fmt);    char buff[2048];memset(buff,0x00,2048);char header[10];memset(header,0x00,10);    int ret=vsprintf(buff,fmt,ap);    ofstream write_data(Name.data(), ios::app | ios::out);    if(iclass==ERROR)    {	memcpy(header,"错误:",5);    }    if(iclass==WARN)    {	memcpy(header,"警告:",5);    }    if(iclass==OTHER)    {	memcpy(header,"其他:",5);    }    printf(header);printf(buff);    if(write_data)    {	write_data << header<<buff;  write_data.close() ;    }    va_end(ap);    g_SysLogLock.unlock();    return ret;}int _printf(const char* fmt,...){    bool bSaveFile=false;    if(g_PublicClass.m_isDebug==0) return 0;   //release 不输出任何信息    g_PrintfLocal.lock();    int ret=0;    va_list ap;    va_start(ap, fmt);    //ret = vfprintf(stdout, fmt, ap);    if(g_PublicClass.m_OutToConsole==2)		//输出到控制台    {	ret = vfprintf(stdout, fmt, ap);    }    else if(g_PublicClass.m_OutToConsole==3)    {	ret = vfprintf(stdout, fmt, ap);bSaveFile=true;    }    else    {	bSaveFile=true;    }    if(bSaveFile)    {	char buff[1024];memset(buff,0x00,1024);	ret=vsprintf(buff,fmt,ap);	ofstream write_data(g_PublicClass.m_DebugFile.data(), ios::app | ios::out);	if(write_data)	{	    write_data << buff;  write_data.close() ;	}    }    va_end(ap);    g_PrintfLocal.unlock();    return (ret);}

⌨️ 快捷键说明

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