/***
  zigbee電波強度で距離を測る（anchor側）

  CPU: moxa gemsbok(atmega128)
  Compiler: Talktic
  Author: Sho Hashimoto
  WebSite: http://shokai.org
  ***/


var radio = new Object();
radio.id = 1; // nodeはid:2以降
radio.group = 7;

var dist = new Object();
dist.lastTime = 0;
dist.lastPower = 0;

nodes = new Array(16);
nodes_init(nodes);

serialInit(9600);
radioInit(0xDEAD, radio.id, radio.group, 31);

function loop(){
}

function onRadioReceive(seq,id,pan,data,rss) {
	if(id < 2) return; // nodeからではない時
	commands = data.split(",");
	for(c in commands){
		tmp = c.split(":");
		if(tmp[0] == "power") distance = tmp[1];
		if(tmp[0] == "time") time = tmp[1];
	}
	
  	if(nodes[id].lastTime != time){ // 新しいデータの時
  		nodes[id].distance = distance;
  		// nodeのidと距離を出力
  		serialSend("id:"+id+",distance:"+distance+",time:"+time+"\r\n");
  	}
  	nodes[id].lastTime = time;
}

function nodes_init(nodes){
	for(i = 1; i < nodes.length; i++){
		var node = new Object();
		node.lastTime = 0;
		node.distance = 0;
		node.id = i;
		nodes[i] = node;
	}
}

function sleep(count){
	for(var i = 0; i < count*10; i++){
	}
}

while(true){
	loop();
}

