[riot-devel] gcoap blockwise transfer
kb2ma at runbox.com
Tue May 21 12:49:37 CEST 2019
Ashim, Brenton and I were able to resolve the issues they experienced.
The issue link below includes examples to test reception of a large
payload with gcoap PR #11057.
On 5/9/19 6:21 PM, Ken Bannister wrote:
> Sorry to hear you're having issues. It will be easier to track this
> problem in a GitHub issue, so I created one . Let's move the
> discussion there.
>  https://github.com/kb2ma/RIOT/issues/29
> On 5/9/19 11:37 AM, Ashim Asharaph wrote:
>> Dear Ken
>> So I decided to use the gcoap blockwise transfer from PR #11057 with
>> a GET request. On native it works fine. When testing on real hardware
>> using two samr21-xpro boards with one running the gnrc _border_router
>> example, the block transfer only completes successfully about 50% of
>> the time with a 50kB file and 128 byte packets. The application says
>> "gcoap: timeout for msg ID xxxxx". The time at which the timeout
>> occurs seems random at any point during the blockwise transfer.
>> The final plan is to integrate the gcoap with wakaama and use both
>> together for an OTA firmware update. When the integrated version is
>> used, the success rate is about 5%. Are there any parameters or code
>> that could be tweaked on either the RIOT application or on the
>> Californium file server to improve the success rate? What could be
>> causing the issue or how can I try to determine the problem?
>> Kind regards
>> Ashim Asharaph
>> >>> Ken Bannister <kb2ma at runbox.com> 05/02/19 4:45 PM >>>
>> [The e-mail server of the sender could not be verified (SPF Record)]
>> Hi Ashim and welcome to RIOT!
>> As you say, we have two CoAP tools -- nanocoap and gcoap. Here are
>> your options.
>> In the latest release, 2019.04, nanocoap has server-based block
>> capabilities. So, it would work if Californium acted as a client and
>> PUT/POSTed the file contents to your nanocoap server. See the
>> nanocoap_server example in the source repository and documentation at
>> Modules > Networking > Nanocoap.
>> There also are PRs for full client/server block capabilities. In this
>> case it's probably easier to use gcoap because it's fully documented,
>> but a nanocoap client would work, too. See #11057 for the final PR in
>> the series. If you build the source documentation (make doc), you
>> will find detailed instructions and links to examples. See the
>> Modules > Networking > Gcoap topic.
>> I am the author of the PR series, and would appreciate you testing it
>> out. We are actively (if slowly) reviewing and merging these PRs.
>> On 5/2/19 2:05 PM, Ashim Asharaph wrote:
>> Dear RIOT developers
>> I'm sending a GET request from gcoap running on native to a
>> californium server hosting a file. The file is about 56kB in
>> size. I can receive the file correctly (multiple blocks) when
>> using Californium Copper. I can only receive one 512 byte block
>> of data through gcoap. I have tried changing GCOAP_PDU_BUF_SIZE
>> but this only affects whether I can receive the one block. How do
>> I receive multiple blocks? Has coap blockwise transfer been
>> implemented in gcoap? Is nanocoap a suitable alternative for
>> receiving the file?
>> Kind regards
>> Ashim Asharaph
>> _______________________________________________devel mailing listdevel at riot-os.orghttps://lists.riot-os.org/mailman/listinfo/devel
>> devel mailing list
>> devel at riot-os.org
> devel mailing list
> devel at riot-os.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the devel