Beiträge von marcoboy

    Genau genommen ist das ja nicht zeitkritisch, die Daten lassen sich auch morgen noch zu einen brauchbaren File zusammensetzten so lange man alle Pakete mitschreibt ;). Das ist ja auch der Trick mit der Dante DVS und auch ein Grund warum diese nie Clock Master sein kann.


    Blöd ist nur wenn Buffer wo auch immer zu klein sind weil einer nicht aus dem Knick kommt. Dann sind diese Pakete futsch, wenn dieser denn überläuft. USB Netzwerkarten sind immer Problematisch...


    Mit PTP fähigen PHYs geht das natürlich besser, weil die auch einen kompletten PTP Stack haben und die Pakete stempeln. So ist der Apple auch AVB fähig mit externen Adapter.... Die Auswahl solcher Adapter ist extrem gering... Auch mit internen PHYs kann es Probleme geben, Audinate nennt zahlreiche Karten die mit der DVS nicht funktionieren.


    Wer diese Bastelei nicht will kauft sich Hardware die der Hersteller genau kennt, Apple 8o...


    Das die mit einen RPI 32 Spuren mitschneiden kannst mag sein, kannst du auch die Netzwerkpakete von der Trafic die durch 32 Spuren entstehen auswerten ? Du darfst kein Paket verpassen und weil ich gemein bin Spam ich das Ding auch noch zu... Mal schauen wie viel Paket Loss mit dieser er minderwertige Hardware auftritt. Du hast zwar eine 1Gbit PHY aber dein RPI ist nicht in der Lage diese Trafic auch zu verarbeiten. Bei TCP/IP spielt das keine Rolle, Pakete die fehlen werden noch mal angefordert. Außerdem gibt es ja auch noch die Fenster, mit dem die Geräte das austesten was der Partner noch verarbeite kann...

    Nö, per PLL wird der interne Clock synchronisiert. Die Eigenschaften des Taktgebers sollten so bemessen sein das er nur gering abweicht. Fällt der Clock Master weg läuft das Pult ja mit seinen Takt weiter, die Abweichungen nehmen mit der Zeit zu, sollten aber so gering sein das die Zeit bis ein neuer Master gefunden wird ausreicht das ein sync nicht hörbar wäre. Dieser wird ja nicht schlagartig der Takt verstellt ;)


    In der Regel ist es so das dass Pult ja den Takt aus dem Netzwerk annehmen muss oder diesen stellt. Wenn die Daten asynchron über die Karte in das Pult laufen benötigt man einen Buffer.


    Die Frage ist was A&H mit "intern" meint.... es könnte auch sein das die Qualität des Clock Generators auf der Karte zu schlecht ist. IP Lösungen haben keinen boundary clock entgegen AVB. Hier gibt es einen Clock mit hoher Auflösung und garantierten Bedingungen.

    nix da... das DMX Protokoll ist sehr tolerant ausgelegt was das timing angeht. Was erfüllt werden muss ist die Bit Time das darf wie bei UARTs üblich 2% daneben liegen. Das hat manchmal Ursache im Takt mit welchen dieser Betrieben wird. Heutige µController kommen auch mit größeren Abweichungen klar, da diese das Signal am Port sampeln. Die SIO einer Z80 war da schon beleidigt...


    Das Problem mit den MA Pulten ist meist so das sie mit den hohen Frame Rates nicht klar kommen. MA benutzt die minimal möglichen Zeiten im Protokoll um hohe Frame Rates zu ermöglichen. Alle Geräte die nicht an der MA laufen entsprechen nicht der Norm ! Auch Geräte die mit RDM Signal drauf Probleme verursachen werten den Startcode nicht Norm gemäß aus.

    Das Problem ist das sie das Startbyte der MA nicht erkennen, das hat verschiedene Ursachen. Fakt ist aber eins, die MA Geräte haben das sauberste und der Norm entsprechende DMX Signal. Bei einigen Pulten oder Software kann man den Reset und den Mark nach diesen einstellen um eben solche Probleme zu umgehen.


    Aber der dort gezeigte Botex Dimmer macht zumindest in der mir vorliegen Version keine Problem an einer MA...


    Steht zwar nicht im Datenblatt aber Triac Dimmer benötigen ungefähr 40-60W als Grundlast korrekt zu funktionieren.

    Das Teil einfach gebaut... Der Lüfter läuft einen über einen widerstand der vermutlich von einen Thermoschalter überbrückt wird. Der zweite Schalter ist dann das "Notaus" über den DC Offset Detector...


    Vermutlich ist von der +-18V Versorgung eine z-Diode durch oder dies hat so ihre Ursachen....

    Jede Disk in diesem Emulator ist 1,44MB groß, also das Image was man auswählen kann. Du kannst zwar 3MB speichern musst es aber wie früher auf 3 Disks a 1,44MB aufteilen.


    Die Auswahl der Disk erfolgt mit den Tasten.... Um den Stick vorzubereiten gibt es Hilfsprogramme die mitgeliefert werden. Unter WIN10 gibt es keinen Floppy Support mehr und im Linux Kernel wäre er fast entfernt worden.


    Nun das ansteuern und lesen eines Floppys ist durchaus schwieriger als man denkt.. Hier gibt es versuche mit AVRs die einiges an Wissen erforderten damit es überhaupt funktioniert.


    Die Emulatoren sind durchaus schon sehr komplex....

    Hier mal noch zwei weitere Beispiele..


    ClockDomain -> enthält mehre ClockSources...

    externalPort -> enthält physische Schnittstellen (Jacks)....


    internal, external und jacks descriptoren werden in Hive nicht angezeigt, warum auch immer....

    Die Abwägung ist immer Daten aus den links anzuzeigen oder auch nicht...


    Ein weiteres Hindernis taucht nun auf, wenn man Daten Ressourcen ändern wollte ging das mit Forms. Das war recht einfach... Nun geht der Client meist davon aus das der die Daten in dem Format in dem er sie bekommt auch ändern kann. Die bedeutet die Daten auch als Json entgegen zunehmen. Der Client macht ein GET auf die Ressource, dann hat er das Schema und sendet diese verändert wieder zurück. Das macht eine größere Baustelle auf...

    So Embedded Resources sind da...


    Was ist das ??? Das sind Rescource die Innerhalb der Daten entstehen können, um nicht weitere Anfragen auszulösen stellt man die Interessanten Daten innerhalb dieses Object dar.


    Gezeigt hier im localized description. Was ist das ? Es ist ein Feld welche in Abhängigkeit das ausgewählten descriptors "locale" auf den entsprechenden String zeigt.


    Für jede Sprache gibt es einen "locale" descriptor. Wie kann man nun auf die Sprache auswählen ?


    Ich habe mich für einen Query entschieden, also an der uri http://..../?langIndex= 0 ohne query wird immer default 0 ausgewählt... So wie es der Standard vorschreibt. Kann man bei anderen Controllern die Sprache umschalten.. Nö.... es gibt noch andere Möglichkeiten, im Header, oder als URI .../en/...


    Die Daten werden dargestellt und der link zeigt auf den entsprechenden strings descriptor.

    Manchmal verliert man plötzlich den Anhänger...


    Folgendes Problem da die IEEE etwas vergessen hat.


    Der Descriptor "streamPortInput oder streamPortOutput" zeigt auf MAP und CLUSTER descriptoren. Nun weiß man aber nicht als welcher UNIT sie kommen.


    audioUnit-> audioMap u. audioCluster ; videoUnit -> videoMap u. videoCluster und sensorUnit u. sensorMap.


    Um den richtigen Descriptor aufzurufen muss man also wissen welcher streamPort der Unit zugeordnet wurde. Diese Information ist nicht im Descriptor StreamPort enthalten.


    Jetzt gibt es drei Möglichkeiten.


    A: man sucht in der Datenbank -> müsste man in 3 tabellen audioUnit/videoUnit/sensorUnit suchen

    B: wir schauen in der URI nach ob da audioUnit,videoUnit oder sensorUnit auftaucht

    C: man schaut in der Dokumention nach, was man aufrufen kann -> geht nicht wir wollen ja HATEOAS


    Wie lösen das andere ?? Sie unterstützen ausschließlich nur audioUnits dann kann es nur ein audioMap u. audioCluster sein...


    Wir wollen es besser machen und haben das Problem gelöst :D...

    Solch eine API zu entwickeln ist nicht so einfach und ich hatte vorher keine Ahnung davon. Man lernt im Prozess und deswegen muss ich einige Dinge wieder über den Haufen werfen, da sie sich als unklug erweisen :/. das kostet natürlich Zeit, wenn man nur alleine daran werkelt.


    Noch kommen die meisten Daten leider noch nicht aus der Datenbank, ich muss erst das HATEOAS Thema abarbeiten. Da sich wie schon erwähnt die Json nochmal ändern. Wenn die Daten aus der Datenbank kommen kann ich wieder an dem Thema ansetzten was mit meine File basierten Store nicht ging.


    Dann kann man die Möglichkeiten der Datenbank voll ausnutzen und genau das ist so genial... Allerdings zeigt sich auch das mit der Datenbank trotz Optimierung die Sache aus bremst :( Also zumindest das füllen der Tabelle, in der Abfrage sieht es erst mal so aus als ob das keinen unterschied ausmacht. Ich habe schon an einer Lösung gedacht um das Problem zu kompensieren.

    Offenbar ließt man hier mit... Komisch das die Json Geschichte plötzlich in ähnlichen Projekten an fahrt aufnimmt ^^.


    Was aber keiner kann das es trotz des Controller möglich ist direkt mit dem Gerät zu kommunizieren. Deswegen kann ich in den Json Strukturen nur das darstellen was auch in der Antwort enthalten wäre. Um nicht weitere GET Anfragen auszulösen z.Bsp locale gibt ein _embedded Object in dem dann aus der Datenbank Daten drin stehen auf dem aus dem Descriptor verwiesen wird. Ist die Quelle direkt das Gerät gibt es dieses Object einfach nicht. Und der Clou die Objecte die in _links auf andere Descriptoren zeigen tragen alle ein Query Flag und führen direkt auf das Gerät. Man kann also auch ohne die Datenbank das Gerät lesen, muss aber auf einigen Komfort verzichten. Somit bleibt die Möglichkeit für das Testfeld erhalten.... Das zeige ich nochmal umfassend ^^

    So ich gebe mal ein kleinen Einblick in die HATEOAS Geschichte, nachzulesen hier https://en.wikipedia.org/wiki/HATEOAS


    Vorab, es gibt keine Norm wie man die Ressource abbildet. Es gibt hier zu mehre Konzepte aber keine eindeutige Regel. Ich habe mich für HAL https://en.wikipedia.org/wiki/Hypertext_Application_Language entschieden.


    Der Sinn der Aktion ist das der Client ohne die Strukture zu kennen durch die Ressourcen browsen kann. Der Client muss also sich die URIs anhand der Informationen zusammen setzten. Der Vorteil ist eben das man ohne die API zu kennen diese benutzen kann. Man muss also nicht in die Dokumentation schauen und diese verstehen was man nun als nächstes tun könnte.


    Der Entwickler von HAL liefert das Framework gleich mit um die Informationen zusammen zusetzen. Ein Tool ist der HAL Browser, diesen liefert der Webserver von meinen Controller aus :)... Er besitzt ja eine File API :thumbup:.


    Von Bild 1 -> 5 browsen wir jetzt durch die Ressourcen. Sollten sich die links ändern braucht man keine neue API-Version, der Client kommt ja weiterhin zum richtigen Ziel.


    Bild 1 zeigt den Einstieg

    Bild 2 welche API Version man benutzen kann

    Bild 3 wir wählen den path der API v1.0

    Bild 4 wir ersetzen den Platzhalter mit dem device und wählen die Ressource "discovery"

    Bild 5 wir befinden uns in der Ressource wo es nicht mehr weitergeht.


    Der Link in der Spalte "doc" führt zu Dokumentation welche die Ressource beschreibt.

    Die REST API ist schon wieder obsolet da ich sie nochmal anpassen muss, also die Json Antworten.

    Wird schwer werden je mehr die Fläche reflektiert. Mit den Geräte aus China wäre ich sowie vorsichtig. CO2 Röhren die nicht lange halten und kaum wirklich brauchbar sind. Sicherheitseinrichtungen -> keine <X... Alles was den Strahl nicht umlenkt löst sich auf, manchmal kommt der Strahl auch an der Seite mit einen lauten Knall wieder heraus und Teilt deine Frau in zwei Hälften.


    Einige Materialien entwickeln toxische Gase, generell nur mit Absaugung und Fachkunde Lasern. Die in Geräten beigelegte Schutzbrille ist ein schlechter Witz. Denn die Dioden strahlen in allen möglichen Modi und die Brille ist bei diesen Wellenlängen nutzlos.


    Schluss endlich kann es passieren das dein Chinaböller beim Zoll versackt. Wenn du die Sachkunde nicht nachweisen kannst. Genau das ist auch der Knackpunkt bei den Angeboten auf Ebay, Amazon und co., sie sind schlicht illegal.

    Kann es sein, dass das Wing direkt aus der Datei bootet?

    Was passiert, wenn man alle Dateien löscht?

    gar nichts :). Beim booten wird geschaut ob eine neue Firmware dort liegt und wenn ja wird sie auf dem Pult ausgerollt.


    Der Blitz schlug ein :D... Die Frage ist auch ob sich einen extra Karte überhaupt lohnt, bzw. sich dafür einen bedarf ergibt. Wenn man das nicht so macht, das die für den externen Slot nur ein riser ist, der die Karte trägt die auch intern verbaut wird müsste man die Sache zwei mal konstruieren werden.