Hey Rami:
I finally got a chance to get on this, and it seems that I CAN reproduce
the value coming back as a set of empty arrays in the
GarageClient/GarageServer. I'm looking into it right now.
I haven't had a chance to see why you would be getting a boost::bad_get
exception, but I believe that is likely an issue with the altering of
the samples.
If possible, can you do a diff between your simpleclient/simpleservers
below and your base, and send me those? Maybe I can better see the
issue that way.
Thanks,
Erich
On Tue, 2015-09-08 at 15:55 +0000, Keane, Erich wrote:
> I was pretty sure at the time I created it, that there was a validation
> of this in one of our sample apps... It had worked at one point :)
>
> It is entirely possible that the CBOR conversion ended up breaking this.
>
> Can you file a JIRA ticket at JIRA.iotivity.org and include this info?
> Particularly any DIFFs that you did to cause this.
>
> The bad-get error is usually because the parsed type doesn't match the
> fetched type (so trying to assign an int to a string or something).
>
> the correct way to get the value out should be something like:
>
> std::vector<std::vector<int>> myvector = rep["power"];
>
> If this doesn't work, it is almost definitely a bug.
>
> Thanks,
> Erich
>
> On Sun, 2015-09-06 at 09:31 +0000, ??? wrote:
> > Hello All.
> >
> >
> > I am writing mail to ask quesstions about variant AttributeValue of
> > resource/include/AttributeValue.h because it seems nested vector type
> > doesn't work well as intended.
> >
> >
> >
> > Once I tested Sequences int(ie std::vector<int> of typedef
> > boost::variant), I've met the correct result. It means server and
> > client are able to exchagne AttributeValue with vector<int> each
> > other.
> >
> >
> >
> > However, on the other hand, I cannot find out the right method to
> > exchange std::vector< std::vector<int>> as AttributeValue. Although
> > server created nested attributes such as { "power" : [ [10,20],
> > [100,110,120] ] }, client only gets {"power":[ [],[]] }
> >
> >
> >
> > I attached files which use std::vector< std::vector<int>> attributes
> > for referrence. they are based on resoruce/examples/simpleserver.cpp
> > and simpleclient.cpp. If there is something to get fixed, please let
> > me know.
> >
> >
> >
> > output from modified simple server
> >
> > Usage : simpleserver <value>
> > Default - Non-secure resource and notify all observers
> > 1 - Non-secure resource and notify list of observers
> >
> > 2 - Secure resource and notify all observers
> > 3 - Secure resource and notify list of observers
> >
> > 4 - Non-secure resource, GET slow response, notify all observers
> > len1 :2
> > len2 :2
> > 0,0:10
> > 0,1:20
> > len2 :3
> > 1,0:100
> > 1,1:110
> > 1,2:120
> > 4
> > Created resource.
> > Added Interface and Type
> > Waiting
> > 0:
> > In entity handler wrapper:
> >
> > In Server CPP entity handler:
> > requestFlag : Request
> > requestType : GET
> > 0:
> > In entity handler wrapper:
> >
> > In Server CPP entity handler:
> > requestFlag : Request
> > requestType : PUT
> > state: 1
> > boost::bad_get: failed value get using boost::get
> > 0:
> > In entity handler wrapper:
> >
> > In Server CPP entity handler:
> > requestFlag : Request
> > requestType : POST
> > 0:
> > In entity handler wrapper:
> >
> > In Server CPP entity handler:
> > requestFlag : Request
> > requestType : POST
> > state: 1
> > boost::bad_get: failed value get using boost::get
> > 0:
> > In entity handler wrapper:
> >
> > In Server CPP entity handler:
> > requestFlag : Request
> > requestType : GET
> > requestFlag : Observer
> > Notifying observers with resource handle: 0x21a43d0
> > 0:
> > In entity handler wrapper:
> >
> > In Server CPP entity handler:
> > requestFlag : Request
> > requestType : GET
> > ^C
> >
> >
> >
> >
> >
> >
> >
> >
> > output from modified simple client
> >
> >
> > ---------------------------------------------------------------------
> > Usage : simpleclient <ObserveType>
> > ObserveType : 1 - Observe
> > ObserveType : 2 - ObserveAll
> > ---------------------------------------------------------------------
> >
> > <===Setting ObserveType to Observe and ConnectivityType to IP===>
> >
> > 2
> > Finding Resource...
> > Finding Resource for second time...
> > In foundResource
> > Found resource 5272517e-255b-4231-ae21-5372636074bd/a/light for the
> > first time on server with ID: 5272517e-255b-4231-ae21-5372636074bd
> > DISCOVERED Resource:
> > URI of the resource: /a/light
> > Host address of the resource: coap://[fe80::a00:27ff:fe85:1c90]:54089
> > List of resource types:
> > core.light
> > core.brightlight
> > List of resource interfaces:
> > oic.if.baseline
> > oic.if.ll
> > Getting Light Representation...
> > In foundResource
> > Found resource 5272517e-255b-4231-ae21-5372636074bd/a/light again!
> > Found another resource, ignoring
> > 0: listenCallback(): failed to create resource. clientResponse: 33
> > 0: listenCallback(): failed to create resource. clientResponse: 33
> > GET request was successful
> > Resource URI: /a/light
> > state: false
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > Putting light representation...
> > PUT request was successful
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > Posting light representation...
> > POST request was successful
> > Uri of the created resource: /a/light1
> > Posting light representation...
> > POST request was successful
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> >
> > Observe is used.
> >
> > Observe registration action is successful
> > OBSERVE RESULT:
> > SequenceNumber: 0
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 5
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 6
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 7
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 8
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 9
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 10
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 11
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 12
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 13
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > OBSERVE RESULT:
> > SequenceNumber: 14
> > state: true
> > power:
> > len1 :2
> > len2 :0
> > len2 :0
> > name: John's light
> > Cancelling Observe...
> > Cancel result: 0
> > DONE
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Best Regards,
> > Rami Jung
> >
> >
> > _______________________________________________
> > iotivity-dev mailing list
> > iotivity-dev at lists.iotivity.org
> > https://lists.iotivity.org/mailman/listinfo/iotivity-dev
>
> _______________________________________________
> iotivity-dev mailing list
> iotivity-dev at lists.iotivity.org
> https://lists.iotivity.org/mailman/listinfo/iotivity-dev