基线:UDP 收包长度校验 + SQLite 表描述符重构 + 清理设计文档
This commit is contained in:
@@ -36,8 +36,11 @@ Checksum udpComm::calculateChecksum(const unsigned char* data, int dataSize, int
|
||||
}
|
||||
return checksum;
|
||||
}
|
||||
bool udpComm::getMsgId(char *m,unsigned short &id)
|
||||
bool udpComm::getMsgId(char *m, size_t len, unsigned short &id)
|
||||
{
|
||||
if (m == NULL || len < sizeof(m_header)) {
|
||||
return false;
|
||||
}
|
||||
m_header h;
|
||||
h = *reinterpret_cast<m_header *>(m);
|
||||
// 判断消息是否有效
|
||||
@@ -56,7 +59,11 @@ bool udpComm::getMsgId(char *m,unsigned short &id)
|
||||
// LOG_F(ERROR, "Msg Header errar start1: %d, start2: %d", h.start1, h.start2);
|
||||
return false;
|
||||
}
|
||||
bool udpComm::getMsgFromBuff(char *m, msg_CcuStateFbMsg &s) {
|
||||
bool udpComm::getMsgFromBuff(char *m, size_t len, msg_CcuStateFbMsg &s) {
|
||||
if (m == NULL || len < sizeof(msg_CcuStateFbMsg)) {
|
||||
sError.push_back("CcuStat Msg length error");
|
||||
return false;
|
||||
}
|
||||
Checksum sum;
|
||||
msg_CcuStateFbMsg *p;
|
||||
p = reinterpret_cast<msg_CcuStateFbMsg *>(m);
|
||||
@@ -69,8 +76,12 @@ bool udpComm::getMsgFromBuff(char *m, msg_CcuStateFbMsg &s) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool udpComm::getMsgFromBuff(char *m, msg_CcuSetParmFbMsg &s)
|
||||
bool udpComm::getMsgFromBuff(char *m, size_t len, msg_CcuSetParmFbMsg &s)
|
||||
{
|
||||
if (m == NULL || len < sizeof(msg_CcuSetParmFbMsg)) {
|
||||
sError.push_back("CcuSetParm Msg length error");
|
||||
return false;
|
||||
}
|
||||
Checksum sum;
|
||||
msg_CcuSetParmFbMsg *p;
|
||||
p = reinterpret_cast<msg_CcuSetParmFbMsg *>(m);
|
||||
@@ -85,8 +96,12 @@ bool udpComm::getMsgFromBuff(char *m, msg_CcuSetParmFbMsg &s)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool udpComm::getMsgFromBuff(char *m, msg_disHighVolBusFbMsg &s)
|
||||
bool udpComm::getMsgFromBuff(char *m, size_t len, msg_disHighVolBusFbMsg &s)
|
||||
{
|
||||
if (m == NULL || len < sizeof(msg_disHighVolBusFbMsg)) {
|
||||
sError.push_back("DisSys HVBus Msg length error");
|
||||
return false;
|
||||
}
|
||||
cChecksum sum;
|
||||
msg_disHighVolBusFbMsg *p;
|
||||
p = reinterpret_cast<msg_disHighVolBusFbMsg *>(m);
|
||||
@@ -101,8 +116,12 @@ bool udpComm::getMsgFromBuff(char *m, msg_disHighVolBusFbMsg &s)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool udpComm::getMsgFromBuff(char *m, msg_disHighAVolBusFbMsg &s)
|
||||
bool udpComm::getMsgFromBuff(char *m, size_t len, msg_disHighAVolBusFbMsg &s)
|
||||
{
|
||||
if (m == NULL || len < sizeof(msg_disHighAVolBusFbMsg)) {
|
||||
sError.push_back("DisSys HVABus Msg length error");
|
||||
return false;
|
||||
}
|
||||
cChecksum sum;
|
||||
msg_disHighAVolBusFbMsg *p;
|
||||
p = reinterpret_cast<msg_disHighAVolBusFbMsg *>(m);
|
||||
@@ -115,8 +134,12 @@ bool udpComm::getMsgFromBuff(char *m, msg_disHighAVolBusFbMsg &s)
|
||||
s = *p;
|
||||
return true;
|
||||
}
|
||||
bool udpComm::getMsgFromBuff(char *m, msg_disLowMainBusFbMsg &s)
|
||||
bool udpComm::getMsgFromBuff(char *m, size_t len, msg_disLowMainBusFbMsg &s)
|
||||
{
|
||||
if (m == NULL || len < sizeof(msg_disLowMainBusFbMsg)) {
|
||||
sError.push_back("DisSys HVBBus Msg length error");
|
||||
return false;
|
||||
}
|
||||
cChecksum sum;
|
||||
msg_disLowMainBusFbMsg *p;
|
||||
p = reinterpret_cast<msg_disLowMainBusFbMsg *>(m);
|
||||
@@ -130,8 +153,12 @@ bool udpComm::getMsgFromBuff(char *m, msg_disLowMainBusFbMsg &s)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool udpComm::getMsgFromBuff(char *m, msg_disLowBusFbMsg &s)
|
||||
bool udpComm::getMsgFromBuff(char *m, size_t len, msg_disLowBusFbMsg &s)
|
||||
{
|
||||
if (m == NULL || len < sizeof(msg_disLowBusFbMsg)) {
|
||||
sError.push_back("DisSys LVBus Msg length error");
|
||||
return false;
|
||||
}
|
||||
cChecksum sum;
|
||||
msg_disLowBusFbMsg *p;
|
||||
p = reinterpret_cast<msg_disLowBusFbMsg *>(m);
|
||||
@@ -145,35 +172,29 @@ bool udpComm::getMsgFromBuff(char *m, msg_disLowBusFbMsg &s)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool udpComm::pushMsgToQueue(unsigned char *m)
|
||||
bool udpComm::pushMsgToQueue(unsigned char *m, size_t len)
|
||||
{
|
||||
if(m==NULL)
|
||||
if(m==NULL || len < sizeof(m_header))
|
||||
{
|
||||
// sError.push_back("pushMsgToQueue faile,Msg is NULL");
|
||||
LOG_F(ERROR, "pushMsgToQueue faile,Msg is NULL m: %p", m);
|
||||
LOG_F(ERROR, "pushMsgToQueue faile,Msg is NULL or too short m: %p len: %zu", m, len);
|
||||
return false;
|
||||
}
|
||||
|
||||
unsigned char* Buff = m;
|
||||
//消息头鉴定
|
||||
char *header = new char[sizeof(m_header)];
|
||||
unsigned short id;
|
||||
memcpy(header,Buff,sizeof(m_header));
|
||||
if(!getMsgId(header,id))
|
||||
if(!getMsgId((char *)Buff, len, id))
|
||||
{
|
||||
// sError.push_back("pushMsgToQueue faile,Msg ID error");
|
||||
// LOG_F(INFO, "pushMsgToQueue faile,Msg ID error header: %p", header);
|
||||
delete []header;
|
||||
return false;
|
||||
}
|
||||
delete []header;
|
||||
//输入消息
|
||||
switch (id)
|
||||
{
|
||||
case CCU_STATE_FB_ID: //CCU_STATE_FB 0x0051
|
||||
{
|
||||
msg_CcuStateFbMsg s;
|
||||
if(getMsgFromBuff((char *)Buff,s))
|
||||
if(getMsgFromBuff((char *)Buff, len, s))
|
||||
{
|
||||
if (m_commLogger) m_commLogger->onFrame(0, id, "ccuState", Buff, sizeof(msg_CcuStateFbMsg), true);
|
||||
std::lock_guard<std::mutex> lock(m_mutexCcuState);
|
||||
@@ -198,7 +219,7 @@ bool udpComm::pushMsgToQueue(unsigned char *m)
|
||||
case CCU_SET_PARM_FB_ID: //CCU_SET_PARM_FB 0x0040
|
||||
{
|
||||
msg_CcuSetParmFbMsg s;
|
||||
if(getMsgFromBuff((char *)Buff,s))
|
||||
if(getMsgFromBuff((char *)Buff, len, s))
|
||||
{
|
||||
if (m_commLogger) m_commLogger->onFrame(0, id, "ccuSetParmFb", Buff, sizeof(msg_CcuSetParmFbMsg), true);
|
||||
std::lock_guard<std::mutex> lock(m_mutexCcuSetParm);
|
||||
@@ -223,7 +244,7 @@ bool udpComm::pushMsgToQueue(unsigned char *m)
|
||||
case DIS_HVBUS_FB_ID: //DIS_HVBUS_FB 0x0020
|
||||
{
|
||||
msg_disHighVolBusFbMsg s;
|
||||
if(getMsgFromBuff((char *)Buff,s))
|
||||
if(getMsgFromBuff((char *)Buff, len, s))
|
||||
{
|
||||
if (m_commLogger) m_commLogger->onFrame(0, id, "disHighVolBusState", Buff, sizeof(msg_disHighVolBusFbMsg), true);
|
||||
std::lock_guard<std::mutex> lock(m_mutexDisHighVolBus);
|
||||
@@ -248,7 +269,7 @@ bool udpComm::pushMsgToQueue(unsigned char *m)
|
||||
case DIS_HVBUSA_FB_ID: //DIS_HVBUSA_FB 0x0006
|
||||
{
|
||||
msg_disHighAVolBusFbMsg s;
|
||||
if(getMsgFromBuff((char *)Buff,s))
|
||||
if(getMsgFromBuff((char *)Buff, len, s))
|
||||
{
|
||||
if (m_commLogger) m_commLogger->onFrame(0, id, "disHighAVolBusState", Buff, sizeof(msg_disHighAVolBusFbMsg), true);
|
||||
std::lock_guard<std::mutex> lock(m_mutexDisHighAVolBus);
|
||||
@@ -273,7 +294,7 @@ bool udpComm::pushMsgToQueue(unsigned char *m)
|
||||
case DIS_HVBUSB_FB_ID: //DIS_HVBUSB_FB 0x0007
|
||||
{
|
||||
msg_disLowMainBusFbMsg s;
|
||||
if(getMsgFromBuff((char *)Buff,s))
|
||||
if(getMsgFromBuff((char *)Buff, len, s))
|
||||
{
|
||||
if (m_commLogger) m_commLogger->onFrame(0, id, "disLowMainBusState", Buff, sizeof(msg_disLowMainBusFbMsg), true);
|
||||
std::lock_guard<std::mutex> lock(m_mutexDisHighBVolBus);
|
||||
@@ -298,7 +319,7 @@ bool udpComm::pushMsgToQueue(unsigned char *m)
|
||||
case DIS_LVBUS_FB_ID: //DIS_LVBUS_FB 0x0008
|
||||
{
|
||||
msg_disLowBusFbMsg s;
|
||||
if(getMsgFromBuff((char *)Buff,s))
|
||||
if(getMsgFromBuff((char *)Buff, len, s))
|
||||
{
|
||||
if (m_commLogger) m_commLogger->onFrame(0, id, "disLowBusState", Buff, sizeof(msg_disLowBusFbMsg), true);
|
||||
std::lock_guard<std::mutex> lock(m_mutexDisLowBus);
|
||||
|
||||
Reference in New Issue
Block a user