thedjnK / AuTerm

AuTerm (for autonomous terminal) offers a free extensible feature rich terminal utility created in Qt
GNU General Public License v3.0
25 stars 7 forks source link

Issue with repetitive reads from shell Mcumgr via Bluetooth #22

Closed andybondchiaro closed 3 weeks ago

andybondchiaro commented 3 weeks ago

We are using AuTerm to access shell commands over the Mcumgr shell plugin. One of our shell commands streams data on a loop every second. When we send our start_stream command we do not see any return. this works fine over UART. For the same type of data stream, we have another command that reads a single reading, this reads back a value fine.

thedjnK commented 3 weeks ago

So shell mgmt is for executing a single command and getting a response to that command, you cannot use it to stream data like it's an always attached shell. Doing such a thing with MCUmgr is not possible because the zephyr device is a server and the PC is a client, MCUmgr commands are synchronous meaning you send a command and get a response, you cannot get an asynchronous response without having sent a command which it responds to. I would recommend the NUS (nordic UART service) shell for that, it does not use MCUmgr but is essentially a single characteristic you send UART commands to (which is the shell) and get responses from that which works with asynchronous responses, see https://docs.zephyrproject.org/latest/samples/bluetooth/peripheral_nus/README.html for a sample

thedjnK commented 3 weeks ago

There is also this shell sample which has it enabled: https://github.com/zephyrproject-rtos/zephyr/blob/cdb9166b810cb7b663a52b13b6b866b4edca04c6/samples/subsys/shell/shell_module/sample.yaml#L52-L66

andybondchiaro commented 3 weeks ago

Thank you!