From a2c05ad36a26ab4214c5b4c9543ebd25e751fea5 Mon Sep 17 00:00:00 2001 From: JunwooHWANG Date: Fri, 6 Jul 2018 09:33:20 +0900 Subject: [PATCH 1/2] Correct uint64ToString for plain Decimal numbers previously, it was doing bit shift operation, and then truncated the string. but since the values given to this function won't go over 4 billion for sure, this won't make any difference really :( --- transmitter/transmitter.ino | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/transmitter/transmitter.ino b/transmitter/transmitter.ino index db012aa..86e5c69 100644 --- a/transmitter/transmitter.ino +++ b/transmitter/transmitter.ino @@ -1053,13 +1053,16 @@ uint64_t generateAddress() String uint64ToString(uint64_t number) { - unsigned long part1 = (unsigned long)((number >> 32)); // Bitwise Right Shift - unsigned long part2 = (unsigned long)((number)); - - if(part1 == 0){ - return String(part2, DEC); - } - return String(part1, DEC) + String(part2, DEC); + String result = ""; + uint8_t base = 10; + + do { + char c = (input % base) + '0'; + input /= base; + result += c; + } while (input); + + return result; } String uint64ToAddress(uint64_t number) From 2623aab0ef8b4088e914dbe87f6f095bfec3cb39 Mon Sep 17 00:00:00 2001 From: JunwooHWANG Date: Fri, 6 Jul 2018 09:38:25 +0900 Subject: [PATCH 2/2] depreciate uint64ToString() Setting values aren't as big as uint64_t. So there is no reason to use that function. --- transmitter/transmitter.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transmitter/transmitter.ino b/transmitter/transmitter.ino index 86e5c69..2cd613b 100644 --- a/transmitter/transmitter.ino +++ b/transmitter/transmitter.ino @@ -786,7 +786,7 @@ void drawSettingsMenu() { if(currentSetting == ADDRESS || currentSetting == RESET){ tString = uint64ToAddress(value); }else{ - tString = uint64ToString(value); + tString = String(value); } }