void running(void) { uint8 len; struct AppFrame* appFrame; uint16 count = 0xffff; while(1) { len = recvRf((uint8**)&appFrame); if(len > 0) { if(!isValidData(appFrame)) continue; if(!isMyAddress(appFrame)) { } else { BSP_TOGGLE_LED2(); doCommand(appFrame); } } count--; if(count == 0) { BSP_TOGGLE_LED1(); count = 0xffff; } } }
void WeatherApplet::updatePanelModel(const Plasma::DataEngine::Data &data) { resetPanelModel(); m_panelModel["location"] = data["Place"].toString(); const int reportTemperatureUnit = data["Temperature Unit"].toInt(); const KUnitConversion::Unit displayTemperatureUnit = temperatureUnit(); // Get current time period of day const QStringList fiveDayTokens = data["Short Forecast Day 0"].toString().split(QLatin1Char('|')); if (fiveDayTokens.count() == 6) { const QString& reportLowString = fiveDayTokens[4]; if (reportLowString != QLatin1String("N/A") && !reportLowString.isEmpty()) { m_panelModel["currentDayLowTemperature"] = convertTemperature(displayTemperatureUnit, reportLowString, reportTemperatureUnit, true); } const QString& reportHighString = fiveDayTokens[3]; if (reportHighString != QLatin1String("N/A") && !reportHighString.isEmpty()) { m_panelModel["currentDayHighTemperature"] = convertTemperature(displayTemperatureUnit, reportHighString, reportTemperatureUnit, true); } } m_panelModel["currentConditions"] = data["Current Conditions"].toString().trimmed(); const QVariant temperature = data[QStringLiteral("Temperature")]; if (isValidData(temperature)) { m_panelModel["currentTemperature"] = convertTemperature(displayTemperatureUnit, temperature, reportTemperatureUnit); } const QString conditionIconName = data["Condition Icon"].toString(); QString weatherIconName; // specific icon? if (!conditionIconName.isEmpty() && conditionIconName != QLatin1String("weather-none-available") && conditionIconName != QLatin1String("N/U") && // TODO: N/U and N/A should not be used here, fix dataengines conditionIconName != QLatin1String("N/A")) { weatherIconName = existingWeatherIconName(conditionIconName); } else { // icon to use from current weather forecast? if (fiveDayTokens.count() == 6 && fiveDayTokens[1] != QLatin1String("N/U")) { // show the current weather weatherIconName = existingWeatherIconName(fiveDayTokens[1]); } else { weatherIconName = QStringLiteral("weather-none-available"); } } m_panelModel["currentConditionIcon"] = weatherIconName; m_panelModel["courtesy"] = data["Credit"].toString(); m_panelModel["creditUrl"] = data["Credit Url"].toString(); }
//-------------------------------------------------------------------------- // AutoAttach //-------------------------------------------------------------------------- void CZPAssetsPanelObserver::AutoAttach() { #if defined(InDnCS5) || defined(InDnCS5_5) const IExecutionContext* ec = GetExecutionContext(); ISession* gSession = ec->GetSession(); #endif do { ASSERT( gZPApp ); InterfacePtr<ISubject> loginControllerSubject( gZPApp, UseDefaultIID() ); ASSERT(loginControllerSubject); if(!loginControllerSubject->IsAttached(this, IZPLoginController::kDefaultIID)) loginControllerSubject->AttachObserver(this, IZPLoginController::kDefaultIID); #if 0 //TODO: InterfacePtr<IApplication> app(gSession->QueryApplication()); InterfacePtr<IDocumentList> documentList(app->QueryDocumentList()); InterfacePtr<ISubject> documentListSubject( documentList, UseDefaultIID() ); ASSERT(documentListSubject); if(!documentListSubject->IsAttached(this,IID_IDOCUMENTLIST, IID_IDOCLISTOBSERVER)) { documentListSubject->AttachObserver(this, IID_IDOCUMENTLIST, IID_IDOCLISTOBSERVER); } this->DoAttachDetach(kIZPAssetsPanelWidgetTypeDropDownWidgetID, IStringListControlData::kDefaultIID, kTrue); this->DoAttachDetach(kIZPAssetsPanelShowDocumentsRadioButtonWidgetID, ITriStateControlData::kDefaultIID, kTrue); this->DoAttachDetach(kIZPAssetsPanelShowStoriesRadioButtonWidgetID, ITriStateControlData::kDefaultIID, kTrue); #endif this->DoAttachDetach(kZPUIAssetsPanelRefreshButtonWidgetID, IBooleanControlData::kDefaultIID, kTrue); this->DoAttachDetach( kZPUIAssetsPanelTitleDropDownWidgetID, IStringListControlData::kDefaultIID, kTrue); this->DoAttachDetach( kZPUIAssetsPanelEditionDropDownWidgetID, IStringListControlData::kDefaultIID, kTrue); this->DoAttachDetach( kZPUIAssetsPanelLstAssetsWidgetID, ITreeViewController::kDefaultIID, kTrue); InterfacePtr<ISubject> sessionSubject( gSession, UseDefaultIID()); ASSERT(sessionSubject); if( !sessionSubject->IsAttached( this, IZPPreviewMgr::kDefaultIID ) ) sessionSubject->AttachObserver( this, IZPPreviewMgr::kDefaultIID ); if( mCheckLoginState ) { InterfacePtr<const IZPDefaultSession> defaultSession( gSession, UseDefaultIID() ); ASSERT( defaultSession ); const IZPUserCredentials * defaultCredentials = defaultSession->GetUserCredentials(); InterfacePtr<const IBoolData> isValidData( defaultCredentials, IID_IZPISVALID ); if( isValidData && isValidData->Get()) this->HandleUserLoginDone(); mCheckLoginState = false; } } while (false); }
bool EepromDev::loadFromDevice(void) { bool ret_value = false; int fd; if (openDevice(fd)) { ret_value = readI2C(fd, 0, &data_, sizeof(data_)); ::close(fd); } if (!isValidData()) loadFromDefaults(); /* Update v1 to v2 */ if (data_.version == 1) { data_.features |= feature_eepromoops; data_.eepromoops_offset = 4096; data_.eepromoops_length = 61440; data_.eeprom_size = 65536; data_.page_size = 128; if (data_.features & feature_retina) { data_.lvds1.frequency = 148500000; data_.lvds1.hactive = 1920; data_.lvds1.vactive = 1080; data_.lvds1.hback_porch = 148; data_.lvds1.hfront_porch = 88; data_.lvds1.hsync_len = 44; data_.lvds1.vback_porch = 36; data_.lvds1.vfront_porch = 4; data_.lvds1.vsync_len = 5; data_.lvds1.flags = vsync_polarity | hsync_polarity | data_width_8bit | mapping_jeida | dual_channel | channel_present; data_.lvds2.flags = channel_present; } if (data_.features & feature_hdmi) { /* Pull HDMI settings from e.g. EDID */ data_.hdmi.flags = channel_present | ignore_settings | data_width_8bit; } data_.version = 2; } return ret_value; }
//---------------------------------------------------------------------------------------- // UpdateUserName //---------------------------------------------------------------------------------------- void CZPAssetsPanelObserver::UpdateUserName() { #if defined(InDnCS5) || defined(InDnCS5_5) const IExecutionContext* ec = GetExecutionContext(); ISession* gSession = ec->GetSession(); #endif InterfacePtr<const IZPDefaultSession> defaultSession( gSession, UseDefaultIID() ); ASSERT( defaultSession ); const IZPUserCredentials * defaultCredentials = defaultSession->GetUserCredentials(); InterfacePtr<const IZPSessionData> sessionData( defaultCredentials, UseDefaultIID() ); InterfacePtr<const IBoolData> isValidData( defaultCredentials, IID_IZPISVALID ); //Set User Name if( sessionData && isValidData && isValidData->Get()) this->SetTextControlData( kZPUIAssetsPanelUsernameWidgetID, sessionData->GetUserDisplayName() ); else this->SetTextControlData( kZPUIAssetsPanelUsernameWidgetID, kNullString ); }
void WeatherApplet::updateDetailsModel(const Plasma::DataEngine::Data &data) { m_detailsModel.clear(); QLocale locale; const QString textId = QStringLiteral("text"); const QString iconId = QStringLiteral("icon"); // reused map for each row QVariantMap row; row.insert(iconId, QString()); row.insert(textId, QString()); const int reportTemperatureUnit = data[QStringLiteral("Temperature Unit")].toInt(); const KUnitConversion::Unit displayTemperatureUnit = temperatureUnit(); const QVariant windChill = data[QStringLiteral("Windchill")]; if (isValidData(windChill)) { // Use temperature unit to convert windchill temperature // we only show degrees symbol not actual temperature unit const QString temp = convertTemperature(displayTemperatureUnit, windChill, reportTemperatureUnit, false, true); row[textId] = i18nc("windchill, unit", "Windchill: %1", temp); m_detailsModel << row; } const QString humidex = data[QStringLiteral("Humidex")].toString(); if (isValidData(humidex)) { // TODO: this seems wrong, does the humidex have temperature as units? // Use temperature unit to convert humidex temperature // we only show degrees symbol not actual temperature unit QString temp = convertTemperature(displayTemperatureUnit, humidex, reportTemperatureUnit, false, true); row[textId] = i18nc("humidex, unit","Humidex: %1", temp); m_detailsModel << row; } const QVariant dewpoint = data[QStringLiteral("Dewpoint")]; if (isValidData(dewpoint)) { QString temp = convertTemperature(displayTemperatureUnit, dewpoint, reportTemperatureUnit); row[textId] = i18nc("ground temperature, unit", "Dewpoint: %1", temp); m_detailsModel << row; } const QVariant pressure = data[QStringLiteral("Pressure")]; if (isValidData(pressure)) { KUnitConversion::Value v(pressure.toDouble(), static_cast<KUnitConversion::UnitId>(data["Pressure Unit"].toInt())); v = v.convertTo(pressureUnit()); row[textId] = i18nc("pressure, unit","Pressure: %1 %2", locale.toString(clampValue(v.number(), 2), 'f', 2), v.unit().symbol()); m_detailsModel << row; } const QString pressureTendency = data["Pressure Tendency"].toString(); if (isValidData(pressureTendency)) { const QString i18nPressureTendency = i18nc("pressure tendency", pressureTendency.toUtf8().data()); row[textId] = i18nc("pressure tendency, rising/falling/steady", "Pressure Tendency: %1", i18nPressureTendency); m_detailsModel << row; } const QVariant visibility = data[QStringLiteral("Visibility")]; if (isValidData(visibility)) { const KUnitConversion::UnitId unitId = static_cast<KUnitConversion::UnitId>(data["Visibility Unit"].toInt()); if (unitId != KUnitConversion::NoUnit) { KUnitConversion::Value v(visibility.toDouble(), unitId); v = v.convertTo(visibilityUnit()); row[textId] = i18nc("distance, unit","Visibility: %1 %2", locale.toString(clampValue(v.number(), 1), 'f', 1), v.unit().symbol()); } else { row[textId] = i18nc("visibility from distance", "Visibility: %1", visibility.toString()); } m_detailsModel << row; } const QVariant humidity = data[QStringLiteral("Humidity")]; if (isValidData(humidity)) { row[textId] = i18nc("content of water in air", "Humidity: %1%2", locale.toString(clampValue(humidity.toFloat(), 0), 'f', 0), i18nc("Percent, measure unit", "%")); m_detailsModel << row; } const QVariant windSpeed = data[QStringLiteral("Wind Speed")]; if (isValidData(windSpeed)) { // TODO: missing check for windDirection validness const QString windDirection = data["Wind Direction"].toString(); row[iconId] = windDirection; bool isNumeric; const double windSpeedNumeric = windSpeed.toDouble(&isNumeric); if (isNumeric) { if (windSpeedNumeric != 0) { KUnitConversion::Value v(windSpeedNumeric, static_cast<KUnitConversion::UnitId>(data["Wind Speed Unit"].toInt())); v = v.convertTo(speedUnit()); const QString i18nWindDirection = i18nc("wind direction", windDirection.toUtf8().data()); row[textId] = i18nc("wind direction, speed","%1 %2 %3", i18nWindDirection, locale.toString(clampValue(v.number(), 1), 'f', 1), v.unit().symbol()); } else { row[textId] = i18nc("Wind condition", "Calm"); } } else { row[textId] = windSpeed.toString(); } m_detailsModel << row; row[iconId] = QString(); // reset } const QVariant windGust = data[QStringLiteral("Wind Gust")]; if (isValidData(windGust)) { // Convert the wind format for nonstandard types KUnitConversion::Value v(windGust.toDouble(), static_cast<KUnitConversion::UnitId>(data["Wind Speed Unit"].toInt())); v = v.convertTo(speedUnit()); row[textId] = i18nc("winds exceeding wind speed briefly", "Wind Gust: %1 %2", locale.toString(clampValue(v.number(), 1), 'f', 1), v.unit().symbol()); m_detailsModel << row; } }
bool WeatherApplet::isValidData(const QVariant &data) const { return isValidData(data.toString()); }