Beiträge von marcoboy

    Die AVIO haben können nur 24bit und kann man überhaupt einen Stream 24<->32bit also einem unterschiedlichen Streamformat herstellen ?


    Da geht kein Pegel verloren :D.. Du gibt einfach zu wenig rein... Ich würde mir das Patch mal anschauen wo du das Signal abgreifst... Es gibt hier bestimmt jemanden der sich dein Showfile mal anschaut...

    Auch das Streamformat kann unterschiedlich sein, es liegt dann am Controller solche Partner nicht zu verkoppeln.


    Ich habe es jetzt mit mehren Handständen geschafft den Controller auf der Switch laufen zu lasse :). Die ist mit einen SAMA5 nach extrem schlechter aufgestellt als ein RPI. Was Ressourcen betrifft, deutlich weniger Speicher, single Core und Takt.


    Vorher musste ich Festellen das das SRP auf der Switch gar nicht implementiert ist, es werden zwar Attribute gesammelt aber die Parameter der Switch werden nicht angepasst. Sie schmierte auch regelmäßig ab, wenn man versuchte per SPI auf darauf zu zugreifen.


    Das ist eben das traurige Lied von Konzern die nur ein Interesse haben Hardware zu verkaufen, die Software hat einen grausamen Stand. Die Buildroot Umgebung war alt wie Steinkohle, und ließ sich auf einen aktuellen System nicht mehr übersetzen. Ich habe mir eine aktuelle Bulidroot Umgebung gebaut und dabei mit Handständen versucht ihre Treiber einzubinden. Womit ich dann auch ein Netzwerkinterface hatte um den Controller zu benutzen 8o.


    Der RPI läuft seit eine Woche :thumbup: am Code des Controller hat sich erst mal diese Woche nichts getan. Das Switch Problem hatte mich beschäftigt.

    Milan ist keine Norm, sondern ein Papier in dem man sich innerhalb der Mitglieder um gewisse Parameter einigt.


    Z.Bsp Sample Rate, Auflösung, Samples per Frame etc.


    Das hat in sofern Sinn das nicht alles implementiert werden muss und somit der Aufwand geringer wird. Auch das die Geräte untereinander besser zusammen arbeiten.


    Es ist also nicht gesagt das Geräte von Herstellern die der Gruppe nicht beitreten sind nicht funktionieren würden.

    Na dann klären wir das Problem mal auf..


    Es entsteht folgendes Problem wenn man einen AVB Stream mit einer normalen Switch betreibt und keine VLANs bildet.


    Problem [A]


    In der IEEE sind die MAC Adressen vom MAAP(ausknobeln von Adressen für den Stream) als Broadcast registriert. Unser Standard Switch wird also den Stream auf alle Ports ausgeben.


    Alle Geräte müssen die Daten dann auch verarbeiten, gerade Geräte mit Mikrocontroller können dabei an ihre grenzen stoßen. Oder es landet sogar unglücklicher weise im Wlan und stopft dies zu.


    Problem[B]


    wir haben eine AVB Switch und ein AVB Gerät an dieses sendet der Controller massiv Daten. Im normal ist sind die Stream Daten priorisiert, steht im Header des Frames. Die Switch bevorzugt diese Daten, der Rest landet im Queue .


    Die Switch leert diesen zwangsweise in den Lücken und der labernde Idiot sorgt dafür das der Stream gestört wird. Da das Gerät nicht in der Lage ist den Datenstrom zu verarbeiten.


    Problem[C ]


    wir haben ein AVB Gerät welches gleichzeitig auch ein Controller ist. Die Daten unterscheiden sich im Header nur durch ein Bit (CD Bit).

    Ohne dessen Filterung ganz vorne im Kernel weckt dieser den Prozess jedes mal auf wenn Stream Daten ankommen. Um dann festzustellen, och interessiert mich nicht. Das treibt die CPU Last nach oben...


    Jetzt kombinieren wir A+C und kommen zu den Schluss das es besser wäre das Bit zu filtern.. Dieser BF Filter im Kernel ist assembler code der direkt ausgeführt wird. Der jetzige Filter lies sich mit tcpdump erstellen, da es auf die gleiche weise arbeitet. Im Bits zu filtern muss ich mich erst mal in den assembler code einarbeiten.

    So ich hatte noch ein richtige Leiche im Keller, die dem ganzen den Boden weg zog. Das kam beim Lasttest zum Vorschein, stand auch so noch dumm als TODO da ;)..


    Hier mal 1000000 Request auf 4 Thread und 4 Connects. Response Zeit im Durchschnitt 1,9ms. Hardware Raspberry Pi :)... Zu beachten ist aber das natürlich ein Entity zwischen ist, was erst mal antworten muss, sonst blockiert der Thread vom Request natürlich und womöglich auch noch ein Stream den Controller belastet.


    Das mit dem BF Filter (Linux Packet filter im Kernel) ist noch nicht um das CD Bit ergänzt worden. Der Thread wird dadurch von Stream Daten belastet, da die dumme Switch die MACs als Broadcast durchreicht. Mit AVB Switch natürlich nicht..

    Der bedarf an einen Controller ist ja in so fern durch aus vorhanden. Das ist auch die Frage die sich jeder Hersteller eines AVB Gerätes fragen muss. Das kostet Zeit und Geld und müsste auf das Gerät umgeschlagen werden. Zumal der Anwender ja auch erwartet das dieser in der Lage ist andere Geräte zu verarbeiten.


    Das eigentlich komplexe ist die Controller Angelegenheit und die fällt auf beiden Seiten an. Das blöde dabei ist, es gibt nicht mal einen Controller der alles unterstützt gegen Geld. Das Projekt kann Herstellern eine wertvolle Hilfe sein, bei der Entwicklung und Test ihrer Geräte.


    Offenes Konzept durch REST API und JSON ist mit allen Programmiersprachen beherrschbar. Selbst wenn die HTML Oberfläche nicht fertig ist, ist es voll verwendbar...


    Ich will mich nicht unter Druck setzen, aber vielleicht ist es bei der nächsten PLS bereit zum Plugfests...

    ARM ab oder ARM dran ^^.. Ich habe mir mal eine Buildroot Umgebung für den RaspberryPi gebaut und damit auch eine toolchain. Auf deutsch... Linux System aus den Quellen erzeugt und die Werkzeuge um Programme für das System zu übersetzen.


    Was soll ich sagen, der Controller lief auf dem Pi ohne Probleme 8). Ich werde mir mal auch eine für den beaglebone black basteln, denn der hat eine PTP fähige PHY oben..


    Weiter geht es...

    Was willste da boosten bei 5GHZ ? Dir ist schon bekannt das der AP mit bis zu 1000mW senden darf !? Die Kröte die man dabei schlucken musste ist eben das er diese reduziert sobald anderen APs auftauchen. Die 1000mW gleichen auch die schlechteren Ausbreitungsbedingungen aus. Das betrifft dann schon das Volk was sich vor dir aufbaut ;)

    Glaub das nicht.. Es mag zwar sein das im 5GHZ Bereich weniger los ist aber, sobald ein anderer AP auftaucht oder Radar in Betrieb ist wird die Sendeleistung reduziert bzw. die Kanäle werden nicht benutzt.


    Das sollte eigentlich das Problem im 2,4GHZ Bereich lösen, führt aber in der Praxis dazu das die Reichweite unter 2m sinkt ^^.

    Nö, auch Mesh Netze welche die Industrie gerade versucht an den Man zu bringen lösen das Problem nicht. Ein völlig überfrachtetes Band, welche nur noch mit Glück funktioniert.


    Kauf dir einen Ethernet Adapter...


    Die Handys sind in soweit ein Problem wenn sie sich versuchen mit deinem WLAN zu verbinden. Wenn die Service Set Identifier nicht sichtbar ist werden es die Handys auch nicht versuchen.

    Das war jetzt gar nicht einfach ?(.. Das Problem bestand in der libmicrohttpd und der Symptomatik das ich auf jede response vom Entity warten muss(wollte).. Es gab keine Möglichkeit den Post Prozess anzuhalten :|.. So das ich die Daten komplett einsammeln musste. Um Speicher zu sparen habe ich es nach versuchen so gebaut das die base64 Daten chunk weise decodiert werden, sie müssen eine Teilmenge von 4 haben. Sonst ist das base64 im Eimer. Den Rest der möglicherweise übrig bleibt kopiere ich um und hänge sie beim nächsten chunk an um sie zu decodieren. Das verfahren hat den Vorteil des immer noch weniger speicher braucht als das base64 als String abzulegen.


    Diese decodierten Daten werden dann stückweise an das Entity gesendet :)..


    Es ist eine Zwischenlösung, da das ganze nicht taugt am 100MB zu übertragen. Als File die upload Daten zwischen zu speichern gestaltet sich leichter...


    Was man natürlich machen kann ist die Daten mit mehren Request zu übertragen, das ginge natürlich ohne Probleme.