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 gov.lanl.isr.sensix.sensing;
00036
00037 import gov.lanl.isr.sensix.*;
00038
00039
00040 public class LambdaImpl extends LambdaPOA
00041 {
00042 protected String script;
00043
00044 private AggregateImpl del;
00045
00046
00047 public LambdaImpl(byte l, Collection[] c) {
00048 del = new AggregateImpl("Lambda", l, c);
00049 script = null;
00050 }
00051
00052 public LambdaImpl(Collection[] c) {
00053 del = new AggregateImpl("Lambda", c);
00054 script = null;
00055 }
00056
00057 public LambdaImpl(byte l, Collection[] c, int seq) {
00058 del = new AggregateImpl("Lambda", l, c, seq);
00059 script = null;
00060 }
00061
00062
00063 public byte identifier() {
00064 return SenseCorba.LAMBDA;
00065 }
00066
00067 public String code() {
00068 return script;
00069 }
00070
00071 public void code(String s) {
00072
00073 script = s;
00074 }
00075
00076 private double doScript(double previous, double measure) {
00077
00078 return measure;
00079 }
00080
00081
00082 protected Data getResult(int idx) {
00083 double value = 0.0;
00084 Data[] res = del.collectors()[idx].results();
00085 for (int i = 0; i < res.length; i++) {
00086 Data d = res[i];
00087 if (SenseUtil.isIntegerData(d.discriminator()))
00088 value = doScript(value, d.iresult());
00089 else if (SenseUtil.isFloatingPointData(d.discriminator()))
00090 value = doScript(value, d.fresult());
00091 }
00092
00093 Data ret = new Data();
00094 ret.fresult(value);
00095 return ret;
00096 }
00097
00098 public Data result() {
00099 return getResult(0);
00100 }
00101
00102 public Data[] results() {
00103 int num = del.collectors().length;
00104 Data[] array = new Data[num];
00105 for (int i = 0; i < num; i++)
00106 array[i] = getResult(i);
00107 return array;
00108 }
00109
00110 public void results(Data[] d) {}
00111
00112
00113
00114
00115
00116 public String asString() {
00117 return del.asString();
00118 }
00119
00120 public int sequencer() {
00121 return del.sequencer();
00122 }
00123
00124 public byte level() {
00125 return del.level();
00126 }
00127
00128 public Collection[] collectors() {
00129 return del.collectors();
00130 }
00131
00132 public void collectors(Collection[] c) {
00133 del.collectors(c);
00134 }
00135
00136 public Sensory[] senses() {
00137 return del.senses();
00138 }
00139
00140 public Sensory sense() {
00141 return del.sense();
00142 }
00143
00144 public void sense(Sensory s) {
00145 del.sense(s);
00146 }
00147
00148 public byte sensor() {
00149 return del.sensor();
00150 }
00151
00152 public long timeused() {
00153 return del.timeused();
00154 }
00155
00156 public void timeused(long t) {
00157 del.timeused(t);
00158 }
00159
00160 public double energyused() {
00161 return del.energyused();
00162 }
00163
00164 public void energyused(double e) {
00165 del.energyused(e);
00166 }
00167
00168 public byte priority() {
00169 return del.priority();
00170 }
00171
00172 public void priority(byte p) {
00173 del.priority(p);
00174 }
00175
00176 public FunctorError[] errors() {
00177 return del.errors();
00178 }
00179
00180 public void errors(FunctorError[] e) {
00181 del.errors(e);
00182 }
00183
00184 public Functor[] subfunctors() {
00185 return del.subfunctors();
00186 }
00187
00188 public void subfunctors(Functor[] fs) {
00189 del.subfunctors(fs);
00190 }
00191 }