ir-puck
Dependencies: IRSender Puck mbed
Fork of ir-puck by
main.cpp@13:f016a0bc4a7d, 2014-08-01 (annotated)
- Committer:
- sigveseb
- Date:
- Fri Aug 01 12:37:29 2014 +0000
- Revision:
- 13:f016a0bc4a7d
- Parent:
- 5:3642c0af497e
- Child:
- 14:b00d0c5ba8e3
Start changing IR bt interface
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sigveseb | 0:c94311378ec1 | 1 | #include "mbed.h" |
sigveseb | 13:f016a0bc4a7d | 2 | #include "TxIR.hpp" |
sigveseb | 0:c94311378ec1 | 3 | |
sigveseb | 5:3642c0af497e | 4 | #define LOG_LEVEL_VERBOSE |
sigveseb | 5:3642c0af497e | 5 | #include "Puck.h" |
sigveseb | 0:c94311378ec1 | 6 | |
sigveseb | 5:3642c0af497e | 7 | Puck* puck = &Puck::getPuck(); |
sigveseb | 0:c94311378ec1 | 8 | |
sigveseb | 13:f016a0bc4a7d | 9 | TxIR txir(p14); |
sigveseb | 13:f016a0bc4a7d | 10 | |
sigveseb | 5:3642c0af497e | 11 | const UUID IR_SERVICE_UUID = stringToUUID("bftj ir "); |
sigveseb | 13:f016a0bc4a7d | 12 | const UUID COMMAND_UUID = stringToUUID("bftj ir command "); |
sigveseb | 13:f016a0bc4a7d | 13 | const UUID DATA_UUID = stringToUUID("bftj ir data "); |
sigveseb | 13:f016a0bc4a7d | 14 | const UUID PERIOD_UUID = stringToUUID("bftj ir period "); |
sigveseb | 13:f016a0bc4a7d | 15 | |
sigveseb | 13:f016a0bc4a7d | 16 | unsigned int dataBuffer[100]; |
sigveseb | 13:f016a0bc4a7d | 17 | uint8_t period = 26; |
sigveseb | 13:f016a0bc4a7d | 18 | int receiveIndex; |
sigveseb | 13:f016a0bc4a7d | 19 | |
sigveseb | 13:f016a0bc4a7d | 20 | #define COMMAND_BEGIN_CODE_TRANSMISSION 0 |
sigveseb | 13:f016a0bc4a7d | 21 | #define COMMAND_END_CODE_TRANSMISSION 1 |
sigveseb | 0:c94311378ec1 | 22 | |
stiaje | 4:24d9873936e6 | 23 | |
sigveseb | 13:f016a0bc4a7d | 24 | void onCommandWrite(uint8_t* value) { |
sigveseb | 13:f016a0bc4a7d | 25 | LOG_VERBOSE("Got command: %i\n", value[0]); |
sigveseb | 13:f016a0bc4a7d | 26 | switch(value[0]) { |
sigveseb | 13:f016a0bc4a7d | 27 | case COMMAND_BEGIN_CODE_TRANSMISSION: |
sigveseb | 13:f016a0bc4a7d | 28 | receiveIndex = 0; |
sigveseb | 13:f016a0bc4a7d | 29 | break; |
sigveseb | 13:f016a0bc4a7d | 30 | case COMMAND_END_CODE_TRANSMISSION: |
sigveseb | 13:f016a0bc4a7d | 31 | LOG_INFO("Going to fire IR code...\n"); |
sigveseb | 13:f016a0bc4a7d | 32 | txir.txSeq(period, 200, dataBuffer); |
sigveseb | 13:f016a0bc4a7d | 33 | LOG_INFO("Fire complete!\n"); |
sigveseb | 13:f016a0bc4a7d | 34 | break; |
sigveseb | 13:f016a0bc4a7d | 35 | } |
sigveseb | 13:f016a0bc4a7d | 36 | } |
sigveseb | 13:f016a0bc4a7d | 37 | |
sigveseb | 13:f016a0bc4a7d | 38 | |
sigveseb | 13:f016a0bc4a7d | 39 | void onDataWrite(uint8_t* value) { |
sigveseb | 13:f016a0bc4a7d | 40 | LOG_VERBOSE("Got data, index: %i\n", receiveIndex); |
sigveseb | 13:f016a0bc4a7d | 41 | for(int i = 0; i < 20 && receiveIndex < 100; i += 2) { |
sigveseb | 13:f016a0bc4a7d | 42 | dataBuffer[receiveIndex++] = (value[i] << 8) | value[i + 1]; |
sigveseb | 13:f016a0bc4a7d | 43 | } |
sigveseb | 13:f016a0bc4a7d | 44 | } |
sigveseb | 13:f016a0bc4a7d | 45 | |
sigveseb | 13:f016a0bc4a7d | 46 | |
sigveseb | 13:f016a0bc4a7d | 47 | void onPeriodWrite(uint8_t* value) { |
sigveseb | 13:f016a0bc4a7d | 48 | period = value[0]; |
sigveseb | 13:f016a0bc4a7d | 49 | LOG_VERBOSE("Period is now: %i\n", period); |
sigveseb | 0:c94311378ec1 | 50 | } |
sigveseb | 0:c94311378ec1 | 51 | |
sigveseb | 0:c94311378ec1 | 52 | |
sigveseb | 5:3642c0af497e | 53 | int main() { |
sigveseb | 13:f016a0bc4a7d | 54 | puck->addCharacteristic(IR_SERVICE_UUID, COMMAND_UUID, 1); |
sigveseb | 13:f016a0bc4a7d | 55 | puck->addCharacteristic(IR_SERVICE_UUID, DATA_UUID, 20); |
sigveseb | 13:f016a0bc4a7d | 56 | puck->addCharacteristic(IR_SERVICE_UUID, PERIOD_UUID, 1); |
sigveseb | 5:3642c0af497e | 57 | puck->init(0xABBA); |
sigveseb | 13:f016a0bc4a7d | 58 | puck->onCharacteristicWrite(COMMAND_UUID, onCommandWrite); |
sigveseb | 13:f016a0bc4a7d | 59 | puck->onCharacteristicWrite(DATA_UUID, onDataWrite); |
sigveseb | 13:f016a0bc4a7d | 60 | puck->onCharacteristicWrite(PERIOD_UUID, onPeriodWrite); |
sigveseb | 5:3642c0af497e | 61 | while (puck->drive()); |
sigveseb | 0:c94311378ec1 | 62 | } |