Nr. | Name | Prio | Projekt | ||
---|---|---|---|---|---|
1 | LH | 1 | Neue Alarme auch für VMS-Anwendungen verwenden? Siehe Udos Email CAP mit UDP-Alarmen? vom 20.04.2009. | ||
2 | LH, KHoe | 1 | Verwaltung der Originale von /etc/rc.d/init.d/devman , /etc/sysconfig/devman.logrotate , /etc/sysconfig/devman , /home/vme/interrupt/ec-irpts-load.sh , ec-irpts.c usw. beschließen. Okay, in SVN aufgenommen. |
||
3 | LH | 1 | Erweiterung der Device-Access-IDL-Schnittstelle um einen Prozessnamen. | ||
4 | LH | 1 | Soll beim Ende von Konnektierungen immer das userCallback->exit() aufgerufen werden? |
||
5 | LH | 1 | Ein Magnet hat zwei Namen: TK3MV3 und TK3MV4 . Das geht nicht mehr, wenn KUECG56_ auf PPC-GuP (im Juli-Shutdown) umgestellt werden soll. |
||
6 | LH | 2 | Umstellung der VMS-Rechner auf UTC!? Mit AP! | ||
7 | LH | 2 | Erweiterung der Konstantentabelle für MX und MD für den April-Shutdown vorsehen? | ||
8 | LH | 2 | Behandlung der Spezial-Nomenklaturen >> und ?? klären (siehe UKs Email vom 6.2.08). |
||
9 | LH | 2 | Wie bei Alarmen von der SE die richtige Nomenklatur zuordnen? Adressen sind nicht eindeutig, was tun bei STD ? |
||
10 | 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? | ||
11 | Alle | 2 | Nachdenken über erweitertes Log-Ausgaben-Konzept. | ||
12 | SMa | 4 | Fehlerbehandlung in Klasse NsrvException ggfs. ersetzen durch AccDevException? Informationsweitergabe ueberdenken. | ||
13 | LH | 3 | USR-Absturz (z.B. NULL-Ptr) soll nicht zum Devman-Absturz führen. | ||
14 | GSch, UK | 3 | Wie Userface für IPS erweitern. |
Nr. | Bemerkung |
---|---|
3 | 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 siskons . Da ist es schwierig, einen Prozess zu ermitteln, der sich fehlerhaft oder nicht normgerecht verhält. Die Erweiterung muss natürlich auch in Userface/UfcServer eingebaut werden. |
4 | 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. |
5 | Problem soll auf der Serverseite gelöst werden. Eventuell durch eine Erweiterung oder Adaption der Shared-Variante der MX-Magnete. |
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 | Alarme: Bei Alarmen von SEs wird bisher über die LogDevAdr die richtige Nomenklatur des Gerätes ermittelt. Das geht jetzt aber nicht mehr so, weil die LogDevAdr. jetzt nur noch pro Gerätemodell innerhalb eines VME-Rahmens eindeutig sein muss. Speziell bei Gerätemodell-Varianten (auf USR-Ebene) hat man Probleme über LogDevAdr. + Gerätemodell-Name an die Nomenklatur zu kommen, denn die Nomenklatur gehört oft zu einem anderen Gerätemodell als die Software auf der SE angibt. Wie kann man trotzdem diese Zuordnung eindeutig und passabel handhabbar herstellen? (Extra Eintrag im DBS-file?). Speziell bei STD-Geräten ist diese rückwärtige Ermittlung manchmal nicht möglich, weil da oft mehrere Geräte auf derselben LogDevAdr aufsetzen. Die SE kennt mittlerweile selbst die Gerätenomenklaturen, könnte sie also direkt verwenden statt der Adresse. Achtung, Änderung wäre eine Systemsoftware-Änderung! Haben wir die aber nicht eh mit der neuen Timestamp? Die SE kennt ihre eigene Nomenklatur nicht. Die sollte ihr mitgeteilt werden. Achtung, auch das ist wahrscheinlich eine Systemsoftware-Änderung! |
10 | 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. |
11 | 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? |
12 | Die Klasse NSrvException wird lediglich innerhalb des Nameservers verwendet. Exceptions nach aussen sind AccDevExceptions. |
13 | 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. |
14 | 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. |
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! | |||
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 | Kain | 2 | FG |
|||
2.1.4 | GuRi | 2 | PPOS |
|||
2.1.5 | LH | 1 | MS |
|||
2.1.6 | GSch | 1 | MB |
|||
2.1.7 | KHer | 1 | BC |
|||
2.1.8 | SMa | 1 | ME |
|||
2.1.9 | Kain | 1 | MK |
|||
2.1.10 | NN | 1 | FBSD |
|||
2.2 | KHoe | VME-Rahmen umstellen. Neues UBOOT laden. MAC-Adressen der GuPs bei W.Schiebel angeben! Directories anlegen. |
||||
2.2.1 | UK | 1 | KE3CG94_ wird KE3CG02 , HVDM muss fertig sein. |
|||
2.2.2 | LH | 1 | KUECG56_ wird KUECG03 , MS muss fertig sein. Problem der in Reihe geschalteten Magnete TK3MV3 und TK3MV4 muss geklärt sein. |
|||
2.2.3 | LH | 2 | 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.2 | SMa | 2 | Neue Logger-Klasse für logmsg() erfinden, um Laufzeiten zu verkürzen. | |||
3.3 | SMa | 2 | Devman mit einmaligem open()/close() des Nameservers während des Starts. | |||
3.4 | Alle | 1 | (Incode-) Doku erstellen. Vorrangig die mit API! In englisch! | |||
3.4.1 | SMa | 1 | Devman (Incode-) Doku erweitern. | |||
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 | KHer | 1 | Modul microIOC |
|||
3.4.5 | UK | 1 | Modul pydevacc |
|||
3.5 | SMa | 2 | X86Device in NativeDevice umbenennen, Projekt-Verzeichnis umbenennen und nötige Anpassungen in Quellen und Skripten vornehmen. |
|||
3.6 | NN | 2 | In den Makefiles und in gendevacc das Target python in pydevacc umbenennen. |
|||
4 | Nameservice and Access Rights | |||||
5 | Userface | |||||
5.1 | GSch | 1 | Userevent nach Abholung der Response eines asynchronen Auftrags wieder löschen | |||
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 | |||
5.3 | GSch | 1 | VMS Prozessname mit übertragen und im logfile ausgeben | |||
5.4 | GSch | 1 | Konnektierungen und asynchrone Aufträge, die vom devman beendet wurden sauber behandeln | |||
6 | Versionsverwaltung, Releases, Scripte | |||||
6.1 | GSch | 1 | relufcserver erfinden. |
|||
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.3 | Alle | 1 | (Incode-) Doku erstellen. In englisch! | |||
6.3.1 | KHoe | 2 | Module uti/mk , uti/xml |
|||
6.4 | KHoe | 3 | Script mkgupdirs zum Anlegen der Directories eines neuen PPC-GuP. |
|||
6.5 | LH | 2 | Makefiles acc-global,mk , Makefile.clean usw. von $DROOT/mk nach $uti/mk umziehen und Makefiles entsprechend anpassen. |
|||
7 | ELDK | |||||
7.1 | Kain | 1 | In Gang bringen: VME-Adresstest. VME-Treiber / CPU86-Firmware? | |||
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.3 | KHoe | 1 | GCC 4.x vorab schon mal auf dem asl-Cluster testen (Devman/KGB generieren). | |||
7.4 | KHoe | 2 | Eventuell Upgrade auf omniOrb 4.1.2 | |||
7.5 | KHoe | 2 | Umzug einiger Directories | |||
8 | Erweiterungen Device Access Interface | |||||
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.3 | KHoe | 1 | Im Shutdown die neuen Release- und Start-Skripte fuer den Nameserver einrichten. Rueckfragen bitte an SMa und LH. | |||
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.3 | Die SIS-HF soll als erste auf die neuen Funktionsgeneratoren mit Verrundung umgestellt werden. Neue FGs sollen nur unter V09 betrieben werden. |
2.2.3 | 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. |
3.2 | Gegenueber der Version 12 ist die Anmeldung von Geraeten am Nameserver um den Faktor 10 schneller (inkl. aller beschleunigenden Massnahmen) |
3.3 | Fuer das Anmelden der Geraete/der SE's wird jeweils eine Socket-Verbindung aufgebaut. |
3.5 | Betroffene Projekte: x86device (heisst nun nativedevice), accdevice, kgb, usrs. |
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.1 | Kain | Default-Property EQMERROR liefert falsche Werte. |
|||
2.2 | LH, Kain | 3 | Power schalten bei MX, FG: addPeriodical(n * 1sec) führt bei PPM-Geräten aber zu addPeriodical(n * Zykluszeit) und im Fehlerfall (Gerät schaltet nicht) zu zu langen Wartezeiten und zum Fehler USR-Timeout statt zu GM-Powerfail. | ||
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.6 | LH, KHoe | 2 | Nach der Erweiterung von vmeconfig für X86-USRs kann auch KGB damit generiert werden. Dann geht aber die bisherige Generierung via Makefile.nightly nicht mehr. Ist das ein Problem, insbesondere im Hinblick auf zukünftige Lieferungen eines Komplettsystems an Cosylab? KGB weiterhin per Makefile.nightly . |
||
2.7 | LH, Alle | 1 | Die USR ReadMEDIINFO implementiert in therapy-usrs.cc liefert auch für V08 die V09 UTC-Zeit. |
||
2.7.1 | LH | 1 | Methode ReadMEDIINFO::readV08() erfinden zur Konvertierung in V08-Typ. |
||
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.8 | LH | 1 | MX-USRs ReadMEDDATAS und ReadMEDDATAI liefern die Werte für B, I und U in der falschen Reihenfolge. |
||
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 | LH | 2 | Für Devman und DMAN-USRs werden falsche Versionsstrings generiert, z.B.: DMAN01..14 . Okay, devman-version.py korrigiert. |
||
3.4 | NN | 2 | Des öfteren geht der service devman restart schief, weil das Lockfile /var/lock/acc/devman nicht gelöscht wurde. Woran liegt das? |
||
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. | ||
4 | Nameservice and Access Rights | ||||
4.1 | SMa | 2 | Das Python-Modul gsinaming liefert z.B. mit getdevices("K*CG*") folgendes zurück: ['K1XCG01 (DMAN)', 'K1XCG02 (DMAN)', ...] . Schöner wäre, täte es dies liefern: [['K1XCG01', 'DMAN'], ['K1XCG02', 'DMAN'], ...] . Dito die Methode getnomen() des Python-Moduls devacc . |
||
5 | Userface | ||||
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 | KHoe | 2 | Wie kriegen wir denn die 'modification time in the future' bzw. die 'Clock Skew' wieder weg, die beim 'make' von USRs und EQMs immer wieder (mal) auftritt? Siehe LHs Email Clock skew beim 'make' vom 19.05.09 | ||
7 | ELDK | ||||
8 | Erweiterungen Device Access Interface | ||||
9 | Subscription Service | ||||
10 | Alarme | ||||
10.1 | Kain | 2 | ECM soll Alarm %ECM-E-DATA_EVENT_INCO als Alarm von Alarmtyp System verschicken. |
||
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.3 | SMa | 2 | Wie kann man dem Nameserver eine Aenderung des (sekundären) Geraetemodells auf der SE mitteilen? Zusammen mit den Punkten 3.1 und 3.2 bearbeiten. | ||
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. |