* Hirarchisierung der Klasse AccDevExc. Etwa sowas:

    exception -> AccException -> AccDevExc

  In [4, Seite 977] sind die C++-Standardausnahmen aufgeführt. 
  Daraus ergäbe sich womöglich eher

    exception -> runtime_error -> AccException -> AccDevExc

  Zu beachten ist aber, dass `AccDevExc' als CORBA-Exception
  implementiert ist, also in accdevexc.idl. Das C++-Mapping
  sieht dadurch so aus:

    class AccDevExc : public CORBA::UserException 

  Die Klasse AccDevExc erbt also CORBA::UserException und diese
  wiederum CORBA::Exception, also

    CORBA::Exception -> CORBA::UserException -> AccDevExc

  Ob und wie da weiter hirarchisiert werden kann, weiß ich nicht.
  Eigentlich geht nur noch

    CORBA::Exception -> CORBA::UserException -> AccException -> AccDevExc

  Worin unterscheiden sich die letzten beiden?

-> Ok!


* Es wird noch das lokale global-types.h benutzt, weil das zentrale
  das Alignment festlegt, z.B.: 

    typedef signed long SLong __attribute__ ((aligned(4)));

  Das sollte man mit "#ifndef"s machen.

-> Ok! Aber noch nicht mit derzeitiger GSW getestet.
   M68K-Crosscompiler muss "-D__m68k__" definieren.


* In den CORBA-unabhängigen Modulen überall AccDevExc durch 
  AccDevRetStatus ersetzen.

-> Ok! Auch in den USRs auf der Server-Seite.


* Alarme womöglich mit dem CORBA Events Service (oder dem 
  CORBA Notification Service?) realisieren. Siehe dazu 
  "Pure CORBA" , Kapitel 12, besonders (den ersten Absatz 
  in) "CORBA Event Service Patterns".

-> Ok! Alarme sind zunächst mal auf Basis von UDP-Multicasts
   realisiert.


* Wie machen wir die Incode Documentation? Mit Doxygen? Wieder einen 
  (oder mehrere) Rahmen für Klassen, USRs, etc. entwickeln?

-> Ok! Mit Doxygen. Rahmen gibt's noch keine.


* Evtl. für AccData noch eine Methode erfinden, die statt einem
  UByte-Array (bzw. einem UByte-Vector) den entsprechenden String
  zurück liefert. Das wäre z.B. beim Lesen der Property VERSION
  ganz nützlich. Die Methode sollte aber nur auf Basis von UByte
  tun. Kommen andere Daten zurück, sollte es einen Fehler geben.

-> Ok, String gibt's.


* Evtl. für AccData noch eine Methode erfinden, die statt einem
  UByte-Array (bzw. einem UByte-Vector) den entsprechenden String
  zurück liefert. Das wäre z.B. beim Lesen der Property VERSION
  ganz nützlich. Die Methode sollte aber nur auf Basis von UByte
  tun. Kommen andere Daten zurück, sollte es einen Fehler geben.

-> Liegt nun auf SIS$ROOT:[SYSVME.DEVMAN]. Ist aber auch nicht
   so der ganz richtige Platz.


* Da nun (das CORBA-unabhängige) AccData auf Client- und Server-Seite
  benutzt wird, sollte man die `libdeviceaccess' in zwei Bibliotheken
  auftrennen:
  - libdeviceaccess:  enthält nur die auf Client-Seite notwendigen
                      Objekte.
  - libaccdata:       enthält alles, was man für AccData auf beiden
                      Seiten braucht.
  Die 'libaccdata' muss dann natürlich nativ für asl und cross für
  ppc gebaut werden. Im Moment sind die AccData-Sachen für ppc 
  in der 'libdevice' integriert.

  Was ist z.B. mit unserem NameService? Den könnte man evtl. auch 
  auf beiden Seiten brauchen. Falls ja, dann eine weitere Bibliothek 
  machen, oder mit in libaccdata rein und der einen allgemeineren 
  Namen geben?

  Zur Zeit gibt es weiterhin noch libequinf und libdevice auf der
  Server-Seite. Wollen wir die evtl. zusammenfassen? 

-> Ok, geregelt.


* Wegen der Klarheit sollte man den CORBA-spezifischen Namespace "DevError"
  besser in "CorbaError" oder "CorbaDevError" umbenennen.

-> Ok, ist auch im Namespace CorbaInterface.


* Das Sub-Projekt 'mk', das derzeit unter 'utivme' liegt, sollte
  besser nach 'utiasl' oder 'uti' umziehen. Produktionsmäßig 
  liegt es auf $DROOT/mk. Außerdem braucht das Projekt noch 
  ein 'Makefile' mit den üblichen Targets (release, ...), um es 
  vom Workspace auf das allgemeine Directory kopieren zu können.

-> Ok, erledigt.


* Alle Tools, die irgendwie Dateien auf Arbeits-Directories kopieren
  oder entsprechende Directories anlegen, wie z.B. releqms oder copyusrs, 
  sollen statt dem Copy-Befehl cp besser install benutzen. Damit kann 
  man explizit die umask der Zieldatei bestimmen und umgeht das Problem, 
  dass Dateien bzw. Directories nicht die notwendigen Permissions für
  die Gruppe haben.

  Bash-Scripts LH, ok
  Erzeugen der Logfiles (=...belcg04/2007-05-24.log=) steht aus.
  Frage: Wie geht das in Python? Mit os.chmod(file, umask).
 
-> Ok, alles erledigt.


* Für konnektierte Aufträge zweiten Zeitstempel einführen: Ausführungszeit des Auftrages.
  Wird bei Eventkonnektierung benötigt, um Daten konsistent zusammenzuführen.
  Bei Zeitkonnektierungen nicht so dringend, könnte auch dort mal hilfreich sein,
  schadet zumindest nix, und kostet wohl auch kaum was.
  * Eventkonnektierung: Zykluszeit des Events (von SE zu liefern)
  * Zeitkonnektierung: Ausführungszeit der USR (auf GµP)

-> Ok, für Eventkonnektierung erledigt. Zeitkonnektierung kommt erst mal nicht.

Topic revision: r4 - 27 Feb 2008, LudwigHechler
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback