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
00036 #ifndef _SENSING_IDL_
00037 #define _SENSING_IDL_
00038
00039 #pragma prefix "isr.lanl.gov"
00040 #include "sensix.idl"
00041
00042
00043 #include "discovery.idl"
00044
00045
00046 module sensix {
00047 module sensing {
00049 interface Location : Capability {
00050 const octet ID = GPS;
00051
00052 readonly attribute double latitude;
00053 readonly attribute double longitude;
00054 readonly attribute double altitude;
00055 readonly attribute unsigned long long time;
00056 };
00057
00058
00060 interface Power : Capability {
00061 const octet ID = BATTERY;
00062
00063 readonly attribute double ratio;
00064 };
00065
00066
00068
00069
00071 interface Sensory : Functor {
00072 const octet ID = INVALID;
00073
00074 readonly attribute octet level;
00075 readonly attribute octet sensor;
00076 attribute unsigned long long timeused;
00077 attribute double energyused;
00078 };
00079
00080 typedef sequence <Sensory> SensoryList;
00081
00082
00084
00085
00086
00088 interface Sense : Sensory {
00089 const octet ID = ALPHA;
00090
00091 attribute double rate;
00092 };
00093
00095 interface PeakSense : Sense {
00096 const octet ID = BETA;
00097
00098 attribute double highthreshold;
00099 attribute double lowthreshold;
00100 };
00101
00102
00104 interface Collection : Sensory {
00105 attribute Sensory sense;
00106 };
00107
00108 typedef sequence <Collection> CollectionList;
00109
00110
00112 interface TimeSeries : Collection {
00113 const octet ID = THETA;
00114
00115 attribute unsigned long long duration;
00116 };
00117
00119 interface SpatialSeries : Collection {
00120 const octet ID = PSI;
00121
00122 attribute double distance;
00123 attribute double angle;
00124 };
00125
00126
00128 interface Aggregate : Sensory {
00129 readonly attribute SensoryList senses;
00130 attribute CollectionList collectors;
00131 };
00132
00134 interface Recite : Aggregate {
00135 const octet ID = IOTA;
00136 };
00137
00139 interface Sum : Aggregate {
00140 const octet ID = SUMMA;
00141 };
00142
00144 interface Delta : Aggregate {
00145 const octet ID = DELTA;
00146 };
00147
00149 interface Mean : Aggregate {
00150 const octet ID = BARX;
00151 };
00152
00154 interface Sigma : Aggregate {
00155 const octet ID = SIGMA;
00156 };
00157
00158 typedef sequence <octet> Bytecode;
00159
00161 interface Lambda : Aggregate {
00162 const octet ID = LAMBDA;
00163
00164 attribute Bytecode code;
00165 };
00166 };
00167 };
00168
00169
00170 #endif // _SENSING_IDL_