Jump to content

AuronX

Members
  • Gesamte Inhalte

    887
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von AuronX

  1. @Nic: Wie gesagt, es gibt Bindings für VB.Net! Denn die C#-Bindings sollten das Problemlos unterstützen. Was fehlt ist lediglich die entsprechende Doku.

     

    Allerdings gebe ich dir gerne recht, dass es nie eine schlechte Idee sein kann sich C# anzuschauen :D

     

    edit: ich nehme alles zurück und behaupte das gegenteil! Folgendes Problem: Das Benutzen von C#-DLLs in VB.Net funktioniert nur, wenn die DLL auch CLS-compliant ist (das ist der gemeinsame Sprachstandard von z.B. C# und VB.Net). Allerdings sind unsigned integers (uint) nicht Teil der CLS. Wenn jetzt also eine C#-Bibliothek Funktionen anbietet die ein uint erwarten, dann kann man diese aus VB.Net gar nicht nutzen, weil VB.Net kein uint kennt. Wenn ich das gerade richtig überblicke nutzt die aktuelle Bibliothek an 267 Stellen uint oder ushort als Parameter oder Rückgabewert. Damit ist die Bibliothek so nicht in VB.Net nutzbar. Ich kann im Moment nicht einschätzen, ob und wie gut es möglich ist diese Vorkommen durch andere Datentypen zu ersetzen. Dazu würde ich dann aber demnächst zumindest meine Meinung äußern können :D

     

    Viele Grüße Jan

     

    ergänzende Kurzanalyse: Es gibt auf jeden Fall Methoden wo ushort nicht notwendig ist. Beispiel: BrickletAnalogOut.SetVoltage(ushort voltage).

    Laut Spezifikation sind für voltage Werte von 0-5000 erlaubt. Das bedeutet zweierlei Dinge:

    1. Sowohl der Wertebereich von short also auch der von ushort umfassen den vollen Bereich der Spezifikation

    2. ushort bietet den (scheinbaren) Vorteil, dass man keine ungültigen negativen Spannungen angeben kann. Allerdings ist es noch immer möglich höhere als die spezifizierten Spannungen anzugeben. Insofern wäre m.E. ein Range-check sowieso von Vorteil, wenn man den macht, dann kann man auch direkt für beide Grenzen (0 und 5000) testen und ggf. eine Exception werfen.

  2. Falls du Angst hast nicht genügend Strom zu bekommen gibt es ja auch noch eine Alternative:

     

    ein Stack pro Lichtquelle

    Du könntest eine Step-Down-Supply + Master pro Lichtquelle betreiben, dann hätte jede Quelle die volle Stromversorgung und müsste sie sich nicht mit den anderen teilen. Du brauchst dann aber auch noch eine Master-Extension (Kabellos oder mit Kabel) um die einzelnen Stacks zu verbinden. Ist aber zugegeben auch etwas teuer...

    [edit: ich stelle gerade fest, dass du möglicherweise sogar schon so gerechnet hast...]

     

    externer Dimmer?

    Ich frage mich ob es möglich ist einen externen PWM-Dimmer mit Potenziometer zu nutzen. Die Idee wäre, dass man die Poti-Ansteuerung durch eine TF-Ansteuerung (Analog-Out???) ersetzt und TF dadurch nur die Regelung übernimmt, die Versorgungsspannung der LED aber nicht durch die TF-Teile bereitgestellt wird. Wenn das ginge wäre auch gleich das PWM-Problem erschlagen, allerdings fehlt mir hier das elektrotechnische Wissen...

     

    Wegen dem PWM frage ich mich außerdem gerade, ob man dafür nicht auch das DC-Brick verwenden kann. Das können dir die TF-Leute bestimmt besser sagen, aber ich hätte gedacht, dass das DC-Brick nix anderes tut als ein Gleichstromgerät per PWM zu kontrollieren.

     

    LG

    Jan

  3. Dass es in Java geht habe ich ja nicht bestritten, dennoch finde ich die andere Lösung schöner. Im übrigen wäre mE eine eigene Datei mit public Device sinnvoller als das Device in der IPConnection. Das Device in der IPConn ist ja eher ein Hack, weil Java die Klassen<->Datei-Beziehung enforced.

     

    P.S.: Im übrigen hab ich mich sogar zunächst gewundert, wo denn das Device steckt, da es keine Device.java gab ;)

  4. Ist so ein Long Polling Call zuverlässig genug für Echtzeitverarbeitung von Daten ?

    Und werden durch das Soap-Protokoll hier nicht unnötig ein Datenoverhead (Envelopes) geschaffen ?

     

    Vermutlich würde niemand Echtzeit-verarbeitung mithilfe von Webservices machen und natürlich hat Soap overhead. Auf der Haben-Seite steht allerdings eine Plattformunabhängige Zugriffsmöglichkeit, insofern keine dumme Idee, da oft keine Echtzeit nötig ist (Wetterstationen, Lichtautomatik, etc.).

     

    Es ist ja btw. schon strittig ob es ne gute Idee ist, Echtzeitverarbeitung unter Betriebssystemen wie Windows 7 oder Linux zu machen, beide bieten keine "hard realtime". Für sowas nutzt man dann eher Windows CE oder RT-Linux.

  5. Ist ja spannend... habe mir auf deinen Post hin die Java-API das erste mal angeschaut. Device ist ja selbst nicht public, wird aber in der public Methode einer public Klasse als Parameter verwendet (IPConnection.addDevice()), ist also am Ende schon irgendwie "sichtbar". In der DotNet-Welt (also z.B. C#) würde das zu einem Compile-Fehler führen, weil da nichts nach außen sichtbar sein darf, was nicht selbst auch als public deklariert ist. Das macht auch Sinn ^^

     

    Insofern würde ich dir rechtgeben, das Device gehört public.

  6. Weil ich gerade den "you will never get here" Kommentar gelesen habe:

     

    try:
        # die ursprüngliche while-schleife
    except KeyboardInterrupt:
        print('Received request to stop the program (Ctrl+C)')
    
    # You will now get here 
    ipcon.destroy()
    

     

    Viele Grüße

    Jan

     

    P.S.: Hoffe keine Syntaxfehler gemacht zu haben, aber denke das Grundprinzip erschließt sich auch so ;)

×
×
  • Neu erstellen...