Przeglądaj źródła

add ivstdcolorout.h for color std output.

yuchuli 2 lat temu
rodzic
commit
23d5131ff5

+ 117 - 0
include/ivstdcolorout.h

@@ -0,0 +1,117 @@
+#ifndef IVSTDCOLOROUT_H
+#define IVSTDCOLOROUT_H
+
+//#define RESET   "\033[0m"
+//#define BLACK   "\033[30m"      /* Black */
+//#define RED     "\033[31m"      /* Red */
+//#define GREEN   "\033[32m"      /* Green */
+//#define YELLOW  "\033[33m"      /* Yellow */
+//#define BLUE    "\033[34m"      /* Blue */
+//#define MAGENTA "\033[35m"      /* Magenta */
+//#define CYAN    "\033[36m"      /* Cyan */
+//#define WHITE   "\033[37m"      /* White */
+//#define BOLDBLACK   "\033[1m\033[30m"      /* Bold Black */
+//#define BOLDRED     "\033[1m\033[31m"      /* Bold Red */
+//#define BOLDGREEN   "\033[1m\033[32m"      /* Bold Green */
+//#define BOLDYELLOW  "\033[1m\033[33m"      /* Bold Yellow */
+//#define BOLDBLUE    "\033[1m\033[34m"      /* Bold Blue */
+//#define BOLDMAGENTA "\033[1m\033[35m"      /* Bold Magenta */
+//#define BOLDCYAN    "\033[1m\033[36m"      /* Bold Cyan */
+//#define BOLDWHITE   "\033[1m\033[37m"      /* Bold White */
+
+
+namespace iv {
+
+enum STDCOLOR
+{
+    STDCOLOR_DEFUALT = 1,
+    STDCOLOR_BLACK = 2,
+    STDCOLOR_RED = 3,
+    STDCOLOR_GREEN = 4,
+    STDCOLOR_YELLOW = 5,
+    STDCOLOR_BLUE = 6,
+    STDCOLOR_MAGENTA = 7,
+    STDCOLOR_CYAN = 8,
+    STDCOLOR_WHITE = 9,
+    STDCOLOR_BOLDBLACK = 10,
+    STDCOLOR_BOLDRED = 11,
+    STDCOLOR_BOLDGREEN = 12,
+    STDCOLOR_BOLDYELLOW = 13,
+    STDCOLOR_BOLDBLUE = 14,
+    STDCOLOR_BOLDMAGENTA = 15,
+    STDCOLOR_BOLDCYAN = 16,
+    STDCOLOR_BOLDWHITE = 17
+};
+
+
+}
+
+
+#include <iostream>
+inline void ivstdcolorout(std::string str,iv::STDCOLOR color = iv::STDCOLOR::STDCOLOR_DEFUALT)
+{
+    if(color == iv::STDCOLOR::STDCOLOR_DEFUALT)
+    {
+        std::cout<<str<<std::endl;
+        return;
+    }
+    switch (color) {
+    case iv::STDCOLOR::STDCOLOR_DEFUALT:
+        std::cout<<str<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BLACK:
+        std::cout<<"\033[30m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_RED:
+        std::cout<<"\033[31m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_GREEN:
+        std::cout<<"\033[32m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_YELLOW:
+        std::cout<<"\033[33m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BLUE:
+        std::cout<<"\033[34m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_MAGENTA:
+        std::cout<<"\033[35m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_CYAN:
+        std::cout<<"\033[36m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_WHITE:
+        std::cout<<"\033[37m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDBLACK:
+        std::cout<<"\033[1m\033[30m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDRED:
+        std::cout<<"\033[1m\033[31m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDGREEN:
+        std::cout<<"\033[1m\033[32m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDYELLOW:
+        std::cout<<"\033[1m\033[33m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDBLUE:
+        std::cout<<"\033[1m\033[34m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDMAGENTA:
+        std::cout<<"\033[1m\033[35m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDCYAN:
+        std::cout<<"\033[1m\033[36m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDWHITE:
+        std::cout<<"\033[1m\033[37m"<<str<<"\033[0m"<<std::endl;
+        break;
+    default:
+        std::cout<<str<<std::endl;
+        break;
+    }
+}
+
+
+#endif // IVSTDCOLOROUT_H

+ 117 - 0
src/common/modulecomm/ivstdcolorout.h

@@ -0,0 +1,117 @@
+#ifndef IVSTDCOLOROUT_H
+#define IVSTDCOLOROUT_H
+
+//#define RESET   "\033[0m"
+//#define BLACK   "\033[30m"      /* Black */
+//#define RED     "\033[31m"      /* Red */
+//#define GREEN   "\033[32m"      /* Green */
+//#define YELLOW  "\033[33m"      /* Yellow */
+//#define BLUE    "\033[34m"      /* Blue */
+//#define MAGENTA "\033[35m"      /* Magenta */
+//#define CYAN    "\033[36m"      /* Cyan */
+//#define WHITE   "\033[37m"      /* White */
+//#define BOLDBLACK   "\033[1m\033[30m"      /* Bold Black */
+//#define BOLDRED     "\033[1m\033[31m"      /* Bold Red */
+//#define BOLDGREEN   "\033[1m\033[32m"      /* Bold Green */
+//#define BOLDYELLOW  "\033[1m\033[33m"      /* Bold Yellow */
+//#define BOLDBLUE    "\033[1m\033[34m"      /* Bold Blue */
+//#define BOLDMAGENTA "\033[1m\033[35m"      /* Bold Magenta */
+//#define BOLDCYAN    "\033[1m\033[36m"      /* Bold Cyan */
+//#define BOLDWHITE   "\033[1m\033[37m"      /* Bold White */
+
+
+namespace iv {
+
+enum STDCOLOR
+{
+    STDCOLOR_DEFUALT = 1,
+    STDCOLOR_BLACK = 2,
+    STDCOLOR_RED = 3,
+    STDCOLOR_GREEN = 4,
+    STDCOLOR_YELLOW = 5,
+    STDCOLOR_BLUE = 6,
+    STDCOLOR_MAGENTA = 7,
+    STDCOLOR_CYAN = 8,
+    STDCOLOR_WHITE = 9,
+    STDCOLOR_BOLDBLACK = 10,
+    STDCOLOR_BOLDRED = 11,
+    STDCOLOR_BOLDGREEN = 12,
+    STDCOLOR_BOLDYELLOW = 13,
+    STDCOLOR_BOLDBLUE = 14,
+    STDCOLOR_BOLDMAGENTA = 15,
+    STDCOLOR_BOLDCYAN = 16,
+    STDCOLOR_BOLDWHITE = 17
+};
+
+
+}
+
+
+#include <iostream>
+inline void ivstdcolorout(std::string str,iv::STDCOLOR color = iv::STDCOLOR::STDCOLOR_DEFUALT)
+{
+    if(color == iv::STDCOLOR::STDCOLOR_DEFUALT)
+    {
+        std::cout<<str<<std::endl;
+        return;
+    }
+    switch (color) {
+    case iv::STDCOLOR::STDCOLOR_DEFUALT:
+        std::cout<<str<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BLACK:
+        std::cout<<"\033[30m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_RED:
+        std::cout<<"\033[31m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_GREEN:
+        std::cout<<"\033[32m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_YELLOW:
+        std::cout<<"\033[33m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BLUE:
+        std::cout<<"\033[34m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_MAGENTA:
+        std::cout<<"\033[35m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_CYAN:
+        std::cout<<"\033[36m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_WHITE:
+        std::cout<<"\033[37m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDBLACK:
+        std::cout<<"\033[1m\033[30m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDRED:
+        std::cout<<"\033[1m\033[31m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDGREEN:
+        std::cout<<"\033[1m\033[32m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDYELLOW:
+        std::cout<<"\033[1m\033[33m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDBLUE:
+        std::cout<<"\033[1m\033[34m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDMAGENTA:
+        std::cout<<"\033[1m\033[35m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDCYAN:
+        std::cout<<"\033[1m\033[36m"<<str<<"\033[0m"<<std::endl;
+        break;
+    case iv::STDCOLOR::STDCOLOR_BOLDWHITE:
+        std::cout<<"\033[1m\033[37m"<<str<<"\033[0m"<<std::endl;
+        break;
+    default:
+        std::cout<<str<<std::endl;
+        break;
+    }
+}
+
+
+#endif // IVSTDCOLOROUT_H

+ 2 - 1
src/common/modulecomm/modulecomm.pro

@@ -47,7 +47,8 @@ SOURCES += \
 HEADERS += \
     ivmodulemsg_type.h \
     modulecomm.h \
-    modulecomm_base.h
+    modulecomm_base.h \
+    ivstdcolorout.h
 
 CONFIG += plugin
 

+ 137 - 133
src/common/modulecomm/shm/procsm.cpp

@@ -14,6 +14,7 @@
 
 #include "procsm_if.h"
 
+#include "ivstdcolorout.h"
 
 //#define RESET   "\033[0m"
 //#define BLACK   "\033[30m"      /* Black */
@@ -162,140 +163,14 @@ procsm::procsm(const char * strsmname,const unsigned int nBufSize,const unsigned
 #endif
 #endif
 
-        bool bAttach= true;
-//        AttachThread AT(mpASM,bAttach);
-//        AT.start();
-//        QTime xTime;
-//        xTime.start();
-//        while(xTime.elapsed()<100)
-//        {
-//            if(AT.mbrun == false)
-//            {
-//                bAttach = AT.mbAttach;
-//                break;
-//            }
-//        }
-// //       qDebug("time is %d",xTime.elapsed());
-//        if(xTime.elapsed()>= 1000)
-//        {
-//            qDebug("in 1000ms Attach fail.terminate it .");
-//            AT.terminate();
-//            bAttach = false;
-//        }
-
- //       if(!mpASM->attach())
-
-
-
-
-        bool bares = mpASM->create(sizeof(procsm_info)+nMaxPacCount*sizeof(procsm_head) + nBufSize);
-        if(bares == false)   //Exist.
+        int nrtn = CreateAndAttachASM(strasmname,nBufSize,nMaxPacCount,strsmname);
+        if(nrtn <0 )
         {
-            bAttach = mpASM->attach();
-
-            if(bAttach)
-            {
-                char * p = (char *)mpASM->data();
-                if(p == NULL)
-                {
-                    qDebug("Create SharedMemory Fail.");
-                    return;
-                }
-                mpinfo = (procsm_info *)p;
-                mphead = (procsm_head *)(p+sizeof(procsm_info));
-
-
-            }
-            else
-            {
-                std::cout<<" Exist,But Fail Attach. Recreate "<<std::endl;
-                qint64 uptime = std::chrono::system_clock::now().time_since_epoch().count();
-                snprintf(strasmname,256,"%s_%lld",strsmname,uptime);
-                mpASMPtr->lock();
-                ASM_PTR * pasm = (ASM_PTR *)mpASMPtr->data();
-                pasm->mnshmsize = sizeof(procsm_info)+nMaxPacCount*sizeof(procsm_head) + nBufSize;
-                pasm->mnUpdateTime = uptime;
-                strncpy(pasm->mstrshmname,strasmname,256);
-                mpASMPtr->unlock();
-                bool bRecreate = mpASM->create(sizeof(procsm_info)+nMaxPacCount*sizeof(procsm_head) + nBufSize);
-                if(bRecreate)
-                {
-                    char * p = (char *)mpASM->data();
-                    if(p == NULL)
-                    {
-                        qDebug("Create SharedMemory Fail.");
-                        return;
-                    }
-                    mpASM->lock();
-                    mpinfo = (procsm_info *)p;
-                    mphead = (procsm_head *)(p+sizeof(procsm_info));
-                    mpinfo->mCap = nMaxPacCount;
-                    mpinfo->mnBufSize = nBufSize;
-                    mpinfo->mFirst = 0;
-                    mpinfo->mNext = 0;
-                    mpinfo->mLock = 0;
-                    mpASM->unlock();
-                }
-                else
-                {
-                    std::cout<<" Recreate Fail. Need Exit Program."<<std::endl;
-                }
-            }
-
-        }
-        else
-        {
-            char * p = (char *)mpASM->data();
-            if(p == NULL)
-            {
-                qDebug("Create SharedMemory Fail.");
-                return;
-            }
-            mpASM->lock();
-            mpinfo = (procsm_info *)p;
-            mphead = (procsm_head *)(p+sizeof(procsm_info));
-            mpinfo->mCap = nMaxPacCount;
-            mpinfo->mnBufSize = nBufSize;
-            mpinfo->mFirst = 0;
-            mpinfo->mNext = 0;
-            mpinfo->mLock = 0;
-            mpASM->unlock();
+            char strerr[256];
+            snprintf(strerr,256,"CreateAndAttachASMFail. error code: %d",nrtn);
+            ivstdcolorout(strerr,iv::STDCOLOR_BOLDRED);
         }
 
-
-        if(mpASM->isAttached())
-        {
-
-            mbAttach = true;
-            char * p = (char *)mpASM->data();
-            mpinfo = (procsm_info *)p;
-            mphead = (procsm_head *)(p+sizeof(procsm_info));
-            mpASM->lock();
-            mnMaxPacCount = mpinfo->mCap;
-            mnBufSize = mpinfo->mnBufSize;
-            mpASM->unlock();
-            mstrtem = new char[mnBufSize];
-
-#ifndef USE_GROUPUDP
-#ifdef USEDBUS
-            mmsgres = QDBusMessage::createSignal("/catarc/adc",  "adciv.interface", "modulemsgres");
-            mmsgres<<1;
-
-            bool bconnect = QDBusConnection::sessionBus().connect(QString(),"/catarc/adc",  "adciv.interface", "modulemsgquery",this,SLOT(onQuery()));
-            if(bconnect == false)
-            {
-                std::cout<<"procsm_if_readthread::procsm_if_readthread bconect is false"<<std::endl;
-            }
-#endif
-#endif
-        }
-        else
-        {
-          mbAttach = false;
-            qDebug("Share Memory Error.");
-        }
-
-
     }
 
     mbInitComplete = true;
@@ -381,11 +256,137 @@ int procsm::CreateASMPTR(char * strasmname,const unsigned int nBufSize,const uns
     return 0;
 }
 
+int procsm::CreateAndAttachASM(char * strasmname,const unsigned int nBufSize,const unsigned int nMaxPacCount,const char * strsmname)
+{
+
+    bool bAttach= true;
+    std::string strout;
+
+    bool bares = mpASM->create(sizeof(procsm_info)+nMaxPacCount*sizeof(procsm_head) + nBufSize);
+    if(bares == false)   //Exist.
+    {
+        strout = strsmname ;
+        strout = strout + " is Exist.";
+        ivstdcolorout(strout);
+        bAttach = mpASM->attach();
+
+        if(bAttach)
+        {
+            char * p = (char *)mpASM->data();
+            if(p == NULL)
+            {
+                strout = "Fatal Error: Create " + std::string(strsmname) + " Fail. data is NULL";
+                ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
+                return -1;
+            }
+            mpinfo = (procsm_info *)p;
+            mphead = (procsm_head *)(p+sizeof(procsm_info));
+
+
+        }
+        else
+        {
+            std::cout<<" Exist,But Fail Attach. Recreate "<<std::endl;
+            qint64 uptime = std::chrono::system_clock::now().time_since_epoch().count();
+            snprintf(strasmname,256,"%s_%lld",strsmname,uptime);
+            mpASMPtr->lock();
+            ASM_PTR * pasm = (ASM_PTR *)mpASMPtr->data();
+            pasm->mnshmsize = sizeof(procsm_info)+nMaxPacCount*sizeof(procsm_head) + nBufSize;
+            pasm->mnUpdateTime = uptime;
+            strncpy(pasm->mstrshmname,strasmname,256);
+            mpASMPtr->unlock();
+            bool bRecreate = mpASM->create(sizeof(procsm_info)+nMaxPacCount*sizeof(procsm_head) + nBufSize);
+            if(bRecreate)
+            {
+                char * p = (char *)mpASM->data();
+                if(p == NULL)
+                {
+                    strout = "Fatal Error: ReCreate " + std::string(strsmname) + " Fail. data is NULL";
+                    ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
+                    return -2;
+                }
+                mpASM->lock();
+                mpinfo = (procsm_info *)p;
+                mphead = (procsm_head *)(p+sizeof(procsm_info));
+                mpinfo->mCap = nMaxPacCount;
+                mpinfo->mnBufSize = nBufSize;
+                mpinfo->mFirst = 0;
+                mpinfo->mNext = 0;
+                mpinfo->mLock = 0;
+                mpASM->unlock();
+            }
+            else
+            {
+                strout = "Fatal Error: ReCreate " + std::string(strsmname) + " Fail.";
+                ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
+                return -5;
+            }
+        }
+
+    }
+    else
+    {
+        char * p = (char *)mpASM->data();
+        if(p == NULL)
+        {
+            strout = "Fatal Error.Create SharedMemory Fail. " + std::string(strsmname) + " not exist. successfully create it, but data is NULL";
+            ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
+            return -3;
+        }
+        mpASM->lock();
+        mpinfo = (procsm_info *)p;
+        mphead = (procsm_head *)(p+sizeof(procsm_info));
+        mpinfo->mCap = nMaxPacCount;
+        mpinfo->mnBufSize = nBufSize;
+        mpinfo->mFirst = 0;
+        mpinfo->mNext = 0;
+        mpinfo->mLock = 0;
+        mpASM->unlock();
+    }
+
+
+    if(mpASM->isAttached())
+    {
+
+        mbAttach = true;
+        char * p = (char *)mpASM->data();
+        mpinfo = (procsm_info *)p;
+        mphead = (procsm_head *)(p+sizeof(procsm_info));
+        mpASM->lock();
+        mnMaxPacCount = mpinfo->mCap;
+        mnBufSize = mpinfo->mnBufSize;
+        mpASM->unlock();
+        mstrtem = new char[mnBufSize];
+
+#ifndef USE_GROUPUDP
+#ifdef USEDBUS
+        mmsgres = QDBusMessage::createSignal("/catarc/adc",  "adciv.interface", "modulemsgres");
+        mmsgres<<1;
+
+        bool bconnect = QDBusConnection::sessionBus().connect(QString(),"/catarc/adc",  "adciv.interface", "modulemsgquery",this,SLOT(onQuery()));
+        if(bconnect == false)
+        {
+            std::cout<<"procsm_if_readthread::procsm_if_readthread bconect is false"<<std::endl;
+        }
+#endif
+#endif
+    }
+    else
+    {
+        mbAttach = false;
+        strout = "Fatal Error.Create SharedMemory Fail. " + std::string(strsmname) + " Attach Fail.";
+        ivstdcolorout(strout,iv::STDCOLOR_BOLDRED);
+        return -4;
+    }
+
+    return 0;
+}
+
 void procsm::recreateasm(int nbufsize)
 {
 
     mpASMPtr->lock();
-    qDebug("recreate asms");
+    ivstdcolorout("recreate " + std::string(mstrsmname) + " new buffe size is " + QString::number(nbufsize).toStdString() ,iv::STDCOLOR_GREEN);
 
 
     mnBufSize = std::max(nbufsize*11/10,nbufsize+1000);
@@ -409,7 +410,10 @@ void procsm::recreateasm(int nbufsize)
     mpASM->unlock();
     mpASM->detach();
 
-    qDebug("new asm name is %s,buffer size is %d ",mASM_State.mstrshmname,mnBufSize);
+    char strout[300];
+    snprintf(strout,300,"new asm name is %s,buffer size is %d ",mASM_State.mstrshmname,mnBufSize);
+    ivstdcolorout(strout,iv::STDCOLOR_GREEN);
+//    qDebug("new asm name is %s,buffer size is %d ",mASM_State.mstrshmname,mnBufSize);
     mpASM = new QSharedMemory(mASM_State.mstrshmname);
 
     bool bAttach = false;

+ 1 - 0
src/common/modulecomm/shm/procsm.h

@@ -134,6 +134,7 @@ private:
 
 private:
     int CreateASMPTR(char * strasmname,const unsigned int nBufSize,const unsigned int nMaxPacCount);
+    int CreateAndAttachASM(char * strasmname,const unsigned int nBufSize,const unsigned int nMaxPacCount,const char * strsmname);
 
 private:
     int checkasm();

+ 4 - 3
src/common/modulecomm/shm/procsm_if.cpp

@@ -96,6 +96,7 @@ void procsm_if_readthread::run()
     QDateTime *pdt = new QDateTime();
 
     bool bAttach = false;
+    bool bFirstRead = true; //if First Read,not read the buffer data.
     while(!QThread::isInterruptionRequested())
     {
         if(mbRun == false)
@@ -164,7 +165,7 @@ void procsm_if_readthread::run()
                    index = mpPSM->getcurrentnext();
                    if(nRtn == -100)  //Because New ShareMemory, read this.
                    {
-                       if(index > 0)index = index -1;
+                       if((index > 0)&&(bFirstRead == false) )index = index -1;
                    }
                 }
                 else
@@ -188,6 +189,7 @@ void procsm_if_readthread::run()
                 }
             }
         }
+        bFirstRead = false;
 
     }
     delete str;
@@ -233,7 +235,6 @@ procsm_if::procsm_if(const char * strsmname,const unsigned int nBufSize,const un
 #endif
     mpPSM = new procsm(strsmname,nBufSize,nMaxPacCount,nMode);
     mnType = nMode;
-
     mTimer.setTimerType(Qt::PreciseTimer);
 
 #ifdef USE_GROUPUDP
@@ -465,7 +466,7 @@ int procsm_if::WaitNotify(int timeout_ms)
         char buf[32] = {0};  // larger than ReadableInfo::kSize
         ssize_t nbytes = recvfrom(listen_fd_, buf, 32, 0, nullptr, nullptr);
         if (nbytes == -1) {
-            std::cout << "fail to recvfrom, " << strerror(errno);
+            std::cout << "fail to recvfrom, " << strerror(errno)<<std::endl;
             return -1;
         }
         if(nbytes == 8)