Opened 12 years ago

Closed 10 years ago

#50 closed Aufgabe (fixed)

SaveXVars?

Reported by: Melanie Hermann Owned by: Melanie Hermann
Priority: mittelfristig Milestone:
Component: Gesamtsystem Version:
Severity: Aufgabe Keywords:
Cc:

Description

SaveXVars?

Change History (17)

comment:1 by Melanie Hermann, 12 years ago

Priority: mittelfristigsofort

comment:2 by Melanie Hermann, 12 years ago

Ergebnis:
Eine CRC-Berechnung für die XVars ist nicht möglich, da viele Werte der XVars zyklisch im Programm gesetzt werden.
Somit verändern sich die Werte ständig und die CRC-Prüfung würde fehlschlagen.

Änderungen:

  • Alles bezüglich XVar-CRC entfernt.
  • CRC-Berechnungen für EVars und BVars in SetWert() nur auslösen, wenn aktueller Auslöser kein XVar ist. Der XVar wird zwar nicht in den CRC miteinbezogen, aber die Berechnung ist unnötig.
Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:3 by Melanie Hermann, 12 years ago

Bestehendes Problem:
Dadurch, dass kein XVar-CRC berechnet wird, werden auch die XVars nicht kontrolliert, die in einer Variante EVar oder BVar sind.

Dabei handelt es sich momentan um folgende Werte:
EA: ColumnMode
EA: GasAnalyzerTyp
EI: MessMethDownload
EI: MessMethUpload
EI: CpIPAddress
BI: BakeOutDuration
IE: SetCP4002ColumnPres
IE: DevCP4002ColumnPres
IE: DevCP4002ColumnTemp
IE: FactorSampletime

comment:4 by Melanie Hermann, 12 years ago

Anmerkung:
Die XVars werden aber trotzdem in eine separate Datei geschrieben. Denn sonst würden die Werte bei jedem Applikationswechsel verloren gehen, d.h. ihre Defaultwerte laden.

comment:5 by Melanie Hermann, 12 years ago

Priority: sofortmittelfristig

comment:6 by Melanie Hermann, 12 years ago

TODO:
Überlegen ob es eine bessere Lösung gibt.

comment:7 by Melanie Hermann, 12 years ago

Idee:
Es könnten für jede Applikationsvariante (GC9300 und GC9300-CM) separate CONFIG-Dateien auf der SD-Karte abgelegt werden.

Somit könnten immer Files für folgende Variablenarten angelegt werden:

  • 'E'
  • 'Z'
  • 'B'
  • 'N'
  • 'P'
  • 'A'
  • 'I'

Eine Datei für 'X' wäre nicht notwendig, da jede Variable in jeder Applikationsvariante zu einer Kategorie der oben genannten Variablenarten angehört.

comment:8 by Melanie Hermann, 12 years ago

Änderungen:

  • Global.h:
    • Pfad CONFIG_PATH geändert (\SDCard\config\GC9300)
    • Neuen Pfad CONFIG_PATH_CM definiert (\SDCard\config\GC9300_CM)
  • gcvars.cpp:
    • WriteVars():
      • Abfrage von GCVariante beim Setzen des Pfades
    • WriteMacs():
      • Abfrage von GCVariante beim Setzen des Pfades
    • RestoreVars():
      • Abfrage von GCVariante beim Setzen der Pfade
  • Gc.cpp:
    • CopyParaFiles():
      • Abfrage von GCVariante beim Setzen des Pfades

comment:9 by Melanie Hermann, 12 years ago

TODO:
Testen ob alle Vars erhalten bleiben und kein CRC-Hinweis kommt bei Applikationswechsel.

comment:10 by Melanie Hermann, 12 years ago

Ergebnis:
Bei Applikationswechsel kommen CRC-Hinweise.
Denn es müssen natürlich für CM separate CRCs im Ferroram abgelegt werden.
Allerdings werden die XVars so trotzdem nicht überwacht ...

Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:11 by Melanie Hermann, 12 years ago

Änderungen:

  • mtx_tab.txt:
    • GCVariante ist jetzt aVar und kein eVar mehr. Und besitzt keine Funktionen mehr.
  • utils.cpp:
    • CheckDils(): Abfrage von DIL-Schalter 3 und Setzen von GCVariante
    • RestartDevice(): Bei Neustart des Geräts kein Setzen mehr von ServiceMode. Dieser wird bei jedem Applikationsstart gesetzt.
  • gcvars.cpp:
    • chk_GCVariante(): Entfernt.
    • fkt_GCVariante(): Entfernt.
    • SetAllVarsDefault(): Neue Funktion. Funktionalität wurde aus ReadVars() entnommen und in separate Funktion gepackt.
    • WriteVars(): Unterscheidung von GC9300 und GC9300_CM.
    • SaveBVars(): Unterscheidung von GC9300 und GC9300_CM.
    • SaveEVars(): Unterscheidung von GC9300 und GC9300_CM.
    • CheckCrcBVars(): Unterscheidung von GC9300 und GC9300_CM.
    • CheckCrcEVars(): Unterscheidung von GC9300 und GC9300_CM.
  • GcApp.cpp:
    • InitInstance(): Aufruf der Funktion SetAllVarsDefault(). Aufruf von CheckDils() nach SetAllVarsDefault().
  • Bios.h:
    • FERRO_IDX_CRC_EVARS_CM definiert
    • FERRO_IDX_CRC_BVARS_CM definiert
  • CAN.cpp:
    • ThreadFunc(): Neue cases FERRO_IDX_CRC_EVARS_CM und FERRO_IDX_CRC_BVARS_CM eingefügt.

comment:12 by Melanie Hermann, 12 years ago

TODO:

  • Funktionalität testen.
  • Überlegen wie XVars mitüberwacht werden könnten.
Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:13 by Melanie Hermann, 12 years ago

Änderungen:

  • CONFIG_PATH_CM entfernt -> Beide Apps schreiben in gleiche Config-Dateien.
  • FERRO_IDX_CRC_EVARS_CM entfernt -> Beide Apps nutzen gleichen EVars-CRC.
  • FERRO_IDX_CRC_BVARS_CM entfernt -> Beide Apps nutzen gleichen BVars-CRC.

Es macht keinen Sinn die Evars, BVars, XVars, usw für jede App separat abzulegen und separate BVars-und EVars-CRCs zu berechnen, wenn dabei die XVars nicht einen separaten CRC o.Ä. erhalten.
Denn die CRCs der EVars und BVars stellen kein Problem dar. Diese produzieren beim Appwechsel auch keinen Hinweis.
Wenn es separate Config-Dateien geben soll, müssen diese auch separat erstellt werden zur Compilezeit. Dann darf es aber auch keine XVars mehr geben und alle Variablen müssen den EVars, usw. angehören.

Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:14 by Melanie Hermann, 12 years ago

Weiterhin bestehendes Problem:
Dadurch, dass kein XVars-CRC berechnet wird, werden auch die XVars nicht kontrolliert, die in einer Variante EVar oder BVar sind.

Dabei handelt es sich momentan um folgende Werte:
EA: ColumnMode
EA: GasAnalyzerTyp
EI: MessMethDownload
EI: MessMethUpload
EI: CpIPAddress
BI: BakeOutDuration
IE: SetCP4002ColumnPres
IE: DevCP4002ColumnPres
IE: DevCP4002ColumnTemp
IE: FactorSampletime
EA: MaxPauseTime

Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:15 by Melanie Hermann, 12 years ago

Severity: Zu prüfenAufgabe

comment:16 by Melanie Hermann, 10 years ago

Nicht mehr nötig, da CompatibleMode eine eigene Version bekommt. Dadurch gibt es wie früher nur eine xs-Spalte und somit auch keine xVars mehr!

comment:17 by Melanie Hermann, 10 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.