Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems