diff --git a/reflector/YSFProtocol.cpp b/reflector/YSFProtocol.cpp index f67fd1f..e5d354a 100644 --- a/reflector/YSFProtocol.cpp +++ b/reflector/YSFProtocol.cpp @@ -424,7 +424,8 @@ bool CYsfProtocol::IsValidDvHeaderPacket(const CIp &Ip, const CYSFFICH &Fich, co if ( Fich.getFI() == YSF_FI_HEADER ) { // get stream id - uint32_t uiStreamId = IpToStreamId(Ip); + //uint32_t uiStreamId = IpToStreamId(Ip); + m_uiStreamId = static_cast(::rand()); // get header data CYSFPayload ysfPayload; @@ -453,14 +454,14 @@ bool CYsfProtocol::IsValidDvHeaderPacket(const CIp &Ip, const CYSFFICH &Fich, co rpt2.SetCSModule(' '); // and packet - header = std::unique_ptr(new CDvHeaderPacket(csMY, CCallsign("CQCQCQ"), rpt1, rpt2, uiStreamId, Fich.getFN())); + header = std::unique_ptr(new CDvHeaderPacket(csMY, CCallsign("CQCQCQ"), rpt1, rpt2, m_uiStreamId, Fich.getFN())); } // and 2 DV Frames { uint8_t uiAmbe[9]; memset(uiAmbe, 0x00, sizeof(uiAmbe)); - frames[0] = std::unique_ptr(new CDvFramePacket(uiAmbe, uiStreamId, Fich.getFN(), 0, 0, csMY, false)); - frames[1] = std::unique_ptr(new CDvFramePacket(uiAmbe, uiStreamId, Fich.getFN(), 1, 0, csMY, false)); + frames[0] = std::unique_ptr(new CDvFramePacket(uiAmbe, m_uiStreamId, Fich.getFN(), 0, 0, csMY, false)); + frames[1] = std::unique_ptr(new CDvFramePacket(uiAmbe, m_uiStreamId, Fich.getFN(), 1, 0, csMY, false)); } // check validity of packets @@ -477,7 +478,7 @@ bool CYsfProtocol::IsValidDvFramePacket(const CIp &Ip, const CYSFFICH &Fich, con if ( Fich.getFI() == YSF_FI_COMMUNICATIONS ) { // get stream id - uint32_t uiStreamId = IpToStreamId(Ip); + //uint32_t uiStreamId = IpToStreamId(Ip); // get DV frames uint8_t ambe0[9]; @@ -502,11 +503,11 @@ bool CYsfProtocol::IsValidDvFramePacket(const CIp &Ip, const CYSFFICH &Fich, con // get DV frames uint8_t fid = Buffer.data()[34]; - frames[0] = std::unique_ptr(new CDvFramePacket(ambe0, uiStreamId, Fich.getFN(), 0, fid, csMY, false)); - frames[1] = std::unique_ptr(new CDvFramePacket(ambe1, uiStreamId, Fich.getFN(), 1, fid, csMY, false)); - frames[2] = std::unique_ptr(new CDvFramePacket(ambe2, uiStreamId, Fich.getFN(), 2, fid, csMY, false)); - frames[3] = std::unique_ptr(new CDvFramePacket(ambe3, uiStreamId, Fich.getFN(), 3, fid, csMY, false)); - frames[4] = std::unique_ptr(new CDvFramePacket(ambe4, uiStreamId, Fich.getFN(), 4, fid, csMY, false)); + frames[0] = std::unique_ptr(new CDvFramePacket(ambe0, m_uiStreamId, Fich.getFN(), 0, fid, csMY, false)); + frames[1] = std::unique_ptr(new CDvFramePacket(ambe1, m_uiStreamId, Fich.getFN(), 1, fid, csMY, false)); + frames[2] = std::unique_ptr(new CDvFramePacket(ambe2, m_uiStreamId, Fich.getFN(), 2, fid, csMY, false)); + frames[3] = std::unique_ptr(new CDvFramePacket(ambe3, m_uiStreamId, Fich.getFN(), 3, fid, csMY, false)); + frames[4] = std::unique_ptr(new CDvFramePacket(ambe4, m_uiStreamId, Fich.getFN(), 4, fid, csMY, false)); // check validity of packets if ( frames[0] && frames[0]->IsValid() && frames[1] && frames[1]->IsValid() && frames[2] && frames[2]->IsValid() && frames[3] && frames[3]->IsValid() && frames[4] && frames[4]->IsValid() ) @@ -521,7 +522,7 @@ bool CYsfProtocol::IsValidDvLastFramePacket(const CIp &Ip, const CYSFFICH &Fich, if ( Fich.getFI() == YSF_FI_TERMINATOR ) { // get stream id - uint32_t uiStreamId = IpToStreamId(Ip); + //uint32_t uiStreamId = IpToStreamId(Ip); // get DV frames { @@ -540,8 +541,8 @@ bool CYsfProtocol::IsValidDvLastFramePacket(const CIp &Ip, const CYSFFICH &Fich, CCallsign csMY = CCallsign((const char *)sz); - oneframe = std::unique_ptr(new CDvFramePacket(uiAmbe, uiStreamId, Fich.getFN(), 0, 0, csMY, false)); - lastframe = std::unique_ptr(new CDvFramePacket(uiAmbe, uiStreamId, Fich.getFN(), 1, 0, csMY, true)); + oneframe = std::unique_ptr(new CDvFramePacket(uiAmbe, m_uiStreamId, Fich.getFN(), 0, 0, csMY, false)); + lastframe = std::unique_ptr(new CDvFramePacket(uiAmbe, m_uiStreamId, Fich.getFN(), 1, 0, csMY, true)); } // check validity of packets diff --git a/reflector/YSFProtocol.h b/reflector/YSFProtocol.h index 666ef40..b0e758d 100644 --- a/reflector/YSFProtocol.h +++ b/reflector/YSFProtocol.h @@ -128,4 +128,5 @@ protected: // for wires-x CWiresxCmdHandler m_WiresxCmdHandler; unsigned char m_seqNo; + uint32_t m_uiStreamId; };