Probleme mit komplexen Datentypen Kategorie: Programmierung (von Lizard - 14.01.2007 15:33) | ||
| ||
Hallo 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]; | ||
Antwort schreiben Antworten: Re: Probleme mit komplexen Datentypen (von Migi - 16.01.2007 19:31) 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) Re: Probleme mit komplexen Datentypen (von Jörg C. - 14.01.2007 17:36) Re: Probleme mit komplexen Datentypen (von Lizard - 14.01.2007 17:52) |