![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
First Commit
Dependencies: mbed Crypto_light mbed-rtos
Spin it 2 win it
Diff: main.cpp
- Revision:
- 8:e7818c369bd3
- Parent:
- 7:0d6632fba8d4
- Child:
- 10:cedc98128562
diff -r 0d6632fba8d4 -r e7818c369bd3 main.cpp --- a/main.cpp Mon Mar 12 15:31:44 2018 +0000 +++ b/main.cpp Mon Mar 12 18:57:42 2018 +0000 @@ -23,7 +23,8 @@ #define MSG_HASHCOUNT 0 #define MSG_NONCE_OK 1 #define MSG_OVERFLOW 2 - +#define INVALID_KEY 3 +#define KEY_UPDATED 4 //FIFO constant definitions #define MAX_ARRAY_SIZE 19 //Max length of input codes @@ -67,7 +68,7 @@ Mail<message_t,16> outMessages; //Replacement for printf so that notification shortcodes can be sent -void putMessage(uint8_t code, uint32_t data) +void putMessage(uint8_t code, uint64_t data) { message_t *pMessage = outMessages.alloc(); pMessage->code = code; @@ -91,7 +92,7 @@ //Global varible for the Bitcoin Key volatile uint64_t newKey = 0; //check initialise value? **** -Mutex newKey_mutex //for mutex locking +Mutex newKey_mutex; //for mutex locking //Queue class Queue<void, 8> inCharQ; @@ -102,23 +103,34 @@ } + //decode commands Thread decodeT; //set the global NewKey void setNewCmd(char newCmd[MAX_ARRAY_SIZE]){ - //find prefix *** - + //regex error checking **** + //K - if newCmd[0] == 'K'{ + if(newCmd[0] == 'K'){ newKey_mutex.lock(); sscanf(newCmd, "K%x", &newKey); //Decode the command + //error for invalid key + //if(newKey != newCmd){ +// putMessage(INVALID_KEY, newKey); +// } newKey_mutex.unlock(); } + //V + if(newCmd[0] == 'V'){ + //set new velocity*** + } //R - + if(newCmd[0] == 'R'){ + //set new rotation*** + } } @@ -139,15 +151,17 @@ if(bufferPosition != 0){ if(newCmd[bufferPosition - 1] == '\\'){ //carriage found - newChar = '0'; //replace character +// newChar = '0'; //replace character //add to array - newCmd[bufferPosition] = newChar; + newCmd[bufferPosition] = '0'; //reset buffer bufferPosition = 0; //send char array to decoder *** setNewCmd(newCmd); + putMessage(KEY_UPDATED, newKey); + putMessage(KEY_UPDATED, 0x0123456789abcdef); } } } @@ -274,7 +288,13 @@ 0x74,0x68,0x69,0x6E,0x67,0x73,0x21,0x20, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; + uint64_t* key = (uint64_t*)((int)sequence + 48); + //set key to newKey + *key = newKey; + putMessage(KEY_UPDATED, *key); + + uint64_t* nonce = (uint64_t*)((int)sequence + 56); uint8_t hash[32]; @@ -288,6 +308,8 @@ (*nonce)++; hashcount++; + *key = newKey; + //putMessage(KEY_UPDATED, *key); } }