Lab_Colour ColourPickerConversions::toLab(RGB_Colour colour) { float X = toX(colour.r, colour.g, colour.b); float Y = toY(colour.r, colour.g, colour.b); float Z = toZ(colour.r, colour.g, colour.b); float L = toL(Y); float a = toA(X, Y); float b = toB(Y, Z); return Lab_Colour(L, a, b); }
void FlowMeter::process() { if (interruptCount == 0) return; unsigned long st = millis(); unsigned long lastProcess = st; unsigned long lastPulse = st; int pulseCount = interruptCount; while (interruptCount > pulseCount || (millis() - lastPulse) < pourDelay) { if (interruptCount > pulseCount) { lastPulse = millis(); } pulseCount = interruptCount; display->showPouring(isOz ? toOz(pulseCount) : toL(pulseCount), isOz); if ((millis() - lastProcess) > PROCESS_ALARM_DELAY) { lastProcess = millis(); Particle.process(); } else { delay(pollDelay); } } interruptCount = 0; unsigned long et = (millis() - st); if (pulseCount < minPourPulses) { display->showNoPour(); return; } lastPour = millis(); display->showPour(isOz ? toOz(pulseCount) : toL(pulseCount), isOz); publishPour(pulseCount, et); }