/** * Set the current date of the picker. * @param date A date struct that specifies a valid date. * @return Any of the following result codes: * - #MAW_RES_OK if the property could be set. * - #MAW_RES_INVALID_PROPERTY_VALUE if the property value was invalid. * - #MAW_RES_ERROR otherwise. */ int DatePicker::setDate(const struct Date date) { //Saving the date, in case of error this will be restored. int year = getYear(); int month = getMonth(); int day = getDayOfMonth(); //Set the day on 1. Used to avoid errors when setting certain dates. int errorCode = setDayOfMonth(1); if(MAW_RES_OK != errorCode) { return errorCode; } else { errorCode = setYear(date.year); if(MAW_RES_OK != errorCode) { //reset the day. setDayOfMonth(day); return errorCode; } else { errorCode = setMonth(date.month); if(MAW_RES_OK != errorCode) { //reset the year and the day. setYear(year); setDayOfMonth(day); return errorCode; } else { errorCode = setDayOfMonth(date.day); if(MAW_RES_OK != errorCode) { //reset year, month and day setYear(year); setMonth(month); setDayOfMonth(day); return errorCode; } } } } return errorCode; }
QString F520xmlserializer::avarageQuery(F520Status *f520, QString month, SysError &sysErr) { QXmlQuery query; QString res; QString defaultRes; QFile xml(f520->getXmlPath()); if ( ! xml.exists()) { xml.setFileName(f520->getXmlPath()); if ( ! xml.exists()) { sysErr = SysError(SysError::F520_CAN_NOT_OPEN_FILE, "F520 Rasource file not exist"); return ""; } } if (!xml.open(QIODevice::ReadOnly | QIODevice::Text)) { sysErr = SysError(SysError::F520_RESOUCES_NOT_EXIST, "F520 can not open xml resource file"); return ""; } QString queryStr = CARICO + "/" + DAYS + "/" + DAY + "[@" + MONTH_VALUE + "='" + month + "']"; qDebug() << "F520xmlserializer::query: " << queryStr; query.setFocus(&xml); query.setQuery(queryStr); if ( ! query.isValid()) { qDebug() << "F520xmlserializer::query query not valid"; sysErr = SysError(SysError::F520_QUERY_ERROR, "F520 Query is invalid: " + queryStr); return ""; } query.evaluateTo(&res); queryStr = CARICO + "/" + DAYS + "/" + DAY + "[@" + NAME + "='" + DEFAULT_DAY + "']"; qDebug() << "F520xmlserializer::query: " << queryStr; query.setQuery(queryStr); if (!query.isValid()) { qDebug() << "F520xmlserializer::query query not valid"; sysErr = SysError(SysError::F520_QUERY_ERROR, "F520 Query is invalid: " + queryStr); return ""; } query.evaluateTo(&defaultRes); qDebug() << "F520xmlserializer::query " << res; xml.close(); QDomDocument avarageWatt; res.prepend("<" +DAYS +">\n"); res.append("<\\" + DAYS + ">"); avarageWatt.setContent("" + res + ""); QDomNodeList entryNodes = avarageWatt.elementsByTagName(DAY); QDomDocument defaultWatt; defaultWatt.setContent("" + defaultRes + ""); QDomNodeList entryDefaultNodes = defaultWatt.elementsByTagName(DAY); QList<float> avarage; qDebug() << "F520xmlserializer::query avarageWatt: " << defaultWatt.toString(); int i; for (i = 0; i < getDayOfMonth(month.toInt()); i++) { QDomElement node; if(i < entryNodes.count()) node = entryNodes.at(i).toElement(); else node = entryDefaultNodes.at(0).toElement(); QStringList tmpList = node.attribute(WATT).split('.'); if (tmpList.length() != 24) { sysErr = SysError(SysError::F520_RESOURCE_ERROR, "F520 Resouce Error"); return ""; } for (int index = 0; index < tmpList.length(); index++) { if (avarage.length() <= index) { avarage.append(tmpList.at(index).toFloat() / getDayOfMonth(month.toInt())); } else { avarage[index] += (tmpList.at(index).toFloat() / getDayOfMonth(month.toInt())); } } } QString rtn; foreach (int element, avarage) { rtn += QString::number(element) + '.'; }