micro-ROS / micro-ROS/micro-ROS-Agent
Deserializing error for string type
- Lingua principale
- C++
- Stelle
- 201
- Fork
- 111
- Merge medio
- 1g 6h
- PR unite (30g)
- 10
Descrizione
**Describe the bug**
String types in service types cause microROS on the MCU side to fail in the executor due to a deserializing error. Running it through a debugger it fails in ucdr_deserialize_sequence_header when parsing the nested message type.
Service calls with non-string types work as expected. I've verified it's not a buffer overflow since the buffer size >> bytes received. There is also no packet corruption in UDP traffic, the dest packet and src packet match 1:1.
**To Reproduce**
Steps to reproduce the behaviour:
1. On MCU, init service with service type that has a string type
2. On host side, call service
**Expected behaviour**
The MCU accepts the service call and handles accordingly.
**Actual behaviour**
Executor fails due to deserialization error.
**System information (please complete the following information):**
- OS: Ubuntu 22.04
- ROS 2 Humble
- MCU: STM32F767ZI
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Riproduci la chiamata al servizio su STM32F767ZI con un campo string utilizzando ROS 2 Humble, quindi analizza il failure dell’executor in ucdr_deserialize_sequence_header durante il parsing del tipo di messaggio annidato. L’issue è completata quando l’MCU accetta e gestisce la chiamata al servizio senza un errore di deserializzazione, mentre le chiamate al servizio senza string continuano a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- embedded-iot, robotics
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100