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 sensix.*;
00038
00039
00040 public class Lambda extends Aggregate
00041 {
00042 protected String script;
00043
00044
00045 public Lambda(byte l, Collection[] c) {
00046 super("Lambda", l, c);
00047 script = null;
00048 }
00049
00050 public Lambda(Collection[] c) {
00051 super("Lambda", c);
00052 script = null;
00053 }
00054
00055 public Lambda(byte l, Collection[] c, int seq) {
00056 super("Lambda", l, c, seq);
00057 script = null;
00058 }
00059
00060
00061 public byte identifier() {
00062 return Sensix.LAMBDA;
00063 }
00064
00065 public String code() {
00066 return script;
00067 }
00068
00069 public void code(String s) {
00070
00071 script = s;
00072 }
00073
00074 private double doScript(double previous, double measure) {
00075
00076 return measure;
00077 }
00078
00079
00080 protected Data getResult(int idx) {
00081 double value = 0.0;
00082 Data[] res = collectors()[idx].results();
00083 for (int i = 0; i < res.length; i++) {
00084 Data d = res[i];
00085 if (SenseUtil.isIntegerData(d.discriminator()))
00086 value = doScript(value, d.iresult());
00087 else if (SenseUtil.isFloatingPointData(d.discriminator()))
00088 value = doScript(value, d.fresult());
00089 }
00090
00091 Data ret = new Data();
00092 ret.fresult(value);
00093 return ret;
00094 }
00095
00096 public Data result() {
00097 return getResult(0);
00098 }
00099
00100 public Data[] results() {
00101 int num = collectors().length;
00102 Data[] array = new Data[num];
00103 for (int i = 0; i < num; i++)
00104 array[i] = getResult(i);
00105 return array;
00106 }
00107
00108 public void results(Data[] d) {}
00109 }