예제 #1
0
bool StationaryMixPointIrregular::SimulationBegin()
{
	//Initializations
	SeedRandom();
	Transmitter.x=GetRunVariableInteger("MixPointX");
	Transmitter.y=GetRunVariableInteger("MixPointY");
	Transmitter.Radius=GetRunVariableInteger("ZoneRadius");
	Transmitter.Title="Stationary Mix Point";
	RandDurationMin=GetRunVariableInteger("RandDurationMin");
	RandDurationMax=GetRunVariableInteger("RandDurationMax");
	NextSilentPeriod=0;
	return true;
}
예제 #2
0
bool DummyEventProtocol::SimulationBegin()
{
	PreSimulationVariableCheck("SilentPeriod");
	PreSimulationVariableCheck("MaxVehiclesInSet");
	PreSimulationVariableCheck("VehicleTransmissionRadius");
	SeedRandom();
	SilentPeriod=GetRunVariableInteger("SilentPeriod");
	MaxVehiclesInSet=GetRunVariableInteger("MaxVehiclesInSet");
	AnnouncerRadius=GetRunVariableInteger("VehicleTransmissionRadius");
	int MinRandomDuration=0;
	int MaxRandomDuration=0;
	if(!OnTheFly)
	{
		PreSimulationVariableCheck("MixPointX");
		PreSimulationVariableCheck("MixPointY");
		MainTransmitter.x=GetRunVariableInteger("MixPointX");
		MainTransmitter.y=GetRunVariableInteger("MixPointY");
	}
	else
	{
		for(int i=0;i<VehicleMax;i++){Vehicles[i]->TransmissionRadius=AnnouncerRadius;}
	}
	if(Irregular)
	{
		PreSimulationVariableCheck("MinRandomDuration");
		PreSimulationVariableCheck("MaxRandomDuration");
		MinRandomDuration=GetRunVariableInteger("MinRandomDuration");
		MaxRandomDuration=GetRunVariableInteger("MaxRandomDuration");
	}
	MainTransmitter.TransmissionRadius=AnnouncerRadius;
	for(int i=0;i<TimeMax;i+=(Irregular?RandInt(MinRandomDuration,MaxRandomDuration):SilentPeriod))
	{
		AnonymitySet* CurrentSet=new AnonymitySet(MainTransmitter.x,MainTransmitter.y,AnnouncerRadius,i,i,i+SilentPeriod,&MainTransmitter);
		AnonymitySets.PushObj(CurrentSet);
	}
	return true;
}