diff --git a/reflector/DPlusProtocol.cpp b/reflector/DPlusProtocol.cpp index fe55dd8..cbcb5ec 100644 --- a/reflector/DPlusProtocol.cpp +++ b/reflector/DPlusProtocol.cpp @@ -423,16 +423,19 @@ bool CDplusProtocol::IsValidDvHeaderPacket(const CBuffer &Buffer, std::unique_pt bool CDplusProtocol::IsValidDvFramePacket(const CBuffer &Buffer, std::unique_ptr &dvframe) { - auto size = Buffer.size(); - if ( (29==size || 32==size) && 0x1DU==Buffer.data()[0] && 0x80U==Buffer.data()[1] && 0==Buffer.Compare((uint8_t *)"DSVT", 2, 4) && 0x20U==Buffer.data()[6] && 0x20U==Buffer.data()[10] ) + if (0==Buffer.Compare((uint8_t *)"DSVT", 2, 4) && 0x80u==Buffer.data()[1] && 0x20u==Buffer.data()[6] && 0x20u==Buffer.data()[10]) { - if (32==size) - dvframe = std::unique_ptr(new CDvFramePacket((SDStarFrame *)&(Buffer.data()[17]), *((uint16_t *)&(Buffer.data()[14])), 0x40U | Buffer.data()[16])); - else + auto size = Buffer.size(); + if (29==size && 0x1du==Buffer.data()[0]) + { dvframe = std::unique_ptr(new CDvFramePacket((SDStarFrame *)&(Buffer.data()[17]), *((uint16_t *)&(Buffer.data()[14])), Buffer.data()[16])); - // check validity of packet - if ( dvframe && dvframe->IsValid() ) return true; + } + else if (32==size && 0x20u==Buffer.data()[0]) + { + dvframe = std::unique_ptr(new CDvFramePacket((SDStarFrame *)&(Buffer.data()[17]), *((uint16_t *)&(Buffer.data()[14])), 0x40u | Buffer.data()[16])); + return true; + } } return false; } diff --git a/reflector/Main.h b/reflector/Main.h index 13e7415..a05afbf 100644 --- a/reflector/Main.h +++ b/reflector/Main.h @@ -63,7 +63,7 @@ #define VERSION_MAJOR 0 #define VERSION_MINOR 0 -#define VERSION_REVISION 2 +#define VERSION_REVISION 3 // global ------------------------------------------------------