예제 #1
0
void plugin::watchpinChanged(const unsigned char port, const unsigned char pinmask) {
    qDebug() << "WATCH PIN CHANGED" << port << pinmask;
    ServiceData sc = ServiceData::createModelChangeItem("udpio.sensor");
    for (int i=0;i<8;++i) {
        bool newvalue = (1 << i) & pinmask;
        if (!m_read || m_sensors[i] != newvalue) {
            m_sensors[i] = newvalue;
            sc.setData("sensorid", i);
            sc.setData("value", m_sensors[i]);
            changeProperty(sc.getData());
            m_events.triggerEvent(i, m_serverCollectionController);
        }
    }
    m_read = true;
}
예제 #2
0
void plugin::requestProperties(int sessionid) {
    Q_UNUSED(sessionid);


    changeProperty(ServiceData::createModelReset("udpio.sensor", "sensorid").getData());
    if (m_read) {
        ServiceData sc = ServiceData::createModelChangeItem("udpio.sensor");
        for (int id=0;id<m_sensors.size();++id) {
            sc.setData("sensorid", id);
            sc.setData("value", m_sensors[id]);
            changeProperty(sc.getData());
        }
    }
    return l;
}
예제 #3
0
void plugin::requestProperties(int sessionid) {
    Q_UNUSED(sessionid);

    {
        ServiceData sc = ServiceData::createNotification(PLUGIN_ID,  "pulse.version" );
        sc.setData("protocol", getProtocolVersion());
        sc.setData("server", getServerVersion());
		changeProperty(sc.getData());
    }
    {
        ServiceData sc = ServiceData::createModelReset( "pulse.channels", "sinkid" );
        changeProperty(sc.getData());
    }
    QList<PulseChannel> channels = getAllChannels();
    foreach(PulseChannel channel, channels) {
        ServiceData sc = ServiceData::createModelChangeItem( "pulse.channels" );
        sc.setData("sinkid", channel.sinkid);
        sc.setData("mute", channel.mute);
        sc.setData("volume", channel.volume);
        changeProperty(sc.getData());
    }