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

Probleme mit komplexen Datentypen Kategorie: Programmierung (von Lizard - 14.01.2007 15:33)
Ich nutze:
C-Control II Unit, CC2-StarterBoard, OSOPT V3.1
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)