Sender: |
|
Date: |
Sun, 15 Apr 2007 10:37:05 -0400 |
MIME-version: |
1.0 (Apple Message framework v752.3) |
Reply-To: |
|
Content-type: |
text/plain; charset=US-ASCII; delsp=yes; format=flowed |
Subject: |
|
From: |
|
In-Reply-To: |
|
Content-transfer-encoding: |
7bit |
Comments: |
|
Parts/Attachments: |
|
|
On Apr 15, 2007, at 5:21 AM, Rick wrote:
> What I want to do is run a simulation until a flag = true store
> that result and then run the same simulation again (x number of
> times). Preferably with the results at the end of each simulation
> being displayed in a chart. (simulations could run one after
> another or all together should not matter that much, would maybe
> like to have an option for either though if one is not a lot more
> complex than the other.
>
> The problem I am getting at the moment is stopping the
> schedule.scheduleRepeating() I just cant do it! think i have tried
> everything but it does not seem to stop.
There are various issues here:
- Handling the chart redisplaying itself
[for later discussion]
- Restarting an entire simulation
[if you're running from the command line, the easiest way to do
this to run N simulation runs via your outer simulation stepper --
for example, you could just say sim.app.blah.Blah -repeat R ]
- killing a repeat
Killing a repeat is easy. When you call scheduleRepeating, you get
back an object called a Stoppable.
Stoppable stopThis = schedule.scheduleRepeating(agent1);
All you have to do is squirrel away this Stoppable until the time
comes when you'd like the repeat to stop, at which time you call
stopThis.stop()
You might schedule a "stopper" in the future which does this at a
preordained time:
final Stoppable stopThis = schedule.scheduleRepeating(agent1);
schedule.scheduleOnce(theTimeInTheFuture, new Steppable()
{
public void step(SimState state)
{
stopThis.stop();
}
});
Mark is correct about killing a whole simulation, but you should only
do that if you can't find all the repeated scheduled items you set up.
Sean
|
|
|