mirror of
https://github.com/g4klx/MMDVMHost.git
synced 2026-04-08 16:03:54 +00:00
replace rand() -> MT19937 random number generator
sometimes rand() makes problem so replace it to MT19937 in C++11 <random>.
This commit is contained in:
parent
0892aaaaae
commit
dfaedb450b
4 changed files with 22 additions and 11 deletions
|
|
@ -44,14 +44,16 @@ m_inId(0U),
|
|||
m_buffer(1000U, "D-Star Network"),
|
||||
m_pollTimer(1000U, 60U),
|
||||
m_linkStatus(LS_NONE),
|
||||
m_linkReflector(NULL)
|
||||
m_linkReflector(NULL),
|
||||
m_random()
|
||||
{
|
||||
m_address = CUDPSocket::lookup(gatewayAddress);
|
||||
|
||||
m_linkReflector = new unsigned char[DSTAR_LONG_CALLSIGN_LENGTH];
|
||||
|
||||
CStopWatch stopWatch;
|
||||
::srand(stopWatch.start());
|
||||
std::random_device rd;
|
||||
std::mt19937 mt(rd());
|
||||
m_random = mt;
|
||||
}
|
||||
|
||||
CDStarNetwork::~CDStarNetwork()
|
||||
|
|
@ -85,7 +87,8 @@ bool CDStarNetwork::writeHeader(const unsigned char* header, unsigned int length
|
|||
buffer[4] = busy ? 0x22U : 0x20U;
|
||||
|
||||
// Create a random id for this transmission
|
||||
m_outId = (::rand() % 65535U) + 1U;
|
||||
std::uniform_int_distribution<uint16_t> dist(0x0001, 0xfffe);
|
||||
m_outId = dist(m_random);
|
||||
|
||||
buffer[5] = m_outId / 256U; // Unique session id
|
||||
buffer[6] = m_outId % 256U;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue