Mercurial > hg > Members > tatsuki > Alice
diff src/alice/test/topology/aquarium/AutoIncrement.java @ 134:53aff28cde6b working
change package
author | sugi |
---|---|
date | Wed, 15 Aug 2012 17:11:57 +0900 |
parents | src/alice/test/topology/fishmodel/alpha/AutoIncrement.java@26b4b18c51fa |
children | 87f1a30a8c82 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/test/topology/aquarium/AutoIncrement.java Wed Aug 15 17:11:57 2012 +0900 @@ -0,0 +1,47 @@ +package alice.test.topology.aquarium; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class AutoIncrement extends CodeSegment { + + public Receiver position = ids.create(CommandType.PEEK); + String key; + float max = 3.3f; + float min = -1.3f; + + public AutoIncrement(String key,int index){ + this.key = key; + this.position.setKey("local", key,index); + } + + @Override + public void run() { + FishPoint fp = this.position.asClass(FishPoint.class); + if (fp.getX()+0.01>max){ + fp.setXY(min, fp.getY()); + } else if (fp.getX()+0.01< min){ + fp.setXY(max, fp.getY()); + } + else { + fp.setXY(fp.getX()+0.01f, fp.getY()); + } + + ods.update("local", key, fp); + synchronized(this){ + try { + // TODO + // Waiting should be done in Alice kernel + // ids.create(CommandType.WAIT); + + wait(10); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + new AutoIncrement(this.key,this.position.index); + } + +}