00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __LEDRequest_h_
00010 #define __LEDRequest_h_
00011
00012
00013 #include "Tools/Streams/InOut.h"
00014
00015
00016
00017
00018 class LEDRequest
00019 {
00020 public:
00021
00022 enum RedLEDPair
00023 {
00024 bothOn,
00025 bothFastBlink,
00026 bothSlowBlink,
00027 bothOff,
00028 leftOnly,
00029 rightOnly,
00030 leftFastBlink,
00031 rightFastBlink,
00032 leftSlowBlink,
00033 rightSlowBlink,
00034 alternateFast,
00035 alternateSlow,
00036 numOfRedLEDPairs
00037 };
00038
00039
00040 static const char* getRedLEDPairName(RedLEDPair id)
00041 {
00042 switch (id)
00043 {
00044 case bothOn: return "bothOn";
00045 case bothFastBlink: return "bothFastBlink";
00046 case bothSlowBlink: return "bothSlowBlink";
00047 case bothOff: return "bothOff";
00048 case leftOnly: return "left";
00049 case rightOnly: return "right";
00050 case leftFastBlink: return "leftFastBlink";
00051 case rightFastBlink: return "rightFastBlink";
00052 case leftSlowBlink: return "leftSlowBlink";
00053 case rightSlowBlink: return "rightSlowBlink";
00054 case alternateFast: return "alternateFast";
00055 case alternateSlow: return "alternateSlow";
00056 default: return "Unknown RedLEDPair, please edit LEDRequest::getRedLEDPairName";
00057 }
00058 }
00059
00060
00061 enum BlinkMode
00062 {
00063 oooo,
00064 oool,
00065 oolo,
00066 ooll,
00067 oloo,
00068 olol,
00069 ollo,
00070 olll,
00071 looo,
00072 lool,
00073 lolo,
00074 loll,
00075 lloo,
00076 llol,
00077 lllo,
00078 llll,
00079 numOfBlinkModes
00080 };
00081
00082
00083 static const char* getBlinkModeName(BlinkMode id)
00084 {
00085 switch (id)
00086 {
00087 case oooo: return "oooo";
00088 case oool: return "oool";
00089 case oolo: return "oolo";
00090 case ooll: return "ooll";
00091 case oloo: return "oloo";
00092 case olol: return "olol";
00093 case ollo: return "ollo";
00094 case olll: return "olll";
00095 case looo: return "looo";
00096 case lool: return "lool";
00097 case lolo: return "lolo";
00098 case loll: return "loll";
00099 case lloo: return "lloo";
00100 case llol: return "llol";
00101 case lllo: return "lllo";
00102 case llll: return "llll";
00103 default: return "Unknown blink mode, please edit LEDRequest::BlinkModes";
00104 }
00105 }
00106
00107
00108 enum TailMode
00109 {
00110 on,
00111 slowBlink,
00112 fastBlink,
00113 numOfTailModes
00114 };
00115
00116
00117 static const char* getTailModeName(TailMode id)
00118 {
00119 switch (id)
00120 {
00121 case on: return "on";
00122 case slowBlink: return "slowBlink";
00123 case fastBlink: return "fastBlink";
00124 default: return "Unknown TailMode, please edit LEDRequest::getTailModeName";
00125 }
00126 }
00127
00128
00129 bool showCognitionFrameLostWarning;
00130
00131
00132 RedLEDPair redTopLEDs;
00133
00134
00135 RedLEDPair redBottomLEDs;
00136
00137
00138 TailMode tailMode;
00139
00140
00141 BlinkMode faceLED[14];
00142
00143
00144 BlinkMode backFrontWhiteLED;
00145
00146
00147 BlinkMode backFrontBlueLED;
00148
00149
00150 BlinkMode backMiddleWhiteLED;
00151
00152
00153 BlinkMode backMiddleOrangeLED;
00154
00155
00156 BlinkMode backRearWhiteLED;
00157
00158
00159 BlinkMode backRearRedLED;
00160
00161
00162 BlinkMode headOrangeLED;
00163
00164
00165 BlinkMode headWhiteLED;
00166
00167
00168 LEDRequest();
00169 };
00170
00171
00172
00173
00174
00175
00176
00177 In& operator>>(In& stream,LEDRequest& ledRequest);
00178
00179
00180
00181
00182
00183
00184
00185 Out& operator<<(Out& stream, const LEDRequest& ledRequest);
00186
00187 #endif //__LEDRequest_h_
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277