A VS Code extension with tools for robot development: YAML configuration generation from Kconfig definitions and C/C++ structure binary parser.
Demo
1. YAML Config
Generate YAML configuration files from Kconfig definitions with a menuconfig-style interface.
- Load Kconfig files - Define your configuration schema using Kconfig syntax
- Load existing YAML - Edit existing configurations by loading YAML files
- Menuconfig-style UI - Familiar interface for configuring parameters
- Array templates - Support for multiple elements (e.g., multiple motors)
- Native array types - Support for
intarray, doublearray, stringarray
- Export to YAML - Save configurations as YAML files
- Multiple output formats - Choose between Plain YAML or ROS2 Parameters format
Parse and visualize C/C++ structures from binary data - useful for debugging protocols, analyzing memory dumps, or understanding binary file formats.
- Structure parsing - Input C/C++ struct definitions and see how bytes map to fields
- Bit field support - Visualize individual bits in packed structures
- Multiple data types - All standard C/C++ types, fixed-width types, and Windows types
- Nested structures - Support for structs containing other structs
- Configurable endianness - Switch between Little and Big Endian
- File loading - Load structure definitions from
.h/.c files and binary data from .bin files
- Export results - Save parsed output to text or markdown files
Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "Robot Toolkit"
- Click Install
From VSIX file
- Download the
.vsix file
- In VS Code, go to Extensions (Ctrl+Shift+X)
- Click the
... menu → "Install from VSIX..."
- Select the downloaded file
Quick Start
YAML Config
- Click on the Robot Toolkit icon in the Activity Bar (left sidebar)
- Click on YAML Config to open the configuration panel
- Click Load Kconfig to load your Kconfig file
- (Optional) Click Load YAML to load existing values
- Configure your parameters using the UI
- Select output format: Plain YAML or ROS2 Parameters
- Click Save YAML to export your configuration
- Click on the Robot Toolkit icon in the Activity Bar (left sidebar)
- Click on Parser Tools to open the parser panel
- Enter your C/C++ structure definition in the left panel, for example:
struct Packet {
uint8_t header;
uint16_t length;
uint32_t data;
};
- Enter hex bytes in the bytes input area:
AA 10 00 DE AD BE EF
- Click Parse to see the decoded structure
- Use the settings to adjust endianness and display options
Documentation
Supported Data Types
YAML Config (Kconfig)
| Type |
Keyword |
Description |
| String |
string |
Text input |
| Integer |
int |
Whole numbers |
| Double |
double |
Decimal numbers |
| Boolean |
bool |
True/false checkbox |
| Choice |
choice |
Dropdown selection |
| Integer Array |
intarray |
Array of integers |
| Double Array |
doublearray |
Array of decimals |
| String Array |
stringarray |
Array of strings |
| Category |
Types |
Size |
| Standard |
char, short, int, long, long long |
1, 2, 4, 4, 8 bytes |
| Fixed-width |
int8_t, uint8_t, int16_t, uint16_t |
1, 1, 2, 2 bytes |
| Fixed-width |
int32_t, uint32_t, int64_t, uint64_t |
4, 4, 8, 8 bytes |
| Floating |
float, double |
4, 8 bytes |
| Windows |
BYTE, WORD, DWORD, QWORD |
1, 2, 4, 8 bytes |
| Special |
Bit fields (type name : bits;) |
Variable |
| Special |
Arrays (type name[size];) |
size * type_size |
- Plain YAML - Simple format without wrapper
- ROS2 Parameters - Wrapped with
/**: and ros__parameters:
Troubleshooting
| Problem |
Solution |
| Extension not showing |
Run npm run compile, then reload VS Code |
| Kconfig not loading |
Check file extension is .Kconfig |
| YAML values not loading |
Load Kconfig first, check key names match |
| Parser shows wrong values |
Check endianness setting (Little vs Big Endian) |
| Structure not parsing |
Ensure struct syntax is correct with semicolons |
| Not enough bytes warning |
Input data is shorter than the structure size |
License
MIT
Author
Kien Bui
| |