Finite State Machine Generator for C

For quite a long time I’m thinking about simple code generating tools. I don’t want to use a special XML syntax or descriptive language but a simple Excel or OpenOffice sheet instead.

The aim is to generated C source code for small microcontroller applications or retrocomputing systems.

For the start I made a simple generator for finite state machines (Wikipedia entry)

It is also my first script written in Python and thus not really as tidy and neat as I prefer. But it is working for now.

It takes the sheet from an OpenOffice .ods table like this:

@brief autofire button statemachine
@see    
     
State Event Next State
INIT KeyPressed PULSE_ON
INIT KeyNotPressed AUTOFIRE_OFF
AUTOFIRE_OFF KeyPressed PULSE_ON
PULSE_ON KeyNotPressed AUTOFIRE_OFF
PULSE_ON PulseTimeElapsed PULSE_OFF
PULSE_OFF KeyNotPressed AUTOFIRE_OFF
PULSE_OFF PulseTimeElapsed PULSE_ON

and generates a switch-case style state machine in C with callback functions for state and event handling.

A version with support for object oriented programming with pointers to statemachine objects is planned aswell. Check the github for functional updates.

The actual code can be found on Github: https://github.com/simonsunnyboy/gen-fsm

OpenOffice für 96EUR monatlich über 2 Jahre?!?

Ja, genauso wie Du gerade, so doof habe ich auch geschaut. Eigentlich wollte ich nur eine aktuelle Version von OpenOffice für Windows herunterladen, dabei stolperte ich über die folgende leider allzu professionelle Abzockerwebseite (zum Vergrößern Bild bitte anklicken):

OpenOffice Abzockewebseite
OpenOffice Abzockewebseite

Man beachte die eh falschgeschriebene URL. Irrtümlich nahm ich an, das Projekt hätte mittlerweile eine klassische URL. Falsch gedacht, aber das ist nicht so schlimm.

Auf der einen Seite wird hier OpenOffice korrekt als Freeware bezeichnet, auf der andere Seite aber im Kleingedruckten ein 2 Jahresabo a 96€monatlich angepriesen (Hervorhebung im Bild von mir). Insofern rechtlich leider wasserdicht, denn niemand verbietet Freeware oder Software, die unter GPL steht, auch zu verkaufen.

Ein Anmeldeformular, welches für ein freies Programm zum herunterladen auszufüllen ist, sollte sämtliche Alarmglocken aktivieren. Zumal wenn es wie bei dieser Seite nach allzu persönlichen Details wie Adresse und Telefonnummer fragt. (Russisch Inkasso läst grüßen…)

An der Stelle kann ich nur den Kopf schütteln. Hier wird wieder einmal mit völig unbedarften Leuten gespielt und gutgläubige Surfer, die zu schnell klicken und nicht lesen, werden massiv zur Kasse gebeten. Für kein Ergebnis oder keinerlei Gegenwert!

Solche Saubeutel von Menschen und Firmen gehören gesteinigt und von diesem Planeten vertrieben. :(

Es gibt nur eine einzige legale Webseite, von der das echte OpenOffice kostenlos und ohne Abzocke bezogen werden kann. Das ist http://de.openoffice.org/

Funktionsplot mit OpenOffice erstellen

Ich habe gestern lange gesucht, wie man denn nun mit OpenOffice Calc einen ordentlichen Funktionsplot erstellt, bei dem eine Datenreihe als X-Achse benutzt wird. Nach vielem unfruchtbarem Experimentieren fand ich es dann heraus: man muss den Diagrammtyp X-Y verwenden. Das Vorgehen ist in etwa wie folgt:

Im Tabellendokument die Daten Zeilen- oder Spaltenweise aufbereiten. Ich mags lieber in Zeilen.

Beispieldaten für Funktionsplot
Beispieldaten für Funktionsplot

Markiere die Daten in den beiden oder mehreren Zeilen oder Spalten einschließlich der Überschriften.

Wähle Menü Einfügen–> Diagramm

Ändere die vorgegebenen Einstellungen falls erforderlich, dann —> weiter

Wähle als Diagrammtyp: XY-Diagramm, dann —> weiter

Ändere die angezeigten Einstellungen falls gewünscht, dann –> weiter

Ändere/Ergänze Angaben falls gewünscht, dann –> fertig stellen

Aussehen tut das dann so:

Funktionsdiagramm de Beispieldatenreihen
Funktionsdiagramm der Beispieldatenreihen

Frohes Plotten!