Nr. | Name | Prio | Projekt | ||
---|---|---|---|---|---|
1 | LH | 2 | Neue Alarme auch für VMS-Anwendungen verwenden? Siehe Udos Email CAP mit UDP-Alarmen? vom 20.04.2009. | ||
2 | LH | 1 | Erweiterung der Device-Access-IDL-Schnittstelle | ||
2.1 | LH | 1 | Um einen Prozessnamen. | ||
2.2 | LH | 1 | Property-spezifische Timeouts? | ||
2.3 | LH | 1 | Weitere Konnektierungsart (für IPS)? | ||
2.4 | LH | 1 | 64-Bit Integers | ||
3 | LH | 1 | Wie ULong , UWord , UByte behandeln, z.B. in AccData , wenn eigentlich Bitsets gemeint sind. Siehe LHs Email V09-Schreib-Property, ULong-Daten und Nodal vom 28.07.2009. |
||
4 | LH | 1 | Problem der Implementierung von in Reihe geschalteten Magnete ( TK3MV3/4 ). |
||
5 | LH | 2 | Soll beim Ende von Konnektierungen immer das userCallback->exit() aufgerufen werden? |
||
6 | LH | 2 | Umstellung der VMS-Rechner auf UTC!? Mit AP! | ||
7 | LH | 2 | Erweiterung der Konstantentabelle für MX und MD? | ||
8 | LH | 2 | Behandlung der Spezial-Nomenklaturen >> und ?? klären (siehe UKs Email vom 6.2.08). |
||
9 | KHoe | 2 | Wie können die Entwicklungsumgebungen für ELDK 3 mit Linux 2.4 einerseits und ELDK 4 mit Linux 2.6 andererseits parallel gehalten und einfach umschaltbar gemacht werden? | ||
10 | Alle | 2 | Nachdenken über erweitertes Log-Ausgaben-Konzept. | ||
11 | SMa | 4 | Fehlerbehandlung in Klasse NsrvException ggfs. ersetzen durch AccDevException? Informationsweitergabe ueberdenken. | ||
12 | LH | 3 | USR-Absturz (z.B. NULL-Ptr) soll nicht zum Devman-Absturz führen. | ||
13 | GSch, UK | 1 | Wie Userface für IPS erweitern? IPS und Java? IPSAccess und POTI . |
||
14 | LH | 3 | Timeout als (evtl. optionalen) Parameter in die Methoden Device::read() usw. einbauen? Achtung, IDL-Änderung! |
||
15 | KHer | 3 | Wie MicroIOC in unsere Standard-Entwicklungsumgebung integrieren? | ||
16 | UK | 3 | Wo "Java Device Access"-Quellen und Archive ( jar ) sicher ablegen? |
||
17 | SMa | 3 | Möglichkeit finden, damit usrgen ein anderes Message-File als das automatisch generierte <eq-model>-msg.msg inkludiert. |
||
18 | Kain,LH,SMa | 2 | Loglevel des devman umsetzen ueberarbeiten, Eingaben irritierend! (InfoRcvThread) |
Nr. | Bemerkung |
---|---|
2.1 | Im Moment kann man im Logfile nur sehen, welcher User z.B. eine Gerätereferenz beim Nameserver nachfragt oder eine Konnektierung aufsetzt. Das ist zu wenig Info. Z.B. laufen alle Operatingprogramm unter dem selben User UK, 16.Feb.2010: In corbaifc.idl ist deklariert, dass bei jedem Zugriff (als Teil der AccessId) IP-Adresse und Process-ID des Aufrufers mitkommen. Um auch Zugriffe aus Userface rückverfolgen zu können, müsste man noch auf die VMS-Seite zurückmelden, welcher Userface-Server für den Client-Prozess gestartet wird, und das ins Kontrollsystem-Logfile schreiben. Der Rechner-Name des Userface-Servers wird inzwischen zurückgemeldet, aber an die Prozess-ID hat wohl keiner gedacht. |
2.2 | Das OmniORB V4.1 Manual sagt in 8.3.1 zu "Client side timeouts": omniORB can associate a timeout with a call, meaning that if the call takes too long a TRANSIENT exception is thrown. Timeouts can be set for the whole process, for a specific thread, or for a specific object reference. namespace omniORB { void setClientCallTimeout(CORBA::ULong millisecs); void setClientCallTimeout(CORBA::Object_ptr obj, CORBA::ULong millisecs); void setClientThreadCallTimeout(CORBA::ULong millisecs); void setClientConnectTimeout(CORBA::ULong millisecs); }; . Es sagt auch: "Accessing per-thread state is a relatively expensive operation" |
5 | Es scheint immer (mal) wieder Probleme zu geben, dass das eigentliche User-Callback-Objekt nicht mehr da ist oder schon anderweitig (für die nächste Konnektierung) benutzt wird, die exit() Methode aber noch aufgerufen wird. Zudem ist es nicht immer ganz einfach, nach einem disconnect() noch auf das exit() zu warten. Man kann ja auch sagen: wenn das disconnect() mit ok zurück kommt, dann reicht mir das. Oder evtl. ein disconnect() mit einem (optionalen) Parameter noexit basteln, der dazu führt, dass das exit() nicht auch noch aufgerufen wird. Aber auch ein Signal Handler, der das Segmentaion Fault-Signal auffängt ( callback-corba.cc , Zeile 103), wäre denkbar. |
6 | Das sollte bis zur Sommer-/Winterzeitumstellung im Herbst 2009 erfolgt sein! |
7 | Unterscheiden Imax und Inenn . Timeoutzeit für CONNECT und POWER ? |
8 | Bisherige (bis V08) Nomenklaturen '>>...', '??...' werden nur auf Front-End Ebene verwaltet, sie können von Client-Programmen nicht angesprochen werden. Bedeutung: Es soll erkennbar sein, dass es Adressen am MIL-Bus gibt, die dort nicht vorgesehen sind (keine Nomenklatur vorhanden). Bis V08 wird für jede Adresse ohne Nomenklatur automatisch eine Nomenklatur '??...' erzeugt. Umgekehrt gibt es Adressen, denen kein nutzbares Gerät entspricht, die aber da sein müssen (oft bei SD-Geräten, die einen ganzen Adressraum belegen). Bis V08 sollen derartige Adressen mit Nomenklaturen '>>...' gekennzeichnet werden. |
9 | Möglicherweise müssen wir einen fließenden Übergang von Linux 2.4 nach 2.6 machen. Dann muss man einfach zwischen den Entwicklungsumgebungen umschalten können. Auf jeden Fall muss es eine einfache Rückfallmöglichkeit geben, wenn sich herausstellt, dass es unter Linux 2.6 Probleme gibt, die nicht schnell behoben werden können. Lässt sich das nicht pragmatisch lösen: Blade-Rechner ELDK4, bisherige asl710/711 ELDK 3? (UK) |
10 | Das Ändern des Loglevels in den meisten logmsg-Ausgaben von LOG_DEBUG zu LOG_INFO bringt eine Beschleunigung um den Zeitfaktor 7 beim Eintragen von Geräten in den Nameserver. Ist es generell sinnvoll, z.B. LOG_DEBUG-Ausgaben nur auf expliziten Wunsch auszugeben? |
11 | Die Klasse NSrvException wird lediglich innerhalb des Nameservers verwendet. Exceptions nach aussen sind AccDevExceptions. |
12 | Die Nutzung eines NULL-Pointers in einer USR ( T* p = NULL; p->element = 42; ) lässt den ganzen Devman abstürzen mit segmentation fault . Kann man solche Signals abfangen, ähnlich wie wir's in MOPS etwa mit Buserrors usw. gemacht haben? Das würde vielleicht heißen, nur den Thread der fehlerhaften USR, also das Device-Objekt, zu beenden und neu aufzusetzen. |
13 | Erfordert eine neue Konnektierungsart, die aber allgemeingültiger als die unter VMS implementiert werden sollte. Erfordert weiterhin eine IDL-Erweiterung, die zusammen mit den IDL-Erweiterungen für den Prozessnamen (Punkt 3 oben) und des AccData-Containers um 64-Bit-Intergers erfolgen sollte. |
14 | Das geht mit omniORB::setClientCallTimeout(device, timeout) , bezieht sich aber immer auf das komplette Device-Objekt. Z.B. mit Device::read() ruft man eine Property auf. Der Timeout würde also bei jedem Aufruf einer Methode des Device-Objektes neu gesetzt werden. Ob das gut ist, ob das geht und welche Auswirkungen das auf die Performance hat, muss noch geklärt werden. Eine andere Idee ist, den Timeout beim Instanziieren der Property mitzugeben statt den Methoden Device::read() usw. Das ist wahrscheinlich die bessere Idee, wirft aber die selben Fragen auf. Beide Lösungen erfordern jedenfalls eine IDL-Änderung. |
17 | Z.B. für DPB generiert usrgen in dpb-usrs.cc automatisch ein #include <dpb-msg.h> . In diesem Fall hätte man aber gerne ein dpx-msg.h inkludiert, da DPB ein Subprojekt von DPX ist und dessen Messages benutzt. |
Nr. | Name | Prio | Tage | Projekt | ||
---|---|---|---|---|---|---|
1 | Property-Beschreibung mit XML und Code-Generierung | |||||
1.1 | KHoe | 1 | Doku erstellen. User's Manual zum Erstellen einer USR-XML-Datei. In englisch! | |||
1.2 | KHoe | 1 | Der default Datentyp in XML ist UndefinedDefault und nicht mahr SLong . Damit gibt's beim Compilieren einen (gewünschten) Syntaxfehler. |
|||
2 | Geräte-Software | |||||
2.1 | Alle | Gerätemodelle umstellen. (Aktualisieren der Geräte-Software-Liste nicht vergessen.) | ||||
2.1.1 | UK | 1 | HVDM . Inkl. Gerätemodell-Doku ins Wiki stellen. |
|||
2.1.2 | GuRi | 1 | HFS . Inkl. Gerätemodell-Doku ins Wiki stellen. |
|||
2.1.3 | GuRi | 1 | FBSD |
|||
2.1.4 | GuRi | 1 | DTTC |
|||
2.1.5 | LH | 1 | HFUM |
|||
2.1.6 | GSch | 1 | IPS |
|||
2.1.7 | Kain | 2 | FG |
|||
2.1.8 | GuRi | 2 | PPOS |
|||
2.1.9 | GSch | 2 | MB |
|||
2.1.10 | KHer | 2 | BC |
|||
2.1.11 | Kain | 2 | MK |
|||
2.2 | KHoe | VME-Rahmen umstellen. Neues UBOOT laden. MAC-Adressen der GuPs bei W.Schiebel angeben! Directories anlegen. |
||||
2.2.1 | GSch | 1 | K3XCG5C_ wird K3XCG01 . |
|||
2.2.2 | LH | 1 | K4XCG49_ wird K4XCG02 . |
|||
2.2.3 | KHer | 1 | K5XCG59_ wird K5XCG01 . |
|||
2.2.4 | GuRi | 1 | KUECG4D_ wird KUECG03 . |
|||
2.2.5 | UK | 2 | KE3CG94_ wird KE3CG02 , HVDM muss fertig sein. |
|||
2.2.6 | SMa | 2 | K2XCG48_ wird K2XCG01 , DTTC muss fertig sein. |
|||
2.2.7 | LH | 3 | KUECG56_ wird KUECG03 , MS muss fertig sein. Problem der in Reihe geschalteten Magnete TK3MV3 und TK3MV4 muss geklärt sein. |
|||
2.2.8 | LH | 3 | KE1CG63_ wird KE1CG03 . |
|||
3 | Devman | |||||
3.1 | Kain | 2 | onlineTest() von den lifeCtrlThreads aus ausführen? (sorgt dafür, dass der online-Zustand der devices regelmäßig geprüft wird, bei vmeDevice würde geprüft, ob alle devices eines ec noch in der dbs eingetragen sind) | |||
3.4 | Alle | 1 | (Incode-) Doku erstellen. Vorrangig die mit API! In englisch! | |||
3.4.1 | SMa | 1 | Devman (Incode-) Doku erweitern. Auch Doku fuer InfoSnd-Tool erstellen. | |||
3.4.2 | Kain | 1 | Module cpu87 , devman (inkl. DMAN-USRs ), equinf , incvme , vmedevice , x86device |
|||
3.4.3 | KHoe | 1 | Module accdata , corbaifc , dbs |
|||
3.4.4 | Kain,SMa | 1 | Doku fuer Devman\InfoSnd-Tool erstellen. | |||
3.6 | NN | 2 | In den Makefiles und in gendevacc das Target python in pydevacc umbenennen. |
|||
4 | Nameservice and Access Rights | |||||
4.1 | LH | 3 | CORBA-Call-Timeouts einbauen. | |||
4.2 | SMa | 3 | Test-Benutzer-Account unter Linux/VMS einrichten lassen. | |||
4.3 | SMa | 2 | Tool zum Entfernen von ueberfluessigen (ueberaltete, nicht mehr existierende) Nomenklaturen aus dem Nameserver bauen. | |||
4.4 | SMa | 2 | Unittest fuer den Access-Server entwerfen und implementieren. SVN-Projekt: access_unittest | |||
5 | Userface | |||||
5.1 | GSch | 1 | Userface verbietet das senden von Daten vom Typ Structure an Geräte. Der Versuch führt zu einer Fehlermeldung. |
|||
5.2 | GSch | 2 | Userface aus dem privaten Directory nach sis$root:[ufc] umziehen | |||
5.2.1 | GSch | 2 | in CMS einchecken, Doku 'Userface für VMS erstellen' entsprechend überarbeiten | |||
6 | Versionsverwaltung, Releases, Scripte | |||||
6.2 | KHoe | 1 | svntools.py für V09 anpassen. Nur für die Blades, weil es da eine viel einfachere Möglichkeit geben wird. |
|||
6.4 | KHoe | 3 | Script mkgupdirs zum Anlegen der Directories eines neuen PPC-GuP. |
|||
7 | ELDK | |||||
7.2 | Alle | 1 | Upgrade der PPC-GuPs auf ELDK 4.0 mit Linux 2.6 und neuem UBOOT. | |||
7.2.1 | KHer | 1 | Consolen auf 19200 Baud umstellen, siehe Boot-Konfiguration der PowerPC-Boards | |||
7.2.2 | KHer | 1 | Zunächst KTRCG01 umstellen. | |||
7.4 | KHoe | 2 | Eventuell Upgrade auf omniOrb 4.1.2 | |||
7.5 | KHoe | 2 | Umzug einiger Directories | |||
8 | Erweiterungen Device Access Interface | |||||
8.1 | NN | 3 | AccData-Container mit 64-Bit-Intergers. Achtung, IDL-Änderung! | |||
9 | Subscription Service | |||||
9.1 | LH | 1 | Überarbeitung der Software und Fehlerbehebung. | |||
9.2 | LH | 2 | Timeout auch in DeviceCallback::exit() einbauen. |
|||
10 | Alarme | |||||
11 | Allgemeines & Kleinigkeiten | |||||
11.1 | KHer | 1 | Teile des Linux-Betriebssystems ins Flash brennen. | |||
11.2 | LH | 2 | Wenn generell auf UTC umgestellt wird, die festen Zeit-Offsets in der Geräte-Software der Pulszentralen (auch SWPZ) und in MAX entfernen. | |||
11.4 | LH | 2 | Mittelfristige Planung für PPC-Projekt mal wieder angucken und in Release 16 einfließen lassen. |
Nr. | Bemerkung |
---|---|
2.1.1 | Eventuell ohne SE sondern mit dem HV-Controller direkt im VME-Rahmen. Möglicherweise können die HV-Controller auch direkt auf Netzwerkbetrieb (ohne Kontrollsystem) umgestellt werden. |
2.1.7 | Die SIS-HF soll als erste auf die neuen Funktionsgeneratoren mit Verrundung umgestellt werden. Neue FGs sollen nur unter V09 betrieben werden. |
2.2.8 | Für KE1CG03 soll neuer Rahmen parallel zu KE1CG63_ montiert werden, so dass die Gerätemodelle nach und nach umziehen können. In KE1CG63_ sind insgesamt 7 verschiedene Gerätemodelle. Was ist mit RPG ? KE1CG63_ hat dafür zwar USRs aber keine SE mit EQMs. |
4.3 | Der Nameserver kann nicht erkennen, was nicht mehr benoetigte Nomenklaturen sind. Was passiert mit noch laufenden Geraeten, deren Nomenklatur samt Referenz entfernt wird? Diese muessten sich neu anmelden, um wieder ansprechbar zu sein. |
7.5 | Falls der NFS-Server von HP allgemein eingesetzt wird, hat das sehr wahrscheinlich Konsequenzen für die NFS-Directories der PPCs. Das muss dann näher untersucht werden. |
11.2 | Erübrigt sich für PZU und PZS, wenn diese unter V09 laufen. Bei der Umstellung muss der Offset raus, da Linux schon mit UTC arbeitet. |
Nr. | Name | Prio | Tage | Beschreibung | |
---|---|---|---|---|---|
1 | Property-Beschreibung mit XML und Code-Generierung | ||||
1.1 | KHoe | 2 | In den USR-Adaptern statt throw (AccDevException(ODA_CONVERTDATA, ODA_OK, "more data than expected")) besser throw AccDevException(ODA_MOREDATA, ODA_OK, ACCDEV_ERRORLOCATION) werfen. ACCDEV_ERRORLOCATION weißt dann auf den entsprechenden Adapter hin. |
||
1.2 | KHoe, LH | 2 | Evtl. eine Möglichkeit schaffen, damit die Lese- und die Schreib-Klasse einer Property unabhängig voneinander dokumentiert werden können. Siehe dazu LHs Email XML-Doku trennen für Schreib- und Lese-Properties vom 19.03.2009. | ||
2 | Geräte-Software | ||||
2.3 | Kain | 2 | SWPZ-EQMs bringen SE zum Absturz, wenn man nur das Default-Alvarez-Timing einstellt. | ||
2.4 | GSch | 2 | DTI-EQMs: Wenn der Elektronik der Rahmenpuls fehlt, z.B. oft im Shutdown, dann rascheln die Geräte ziemlich mit Alarmen. Ein DevSpecAlarm wechselt ständig zwischen ok und Fehler und man hat schnell hunderte von Alarmfiles geschrieben. |
||
2.5 | Kain | 2 | SEs haben keine Property EQMERROR mehr. Ist das gewollt? Wurde wohl vergessen, also nachrüsten? |
||
2.7 | LH, Alle | 1 | Die USR ReadMEDIINFO implementiert in therapy-usrs.cc liefert auch für V08 die V09 UTC-Zeit. |
||
2.7.2 | Alle | 1 | Alle V09-USRs von Gerätemodellen mit Therapieerweiterung (bzw. die, die therapy-usrs.cc includieren) neu compilieren, linken und für die entsprechenden Rahmen releasen. |
||
2.9 | Bei Gerätemodellen, wie Std, habe alle Modelle die gleiche Gerätemodelnummer. Hätten diese Modelle eigene Messages-Dateien (GM-msg.msg) könnten die beinhalteten Meldungen nicht unterschieden werden, da die Facilitynummer aus der Gerätemodelnummer erzeugt wird. (Facility = 1050 + eq-model number). Momentan gibt es keine Probleme. Diese Besonderheit sollte aber nicht in Vergessenheit geraten, weil dies vielleicht noch zu einem Problem werden könnte. | ||||
3 | Devman | ||||
3.1 | Kain | 1 | Falsch zeigender deviceDataPtr nach einem Init der SE und der darauf folgenden Neusortierung der Geräte in der Geräteliste der SE. Siehe Peters Email PPC und Konfigurationsaenderungen vom 19.1.2009. Zusammen mit den Punkten 3.2 11.3 bearbeiten. |
||
3.2 | Kain | 2 | TL2MU1 (MX, IFK=205) auf KG1CS023 ist online, KG1CS022 hat keine Geräte. MIL-Bus auf KG1CS022 umstöpseln und Init KG1CS022 . TL1MU1 (MD, IFK=205) ist mit Menüpunkt 'C' auf der SE zu sehen und online. TL2MU1 auf KG1CS023 ist offline. Lesen von Status via Python: TL1MU1 > =XSR-E-UNKNOWN , TL2MU1 > =XSR-E-UNKNOWN . Erst ein Restart des Devman scheint zu helfen. Alles unter Release 9. Zusammen mit den Punkten 3.1 und 11.3 bearbeiten. |
||
3.3 | Kain | 1 | Methoden readCommand() , writeCommand() : Timeouts sind bedeutend länger als angegeben. Methoden VmeDevice::getStatus() usw.: Timeouts können nicht gerätespezifisch angegeben werden. Siehe LHs Email Timeouts & readCommand() vom 24.Aug.09. |
||
3.4 | SMa | 2 | Des öfteren geht der service devman restart schief, weil das Lockfile /var/lock/acc/devman nicht gelöscht wurde bzw. werden konnte. Woran liegt das? Kann das mit der Anzahl der Threads auf dem GuP zusammenhängen? Nach wie vor beobachtet (von LH) auf kp1cg02 am 24.Aug.09 und ke1cg02 am 12.Okt.09. |
||
3.5 | Kain | 1 | Devman macht Eventkonnektierungen auf SEs, die den Eventservice explizit verbieten. Siehe LHs Email Eventkonnektierung an SE, die's nicht erlaubt vom 29.05.2009 und Peters Antwort-Email vom 02.07.2009. | ||
3.6 | Kain | 2 | Event konnektieren => das sieht man mit EQM 233 auf der SE und mit COMP_TEST, Menüpunkt 30. Event diskonnektieren => Event verschwindet im EQM 233, ist aber immer noch zu sehen in COMP_TEST. | ||
4 | Nameservice and Access Rights | ||||
4.1 | SMa | 1 | Zugriff auf Geraete ohne Bereichsangabe |
||
5 | Userface | ||||
5.1 | GSch | 2 | Im UfcServer ist der Purgecount fest auf 1 verdrahtet. Es sollte der vom Anwender übergebene benutzt werden. Bleibt so. | ||
6 | Versionsverwaltung, Releases, Skripte | ||||
6.1 | LH | 1 | Wenn gendevacc eine Teil-Release macht, sollten die Headerfiles nicht noch einmal kopiert werden, m.a.W. es sollte nicht Makefile.copy aufgerufen werden. Statt dessen wäre ein Vergleich der aktuellen Headerfiles mit denen der Release sinnvoll. Unterscheiden sie sich, sollte die Teil-Release abgelehnt werden! |
||
6.2 | LH | 1 | gendevacc bzw. das dahinter liegende Makefile hängen automatisch Links um, z.B. auf $PROOT/lib/asl/15 den Link nameserver -> nameserver.x86.15.02 , wenn man z.B. so aufruft: gendevacc -p nameserver . Das darf nicht sein! Links dürfen erst mit (z.B.) relnameserver umgehängt werden! Das ist richtig so! relnameserver hängt den Link $PROOT/nameserver/library um, der auf $PROOT/lib/asl/<Release> zeigt. |
||
7 | ELDK | ||||
8 | Erweiterungen Device Access Interface | ||||
9 | Subscription Service | ||||
10 | Alarme | ||||
11 | Allgemeines & Kleinigkeiten | ||||
11.1 | KHoe | 2 | Die PPC-Boards, zumindest KP1CG01 (auch KE3CG01 ?), stellen sich mal auf full duplex, mal auf half duplex ein, wenn der Port am Switch auf auto steht. PPC-Boards müssen immer auf full duplex stehen! Kontakt mit MicroSys bzw. Denx aufnehmen. |
||
11.2 | KHoe | 2 | Wo müssen die Dateien *.pyc zu liegen kommen? Zur Zeit findet man sie sowohl unter /usr/local/acc/python/bel als auch unter $utivme . Das muss bereinigt werden. |
||
11.4 | KHoe | 3 | Zu vmeconfig.py und "Additional files" merken muss man eigentlich zwischen V08 und V09 unterscheiden. Z.B. bei MD oder MX gibt's unter V08 keine zusätzlichen Dateien für die USRs einzutragen, unter V09 aber schon. |
||
11.5 | Kain | 3 | Der Zustand 'deleted' eines Gerätes wird vom Menüpunkt C des ECM nicht angezeigt. | ||
11.6 | NN | 3 | 'vmeboot -b uktcg3e_' auf asl710 führt nicht dazu, dass UKTCG3E_ mit Boot-MOPS startet, 'vmeboot uktcg3e_' tut jedoch wie erwartet. |
||
11.7 | KHoe | 3 | Wenn man statt outData.assign(37, ULong(0)) fälschlicherweise outData.assign(ULong(0), 37) schreibt, meckert der Compiler nicht. Wieso denn das? Es gibt eigentlich keine passende Deklaration für den Fehlerfall. |