//------------------------------------------------------------------------------ // transmit() -- send radar emissions //------------------------------------------------------------------------------ void Radar::transmit(const LCreal dt) { BaseClass::transmit(dt); // Transmitting, scanning and have an antenna? if ( !areEmissionsDisabled() && isTransmitting() ) { // Send the emission to the other player Emission* em = new Emission(); em->setFrequency(getFrequency()); em->setBandwidth(getBandwidth()); const LCreal prf1 = getPRF(); em->setPRF(prf1); int pulses = static_cast<int>(prf1 * dt + 0.5); if (pulses == 0) pulses = 1; // at least one em->setPulses(pulses); const LCreal p = getPeakPower(); em->setPower(p); em->setMaxRangeNM(getRange()); em->setPulseWidth(getPulseWidth()); em->setTransmitLoss(getRfTransmitLoss()); em->setReturnRequest( isReceiverEnabled() ); em->setTransmitter(this); getAntenna()->rfTransmit(em); em->unref(); } }
//------------------------------------------------------------------------------ // Process players of interest -- This will work with the function in Gimbal to create // a filtered list of players that we plan to send emission packets to. //------------------------------------------------------------------------------ void RfSystem::processPlayersOfInterest() { // --- // Do we have an antenna? // --- if (getAntenna() != 0) { // Pass our players of interest to the antenna for processing Basic::PairStream* poi = 0; Simulation* sim = getSimulation(); if ( sim != 0 && !areEmissionsDisabled() ) { poi = sim->getPlayers(); } getAntenna()->processPlayersOfInterest(poi); if (poi != 0) { poi->unref(); poi = 0; } } }