AVB in der Theorie super aber die Praxis ist eher bescheiden

  • Wie versprochen wollte ich euch nicht mit jeder Neuigkeit langweilen, also war hier erst mal eine weil pause.


    Der Code hat eine bessere Struktur bekommen und wurde so umgearbeitet das er auf verschiedenen Plattformen lauffähig wäre. Es gab starke Veränderungen Im Code , die ich jetzt nicht im einzelnen abspulen möchte. Jedenfalls ist er wieder ein Stück fixer geworden :) .


    An der API gab es Änderungen was die Json Antworten angeht, Values mit vielen Werten werden jetzt besser angezeigt, siehe unten. Das Betrifft auch die Control Values... Momentan arbeite ich am einheitlichen Errorhandler, hierzu muss man ab und zu den Code nochmal anfassen. Da ergeben sich dann meist auch Optimierungen. Unter Linux bin ich mit dem BpF vom Kernel jetzt grün und es gibt vermutlich April, Mai noch eine Überraschung.... So läuft das Projekt stabil..


  • Also ich möchte ein paar Dinge Posten. Der Controller kann wenn man es es aktiviert sich als eigenes Entity im AVB publizieren. Das ist schon seit einen Jahr vorhanden, aber nur mit dem Deskriptor "Entity" -> Konfiguration 0. Jetzt ist das Entity vervollständigt worden. In Vorbereitung für die versprochene Überraschung. Es wird so sein das man Deskriptoren in ein einem Konfigurationsfile beschreiben kann und das der Entity Core die Entsprechenden Funktionen bereitstellt -> ist aber noch Baustelle..


    Die Verfahrensweise der Control Values wurde überarbeitet. Die Values werden Count,Type,Range werden aus den Daten des Deskriptor geprüft. Man kann dem Entity keine falschen Values übergeben, oder unvollständige. Wie schon seit über 1 Jahren kann der Controller mit allen Typen umgehen. Die weise wie sie im Json dargestellt werden wurde verbessert. Lässt sich einfacher mit Javascript lesen.. Später kann man das Json Objekt einfach per POST senden und somit die Values setzen.

    Es funktioniert natürlich auch mit dem Deskriptoren Mixer,Matrix ! Siehe Bild, da sieht man schon das besser Json Format. Mixer muss man erst mal verstehen :| . Es beschreibt eine Möglichkeit Control values in einer Quelle zu Mischen. Deswegen werden nur Linear Values unterstützt. Das Thema Sources ist ziemlich wirr und ich werde das noch besser da stellen müssen. Sources lassen sich ja schon per HAL verfolgen.


  • Mal was anderes außerhalb dem Controller Thema..


    Mir wurde im Dezember ein Raspberry Pi CM4 https://www.raspberrypi.org/pr…nt=raspberry-pi-cm4001000 mit dem IO Board https://www.raspberrypi.org/pr…ompute-module-4-io-board/ auf den Tisch gelegt.


    Nebst der unsauberen Verarbeitung wird das Board als "Onboard Gigabit Ethernet PHY supporting IEEE1588" beworben.


    Ich habe mir das auch schon denken können und mich schon kurz im Dezember mit beschäftigt. Das geladene Standard Modul für die Broadcom PHY keine Hardware Timestamps, das haben jetzt auch andere mitbekommen und kotzen bei GIT darüber aus https://github.com/raspberrypi/linux/issues/4151 . Das Problem alles bei Broadcom steht unter NDA selbst die Datenblätter. Ein super Grundlage um Treiber zu entwickeln und ich glaube ich nicht das dies die Raspberry Pi Foundation machen wird. Obwohl das eine wichtige Voraussetzung wäre um wie beworben das Modul in der Industrie zu verwenden. Macht keiner Bastelkram bleibt Bastelkram..


    Aber das IO Board hat auch einen PCIe Slot, also hat der Marco eine Intel i210 aufgesteckt einen PTP fähigen Kernel gebaut und mit dem linux PTP Projekt versuche gemacht.


    Um festzustellen das zwar die PHY synchronisiert und es auch gelingt diese Uhr mit dem System zu synchronisieren. Naja fast, denn der Clock vom dem Board ist derart miserabel das dieser stark weg läuft und es mit der Regelschleife im Userspace dann nicht mehr gelingt das die PLL einrastet.


    So ein paar Stunden läuft es dann ist auf einmal Feierabend, warum auch immer. Schaut man sich die Linux AVB Projekte so an ist nichts dabei was wirklich verwendbar ist. SRP,QOS werden von der Konsole aus gesteuert und einen einen IEEE1722.1 Controller gibt es erst recht nicht. Man startet Talker und Listener auch per Hand und hofft das was ankommt. Fazit von 2013 bis heute ist man nicht sehr weit gekommen...