ich wollte mir ein kleines Programm in PicoC schreiben um an einem MDT Smart Aktor die offenen Fenster als Meldung hintereinander auszugeben.
Leider hab ich mir meine rudimentären Programmierkentnisse mit VBA angeeignet und deshalb sind aller C Dialekte für mich ein Rätsel.
Das ganze soll so funktionieren:
MDT Smart gibt mit Taste ein "ein" auf AI13
While Schleife durchläuft die Eingänge AI1 bis AI9
Wenn eine 0 anliegt, kommt die Meldung auf dem Textausgang und mit 3 Sekunden Pause der nächste.
Das ganze funktioniert grundsätzlich fast
das printf("Phase2") wird ausgegeben, d.h. "ein" auf AI13 wird erfasst (auch bei mehrmaligem drücken der Taste)
das printf("Phase3") wird beim ersten mal auch ausgegeben, wenn das entsprechende Fenster offen ist - allerdings nur beim ersten mal nach Neustart des Miniservers - gelöst ich miss i vor der while Schleife wieder auf 0 setzen.
am Textausgang kommt nichts an, das liegt mich Sicherheit am meinem Array mit den Räumen, das durchblicke ich in PicoC überhaupt nicht.
Vielen Dank für jede Hilfe
Chris
// write program here in PicoC
char szBuffer[128];
char text[9][] = {"Haustür OG", "Raum2", "Raum3", "Raum4", "Raum5", "Raum6", "Raum7", "Raum8", "Raum9"};
int nEvents;
int i=0;
while(TRUE)
{
nEvents = getinputevent();
if (nEvents & 0x8000)
{
printf("Phase2");
while (i <= 8)
{
if (getinput(i) == 0)
{
printf("Phase3");
printf(text[i]);
setoutputtext(0,text[i]);
sleeps(3);
}
i++;
}
}
}