Cesar,

Walking the code, it looks like IoTClientResource::resource is bound to a fully 
qualified resource which means that the message is going out unicast. I *think* 
what you need to do is create a resource using the resource factory (I *think* 
it is called constructResourceObject (?)) with the multicast address.

NOTE: Unless you want to know who is out there, you will not need to do a 
resource discovery. All resources that match the URI should receive the message.

Pat

From: Cesar Meira [mailto:[email protected]]
Sent: Thursday, June 11, 2015 8:45 AM
To: ???(Uze Choi)
Cc: Lankswert, Patrick; iotivity-dev at lists.iotivity.org
Subject: Re: [dev] Broadcast messages

@Patrick

Short answer: its in the main.cpp of the client, when I call redLed->put(1) and 
redLed->put(0).

Long answer: I tried to code in a way that it should be easy to add or change 
resources like leds, buttons, buzzers and so on.

In the client, the IoTClient object will initialize the IoTivity as client and 
will call IoTClientResourceManager::initialize(). This manager will basically 
call the IoTClientResource::initialize() from all resources present in list. 
The RedLed resource object inherits from IoTClientResource. I did this way so 
the resource objects, like RedLed, will only need to implement the put(), 
post(), get() and the replies, leaving the IoTivity specific routines to 
IoTClientResource.

The "easyness" is that, if I want to implement another resource, like 
"GreenLed", all I have to do is inherit it from IoTClientResource, implement 
the virtual methods (initialize and put/get/post replies) and the resource 
specific put/get/post methods, and add an instance of this object in the 
IoTClientResourceManager list.

The server side works in a similar way. The class names are a little different 
because I coded them first and forgot to update them later.

It might not be really a broadcast message. The client is sending a message to 
the "/red_led" endpoint, and I expected that all servers that registered this 
endpoint would receive this message, but that was not the case.

@Uze

I think the second case is more like I want to accomplish. Using your example 
of the fire alarm, what is in my mind is this:

There are smoke sensors, sirens and flash lights in this fire alarm system, all 
in the IoTivity network. If one of the smoke sensors detect smoke, it would 
send a message to the network, pretty much like "I have detected smoke". The 
sirens and the flash lights would receive this message from the network and go 
off.

I guessed using the endpoint would be the way to do this. The sirens and flash 
light would all try to register the endpoint "/alarm", and the smoke sensor, 
knowing that, would send a message to this endpoint.

On Thu, Jun 11, 2015 at 5:09 AM, ???(Uze Choi) <uzchoi at 
samsung.com<mailto:uzchoi at samsung.com>> wrote:
?sending message into n device? could be interpreted into two cases.

One is the after finding the devices and send to them.
           e.g) find the ?notification alarm? resource and send the message to 
them as single shot.
           --> This need to be handled from the Group concept.
The other is broadcasting the message in to the network.
e.g) fire alarm message need to be sent as a single messaging.
           --> We can think about the new special resource which receives the 
broadcast(multicast) message except the advertisement presence message.

Cesar, what is yours?

BR, Uze Choi
From: iotivity-dev-bounces at lists.iotivity.org<mailto:iotivity-dev-bounces at 
lists.iotivity.org> [mailto:iotivity-dev-bounces at 
lists.iotivity.org<mailto:[email protected]>] On Behalf 
Of Lankswert, Patrick
Sent: Wednesday, June 10, 2015 11:59 PM
To: Cesar Meira

Cc: iotivity-dev at lists.iotivity.org<mailto:iotivity-dev at 
lists.iotivity.org>
Subject: Re: [dev] Broadcast messages

Cesar,

It was not obvious to me where you were attempting to send a broadcast.

Pat

From: Cesar Meira [mailto:cesarsulteste1 at 
gmail.com<mailto:[email protected]>]
Sent: Wednesday, June 10, 2015 7:45 AM
To: Lankswert, Patrick
Cc: iotivity-dev at lists.iotivity.org<mailto:iotivity-dev at 
lists.iotivity.org>
Subject: Re: [dev] Broadcast messages

Sure, I have attached the client and server codes.
Any questions please let me know, and thanks for your time!

On Tue, Jun 9, 2015 at 12:02 PM, Lankswert, Patrick <patrick.lankswert at 
intel.com<mailto:patrick.lankswert at intel.com>> wrote:
Cesar,

It should work with caveats. Can you share the code that you are using to 
broadcast the message?

Here are the caveats:

?         Broadcast message cannot be confirmed since you do not know who will 
receive it in advance

?         UDP and the broadcast (multicast) methods are best effort and 
therefore packets may be lost although very unlikely on a local network with a 
modern switch

Pat

From: iotivity-dev-bounces at lists.iotivity.org<mailto:iotivity-dev-bounces at 
lists.iotivity.org> [mailto:iotivity-dev-bounces at 
lists.iotivity.org<mailto:[email protected]>] On Behalf 
Of Cesar Meira
Sent: Tuesday, June 09, 2015 9:21 AM
To: iotivity-dev at lists.iotivity.org<mailto:iotivity-dev at 
lists.iotivity.org>
Subject: [dev] Broadcast messages

Hello all,

I did a little 'hello world' application using IoTivity, sending a command to a 
device to turn a led on and off. The server runs in a Raspberry Pi and the 
client in a Linux notebook.

The application did okay with this configuration. But then I tried to push a 
little forward and added another Raspberry Pi, with the exactly same code as 
the previous one. The objective was to test if the client could send "broadcast 
messages", and if similar devices could receive them.

I set both RPis to register the endpoint "/red_led". My idea was that when the 
client sends a command "turn on" to endpoint "/red_led", both RPis would 
receive this command, but in the end only one of them received the message.

So, is there a way to send a single broadcast message to "n" devices? Did I 
just misinterpreted the idea of the endpoint?

Thanks in advance!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20150612/af8fac73/attachment.html>

Reply via email to