| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- #include "stdafx.h"
 
- #include "LNBuffer.h"
 
- #include <Simplelog.h>
 
- #include <string>
 
- #include "LNContext.h"
 
- CLNBuffer::CLNBuffer()
 
- {
 
- }
 
- CLNBuffer::~CLNBuffer()
 
- {
 
- }
 
- int CLNBuffer::HasPack()
 
- {
 
-     if (m_nPos < 4) return 0;
 
-     int i, nStart = -1;
 
-     //find pack head
 
-     for (i = 0; i < m_nPos - 1; i++)
 
-     {
 
-         if (m_pBuffer[i] == '{')
 
-         {
 
-             nStart = i;
 
-             break;
 
-         }
 
-     }
 
-     if (nStart == -1)
 
-     {
 
-         CString imei;
 
-         if (pContext) if (((CLNContext*)pContext)->m_mapImei.size()) imei = ((CLNContext*)pContext)->m_mapImei.begin()->first;
 
-         CSimpleLog::Error(fmt::format("[设备]{}未找到7B丢弃数据{}:({}){}", imei, m_nPos,
 
-             CString((char*)m_pBuffer, m_nPos), CSimpleLog::GetHexString(m_pBuffer, m_nPos)).c_str());
 
-         m_nPos = 0;
 
-         return 0;
 
-     }
 
-     else if (nStart > 0)
 
-     {
 
- 		CString imei;
 
- 		if (pContext) if (((CLNContext*)pContext)->m_mapImei.size()) imei = ((CLNContext*)pContext)->m_mapImei.begin()->first;
 
- 		CSimpleLog::Error(fmt::format("[设备]{}找到7B丢弃7B之前的数据{}:({}){}", imei, nStart,
 
-             CString((char*)m_pBuffer, nStart), CSimpleLog::GetHexString(m_pBuffer, nStart)).c_str());
 
-         m_nPos -= nStart;
 
-         memmove(m_pBuffer, m_pBuffer + nStart, m_nPos);
 
-         nStart = 0;
 
-     }
 
-     int nlen = 0;
 
-     //find pack tail
 
-     for (i = 1; i < m_nPos; i++)
 
-     {
 
-         if (m_pBuffer[i] == '{')
 
-         {
 
- 			CString imei;
 
- 			if (pContext) if (((CLNContext*)pContext)->m_mapImei.size()) imei = ((CLNContext*)pContext)->m_mapImei.begin()->first;
 
- 			CSimpleLog::Error(fmt::format("[设备]{}找7D丢弃7B之前的数据{}:({}){}", imei, i,
 
-                 CString((char*)m_pBuffer, i), CSimpleLog::GetHexString(m_pBuffer, i)).c_str());
 
-             m_nPos -= i;
 
-             memmove(m_pBuffer, m_pBuffer + i, m_nPos);
 
-             nStart = 0;
 
-             return 0;
 
-         }
 
-         if (m_pBuffer[i] == '}')
 
-         {
 
-             nlen = i + 1;
 
-             return nlen;
 
-         }
 
-     }
 
-     return nlen;
 
- }
 
 
  |