Added a new Brand "Kamoona" to be used for other applications that are not a known brand.

Fork of RemoteIR by Shinichiro Nakamura

Committer:
mskamoona
Date:
Mon Apr 27 01:47:26 2015 +0000
Revision:
13:ddc6f7c92583
Parent:
11:268cc2ab63bd
wara menachat o5ta

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:ec264f4ce158 1 /**
shintamainjp 9:dcfdac59ef74 2 * IR receiver (Version 0.0.4)
shintamainjp 0:ec264f4ce158 3 *
shintamainjp 0:ec264f4ce158 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 0:ec264f4ce158 5 * http://shinta.main.jp/
shintamainjp 0:ec264f4ce158 6 */
shintamainjp 0:ec264f4ce158 7
shintamainjp 0:ec264f4ce158 8 #include "ReceiverIR.h"
shintamainjp 0:ec264f4ce158 9
shintamainjp 10:c54fb1204d1e 10 #define LOCK()
shintamainjp 10:c54fb1204d1e 11 #define UNLOCK()
shintamainjp 0:ec264f4ce158 12
shintamainjp 0:ec264f4ce158 13 #define InRange(x,y) ((((y) * 0.7) < (x)) && ((x) < ((y) * 1.3)))
shintamainjp 0:ec264f4ce158 14
shintamainjp 9:dcfdac59ef74 15 /**
shintamainjp 9:dcfdac59ef74 16 * Constructor.
shintamainjp 9:dcfdac59ef74 17 *
shintamainjp 9:dcfdac59ef74 18 * @param rxpin Pin for receive IR signal.
shintamainjp 9:dcfdac59ef74 19 */
shintamainjp 0:ec264f4ce158 20 ReceiverIR::ReceiverIR(PinName rxpin) : evt(rxpin) {
shintamainjp 9:dcfdac59ef74 21 init_state();
shintamainjp 0:ec264f4ce158 22 evt.fall(this, &ReceiverIR::isr_fall);
shintamainjp 0:ec264f4ce158 23 evt.rise(this, &ReceiverIR::isr_rise);
shintamainjp 0:ec264f4ce158 24 evt.mode(PullUp);
shintamainjp 0:ec264f4ce158 25 ticker.attach_us(this, &ReceiverIR::isr_wdt, 10 * 1000);
shintamainjp 0:ec264f4ce158 26 }
shintamainjp 0:ec264f4ce158 27
shintamainjp 9:dcfdac59ef74 28 /**
shintamainjp 9:dcfdac59ef74 29 * Destructor.
shintamainjp 9:dcfdac59ef74 30 */
shintamainjp 1:4adf16017a0f 31 ReceiverIR::~ReceiverIR() {
shintamainjp 1:4adf16017a0f 32 }
shintamainjp 1:4adf16017a0f 33
shintamainjp 9:dcfdac59ef74 34 /**
shintamainjp 9:dcfdac59ef74 35 * Get state.
shintamainjp 9:dcfdac59ef74 36 *
shintamainjp 9:dcfdac59ef74 37 * @return Current state.
shintamainjp 9:dcfdac59ef74 38 */
shintamainjp 0:ec264f4ce158 39 ReceiverIR::State ReceiverIR::getState() {
shintamainjp 9:dcfdac59ef74 40 LOCK();
shintamainjp 9:dcfdac59ef74 41 State s = work.state;
shintamainjp 9:dcfdac59ef74 42 UNLOCK();
shintamainjp 0:ec264f4ce158 43 return s;
shintamainjp 0:ec264f4ce158 44 }
shintamainjp 0:ec264f4ce158 45
shintamainjp 9:dcfdac59ef74 46 /**
shintamainjp 9:dcfdac59ef74 47 * Get data.
shintamainjp 9:dcfdac59ef74 48 *
shintamainjp 9:dcfdac59ef74 49 * @param format Pointer to format.
shintamainjp 9:dcfdac59ef74 50 * @param buf Buffer of a data.
shintamainjp 9:dcfdac59ef74 51 * @param bitlength Bit length of the buffer.
shintamainjp 9:dcfdac59ef74 52 *
shintamainjp 9:dcfdac59ef74 53 * @return Data bit length.
shintamainjp 9:dcfdac59ef74 54 */
mskamoona 13:ddc6f7c92583 55 int ReceiverIR::getData(RemoteIR::Format *format) {
shintamainjp 9:dcfdac59ef74 56 LOCK();
shintamainjp 0:ec264f4ce158 57
mskamoona 13:ddc6f7c92583 58 /* if (bitlength < data.bitcount) {
shintamainjp 9:dcfdac59ef74 59 UNLOCK();
shintamainjp 0:ec264f4ce158 60 return -1;
mskamoona 13:ddc6f7c92583 61 }*/
shintamainjp 0:ec264f4ce158 62
mskamoona 13:ddc6f7c92583 63 // const int nbits = data.bitcount;
mskamoona 13:ddc6f7c92583 64 // const int nbytes = data.bitcount / 8 + (((data.bitcount % 8) != 0) ? 1 : 0);
mskamoona 13:ddc6f7c92583 65 // *format = data.format;
mskamoona 13:ddc6f7c92583 66 // for (int i = 0; i < nbytes; i++) {
mskamoona 13:ddc6f7c92583 67 // buf[i] = data.buffer[i];
mskamoona 13:ddc6f7c92583 68 // }
shintamainjp 0:ec264f4ce158 69
shintamainjp 0:ec264f4ce158 70 init_state();
shintamainjp 0:ec264f4ce158 71
shintamainjp 9:dcfdac59ef74 72 UNLOCK();
mskamoona 13:ddc6f7c92583 73 return 0;
shintamainjp 0:ec264f4ce158 74 }
shintamainjp 0:ec264f4ce158 75
shintamainjp 0:ec264f4ce158 76 void ReceiverIR::init_state(void) {
shintamainjp 0:ec264f4ce158 77 work.c1 = -1;
shintamainjp 0:ec264f4ce158 78 work.c2 = -1;
mskamoona 13:ddc6f7c92583 79 // work.c3 = -1;
mskamoona 13:ddc6f7c92583 80 // work.d1 = -1;
mskamoona 13:ddc6f7c92583 81 // work.d2 = -1;
shintamainjp 9:dcfdac59ef74 82 work.state = Idle;
shintamainjp 0:ec264f4ce158 83 data.format = RemoteIR::UNKNOWN;
mskamoona 13:ddc6f7c92583 84 // data.bitcount = 0;
shintamainjp 0:ec264f4ce158 85 timer.stop();
shintamainjp 0:ec264f4ce158 86 timer.reset();
mskamoona 13:ddc6f7c92583 87 // for (int i = 0; i < sizeof(data.buffer); i++) {
mskamoona 13:ddc6f7c92583 88 // data.buffer[i] = 0;
mskamoona 13:ddc6f7c92583 89 // }
shintamainjp 0:ec264f4ce158 90 }
shintamainjp 0:ec264f4ce158 91
shintamainjp 0:ec264f4ce158 92 void ReceiverIR::isr_wdt(void) {
shintamainjp 9:dcfdac59ef74 93 LOCK();
shintamainjp 0:ec264f4ce158 94 static int cnt = 0;
mskamoona 13:ddc6f7c92583 95 if ((Idle != work.state) || ((0 <= work.c1) || (0 <= work.c2))) {
shintamainjp 0:ec264f4ce158 96 cnt++;
shintamainjp 0:ec264f4ce158 97 if (cnt > 50) {
shintamainjp 11:268cc2ab63bd 98 #if 0
shintamainjp 0:ec264f4ce158 99 printf("# WDT [c1=%d, c2=%d, c3=%d, d1=%d, d2=%d, state=%d, format=%d, bitcount=%d]\n",
shintamainjp 0:ec264f4ce158 100 work.c1,
shintamainjp 0:ec264f4ce158 101 work.c2,
mskamoona 13:ddc6f7c92583 102 // work.c3,
mskamoona 13:ddc6f7c92583 103 // work.d1,
mskamoona 13:ddc6f7c92583 104 // work.d2,
mskamoona 13:ddc6f7c92583 105 // work.state,
shintamainjp 0:ec264f4ce158 106 data.format,
mskamoona 13:ddc6f7c92583 107 // data.bitcount);
shintamainjp 0:ec264f4ce158 108 #endif
shintamainjp 0:ec264f4ce158 109 init_state();
shintamainjp 0:ec264f4ce158 110 cnt = 0;
shintamainjp 0:ec264f4ce158 111 }
shintamainjp 0:ec264f4ce158 112 } else {
shintamainjp 0:ec264f4ce158 113 cnt = 0;
shintamainjp 0:ec264f4ce158 114 }
shintamainjp 9:dcfdac59ef74 115 UNLOCK();
shintamainjp 0:ec264f4ce158 116 }
shintamainjp 0:ec264f4ce158 117
shintamainjp 0:ec264f4ce158 118 void ReceiverIR::isr_fall(void) {
shintamainjp 9:dcfdac59ef74 119 LOCK();
shintamainjp 9:dcfdac59ef74 120 switch (work.state) {
shintamainjp 0:ec264f4ce158 121 case Idle:
shintamainjp 0:ec264f4ce158 122 if (work.c1 < 0) {
shintamainjp 0:ec264f4ce158 123 timer.start();
shintamainjp 0:ec264f4ce158 124 work.c1 = timer.read_us();
shintamainjp 0:ec264f4ce158 125 } else {
mskamoona 13:ddc6f7c92583 126 //work.c3 = timer.read_us();
shintamainjp 0:ec264f4ce158 127 int a = work.c2 - work.c1;
mskamoona 13:ddc6f7c92583 128 // int b = work.c3 - work.c2;
mskamoona 13:ddc6f7c92583 129 if (InRange(a, RemoteIR::TUS_Wifi * 4)) {
shintamainjp 0:ec264f4ce158 130 /*
mskamoona 13:ddc6f7c92583 131 * Wifi Get Users.
mskamoona 13:ddc6f7c92583 132 */
mskamoona 13:ddc6f7c92583 133 data.format = RemoteIR::WifiGetUsers;
mskamoona 13:ddc6f7c92583 134 work.state = Received;
mskamoona 13:ddc6f7c92583 135 // data.bitcount = 0;
mskamoona 13:ddc6f7c92583 136 } else if (InRange(a, RemoteIR::TUS_Wifi * 8)) {
mskamoona 13:ddc6f7c92583 137 /*
mskamoona 13:ddc6f7c92583 138 * Wifi Get Password.
shintamainjp 0:ec264f4ce158 139 */
mskamoona 13:ddc6f7c92583 140 data.format = RemoteIR::WifiGetPassword;
mskamoona 13:ddc6f7c92583 141 work.state = Received;
mskamoona 13:ddc6f7c92583 142 // data.bitcount = 0;
mskamoona 13:ddc6f7c92583 143 } else if (InRange(a, RemoteIR::TUS_Wifi * 16)) {
shintamainjp 0:ec264f4ce158 144 /*
mskamoona 13:ddc6f7c92583 145 * Wifi Change Password.
shintamainjp 0:ec264f4ce158 146 */
mskamoona 13:ddc6f7c92583 147 data.format = RemoteIR::WifiChangePassword;
mskamoona 13:ddc6f7c92583 148 work.state = Received;
mskamoona 13:ddc6f7c92583 149 // data.bitcount = 0;
mskamoona 13:ddc6f7c92583 150 /* } else if (InRange(a, RemoteIR::TUS_NEC * 16) && InRange(b, RemoteIR::TUS_NEC * 4)) {
mskamoona 13:ddc6f7c92583 151
mskamoona 13:ddc6f7c92583 152 //* NEC Repeat.
mskamoona 13:ddc6f7c92583 153
shintamainjp 3:dfed23b157e6 154 data.format = RemoteIR::NEC_REPEAT;
shintamainjp 9:dcfdac59ef74 155 work.state = Received;
shintamainjp 0:ec264f4ce158 156 data.bitcount = 0;
shintamainjp 3:dfed23b157e6 157 work.c1 = -1;
shintamainjp 3:dfed23b157e6 158 work.c2 = -1;
shintamainjp 3:dfed23b157e6 159 work.c3 = -1;
shintamainjp 3:dfed23b157e6 160 work.d1 = -1;
shintamainjp 3:dfed23b157e6 161 work.d2 = -1;
shintamainjp 11:268cc2ab63bd 162 } else if (InRange(a, RemoteIR::TUS_AEHA * 8) && InRange(b, RemoteIR::TUS_AEHA * 4)) {
mskamoona 13:ddc6f7c92583 163
mskamoona 13:ddc6f7c92583 164 // * AEHA.
mskamoona 13:ddc6f7c92583 165
shintamainjp 0:ec264f4ce158 166 data.format = RemoteIR::AEHA;
shintamainjp 9:dcfdac59ef74 167 work.state = Receiving;
shintamainjp 0:ec264f4ce158 168 data.bitcount = 0;
shintamainjp 11:268cc2ab63bd 169 } else if (InRange(a, RemoteIR::TUS_AEHA * 8) && InRange(b, RemoteIR::TUS_AEHA * 8)) {
mskamoona 13:ddc6f7c92583 170
mskamoona 13:ddc6f7c92583 171 // * AEHA Repeat.
mskamoona 13:ddc6f7c92583 172
shintamainjp 3:dfed23b157e6 173 data.format = RemoteIR::AEHA_REPEAT;
shintamainjp 9:dcfdac59ef74 174 work.state = Received;
shintamainjp 0:ec264f4ce158 175 data.bitcount = 0;
shintamainjp 3:dfed23b157e6 176 work.c1 = -1;
shintamainjp 3:dfed23b157e6 177 work.c2 = -1;
shintamainjp 3:dfed23b157e6 178 work.c3 = -1;
shintamainjp 3:dfed23b157e6 179 work.d1 = -1;
shintamainjp 3:dfed23b157e6 180 work.d2 = -1;
mskamoona 13:ddc6f7c92583 181 */ } else {
shintamainjp 0:ec264f4ce158 182 init_state();
shintamainjp 0:ec264f4ce158 183 }
shintamainjp 0:ec264f4ce158 184 }
shintamainjp 0:ec264f4ce158 185 break;
mskamoona 13:ddc6f7c92583 186 /* case Receiving:
shintamainjp 0:ec264f4ce158 187 if (RemoteIR::NEC == data.format) {
shintamainjp 0:ec264f4ce158 188 work.d2 = timer.read_us();
shintamainjp 0:ec264f4ce158 189 int a = work.d2 - work.d1;
shintamainjp 11:268cc2ab63bd 190 if (InRange(a, RemoteIR::TUS_NEC * 3)) {
shintamainjp 0:ec264f4ce158 191 data.buffer[data.bitcount / 8] |= (1 << (data.bitcount % 8));
shintamainjp 11:268cc2ab63bd 192 } else if (InRange(a, RemoteIR::TUS_NEC * 1)) {
shintamainjp 0:ec264f4ce158 193 data.buffer[data.bitcount / 8] &= ~(1 << (data.bitcount % 8));
shintamainjp 0:ec264f4ce158 194 }
shintamainjp 0:ec264f4ce158 195 data.bitcount++;
shintamainjp 3:dfed23b157e6 196 #if 0
mskamoona 13:ddc6f7c92583 197
mskamoona 13:ddc6f7c92583 198 // * Length of NEC is always 32 bits.
mskamoona 13:ddc6f7c92583 199
shintamainjp 0:ec264f4ce158 200 if (32 <= data.bitcount) {
shintamainjp 0:ec264f4ce158 201 data.state = Received;
shintamainjp 0:ec264f4ce158 202 work.c1 = -1;
shintamainjp 0:ec264f4ce158 203 work.c2 = -1;
shintamainjp 0:ec264f4ce158 204 work.c3 = -1;
shintamainjp 0:ec264f4ce158 205 work.d1 = -1;
shintamainjp 0:ec264f4ce158 206 work.d2 = -1;
shintamainjp 0:ec264f4ce158 207 }
shintamainjp 0:ec264f4ce158 208 #else
mskamoona 13:ddc6f7c92583 209 /
shintamainjp 0:ec264f4ce158 210 * Set timeout for tail detection automatically.
mskamoona 13:ddc6f7c92583 211 /
mskamoona 13:ddc6f7c92583 212 // timeout.detach();
mskamoona 13:ddc6f7c92583 213 // timeout.attach_us(this, &ReceiverIR::isr_timeout, RemoteIR::TUS_Wifi * 4);
mskamoona 13:ddc6f7c92583 214
shintamainjp 0:ec264f4ce158 215 } else if (RemoteIR::AEHA == data.format) {
shintamainjp 0:ec264f4ce158 216 work.d2 = timer.read_us();
shintamainjp 0:ec264f4ce158 217 int a = work.d2 - work.d1;
shintamainjp 11:268cc2ab63bd 218 if (InRange(a, RemoteIR::TUS_AEHA * 3)) {
shintamainjp 0:ec264f4ce158 219 data.buffer[data.bitcount / 8] |= (1 << (data.bitcount % 8));
shintamainjp 11:268cc2ab63bd 220 } else if (InRange(a, RemoteIR::TUS_AEHA * 1)) {
shintamainjp 0:ec264f4ce158 221 data.buffer[data.bitcount / 8] &= ~(1 << (data.bitcount % 8));
shintamainjp 0:ec264f4ce158 222 }
shintamainjp 0:ec264f4ce158 223 data.bitcount++;
shintamainjp 3:dfed23b157e6 224 #if 0
mskamoona 13:ddc6f7c92583 225 /
shintamainjp 0:ec264f4ce158 226 * Typical length of AEHA is 48 bits.
shintamainjp 0:ec264f4ce158 227 * Please check a specification of your remote controller if you find a problem.
mskamoona 13:ddc6f7c92583 228 /
shintamainjp 0:ec264f4ce158 229 if (48 <= data.bitcount) {
shintamainjp 0:ec264f4ce158 230 data.state = Received;
shintamainjp 0:ec264f4ce158 231 work.c1 = -1;
shintamainjp 0:ec264f4ce158 232 work.c2 = -1;
shintamainjp 0:ec264f4ce158 233 work.c3 = -1;
shintamainjp 0:ec264f4ce158 234 work.d1 = -1;
shintamainjp 0:ec264f4ce158 235 work.d2 = -1;
shintamainjp 0:ec264f4ce158 236 }
mskamoona 13:ddc6f7c92583 237
mskamoona 13:ddc6f7c92583 238 /
shintamainjp 0:ec264f4ce158 239 * Set timeout for tail detection automatically.
mskamoona 13:ddc6f7c92583 240 /
shintamainjp 0:ec264f4ce158 241 timeout.detach();
shintamainjp 11:268cc2ab63bd 242 timeout.attach_us(this, &ReceiverIR::isr_timeout, RemoteIR::TUS_AEHA * 5);
mskamoona 13:ddc6f7c92583 243
shintamainjp 0:ec264f4ce158 244 } else if (RemoteIR::SONY == data.format) {
shintamainjp 0:ec264f4ce158 245 work.d1 = timer.read_us();
shintamainjp 0:ec264f4ce158 246 }
mskamoona 13:ddc6f7c92583 247 break; */
shintamainjp 0:ec264f4ce158 248 case Received:
shintamainjp 0:ec264f4ce158 249 break;
shintamainjp 0:ec264f4ce158 250 default:
shintamainjp 0:ec264f4ce158 251 break;
shintamainjp 0:ec264f4ce158 252 }
shintamainjp 9:dcfdac59ef74 253 UNLOCK();
shintamainjp 0:ec264f4ce158 254 }
shintamainjp 0:ec264f4ce158 255
shintamainjp 0:ec264f4ce158 256 void ReceiverIR::isr_rise(void) {
shintamainjp 9:dcfdac59ef74 257 LOCK();
shintamainjp 9:dcfdac59ef74 258 switch (work.state) {
shintamainjp 0:ec264f4ce158 259 case Idle:
shintamainjp 0:ec264f4ce158 260 if (0 <= work.c1) {
shintamainjp 0:ec264f4ce158 261 work.c2 = timer.read_us();
shintamainjp 0:ec264f4ce158 262 int a = work.c2 - work.c1;
mskamoona 13:ddc6f7c92583 263 /*if (InRange(a, RemoteIR::TUS_SONY * 4)) {
shintamainjp 0:ec264f4ce158 264 data.format = RemoteIR::SONY;
shintamainjp 9:dcfdac59ef74 265 work.state = Receiving;
shintamainjp 0:ec264f4ce158 266 data.bitcount = 0;
shintamainjp 0:ec264f4ce158 267 } else {
shintamainjp 0:ec264f4ce158 268 static const int MINIMUM_LEADER_WIDTH = 150;
shintamainjp 0:ec264f4ce158 269 if (a < MINIMUM_LEADER_WIDTH) {
shintamainjp 0:ec264f4ce158 270 init_state();
mskamoona 13:ddc6f7c92583 271 }
mskamoona 13:ddc6f7c92583 272 }*/
shintamainjp 0:ec264f4ce158 273 } else {
shintamainjp 0:ec264f4ce158 274 init_state();
shintamainjp 0:ec264f4ce158 275 }
shintamainjp 0:ec264f4ce158 276 break;
mskamoona 13:ddc6f7c92583 277 /* case Receiving:
shintamainjp 0:ec264f4ce158 278 if (RemoteIR::NEC == data.format) {
shintamainjp 0:ec264f4ce158 279 work.d1 = timer.read_us();
shintamainjp 0:ec264f4ce158 280 } else if (RemoteIR::AEHA == data.format) {
shintamainjp 0:ec264f4ce158 281 work.d1 = timer.read_us();
shintamainjp 0:ec264f4ce158 282 } else if (RemoteIR::SONY == data.format) {
shintamainjp 0:ec264f4ce158 283 work.d2 = timer.read_us();
shintamainjp 0:ec264f4ce158 284 int a = work.d2 - work.d1;
shintamainjp 11:268cc2ab63bd 285 if (InRange(a, RemoteIR::TUS_SONY * 2)) {
shintamainjp 0:ec264f4ce158 286 data.buffer[data.bitcount / 8] |= (1 << (data.bitcount % 8));
shintamainjp 11:268cc2ab63bd 287 } else if (InRange(a, RemoteIR::TUS_SONY * 1)) {
shintamainjp 0:ec264f4ce158 288 data.buffer[data.bitcount / 8] &= ~(1 << (data.bitcount % 8));
shintamainjp 0:ec264f4ce158 289 }
shintamainjp 0:ec264f4ce158 290 data.bitcount++;
shintamainjp 3:dfed23b157e6 291 #if 0
mskamoona 13:ddc6f7c92583 292
shintamainjp 9:dcfdac59ef74 293 * How do I know the correct length? (6bits, 12bits, 15bits, 20bits...)
shintamainjp 0:ec264f4ce158 294 * By a model only?
shintamainjp 0:ec264f4ce158 295 * Please check a specification of your remote controller if you find a problem.
mskamoona 13:ddc6f7c92583 296
shintamainjp 0:ec264f4ce158 297 if (12 <= data.bitcount) {
shintamainjp 0:ec264f4ce158 298 data.state = Received;
shintamainjp 0:ec264f4ce158 299 work.c1 = -1;
shintamainjp 0:ec264f4ce158 300 work.c2 = -1;
shintamainjp 0:ec264f4ce158 301 work.c3 = -1;
shintamainjp 0:ec264f4ce158 302 work.d1 = -1;
shintamainjp 0:ec264f4ce158 303 work.d2 = -1;
shintamainjp 0:ec264f4ce158 304 }
shintamainjp 0:ec264f4ce158 305 #else
mskamoona 13:ddc6f7c92583 306
shintamainjp 0:ec264f4ce158 307 * Set timeout for tail detection automatically.
mskamoona 13:ddc6f7c92583 308
shintamainjp 0:ec264f4ce158 309 timeout.detach();
shintamainjp 11:268cc2ab63bd 310 timeout.attach_us(this, &ReceiverIR::isr_timeout, RemoteIR::TUS_SONY * 4);
shintamainjp 0:ec264f4ce158 311 #endif
shintamainjp 0:ec264f4ce158 312 }
mskamoona 13:ddc6f7c92583 313 break; */
shintamainjp 0:ec264f4ce158 314 case Received:
shintamainjp 0:ec264f4ce158 315 break;
shintamainjp 0:ec264f4ce158 316 default:
shintamainjp 0:ec264f4ce158 317 break;
shintamainjp 0:ec264f4ce158 318 }
shintamainjp 9:dcfdac59ef74 319 UNLOCK();
shintamainjp 0:ec264f4ce158 320 }
shintamainjp 0:ec264f4ce158 321
shintamainjp 0:ec264f4ce158 322 void ReceiverIR::isr_timeout(void) {
shintamainjp 9:dcfdac59ef74 323 LOCK();
shintamainjp 9:dcfdac59ef74 324 #if 0
shintamainjp 9:dcfdac59ef74 325 printf("# TIMEOUT [c1=%d, c2=%d, c3=%d, d1=%d, d2=%d, state=%d, format=%d, bitcount=%d]\n",
shintamainjp 9:dcfdac59ef74 326 work.c1,
shintamainjp 9:dcfdac59ef74 327 work.c2,
shintamainjp 9:dcfdac59ef74 328 work.c3,
shintamainjp 9:dcfdac59ef74 329 work.d1,
shintamainjp 9:dcfdac59ef74 330 work.d2,
shintamainjp 9:dcfdac59ef74 331 work.state,
shintamainjp 9:dcfdac59ef74 332 data.format,
shintamainjp 9:dcfdac59ef74 333 data.bitcount);
mskamoona 13:ddc6f7c92583 334
shintamainjp 9:dcfdac59ef74 335 if (work.state == Receiving) {
shintamainjp 9:dcfdac59ef74 336 work.state = Received;
shintamainjp 0:ec264f4ce158 337 work.c1 = -1;
mskamoona 13:ddc6f7c92583 338 #endif work.c2 = -1;
mskamoona 13:ddc6f7c92583 339 // work.c3 = -1;
mskamoona 13:ddc6f7c92583 340 // work.d1 = -1;
mskamoona 13:ddc6f7c92583 341 // work.d2 = -1;
mskamoona 13:ddc6f7c92583 342
shintamainjp 9:dcfdac59ef74 343 UNLOCK();
shintamainjp 0:ec264f4ce158 344 }