Create random stream id for YSF streams, required by the Dstar reflectors

pull/8/head
Doug McLain 4 years ago
parent 96cac7a253
commit 1cfb9c6016

@ -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<uint32_t>(::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<CDvHeaderPacket>(new CDvHeaderPacket(csMY, CCallsign("CQCQCQ"), rpt1, rpt2, uiStreamId, Fich.getFN()));
header = std::unique_ptr<CDvHeaderPacket>(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<CDvFramePacket>(new CDvFramePacket(uiAmbe, uiStreamId, Fich.getFN(), 0, 0, csMY, false));
frames[1] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(uiAmbe, uiStreamId, Fich.getFN(), 1, 0, csMY, false));
frames[0] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(uiAmbe, m_uiStreamId, Fich.getFN(), 0, 0, csMY, false));
frames[1] = std::unique_ptr<CDvFramePacket>(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<CDvFramePacket>(new CDvFramePacket(ambe0, uiStreamId, Fich.getFN(), 0, fid, csMY, false));
frames[1] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(ambe1, uiStreamId, Fich.getFN(), 1, fid, csMY, false));
frames[2] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(ambe2, uiStreamId, Fich.getFN(), 2, fid, csMY, false));
frames[3] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(ambe3, uiStreamId, Fich.getFN(), 3, fid, csMY, false));
frames[4] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(ambe4, uiStreamId, Fich.getFN(), 4, fid, csMY, false));
frames[0] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(ambe0, m_uiStreamId, Fich.getFN(), 0, fid, csMY, false));
frames[1] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(ambe1, m_uiStreamId, Fich.getFN(), 1, fid, csMY, false));
frames[2] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(ambe2, m_uiStreamId, Fich.getFN(), 2, fid, csMY, false));
frames[3] = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(ambe3, m_uiStreamId, Fich.getFN(), 3, fid, csMY, false));
frames[4] = std::unique_ptr<CDvFramePacket>(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<CDvFramePacket>(new CDvFramePacket(uiAmbe, uiStreamId, Fich.getFN(), 0, 0, csMY, false));
lastframe = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(uiAmbe, uiStreamId, Fich.getFN(), 1, 0, csMY, true));
oneframe = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(uiAmbe, m_uiStreamId, Fich.getFN(), 0, 0, csMY, false));
lastframe = std::unique_ptr<CDvFramePacket>(new CDvFramePacket(uiAmbe, m_uiStreamId, Fich.getFN(), 1, 0, csMY, true));
}
// check validity of packets

@ -128,4 +128,5 @@ protected:
// for wires-x
CWiresxCmdHandler m_WiresxCmdHandler;
unsigned char m_seqNo;
uint32_t m_uiStreamId;
};

Loading…
Cancel
Save

Powered by TurnKey Linux.