This is used for sending Data to receiving mDot

Dependencies:   libmDot-dev-mbed5-deprecated sd-driver ISL29011

Fork of mdot-examples by 3mdeb

Committer:
SDesign2018
Date:
Sat Apr 14 18:20:55 2018 +0000
Revision:
31:79940947df2c
Parent:
5:c9ab5062cfc3
SD card functionality isn't working as wanted. Was working before.; Add method to send longitude and latitude floats.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
SDesign2018 5:c9ab5062cfc3 1 #include <string.h>
SDesign2018 5:c9ab5062cfc3 2 #include "itoa.h"
SDesign2018 5:c9ab5062cfc3 3 using namespace std;
SDesign2018 5:c9ab5062cfc3 4
SDesign2018 5:c9ab5062cfc3 5 // Implementation of itoa()
SDesign2018 5:c9ab5062cfc3 6 char* itoa(int num, char* str, int base)
SDesign2018 5:c9ab5062cfc3 7 {
SDesign2018 5:c9ab5062cfc3 8 int i = 0;
SDesign2018 5:c9ab5062cfc3 9 bool isNegative = false;
SDesign2018 5:c9ab5062cfc3 10
SDesign2018 5:c9ab5062cfc3 11 /* Handle 0 explicitely, otherwise empty string is printed for 0 */
SDesign2018 5:c9ab5062cfc3 12 if (num == 0)
SDesign2018 5:c9ab5062cfc3 13 {
SDesign2018 5:c9ab5062cfc3 14 str[i++] = '0';
SDesign2018 5:c9ab5062cfc3 15 str[i] = '\0';
SDesign2018 5:c9ab5062cfc3 16 return str;
SDesign2018 5:c9ab5062cfc3 17 }
SDesign2018 5:c9ab5062cfc3 18
SDesign2018 5:c9ab5062cfc3 19 // In standard itoa(), negative numbers are handled only with
SDesign2018 5:c9ab5062cfc3 20 // base 10. Otherwise numbers are considered unsigned.
SDesign2018 5:c9ab5062cfc3 21 if (num < 0 && base == 10)
SDesign2018 5:c9ab5062cfc3 22 {
SDesign2018 5:c9ab5062cfc3 23 isNegative = true;
SDesign2018 5:c9ab5062cfc3 24 num = -num;
SDesign2018 5:c9ab5062cfc3 25 }
SDesign2018 5:c9ab5062cfc3 26
SDesign2018 5:c9ab5062cfc3 27 // Process individual digits
SDesign2018 5:c9ab5062cfc3 28 while (num != 0)
SDesign2018 5:c9ab5062cfc3 29 {
SDesign2018 5:c9ab5062cfc3 30 int rem = num % base;
SDesign2018 5:c9ab5062cfc3 31 str[i++] = (rem > 9)? (rem-10) + 'a' : rem + '0';
SDesign2018 5:c9ab5062cfc3 32 num = num/base;
SDesign2018 5:c9ab5062cfc3 33 }
SDesign2018 5:c9ab5062cfc3 34
SDesign2018 5:c9ab5062cfc3 35 // If number is negative, append '-'
SDesign2018 5:c9ab5062cfc3 36 if (isNegative)
SDesign2018 5:c9ab5062cfc3 37 str[i++] = '-';
SDesign2018 5:c9ab5062cfc3 38
SDesign2018 5:c9ab5062cfc3 39 str[i] = '\0'; // Append string terminator
SDesign2018 5:c9ab5062cfc3 40
SDesign2018 5:c9ab5062cfc3 41 // Reverse the string
SDesign2018 5:c9ab5062cfc3 42 reverse(str);
SDesign2018 5:c9ab5062cfc3 43
SDesign2018 5:c9ab5062cfc3 44 return str;
SDesign2018 5:c9ab5062cfc3 45 }
SDesign2018 5:c9ab5062cfc3 46
SDesign2018 5:c9ab5062cfc3 47 /*
SDesign2018 5:c9ab5062cfc3 48 ** reverse string in place
SDesign2018 5:c9ab5062cfc3 49 */
SDesign2018 5:c9ab5062cfc3 50 void reverse(char *s){
SDesign2018 5:c9ab5062cfc3 51 char *j;
SDesign2018 5:c9ab5062cfc3 52 int c;
SDesign2018 5:c9ab5062cfc3 53
SDesign2018 5:c9ab5062cfc3 54 j = s + strlen(s) - 1;
SDesign2018 5:c9ab5062cfc3 55 while(s < j) {
SDesign2018 5:c9ab5062cfc3 56 c = *s;
SDesign2018 5:c9ab5062cfc3 57 *s++ = *j;
SDesign2018 5:c9ab5062cfc3 58 *j-- = c;
SDesign2018 5:c9ab5062cfc3 59 }
SDesign2018 5:c9ab5062cfc3 60 }