You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Commander-API is a simple-to-use parser library, and you can easily use it to process character based commands and link them to a specified function. It is designed mainly to work with low memory capacity devices, for example, __small ARM or AVR processors__.
3
+
# 🚀 About
5
4
6
-
__Key changes in V2.1.1:__
7
-
* AVR PROGMEM support.
8
-
* Piping
9
-
* Ready to use built-in commands
10
-
* Fixes compatibility with Risc-V based ESP32 platforms
5
+
Commander-API is an easy-to-use command parser library designed for microcontroller environments. Thanks to its low resource requirements, it runs on almost any microcontroller. It’s **Arduino-compatible out of the box**, making it accessible for hobbyists and beginner programmers alike.
11
6
12
-
__Breaking changes in V2.1.1:__
13
-
* The response channel is now uses the Stream class.
14
-
This way it is more flexible and you doesn't have to
15
-
create a class for every peripheral.
7
+
# 🔄 What’s New?
16
8
17
-
##Contributing
18
-
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
9
+
### </> Argument Handling
10
+
We’re really proud of this feature! Now you can easily and efficiently add arguments to your commands. The argument parser extracts the parameters you need from the raw argument string and even **automatically parses them into strings, floats, and integers** for convenience.
19
11
20
-
Please make sure to update tests as appropriate.
12
+
### 🌍 Environment Variables
13
+
Access and modify variables from the command parser in the C++ domain directly! This makes it much easier to tweak system parameters at runtime. Hopefully, tuning your **PID controller** just got a whole lot easier. 😉
21
14
22
-
## Video Tutorial
15
+
### 🔧 Major Refactoring
16
+
We know "refactoring" isn’t the most exciting word—especially when it affects backward compatibility—but we believe in improving the project. We put a **huge amount of effort** into optimizing the internal structure (including a new **template-based database**—more on that later) to make Commander-API **faster, cleaner, and more scalable**.
This was one of our biggest tasks! The command storage system, previously tied to Commander class, has been modularized for **broader use cases** (like environment variables). We also removed **recursion** entirely—even during initialization—so **embedded developers can breathe a sigh of relief**.
25
20
26
-
## Documentation
21
+
### ⌨️ Auto-Complete (Experimental)
22
+
We’re working on it! Early results are promising, but for now, **we don’t recommend using it yet**. Stay tuned!
27
23
28
-
The full documentation can be found [here](https://dani007200964.github.io/Commander-API/html/index.html).
24
+
### 📦 Abstraction Layers
25
+
As the project grew, we realized it was time to **increase abstraction** for better integration into complex systems. For example, that’s why we introduced the **CommandCaller interface**, making it easier to integrate Commander-API into larger projects.
29
26
30
-
##Donation
31
-
If this project help you reduce time to develop, you can give me a cup of coffee :coffee::coffee::coffee:
27
+
### 📡 Pipe Module (Almost Ready!)
28
+
We’re finalizing a **refactored version** of the Pipe module, which should be **more stable, easier to configure, and more flexible** than before. We just need a bit more time to document it—stay tuned for updates!
We finally invested the time to create **a user-friendly, well-organized, and example-rich documentation**. It’s available as part of the **Shellminator documentation**, so check it out!
34
32
33
+
### ❌ Removal of Built-in Commands
34
+
We had to say goodbye to built-in system commands. 😢 The reason? It was nearly impossible to create a **one-size-fits-all** solution for every microcontroller. The implementation became messy, and it wasn’t fun to look at. **The good news:** We have a new approach in mind, and we’re actively working on a solution!
Commander-API has its own [technical documentation](https://www.commanderapi.org/html/index.html), but [most of the examples are found in the Shellminator documentation](https://www.shellminator.org/html/index.html). The Commander-specific docs are for those who want to **dive deep** into how it works under the hood. If you’re impatient, you might even find some **spoilers** about upcoming features!
39
+
40
+
# 🤝 Feedback and Contributions
41
+
42
+
We've poured **a lot of time and effort** into making this project **stable and easy to use**, but no software is perfect. Bugs happen. Features can improve. And that’s where you come in!
43
+
44
+
If you have **feature suggestions, bug reports, or ideas for enhancements**, we’d love to hear from you. Your feedback makes Commander-API better for everyone!
45
+
46
+
**Ways to contribute:**
47
+
- 🐛 [Submit an issue](https://github.com/dani007200964/Commander-API/issues/new?template=bug_report.md)
If this project has been helpful to you and you’d like to **buy us a coffee**, we’d really appreciate it! ☕ Every little bit helps keep this small team motivated.
0 commit comments