Hi Daniel,

it seems that two are the devices that whose events are not captured by your tester code:
uuid:AT-SM-FHZ1-simplelight1 urn:upnp-org:serviceId:SwitchDevice:1Status
uuid:AT-SM-FHZ1-switch3 urn:upnp-org:serviceId:GetStatus:1Status

please, check the code generating the events for such devices, may be you send the event only if their status assume a specific value.

I think you should run the tester at least 5 times more.
If you experience the same problem always with different devices then we will try to repeat a similar test.

regards,
francesco


Daniel Felsing wrote:
Ah - one more update...

I think event change propagation of single devices is ok :)
Hm....


Well - hoping for a solution!

Kind regards,
Daniel

-----Ursprüngliche Nachricht-----
Von: Daniel Felsing [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 23. Juli 2008 19:43
An: users@felix.apache.org
Betreff: bug in felix upnp basedriver 0.8

Hello.

It seems there is a bug in event notification in the actual release of the
upnp basedriver 0.8.

I have exported exactly 17 devices to the upnp network.

After "UPnP Event" subscription i should get informed about all device
stati.

So the number of actual devices by which i should get informed should be 17.

This is not always true..and the behavior by which device status i dont get
informed is random.

Here an example:

First run:

osgi> info     20080723 19:38:20 bid#39       - BundleEvent STARTED

info     20080723 19:38:21 bid#44       - device found, UPnP71/39

info     20080723 19:38:21 bid#44       - no driver for UPnP71/39

info     20080723 19:38:21 bid#39       -
[71;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-dawnsensor2 urn:upnp-org:serviceId:GetStatus:1Status off

#diff Devices:1

info     20080723 19:38:22 bid#44       - device found, UPnP72/39

info     20080723 19:38:22 bid#44       - no driver for UPnP72/39

info     20080723 19:38:22 bid#39       -
[72;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch6 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:2

info     20080723 19:38:22 bid#44       - device found, UPnP73/39

info     20080723 19:38:22 bid#44       - no driver for UPnP73/39

info     20080723 19:38:22 bid#39       -
[73;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch5 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:3

uuid:AT-SM-FHZ1-S20_Switch5 urn:upnp-org:serviceId:GetLevel:1Level 70

#diff Devices:3

info     20080723 19:38:23 bid#44       - device found, UPnP74/39

info     20080723 19:38:23 bid#44       - no driver for UPnP74/39

info     20080723 19:38:23 bid#39       -
[74;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch8 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:4

info     20080723 19:38:23 bid#44       - device found, UPnP75/39

info     20080723 19:38:23 bid#44       - no driver for UPnP75/39

info     20080723 19:38:23 bid#39       -
[75;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch8 urn:upnp-org:serviceId:GetLevel:1Level 82

#diff Devices:4

uuid:AT-SM-FHZ1-switch3 urn:upnp-org:serviceId:GetStatus:1Status off

#diff Devices:5

info     20080723 19:38:24 bid#44       - device found, UPnP76/39

info     20080723 19:38:24 bid#39       -
[76;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

info     20080723 19:38:24 bid#44       - no driver for UPnP76/39

uuid:AT-SM-FHZ1-rainsensor1 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:6

info     20080723 19:38:24 bid#44       - device found, UPnP77/39

info     20080723 19:38:24 bid#44       - no driver for UPnP77/39

info     20080723 19:38:24 bid#39       -
[77;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-motionsensor1 urn:upnp-org:serviceId:GetEvent:1Event
#diff Devices:7

info     20080723 19:38:25 bid#44       - device found, UPnP78/39

info     20080723 19:38:25 bid#44       - no driver for UPnP78/39

info     20080723 19:38:25 bid#39       -
[78;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

info     20080723 19:38:25 bid#44       - device found, UPnP79/39

info     20080723 19:38:25 bid#39       -
[79;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

info     20080723 19:38:25 bid#44       - no driver for UPnP79/39

uuid:AT-SM-FHZ1-shutter1 urn:upnp-org:serviceId:SwitchDevice:1Status on

#diff Devices:8

uuid:AT-SM-FHZ1-motionsensor1
urn:upnp-org:serviceId:GetEstimate:1EstimatedValue 0

#diff Devices:8

uuid:AT-SM-FHZ1-simplelight1 urn:upnp-org:serviceId:SwitchDevice:1Status on

#diff Devices:9

info     20080723 19:38:26 bid#44       - device found, UPnP80/39

info     20080723 19:38:26 bid#44       - no driver for UPnP80/39

info     20080723 19:38:26 bid#39       -
[80;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch2 urn:upnp-org:serviceId:GetLevel:1Level 70

#diff Devices:10

info     20080723 19:38:26 bid#44       - device found, UPnP81/39

info     20080723 19:38:26 bid#44       - no driver for UPnP81/39

info     20080723 19:38:26 bid#39       -
[81;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch3 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:11

info     20080723 19:38:27 bid#44       - device found, UPnP82/39

info     20080723 19:38:27 bid#44       - no driver for UPnP82/39

info     20080723 19:38:27 bid#39       -
[82;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch3 urn:upnp-org:serviceId:GetLevel:1Level 70

#diff Devices:11

uuid:AT-SM-FHZ1-funksteckdose1 urn:upnp-org:serviceId:SwitchDevice:1Status
off

#diff Devices:12

info     20080723 19:38:27 bid#44       - device found, UPnP83/39

info     20080723 19:38:27 bid#44       - no driver for UPnP83/39

info     20080723 19:38:27 bid#39       -
[83;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch7 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:13

uuid:AT-SM-FHZ1-S20_Switch7 urn:upnp-org:serviceId:GetLevel:1Level 82

#diff Devices:13

info     20080723 19:38:28 bid#44       - device found, UPnP84/39

info     20080723 19:38:28 bid#44       - no driver for UPnP84/39

info     20080723 19:38:28 bid#39       -
[84;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch1 urn:upnp-org:serviceId:GetLevel:1Level 36

#diff Devices:14

info     20080723 19:38:29 bid#44       - device found, UPnP85/39

info     20080723 19:38:29 bid#44       - no driver for UPnP85/39

info     20080723 19:38:29 bid#39       -
[85;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-dimswitch4 urn:upnp-org:serviceId:GetStatus:1Status off

#diff Devices:15

uuid:AT-SM-FHZ1-dimswitch4 urn:upnp-org:serviceId:GetLevel:1Level 0

#diff Devices:15

info     20080723 19:38:29 bid#44       - device found, UPnP86/39

info     20080723 19:38:29 bid#44       - no driver for UPnP86/39

info     20080723 19:38:29 bid#39       -
[86;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch4 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:16

info     20080723 19:38:30 bid#44       - device found, UPnP87/39

info     20080723 19:38:30 bid#44       - no driver for UPnP87/39

info     20080723 19:38:30 bid#39       -
[87;org.osgi.service.upnp.UPnPDevice] ServiceEvent REGISTERED

uuid:AT-SM-FHZ1-S20_Switch4 urn:upnp-org:serviceId:GetLevel:1Level 100

#diff Devices:16

uuid:AT-SM-FHZ1-dimmablelight1 urn:upnp-org:serviceId:SwitchDevice:1Status
off

#diff Devices:17

Device count is 17

Then i restarted the "tester bundle"

uuid:AT-SM-FHZ1-S20_Switch6 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:1

uuid:AT-SM-FHZ1-dawnsensor2 urn:upnp-org:serviceId:GetStatus:1Status off

#diff Devices:2

uuid:AT-SM-FHZ1-S20_Switch6 urn:upnp-org:serviceId:GetLevel:1Level 82

#diff Devices:2

uuid:AT-SM-FHZ1-S20_Switch5 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:3

uuid:AT-SM-FHZ1-S20_Switch5 urn:upnp-org:serviceId:GetLevel:1Level 70

#diff Devices:3

uuid:AT-SM-FHZ1-S20_Switch8 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:4

uuid:AT-SM-FHZ1-S20_Switch8 urn:upnp-org:serviceId:GetLevel:1Level 82

#diff Devices:4

uuid:AT-SM-FHZ1-rainsensor1 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:5

uuid:AT-SM-FHZ1-motionsensor1
urn:upnp-org:serviceId:GetEstimate:1EstimatedValue 0

#diff Devices:6

uuid:AT-SM-FHZ1-motionsensor1 urn:upnp-org:serviceId:GetEvent:1Event
#diff Devices:6

uuid:AT-SM-FHZ1-shutter1 urn:upnp-org:serviceId:SwitchDevice:1Status on

#diff Devices:7

uuid:AT-SM-FHZ1-S20_Switch2 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:8

uuid:AT-SM-FHZ1-S20_Switch2 urn:upnp-org:serviceId:GetLevel:1Level 70

#diff Devices:8

uuid:AT-SM-FHZ1-S20_Switch3 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:9

uuid:AT-SM-FHZ1-S20_Switch3 urn:upnp-org:serviceId:GetLevel:1Level 70

#diff Devices:9

uuid:AT-SM-FHZ1-funksteckdose1 urn:upnp-org:serviceId:SwitchDevice:1Status
off

#diff Devices:10

uuid:AT-SM-FHZ1-S20_Switch7 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:11

uuid:AT-SM-FHZ1-S20_Switch1 urn:upnp-org:serviceId:GetLevel:1Level 36

#diff Devices:12

uuid:AT-SM-FHZ1-dimswitch4 urn:upnp-org:serviceId:GetStatus:1Status off

#diff Devices:13

uuid:AT-SM-FHZ1-S20_Switch4 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:14

uuid:AT-SM-FHZ1-dimmablelight1 urn:upnp-org:serviceId:SwitchDevice:1Status
off

#diff Devices:15

uuid:AT-SM-FHZ1-S20_Switch4 urn:upnp-org:serviceId:GetLevel:1Level 100

#diff Devices:15

I get informed by only 15 devices?...

Third run:

uuid:AT-SM-FHZ1-dawnsensor2 urn:upnp-org:serviceId:GetStatus:1Status off

#diff Devices:1

uuid:AT-SM-FHZ1-S20_Switch6 urn:upnp-org:serviceId:GetLevel:1Level 82

#diff Devices:2

uuid:AT-SM-FHZ1-S20_Switch5 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:3

uuid:AT-SM-FHZ1-S20_Switch8 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:4

uuid:AT-SM-FHZ1-S20_Switch8 urn:upnp-org:serviceId:GetLevel:1Level 82

#diff Devices:4

uuid:AT-SM-FHZ1-rainsensor1 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:5

uuid:AT-SM-FHZ1-motionsensor1
urn:upnp-org:serviceId:GetEstimate:1EstimatedValue 0

#diff Devices:6

uuid:AT-SM-FHZ1-shutter1 urn:upnp-org:serviceId:SwitchDevice:1Status on

#diff Devices:7

uuid:AT-SM-FHZ1-motionsensor1 urn:upnp-org:serviceId:GetEvent:1Event
#diff Devices:7

uuid:AT-SM-FHZ1-simplelight1 urn:upnp-org:serviceId:SwitchDevice:1Status on

#diff Devices:8

uuid:AT-SM-FHZ1-S20_Switch2 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:9

uuid:AT-SM-FHZ1-S20_Switch2 urn:upnp-org:serviceId:GetLevel:1Level 70

#diff Devices:9

uuid:AT-SM-FHZ1-S20_Switch3 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:10

uuid:AT-SM-FHZ1-S20_Switch3 urn:upnp-org:serviceId:GetLevel:1Level 70

#diff Devices:10

uuid:AT-SM-FHZ1-funksteckdose1 urn:upnp-org:serviceId:SwitchDevice:1Status
off

#diff Devices:11

uuid:AT-SM-FHZ1-S20_Switch7 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:12

uuid:AT-SM-FHZ1-S20_Switch7 urn:upnp-org:serviceId:GetLevel:1Level 82

#diff Devices:12

uuid:AT-SM-FHZ1-S20_Switch1 urn:upnp-org:serviceId:GetLevel:1Level 36

#diff Devices:13

uuid:AT-SM-FHZ1-dimswitch4 urn:upnp-org:serviceId:GetLevel:1Level 0

#diff Devices:14

uuid:AT-SM-FHZ1-S20_Switch4 urn:upnp-org:serviceId:GetStatus:1Status on

#diff Devices:15

uuid:AT-SM-FHZ1-S20_Switch4 urn:upnp-org:serviceId:GetLevel:1Level 100

#diff Devices:15

uuid:AT-SM-FHZ1-dimmablelight1 urn:upnp-org:serviceId:SwitchDevice:1Status
off

#diff Devices:16

Informed by 16 devices.

The code for testing was:

public class EventListener implements UPnPEventListener {

      private ArrayList<String> knownDevs = new ArrayList<String>();

      @Override

      public synchronized void notifyUPnPEvent(String deviceId, String
serviceId, Dictionary events) {

            String output = "";

            output += deviceId + " " + serviceId;

            Enumeration eventit = events.keys();

            while (eventit.hasMoreElements()) {

                  String key = (String) eventit.nextElement();

                  output += key + " " + events.get(key) + "\n";

            }

            if (!knownDevs.contains(deviceId)) {

                  knownDevs.add(deviceId);

            }

            System.err.println(output + "#diff Devices:" +
knownDevs.size());

            System.err.flush();

      }

}

I think it should be free from errors :-)

Please help me! Since i really need the upnp driver for my master thesis.

Kind regards,

Daniel



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to