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 int cognitionFps;
00133
00134
00135 RedLEDPair redTopLEDs;
00136
00137
00138 RedLEDPair redBottomLEDs;
00139
00140
00141 TailMode tailMode;
00142
00143
00144 BlinkMode faceLED[14];
00145
00146
00147 mutable bool faceLEDModeA;
00148
00149
00150 BlinkMode backFrontWhiteLED;
00151
00152
00153 BlinkMode backFrontBlueLED;
00154
00155
00156 BlinkMode backMiddleWhiteLED;
00157
00158
00159 BlinkMode backMiddleOrangeLED;
00160
00161
00162 BlinkMode backRearWhiteLED;
00163
00164
00165 BlinkMode backRearRedLED;
00166
00167
00168 BlinkMode headOrangeLED;
00169
00170
00171 BlinkMode headWhiteLED;
00172
00173
00174 LEDRequest();
00175 };
00176
00177
00178
00179
00180
00181
00182
00183 In& operator>>(In& stream,LEDRequest& ledRequest);
00184
00185
00186
00187
00188
00189
00190
00191 Out& operator<<(Out& stream, const LEDRequest& ledRequest);
00192
00193 #endif //__LEDRequest_h_