yes,

http://svn.apache.org/viewvc/felix/trunk/upnp/extra/src/main/java/org/apache/felix/upnp/extra/util/UPnPEventNotifier.java?view=markup

ff

Daniel Felsing wrote:
Hello all once again,

If e.g. my dimmable device has two services one for light level and one for
status (each service has one localstatevariable).

Is it ok to register one notifier PER service? The below code is done in the
dimmabledevice...to register event notifiers for both services

// setup event notifier
notify_level = new UPnPEventNotifier(context, this, levelservice,
dimswitchDev);
notify_status = new UPnPEventNotifier(context, this, statusservice,
dimswitchDev);  


kind regards,
Daniel


-----Ursprüngliche Nachricht-----
Von: Daniel Felsing [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 24. Juli 2008 17:53
An: [email protected]
Betreff: AW: AW: AW: bug in felix upnp basedriver 0.8

Ok - i have filed the issue under
https://issues.apache.org/jira/browse/FELIX-642
Please let me know if you need something else!


Kind regards and MANY MANY thanks in advance,
Daniel

-----Ursprüngliche Nachricht-----
Von: Daniel Felsing [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 24. Juli 2008 17:34
An: [email protected]
Betreff: AW: AW: AW: bug in felix upnp basedriver 0.8

Ok - what should the jira issue contain?
Also my source code?
What else?

Kind regards,
Daniel

-----Ursprüngliche Nachricht-----
Von: Francesco Furfari [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 24. Juli 2008 17:27
An: [email protected]
Betreff: Re: AW: AW: bug in felix upnp basedriver 0.8

;-) I would say also that 17 is a very unlucky number here in Italy :).
seriously, remember to open a JIRA issue and we will try to fix it ASAP.

thank you for reporting it.

regards,
francesco


Daniel Felsing wrote:
I really dont know how to progress now :(

The only thing i can say for SURE ist hat only the INITIAL event delivery
is
bugged sometimes when registering a new listener on the server.
When i change the state (e.g. by pressing a switch) for the device that
was
bugged before i get the notification.

Well thats it :-((((((

I also assured that the "unregistering" oft he devices by the bridgedriver
(which bridges the x10 like devices tot he network) on shutdown works
properly
Really everything ok there....the upnpeventnotifiers get destroyed by
"destroy"....

I'm now really frustrated and dont know what to do

Kind regards,
Daniel


-----Ursprüngliche Nachricht-----
Von: Daniel Felsing [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 24. Juli 2008 16:19
An: [email protected]
Betreff: AW: AW: bug in felix upnp basedriver 0.8

Hi again,

hmm

Overall Environment Setup:
--------------------------
- yes, connected by a switch
- the first computer is a UPnP Bridge for a X10 "like" system..i wrote a
basedriver and upnpbridgedriver (bridgedriver is creating upnp devices for
every x10 base device). It is using felix + upnpbasedriver
- the second computer acts as a server (central control point for a smart
home system implementation) it's using felix also (but for developing
eclipse equinox since it's more comfortable to develop)
This second computer uses basedriver to import the devices xposed by the
first computer...and a refinement driver is creating new objects for every
upnp device found (e.g. a light device and so on)


Issues:
------
- all the devices on the server (so the central smart home controller)
that
get imported get refined. They subscribe to the upnp device it refines to
get notified on event change.
Problem is: not all devices get notified on INITIAL subscription...when a
notification is missed and i actually change the state of a sensor the
notification works OK.

Question & Tests:
-----------------
- yes i can :)
- yes - every device exported by the upnpsensorbridge (=Felix Computer)
gets
found by the central server (=equinox computer)
It is really just an issue with single "upnpservices". Here i saw
something
strange. When i restart the bridgeDriver on Felix computer (exporting my
upnp devices)
The "getCurrentValue()" methods get called more and more often the more
often i restart the "bridgeDriver". Is this a normal behavior? It seems to
me as state variables
Of the services get mixed up or not cancelled when unregistering or
something.
- i have only one computer where i test the notification -> on the central
equinox server computer.
On the felix computer exporting my upnp devices i am justwondering about
the
strange calls to "getCurrentValue" i described you


Kind regards,
Daniel

-----Ursprüngliche Nachricht-----
Von: Stefano Lenzi [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 24. Juli 2008 16:01
An: [email protected]
Betreff: Re: AW: bug in felix upnp basedriver 0.8

Hi Daniel,

let's try to summarize this long thread, so that we can get a clear
vision on what is going on, and you can correct my wrong understanding

Overall Environment Setup
-------------------------
 - You have two computer connected togheter by means of a switch. And
they are the only two computer on the network
 - The first computer runs Felix + UPnP Base Driver
 - The second computer runs Equinox + UPnP Base Driver + *your* Sensor
Base Driver + Sensor2UPnP Bridge


Issues
------
 - If you subscribe from the PC running Felix to all the UPnP Device
exported by the UPnP Base Driver running on Equinox and created by your
Sensor2UPnP bridge you miss some of the notification.


Questions & Tests
-----------------
 - Can you create a JIRA issue for your issue, so that it will easy to
track and you will be able to post your code as zip file, instead of
copy & paste
 - During your testing have you always discovered all the device
exported by the Equinox computer in the Felix computer?
 - Do you miss notification even on the Equinox computer?

Ciao,
Stefano "Kismet" Lenzi





Francesco Furfari wrote:
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: [email protected]
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]




---------------------------------------------------------------------
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]



---------------------------------------------------------------------
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]



---------------------------------------------------------------------
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]



---------------------------------------------------------------------
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