This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

nrf52840 interactive command uart flushing

sdk17.0.2

so i am trying to flush rx/tx while the command execute

cannot find 

app_fifo_flush()

or

app_uart_flush()

anyone know how to do it?
 
Parents
  • Hi 

    Are you using one of the standard SDK examples?

    There is an app_uart_flush() function for flushing the buffers when using the app_uart driver, but it will not do anything unless you make sure to use the app_uart_fifo.c implementation. 

    When you say you cannot find this function, do you mean that the build fails if you try to call it?

    The function is declared on line 244 of app_uart.h, and implemented on line 186 of app_uart_fifo.c

    Best regards
    Torbjørn

  • hello  I am using standard sdk but still cannot find both of those 

    app_uart.h,  app_uart_fifo.c in interactice command  

    sdk17.0.2

  • Hi

    I would strongly recommend considering another example if you are going to use this for a product. 

    For instance, you can either run a standard Bluetooth HCI example on the nRF device, and run a standard Bluetooth host such as BlueZ on the Unix side. Then you will interface to the Bluetooth devices in a way that is common for other Unix applications. 

    Alternatively, you can develop a custom application for the nRF device that controls the N devices, and provides an application specific interface between the nRF and the Unix host. 
    The advantage of this method is that you can implement a more efficient, application specific command set between the nRF and the Unix host, but the drawback is that you need to do more application development on the nRF side. If you use the HCI example on the nRF you don't really have to do much development at all. 

    If you think that using the ble_app_interactive example is the only option I can register an internal ticket to get help from the software team to improve the example, but I can not guarantee that this will be prioritized. 

    Best regards
    Torbjørn

  • yea, after communicate with our project manager  they think that using the ble_app_interactive example is the only option" , so what should I do next

  • Hi 

    I will discuss the case with the CLI developer when he is back next week, and ask for some advice on how to proceed with this case. 

    You should mention this issue to your local Nordic sales representative also, and he can help give this case priority. 

    Best regards
    Torbjørn

  • The reason for artifacts in the UART CLI is that it doesn't use flow control so if you paste multple bytes some will get lost as receiver is being stopped and restarted after each byte. There are 2 options:

    - enable flow control

    - use different transport, namely UART which is using libuarte driver. Libuarte is a driver which allows continues reception on UART, receiver is never stopped and DMA buffers are seamlessly changed. For setting up libuarte transport see this example https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/cli_libuarte_example.html?cp=8_1_4_6_8.

  • thx  for the reply but even we do have the flow control the bug still happened.

    we do add uarte in it but sadly we did not fix the problem

    however we find other path to fix the bug

Reply Children
Related