00001
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 package sensix.sensing;
00036
00037 import java.util.*;
00038 import sensix.*;
00039
00040
00041 public class Collection extends Sensory
00042 {
00043 protected Sensory sensory;
00044 protected ArrayList<Data> data;
00045
00046 public Collection(byte l, Sensory s) {
00047 super(l, s.sensor(), (new Functor[1]));
00048 subs[0] = s;
00049 sensory = s;
00050 data = new ArrayList<Data>();
00051 }
00052
00053 public Collection(Sensory s) {
00054 super(new Functor[1]);
00055 subs[0] = s;
00056 sensory = s;
00057 data = new ArrayList<Data>();
00058 }
00059
00060 public Collection(byte l, Sensory s, int seq) {
00061 super(l, s.sensor(), (new Functor[1]), seq);
00062 subs[0] = s;
00063 sensory = s;
00064 data = new ArrayList<Data>();
00065 }
00066
00067
00068 public Sensory sense() {
00069 return sensory;
00070 }
00071
00072 public void sense(Sensory s) {
00073 sensory = s;
00074 }
00075
00076 public byte sensor() {
00077 return sensory.sensor();
00078 }
00079
00080 public long timeused() {
00081 long max = 0;
00082 if (sensory.timeused() > max)
00083 max = sensory.timeused();
00084 return max;
00085 }
00086
00087 public void timeused(long t) {}
00088
00089 public double energyused() {
00090 double sum = 0.0;
00091 sum += sensory.energyused();
00092 return sum;
00093 }
00094
00095 public void energyused(double e) {}
00096
00097 public byte priority() {
00098 return sensory.priority();
00099 }
00100
00101 public void priority(byte p) {
00102 sensory.priority(p);
00103 }
00104
00105 public Data[] results() {
00106 Data[] ds = new Data[data.size()];
00107 ds = data.toArray(ds);
00108 if (ds == null)
00109 ds = new Data[0];
00110 return ds;
00111 }
00112
00113 public void results(Data[] d) {
00114 if (d != null) {
00115 for (int i = 0; i < d.length; i++)
00116 data.add(d[i]);
00117 }
00118 }
00119
00120 public FunctorError[] errors() {
00121 if (sensory.errors() == null)
00122 return new FunctorError[0];
00123 int num = 0;
00124 num += sensory.errors().length;
00125 FunctorError[] e = new FunctorError[num];
00126 System.arraycopy(sensory.errors(), 0, e, 0, e.length);
00127 return e;
00128 }
00129
00130 public void errors(FunctorError[] e) {}
00131 }