Пример #1
0
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;
		}
	}		
}
Пример #2
0
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);
}
Пример #4
0
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 );
}
Пример #6
0
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;
    }
}
Пример #7
0
bool WeatherApplet::isValidData(const QVariant &data) const
{
    return isValidData(data.toString());
}