|
@@ -235,7 +235,10 @@ int procsm::CreateASMPTR(char * strasmname,const unsigned int nBufSize,const uns
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- std::cout<<"Attach "<<mstrsmname<<" Attach Fail."<<std::endl;
|
|
|
+ char strout[256];
|
|
|
+ snprintf(strout,256,"Fatal Error. Create %s, attach fail. %s is exist,but attach fail.",mstrsmname,mstrsmname);
|
|
|
+ std::cout<<strout<<std::endl;
|
|
|
+ savefatalerror(strout);
|
|
|
return -1;
|
|
|
}
|
|
|
}
|
|
@@ -243,7 +246,10 @@ int procsm::CreateASMPTR(char * strasmname,const unsigned int nBufSize,const uns
|
|
|
ASM_PTR * pasm = (ASM_PTR *)mpASMPtr->data();
|
|
|
if(pasm == NULL)
|
|
|
{
|
|
|
- std::cout<<"ASM_PTR is NULL."<<std::endl;
|
|
|
+ char strout[256];
|
|
|
+ snprintf(strout,256,"%s pasm is NULL.",mstrsmname);
|
|
|
+ std::cout<<strout<<std::endl;
|
|
|
+ savefatalerror(strout);
|
|
|
return -1;
|
|
|
}
|
|
|
if(bSMExit == false)
|
|
@@ -286,8 +292,10 @@ int procsm::CreateAndAttachASM(char * strasmname,const unsigned int nBufSize,con
|
|
|
char * p = (char *)mpASM->data();
|
|
|
if(p == NULL)
|
|
|
{
|
|
|
- strout = "Fatal Error: Create " + std::string(strsmname) + " Fail. data is NULL";
|
|
|
- ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
|
|
|
+ char strout2[256];
|
|
|
+ snprintf(strout2,256,"Fatal Error: Exist, attach ok, but data is NULL",strsmname);
|
|
|
+ savefatalerror(strout2);
|
|
|
+ ivstdcolorout(strout2,iv::STDCOLOR_BOLDRED);
|
|
|
return -1;
|
|
|
}
|
|
|
mpinfo = (procsm_info *)p;
|
|
@@ -312,7 +320,10 @@ int procsm::CreateAndAttachASM(char * strasmname,const unsigned int nBufSize,con
|
|
|
char * p = (char *)mpASM->data();
|
|
|
if(p == NULL)
|
|
|
{
|
|
|
- strout = "Fatal Error: ReCreate " + std::string(strsmname) + " Fail. data is NULL";
|
|
|
+ strout = "Fatal Error: ReCreate " + std::string(strsmname) + " OK. but data is NULL";
|
|
|
+ char strout2[256];
|
|
|
+ snprintf(strout2,256,"%s",strout.data());
|
|
|
+ savefatalerror(strout2);
|
|
|
ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
|
|
|
return -2;
|
|
|
}
|
|
@@ -329,7 +340,10 @@ int procsm::CreateAndAttachASM(char * strasmname,const unsigned int nBufSize,con
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- strout = "Fatal Error: ReCreate " + std::string(strsmname) + " Fail.";
|
|
|
+ strout = "Fatal Error: Exist,attach fail, so ReCreate " + std::string(strsmname) + " ,but Fail.";
|
|
|
+ char strout2[256];
|
|
|
+ snprintf(strout2,256,"%s",strout.data());
|
|
|
+ savefatalerror(strout2);
|
|
|
ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
|
|
|
return -5;
|
|
|
}
|
|
@@ -343,6 +357,9 @@ int procsm::CreateAndAttachASM(char * strasmname,const unsigned int nBufSize,con
|
|
|
{
|
|
|
strout = "Fatal Error.Create SharedMemory Fail. " + std::string(strsmname) + " not exist. successfully create it, but data is NULL";
|
|
|
ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
|
|
|
+ char strout2[256];
|
|
|
+ snprintf(strout2,256,"%s",strout.data());
|
|
|
+ savefatalerror(strout2);
|
|
|
return -3;
|
|
|
}
|
|
|
mpASM->lock();
|
|
@@ -389,6 +406,9 @@ int procsm::CreateAndAttachASM(char * strasmname,const unsigned int nBufSize,con
|
|
|
mbAttach = false;
|
|
|
strout = "Fatal Error.Create SharedMemory Fail. " + std::string(strsmname) + " Attach Fail.";
|
|
|
ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
|
|
|
+ char strout2[256];
|
|
|
+ snprintf(strout2,256,"%s",strout.data());
|
|
|
+ savefatalerror(strout2);
|
|
|
return -4;
|
|
|
}
|
|
|
|
|
@@ -537,6 +557,7 @@ bool procsm::AttachMem()
|
|
|
char strerr[256];
|
|
|
snprintf(strerr,256,"AttachMem CreateAndAttachASMFail. error code: %d",nrtn);
|
|
|
ivstdcolorout(strerr,iv::STDCOLOR_BOLDRED);
|
|
|
+ savefatalerror(strerr);
|
|
|
return false;
|
|
|
}
|
|
|
else
|
|
@@ -560,8 +581,9 @@ bool procsm::AttachMem()
|
|
|
if(mnMode == ModeWrite)
|
|
|
{
|
|
|
char strout[256];
|
|
|
- snprintf(strout,256,"%s Attach ASMPtr Fail.",mstrsmname);
|
|
|
+ snprintf(strout,256," when AttachMem, %s Attach ASMPtr Fail.",mstrsmname);
|
|
|
ivstdcolorout(" AttachMem: Attach Fail. ",iv::STDCOLOR_BOLDYELLOW);
|
|
|
+ savefatalerror(strout);
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
@@ -663,13 +685,30 @@ int procsm::writemsg(const char *str, const unsigned int nSize)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ static bool bsave = false;
|
|
|
+ if(bsave == false)
|
|
|
+ {
|
|
|
+ char strout[256];
|
|
|
+ snprintf(strout,256,"%s procsm::writemsg message size is very big.msg size is %d ",mstrsmname,nSize);
|
|
|
+ savefatalerror(strout);
|
|
|
+ bsave = true;
|
|
|
+ }
|
|
|
+
|
|
|
qDebug("procsm::writemsg message size is very big");
|
|
|
return -1;
|
|
|
}
|
|
|
}
|
|
|
if(mbAttach == false)
|
|
|
{
|
|
|
- std::cout<<mstrsmname<<"ShareMemory Attach fail."<<std::endl;
|
|
|
+ static bool bsave = false;
|
|
|
+ if(bsave == false)
|
|
|
+ {
|
|
|
+ char strout[256];
|
|
|
+ snprintf(strout,256,"%s writemsg, ShareMemory Attach fail. ",mstrsmname);
|
|
|
+ savefatalerror(strout);
|
|
|
+ bsave = true;
|
|
|
+ }
|
|
|
+ std::cout<<mstrsmname<<" ShareMemory Attach fail."<<std::endl;
|
|
|
return -1;
|
|
|
}
|
|
|
mpASM->lock();
|
|
@@ -862,7 +901,7 @@ int procsm::readmsg(unsigned int index, char *str, unsigned int nMaxSize,unsigne
|
|
|
// qDebug("read pos = %d",(phh+nPos)->mnPos);
|
|
|
nRtn = (phh+nPos)->mnLen;
|
|
|
// pdt->setDate(QDate(2030,1,1));
|
|
|
- const int nms_msgkeep = 3000; //message must in 3 seconds read.
|
|
|
+ const int nms_msgkeep = 30000; //message must in 3 seconds read.
|
|
|
pdt->setMSecsSinceEpoch((phh+nPos)->sendtime/1000000);
|
|
|
|
|
|
int64_t nms_now = std::chrono::system_clock::now().time_since_epoch().count()/1000000;
|
|
@@ -884,3 +923,25 @@ int procsm::readmsg(unsigned int index, char *str, unsigned int nMaxSize,unsigne
|
|
|
return nRtn;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+void procsm::savefatalerror(char * strerr)
|
|
|
+{
|
|
|
+ QFile xFile;
|
|
|
+ int64_t nNow = std::chrono::system_clock::now().time_since_epoch().count();
|
|
|
+ char strfilename[256];
|
|
|
+ snprintf(strfilename,256,"%s/log/modulecomm_%ld.log",getenv("HOME"),nNow);
|
|
|
+ xFile.setFileName(strfilename);
|
|
|
+ if(xFile.open(QIODevice::ReadWrite))
|
|
|
+ {
|
|
|
+ xFile.write(strerr);
|
|
|
+ xFile.flush();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ char strout[256];
|
|
|
+ snprintf(strout,256,"save error to file %s fail.",strfilename);
|
|
|
+ ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|