string humanReadableTime::toString() const { string output; if (value == 0) { output = "0 seconds"; } else { output += convertToString<t_ullong>(value); unitToString(value_unit, value, output); } // value > 0 if (remainder > 0) { output += ", "; output += convertToString<unsigned long>(remainder); unitToString(remainder_unit, remainder, output); } // remainder > 0 return output; }
/// Converts this command to a strings QString SelectionCommand::toString() { return QString("SelectionCommand(%1)").arg( unitToString(unit_) ); }
// Interprets commands from Linino for controlling the thermostat and touchscreen void processCommands(TempControl *tc, ScreenControl *sc) { if(isStreaming && (millis() - lastStreamTime) > STREAM_DELAY) { isStreaming = false; sc->clearTouch(); sc->hideApp(false, false); } // Serial.println("processing..."); while(Serial1.available() > 0) { memset(buff_ptr, 0x00, COMMAND_BUFFER_SIZE); int numBytes; Serial1.readBytes(buff_ptr, 1); switch(buff_ptr[0]) { case GET_TEMP: numBytes = readPacket(); buff_ptr[6] = tc->getRoomTemp(); buff_ptr[8] = tc->getTargetTemp(); Serial1.print(String(GET_TEMP)); Serial1.write((uint8_t *)(buff_ptr + 6), 4); Serial1.println(); break; case GET_MODE: numBytes = readPacket(); Serial1.println(String(GET_MODE) + modeToString(tc)); break; case GET_UNIT: numBytes = readPacket(); Serial1.println(String(GET_UNIT) + unitToString(tc)); break; case IS_ON: numBytes = readPacket(); Serial1.println(String(IS_ON) + isOnToString(tc)); break; case SET_TARGET_TEMP: numBytes = readPacket(); tc->setTargetTemp(unpackNumber(buff_ptr, 3, 2)); Serial1.println(String(SET_TARGET_TEMP)); break; case SWITCH: numBytes = readPacket(); Serial1.println(String(SWITCH)); switch(buff_ptr[3]) { case SWITCH_MODE: tc->switchMode(); break; case SWITCH_UNIT: tc->switchUnit(); break; case SWITCH_FAN: tc->switchFan(); break; } break; case WRITE_TEXT: numBytes = readPacket(); Serial1.println(String(WRITE_TEXT)); buff_ptr[numBytes + 3] = '\0'; sc->layerMode(2); sc->writeText(unpackNumber(buff_ptr, 3, 2), unpackNumber(buff_ptr, 5, 2), unpackNumber(buff_ptr, 7, 2), unpackNumber(buff_ptr, 9, 2), unpackNumber(buff_ptr, 11, 1), buff_ptr+12); sc->layerMode(1); break; case STREAM_IMAGE: numBytes = readPacket(); sc->hideApp(true, true); sc->layerMode(2); sc->drawImage((uint16_t *) (buff_ptr + 11), (numBytes - 8) / 2, unpackNumber(buff_ptr, 3, 2), unpackNumber(buff_ptr, 5, 2), unpackNumber(buff_ptr, 7, 2), unpackNumber(buff_ptr, 9, 2)); Serial1.println(String(STREAM_IMAGE)); sc->layerMode(1); lastStreamTime = millis(); if(!isStreaming) { isStreaming = true; } break; case CLEAR_APP: numBytes = readPacket(); sc->clearApp(); Serial1.println(String(CLEAR_APP)); break; case APP_TOUCH: numBytes = readPacket(); if(sc->appTouched) { buff_ptr[6] = sc->appX; buff_ptr[8] = sc->appY; Serial1.print(String(APP_TOUCH)); Serial1.write((uint8_t *)(buff_ptr + 6), 4); Serial1.println(); sc->appTouched = false; } else { Serial1.println(String(APP_TOUCH) + "X"); } break; case SET_IP: numBytes = readPacket(); strcpy(sc->ipaddr, buff_ptr + 3); Serial1.println(String(SET_IP)); break; default: Serial.println("Error: no such command"); numBytes = Serial1.readBytes(buff_ptr, COMMAND_BUFFER_SIZE); } } }
QString Duration::format(Unit unit, int pres) const { /* FIXME if necessary return i18nc( "<duration><unit>", "%1%2", QLocale().toString(toDouble(unit), 'f', pres), unitToString(unit) );*/ return QLocale().toString( toDouble( unit ), 'f', pres ) + unitToString( unit ); }