Liam Cox
/
sw_encrypt_loraWAN_implementation
SW encryption
Revision 49:3b27f622a798, committed 2019-04-30
- Comitter:
- liamcox94
- Date:
- Tue Apr 30 03:03:03 2019 +0000
- Parent:
- 48:b2afcf2d41fb
- Commit message:
- Dissertation final
Changed in this revision
DummySensor.h | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r b2afcf2d41fb -r 3b27f622a798 DummySensor.h --- a/DummySensor.h Tue Mar 19 16:06:19 2019 +0000 +++ b/DummySensor.h Tue Apr 30 03:03:03 2019 +0000 @@ -23,9 +23,9 @@ */ class DS1820 { public: - DS1820(uint32_t) + DS1820(uint8_t) { - value = 1.0f; + value = 10; }; bool begin() { @@ -34,7 +34,7 @@ void startConversion() {}; float read() { - value += 1.1f; + value += 1; return value; }
diff -r b2afcf2d41fb -r 3b27f622a798 main.cpp --- a/main.cpp Tue Mar 19 16:06:19 2019 +0000 +++ b/main.cpp Tue Apr 30 03:03:03 2019 +0000 @@ -1,19 +1,3 @@ -/** - * Copyright (c) 2017, Arm Limited and affiliates. - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ #include <stdio.h> #include <iostream> @@ -33,8 +17,8 @@ // Max payload size can be LORAMAC_PHY_MAXPAYLOAD. // This example only communicates with much shorter messages (<30 bytes). // If longer messages are used, these buffers must be changed accordingly. -uint8_t tx_buffer[44]; -uint8_t rx_buffer[44]; +uint8_t tx_buffer[128]; +uint8_t rx_buffer[128]; /* * Sets up an application dependent transmission timer in ms. Used only when Duty Cycling is off for testing @@ -153,41 +137,45 @@ static void send_message() { uint16_t packet_cont; int16_t loraStatus; - /*****************************************************************************************************/ - - uint8_t hash_content = 77; - char hash_str[] = ""; - sprintf(hash_str, "%d", hash_content); - - static const unsigned char * hash_buffer = (const unsigned char * ) hash_str; - static const size_t hash_len = strlen(hash_str); + uint8_t hash_content; + uint8_t sensor_val; unsigned char output[32]; + + //Begin sensor + if (ds1820.begin()) { + ds1820.startConversion(); + sensor_val = ds1820.read(); + ds1820.startConversion(); + } else { + printf("\r\n No sensor found \r\n"); + return; + } - mbedtls_sha256(hash_buffer, hash_len, output, 0); + hash_content = sensor_val; //Assign sensor value to hash_content + printf("\r\n %d sensor value \r\n", hash_content); //print to check value + char hash_str[] = ""; //create new char array + sprintf(hash_str, "%d", hash_content); //put value into new char array - const char * c = (const char * ) output; + static const unsigned char * hash_buffer = (const unsigned char * ) hash_str; //cast char array to const unsigned char + static const size_t hash_len = strlen(hash_str); //get size of message - /*****************************************************************************************************/ + + mbedtls_sha256(hash_buffer, hash_len, output, 0); //hash message - packet_cont = sprintf((char * ) tx_buffer, c); + const char * c = (const char * ) output; //put hashed message into char - loraStatus = lorawan.send(MBED_CONF_LORA_APP_PORT, tx_buffer, packet_cont, + packet_cont = sprintf((char * ) tx_buffer, "%d%s",hash_content , c); //build message with original value + hashed message + + loraStatus = lorawan.send(MBED_CONF_LORA_APP_PORT, tx_buffer, packet_cont, //send message MSG_UNCONFIRMED_FLAG); - if (loraStatus < 0) { + if (loraStatus < 0) { //perform checks to confirm message is sent loraStatus == LORAWAN_STATUS_WOULD_BLOCK ? printf("send - WOULD BLOCK\r\n") : - printf("\r\n send() - Error code %d \r\n", loraStatus); - - if (loraStatus == LORAWAN_STATUS_WOULD_BLOCK) { - //retry in 3 seconds - if (MBED_CONF_LORA_DUTY_CYCLE_ON) { - ev_queue.call_in(3000, send_message); - } - } + printf("\r\n send() - Error code %d \r\n", loraStatus); return; } - printf("\r\n %d bytes scheduled for transmission \r\n", loraStatus); + printf("\r\n %d bytes scheduled for transmission \r\n", loraStatus); //print if successful and clear tx buffer memset(tx_buffer, 0, sizeof(tx_buffer)); } /**