|
@@ -127,6 +127,7 @@ procsm::procsm(const char * strsmname,const unsigned int nBufSize,const unsigned
|
|
char strasmname[300];
|
|
char strasmname[300];
|
|
|
|
|
|
|
|
|
|
|
|
+ mnMode = nMode;
|
|
if(nMode == ModeWrite)
|
|
if(nMode == ModeWrite)
|
|
{
|
|
{
|
|
int nrtn = CreateASMPTR(strasmname,nBufSize,nMaxPacCount);
|
|
int nrtn = CreateASMPTR(strasmname,nBufSize,nMaxPacCount);
|
|
@@ -314,6 +315,7 @@ int procsm::CreateAndAttachASM(char * strasmname,const unsigned int nBufSize,con
|
|
mpinfo->mNext = 0;
|
|
mpinfo->mNext = 0;
|
|
mpinfo->mLock = 0;
|
|
mpinfo->mLock = 0;
|
|
mpASM->unlock();
|
|
mpASM->unlock();
|
|
|
|
+ std::cout<<"recreate successfully."<<std::endl;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -345,9 +347,10 @@ int procsm::CreateAndAttachASM(char * strasmname,const unsigned int nBufSize,con
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ std::cout<<strsmname<<" is attached."<<std::endl;
|
|
if(mpASM->isAttached())
|
|
if(mpASM->isAttached())
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+ std::cout<<strsmname<<" attach succesfully."<<std::endl;
|
|
mbAttach = true;
|
|
mbAttach = true;
|
|
char * p = (char *)mpASM->data();
|
|
char * p = (char *)mpASM->data();
|
|
mpinfo = (procsm_info *)p;
|
|
mpinfo = (procsm_info *)p;
|
|
@@ -524,18 +527,45 @@ bool procsm::AttachMem()
|
|
mphead = (procsm_head *)(p+sizeof(procsm_info));
|
|
mphead = (procsm_head *)(p+sizeof(procsm_info));
|
|
mnMaxPacCount = mpinfo->mCap;
|
|
mnMaxPacCount = mpinfo->mCap;
|
|
mnBufSize = mpinfo->mnBufSize;
|
|
mnBufSize = mpinfo->mnBufSize;
|
|
|
|
+
|
|
|
|
+ ivstdcolorout("AttachMem Successfully.");
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
|
|
+ std::cout<<" mode: "<<mnMode<<" asm name: "<<mASM_State.mstrshmname<<std::endl;
|
|
|
|
+ ivstdcolorout(" AttachMem: ASM Attach Fail. ",iv::STDCOLOR_BOLDYELLOW);
|
|
|
|
+ if(mnMode == ModeWrite)
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ int nrtn = CreateAndAttachASM(pasmptr->mstrshmname,mmodulemsg_type.mnBufSize,
|
|
|
|
+ mmodulemsg_type.mnMsgBufCount,mmodulemsg_type.mstrmsgidname);
|
|
|
|
+ if(nrtn <0 )
|
|
|
|
+ {
|
|
|
|
+ char strerr[256];
|
|
|
|
+ snprintf(strerr,256,"AttachMem CreateAndAttachASMFail. error code: %d",nrtn);
|
|
|
|
+ ivstdcolorout(strerr,iv::STDCOLOR_BOLDRED);
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
|
|
+ ivstdcolorout(" AttachMem: Attach Fail. ",iv::STDCOLOR_BOLDYELLOW);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ ivstdcolorout("Fail in reattach. check modulecomm code......");
|
|
return false;
|
|
return false;
|
|
mpASM->attach();
|
|
mpASM->attach();
|
|
if(mpASM->isAttached())
|
|
if(mpASM->isAttached())
|
|
@@ -616,10 +646,19 @@ int procsm::checkasm()
|
|
if((pASM_PTR->mnUpdateTime == mASM_State.mnUpdateTime) && (mbAttach == true) )
|
|
if((pASM_PTR->mnUpdateTime == mASM_State.mnUpdateTime) && (mbAttach == true) )
|
|
{
|
|
{
|
|
|
|
|
|
|
|
+
|
|
mpASMPtr->unlock();
|
|
mpASMPtr->unlock();
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
qDebug("reattch mem.");
|
|
qDebug("reattch mem.");
|
|
|
|
+ if(pASM_PTR->mnUpdateTime == mASM_State.mnUpdateTime)
|
|
|
|
+ {
|
|
|
|
+ std::cout<<" checkasm: mbAttach is false";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ std::cout<<" updateTime not equal."<<std::endl;
|
|
|
|
+ }
|
|
mbAttach = false;
|
|
mbAttach = false;
|
|
AttachMem();
|
|
AttachMem();
|
|
mpASMPtr->unlock();
|
|
mpASMPtr->unlock();
|