Browse Source

change detection_lidar_PointPillars_MultiHead. fix a memory problem.

yuchuli 3 years ago
parent
commit
318bda035e

+ 2 - 0
src/detection/detection_lidar_PointPillars_MultiHead/main.cpp

@@ -187,6 +187,8 @@ void ListenPointCloud(const char *strdata,const unsigned int nSize,const unsigne
     int nNameSize;
     nNameSize = *pHeadSize - 4-4-8;
     char * strName = new char[nNameSize+1];strName[nNameSize] = 0;
+    std::shared_ptr<char> str_ptr;
+    str_ptr.reset(strName);
     memcpy(strName,(char *)((char *)strdata +4),nNameSize);
     point_cloud->header.frame_id = strName;
     memcpy(&point_cloud->header.seq,(char *)strdata+4+nNameSize,4);

+ 21 - 6
src/tool/IVSysMan/progmon.cpp

@@ -758,7 +758,7 @@ void ProgMon::threadstdout()
                         {
                             QString strlog;
                             strlog = QDateTime::currentDateTime().toString("(yyyy/MM/dd hh:mm:ss:zzz")
-                                    + " | " + strappname.data() + " "+ strarg.data() + " "+") "
+                                    + " | " + strappname.data() + " "+ strarg.data() + ")"
                                     +xvectorstdout[i].mba.data();
                             WriteStdLog(strlog.toLatin1().data());
                         }
@@ -778,8 +778,23 @@ void ProgMon::threadstdout()
 
 void ProgMon::LogError(QProcess *proc, QByteArray &ba)
 {
-    std::cout<<"error is "<<ba.data()<<std::endl;
+//    std::cout<<"error is "<<ba.data()<<std::endl;
 
+    static int nCheckSpace = 0;
+    static bool bSave = true;
+    if(bSave == false)return;
+    if(nCheckSpace<=0)
+    {
+        nCheckSpace = 10000;
+        QString strhomepath = getenv("HOME");
+        if(get_path_availspace(strhomepath)<100)
+        {
+            bSave = false;
+            return;
+        }
+
+    }
+    nCheckSpace--;
     unsigned int i;
     std::string strappname;
     std::string strarg;
@@ -801,9 +816,9 @@ void ProgMon::LogError(QProcess *proc, QByteArray &ba)
     if(bFind)
     {
         QString strlog;
-        strlog = QDateTime::currentDateTime().toString("yyyy/MM/dd hh:mm:ss:zzz")
-                + " | " + strappname.data() + " "+ strarg.data() + " "+" | Error: "
-                +ba.data() + "\n";
+        strlog = QDateTime::currentDateTime().toString("(yyyy/MM/dd hh:mm:ss:zzz")
+                + " | " + strappname.data() + " "+ strarg.data() + ")"
+                +ba.data();
         WriteLog(strlog.toLatin1().data());
     }
 
@@ -865,7 +880,7 @@ void ProgMon::WriteLog(const char *strlog)
     if(mbFileLog)
     {
         mFileLog.write(strlog,strnlen(strlog,100000));
-        mFileLog.flush();
+//        mFileLog.flush();
     }
 }
 

+ 1 - 1
src/tool/IVSysMan/progmon.h

@@ -116,7 +116,7 @@ private:
     std::thread * mpthread_stdout;
 
 private:
-    void LogError(QProcess * proc,QByteArray & ba);
+    inline void LogError(QProcess * proc,QByteArray & ba);
 
     QFile mFileLog;
     bool mbFileLog = false;