SmartBlocksBlock::SmartBlocksBlock(int bId, SmartBlocksBlockCode *(*smartBlocksBlockCodeBuildingFunction)(SmartBlocksBlock*)) : BaseSimulator::BuildingBlock(bId) { cout << "SmartBlocksBlock constructor" << endl; buildNewBlockCode = smartBlocksBlockCodeBuildingFunction; blockCode = (BaseSimulator::BlockCode*)buildNewBlockCode(this); for (int i=North; i<=West; i++) { tabInterfaces[i] = new P2PNetworkInterface(this); } }
Catoms2DBlock::Catoms2DBlock(int bId, Catoms2DBlockCode *(*catoms2DBlockCodeBuildingFunction)(Catoms2DBlock*)) : BaseSimulator::BuildingBlock(bId) { OUTPUT << "Catoms2DBlock constructor" << endl; for (int i=0; i<6; i++) { tabInterfaces[i] = new P2PNetworkInterface(this); } buildNewBlockCode = catoms2DBlockCodeBuildingFunction; blockCode = (BaseSimulator::BlockCode*)buildNewBlockCode(this); }
BlinkyBlocksBlock::BlinkyBlocksBlock(int bId, BlinkyBlocksBlockCode *(*blinkyBlocksBlockCodeBuildingFunction)(BlinkyBlocksBlock*)) : BaseSimulator::BuildingBlock(bId) { OUTPUT << "BlinkyBlocksBlock constructor" << endl; double dataRateMin = ((BLINKYBLOCKS_PACKET_DATASIZE*pow(10,6)*8)/(BLINKYBLOCKS_TRANSMISSION_MAX_TIME*1000)); double dataRateMax = ((BLINKYBLOCKS_PACKET_DATASIZE*pow(10,6)*8)/(BLINKYBLOCKS_TRANSMISSION_MIN_TIME*1000)); for (int i=0; i<6; i++) { tabInterfaces[i] = new P2PNetworkInterface(this); getP2PNetworkInterfaceList().push_back(tabInterfaces[i]); tabInterfaces[i]->setDataRate((dataRateMax+dataRateMin)/2); tabInterfaces[i]->setDataRateVariability((dataRateMax-dataRateMin)/2); } clock = new Clock(Clock::XMEGA_RTC_OSC1K_CRC, this); buildNewBlockCode = blinkyBlocksBlockCodeBuildingFunction; blockCode = (BaseSimulator::BlockCode*)buildNewBlockCode(this); }