#include "dali_helper.h" uint8_t DaliHelper::percentToArc(uint8_t value) { if(value == 0) { return 0; } //Todo also include _max uint8_t arc = roundToInt(((253/3.0)*(std::log10(value)+1)) + 1); return arc; } uint8_t DaliHelper::arcToPercent(uint8_t value) { if(value == 0) { return 0; } //Todo also include _max double arc = std::pow(10, ((value-1) / (253/3.0)) - 1); return roundToInt(arc); } float DaliHelper::arcToPercentFloat(uint8_t value) { if(value == 0) { return 0; } //Todo also include _max float arc = std::pow(10, ((value-1) / (253/3.0)) - 1); return arc; } uint8_t DaliHelper::roundToInt(double input) { double temp = input + 0.5; return (uint8_t)temp; }