Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Probleme mit komplexen Datentypen Kategorie: Programmierung (von Migi, http://cc2-Haussteuerung.de - 16.01.2007 19:31)
Als Antwort auf Probleme mit komplexen Datentypen von Lizard - 14.01.2007 15:33
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, eigenes Board, OSOPT V3.0
Hallo Tom,

ich arbeite auch sehr viel mit selbst erstellten Datentypen.
Auch verwende ich - ähnlich wie du auch - selbst erstellte Datentypen und Arrays innerhalb der
Typvereinbarung neuer Datentypen. Diese Variante wird aber eher sparsam verwendet.
Grundsätzlich gibt es bei mir überhaupt keine Problem - mit einer kleinen Einschränkung:

Wenn z.B. innerhalb einer Kontrollstruktur ( z.B. IF-Anweisung) die logische Verknüpfung recht komplex wird,
dann kann der Interpreter diesen nicht mehr fehlerfrei auswerten.
Bei mir äu�erten sich die Probleme allerdings nicht durch Programmabstürze, sondern durch fehlerhaftes
auswerten der logischen Verknüpfung. IF-Anweisungen z.B. bringen nicht das korrekte Verknüpfungsergebnis.
Wenn nun ein (zu) komplexer Ausdruck in einer Schleife verwendet wird, kann es natürlich passieren, dass
die Schleife zur Endlosschleife mutiert, was praktisch einem Programmabsturz gleich kommt.

GruÃ?

Migi



>
> Mein CC2 Programm zur Steuerung meiner Markisen macht mir leider massive Schwierigkeiten.
>
> Die CC2 hängt sichlaufend auf oder stürzt ab. Diese Probleme treten auf seit ich angefangen habe,
> alle möglichen Daten meines Programms in komplexen Datentypen abzulegen (u.a. die ganze Config für
> edip240) .
>
> Ich benutze mit Type definierte Datentypen welche wiederum ein Arrays mit weiteren mit Type
> definierten Datentypen enthalten.
>
> Meine Beobachtungen, deuten auf ein Bufferoverrun Problem hin, d.h. aus irgend einem Grund scheint
> mein Program oder die CC2 Datenbereiche zu überschreiben welche nicht zu meiner Datenstruktur
> gehören,  sondern für anderen Zwecke verwendet werden. Unterdessen habe ich bei allen Programmteilen
> in welchen in diese Strukturen geschrieben wird, if-Statements eingebaut um sicherzustellen, dass nicht
> ausserhalb der definierten Arraygrenzen geschrieben wird. Log-Statements welche laufend die Variablen-
> werte auf HWCOM schreiben haben leider auch nix gebracht.
>
> Mittlerweile bin ich mit meinem Latein ziemlich am Ende und weiss nicht mehr so genau wo ich
> weitersuchen soll. Darum meine Frage:
> Gibt es spezielle Eigenheiten der CC2die bei der Arbeit mit komplexen Datentypen beachtet werden
> müssen?
> Sind irgend welche Bugs/Fehler im OS der CC2 bekannt welche sich auf die Arbeit mit komplexen
> Datentypen auswirken?
>
> Vielen Dank für jeden Tipp!
>
> Gruss
>
> Tom
>
>
> Hier noch ein Ausschnitt (das Modul ist noch einiges Umfangreicher) des Codes in welchem der Datentyp
> definiert wird (poste gerne noch mehr, wenn notwendig):
>
> type displayconfigparastruct {
>   int mode;
>   int para1;
>   int para2;
>   byte brightness;
> }
>
> type displayparastruct {
>   int mode;
>   int para1;
>   int para2;
> }
>
> type displayschedulestruct {
>   system.TIME starttime;
>   system.TIME endtime;
>   displayconfigparastruct para;
> };
> type displayscenegroupstruct {
>   int scenegroupnr;
> };
>
> type displaycontrolstruct {
>   int code;
>   int id;
>   int val1;
>   int val2;
> }
>
> const displayparastacksize=8;
> type displaystatusstruct {
>   long sleeptimer;
>   byte brightness;
>   displayparastruct newpara;
>   displayparastruct para;
>   int parastackpointer;
>   displayparastruct parastack[displayparastacksize];
>   int controlcount;
>   displaycontrolstruct control[255];
>   byte blindselect[blindcount];
>   edip.RxBuffer inputbuffer;
> }
>
> const displayschedulesize=8;
> type displaystruct {
>   string name;
>   byte address;
>   long timeout;
>   displayconfigparastruct defaultpara;
>   int schedulecount;
>   displayschedulestruct schedule[displayschedulesize];
>   displaystatusstruct status;
>   int scenegroupcount;
>   displayscenegroupstruct scenegroup[SceneGroupCount];
> };
>
> displaystruct display[DisplayCount];
>

>
>

Meine Seite: http://cc2-Haussteuerung.de


    Antwort schreiben


Antworten:

Re: Probleme mit komplexen Datentypen (von lizard - 17.01.2007 12:11)
    Re: Probleme mit komplexen Datentypen (von Migi - 17.01.2007 23:32)
        Re: Probleme mit komplexen Datentypen (von lizard - 18.01.2007 10:31)