Pull request for i.a. sensor buffer template
Dependencies: BLE_API MPU6050 mbed nRF51822
Util.h
- Committer:
- JustinAtAlten
- Date:
- 2018-11-15
- Revision:
- 11:8c38e284e9f7
- Parent:
- 10:eed92ffd0bba
File content as of revision 11:8c38e284e9f7:
#ifndef UTIL_H #define UTIL_H #include <string> // #include <vector> template<typename T_FromType, typename T_ToType> inline void castArray(T_FromType * fromArray, T_ToType * toArray, const unsigned int & length){ for(unsigned int i=0; i < length; i++){ toArray[i] = fromArray[i]; } } // inline std::vector<std::string> split(std::string receivedMessage, const char & delimiter = ' '){ // std::vector<std::string> ret; // size_t wordEnd = receivedMessage.find_first_of(delimiter); // while(wordEnd != std::string::npos){ // std::string word = receivedMessage.substr(0, wordEnd); // if(!word.empty()){ // ret.push_back(word); // } // receivedMessage = receivedMessage.substr(wordEnd+1); // wordEnd = receivedMessage.find_first_of(delimiter); // } // if(!receivedMessage.empty()){ // ret.push_back(receivedMessage); // } // return ret; // } inline char digitToChar(uint8_t digit){ return ('0' + digit); //ascii value + digit value = ascii value } inline std::string floatToString(float value, int maximumNumberOfDecimals = 5){ //Temporary solution to solve logging of float values //First make sure buffer is big enough std::string ret; int integersLength = 0; int valueInt = static_cast<int>(value); //integer part if(valueInt){ integersLength = 1; } while(valueInt /= 10){ //assuming decimal system integersLength++; value /= 10.0f; } for(int i=0; i < integersLength; i++){ uint8_t digit = (uint8_t) value; ret += digitToChar(digit); value -= digit; value *= 10.0f; } //decimal point ret += "."; //decimal part int decimalLength = 0; while((value != 0.0f) && (decimalLength < maximumNumberOfDecimals)){ uint8_t digit = (uint8_t) value; ret += digitToChar(digit); decimalLength++; value -= digit; value *= 10.0f; } if((decimalLength == 0) && (decimalLength < maximumNumberOfDecimals)){ ret += "0"; } ret += "f"; return ret; } #define floatToCharArray(...) floatToString(__VA_ARGS__).c_str() #endif /* UTIL_H */