view src/alice/test/topology/fishmodel/alpha/AutoIncrement.java @ 132:1044a79ce4ef working

delete cs from OutputCodeSegment
author sugi
date Tue, 14 Aug 2012 19:43:10 +0900
parents 669dba7cbb69
children 26b4b18c51fa
line wrap: on
line source

package alice.test.topology.fishmodel.alpha;

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){
		this.key = key;
		this.position.setKey("local", key);
	}

	@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);
	}
	
}