// World agent controlling the simulation and collection monitoring data
function (options) {
  this.monitor=[]
  this.act = {
    init: function () {
      log('Initializing ...');
      // csv.write(file,header,data:[[]]|[{}],callback?,verbose?)
    },
    percept: function () {
      log('Percepting ...');
      this.monitor.push({
        time:time(),
        sensor1:random(0,100)
      })    
    },
    update: function () {
      log('Processing ...');  
      simu.csv.write('/tmp/monitor.csv',null,this.monitor);  
    },
    wait: function () {
      log('Sleeping ...');
      sleep(10);
    }
  }
  this.trans = {
    init: function () {return percept},
    percept: function () {
      return update
    },
    update: function () {      
      return wait;
    },
    wait: function () {return percept}
  }
  this.next='init';
}