C# Programm mit niedrigem Stromverbrauch laufen lassen



  • Hallo,

    ich habe mit VS2013 ein C#/.NET Programm geschrieben, das die Belichtung einer Kamera über längere Zeit steuert. Das ist für eine Zeitraffer-Aufnahme mit Tag/Nacht Übergang. Es läuft problemlos über viele Stunden auf meinem Notebook, vorausgesetzt es ist eine Steckdose vorhanden. Denn mehr als 3-4 Stunden würde der Notebook-Akku nicht durchhalten.
    Ich suche jetzt eine Lösung, um dieses Programm möglichst stromsparend laufen zu lassen, damit ich es auch dort verwenden kann wo es keine Steckdose gibt. Besteht die Möglichkeit dieses Programm auf einem kleinen Einplatinen-Computer (Raspberry?) laufen zu lassen? Erschwerdend kommt allerdings hinzu, dass eine DLL verwendet wird, für die ich keinen Source-Code habe. Ich vermute dass das nicht geht, aber weil ich mich damit nicht auskenne, frage ich einfach mal in die Runde.

    Gruß
    Michael



  • Also auch wenn ich ein Freund von .NET bin...Wenn es um so etwas geht und du wirklich alles kontrollieren möchtest, dann würde ich C++ oder so nehmen. Jedenfalls ne Umgebung/Sprache in der ich recht viel selbst kontrollieren kann.

    Und dann kannst du anfangen energieoptimiert zu programmieren. Vielleicht noch mit einem Microcontroller oder so.



  • Was macht das Programm? Wie oft macht es das? Wie oft wacht es pro Sekunde auf? Ist ne GUI im Spiel? Desktop sichtbar? Desktop-Composition aktiv?

    micha7 schrieb:

    Besteht die Möglichkeit dieses Programm auf einem kleinen Einplatinen-Computer (Raspberry?) laufen zu lassen? Erschwerdend kommt allerdings hinzu, dass eine DLL verwendet wird, für die ich keinen Source-Code habe.

    Gibt es für die DLL denn ne ARM Version? Nein? Na dann wird das wohl auch nix mit dem Raspberry.
    Gibt aber auch stromsparende x86 Computer.
    Guckst du z.B. hier
    http://geizhals.eu/?cat=mbson



  • hustbaer schrieb:

    Gibt es für die DLL denn ne ARM Version? Nein? Na dann wird das wohl auch nix mit dem Raspberry.

    OK, du bestätigst das was ich bereits vermutet habe. Die DLL gibt es meines Wissens nicht für ARM -- also geht das nicht. Ich werde die Anwendung wohl erst mal auf solche Orte begrenzen wo ein Stromanschluss vorhanden ist. Zumal auch noch Strom benötigt wird um nachts das Objektiv zu beheizen, damit es nicht beschlägt.

    Gruß
    Michael



  • micha7 schrieb:

    beheizen

    Auja da kannst du vermutlich wohl gleich die dicken Akkus auspacken. Der Stromverbrauch eines Notebooks sollte dabei dann nicht mehr so gross mit reinspielen.



  • ick kenne mich mit diesem net-zeug nicht aus, aber vielleicht gibt es eine wait- oder sleep-funktion, die den prozess für eine gewisse zeit schlafen legt.

    das könnte vielleicht den energieverbrauch senken.



  • Andromeda schrieb:

    ick kenne mich mit diesem net-zeug nicht aus, aber vielleicht gibt es eine wait- oder sleep-funktion, die den prozess für eine gewisse zeit schlafen legt.
    das könnte vielleicht den energieverbrauch senken.

    Es ist nicht so dass mein Programm viel Rechenleistung braucht. Da wird nur alle 10 Sekunden eine kleine Berechnung gemacht um Belichtungszeit, Blende und ISO-Wert zu bestimmen und über USB zur Kamera zu senden. Oder anders ausgedrückt: Egal ob mein Programm läuft oder nicht, das Notebook frisst in jedem Fall zu viel Strom.
    Ich würde das ganze ja gerne auf einen Microcontroller übertragen. Die eigentliche Berechnung wäre gar kein Problem. Das Problem ist, dass ich für die Kommunikation mit der Kamera die DLL von Canon verwenden muss.

    Gruß
    Michael



  • Du könntest Canon anschreiben ob das Protokoll dokumentiert ist. Wahnsinnig kompliziert kann das eigentlich nicht sein.



  • hustbaer schrieb:

    Du könntest Canon anschreiben ob das Protokoll dokumentiert ist. Wahnsinnig kompliziert kann das eigentlich nicht sein.

    Da sehe ich wenig Aussicht auf Erfolg. Die DLL bekommt nach auch nur nachdem man begründet hat wofür man sie braucht und nach mehreren Tagen Überprüfung.

    Gruß
    Michael



  • micha7 schrieb:

    Da sehe ich wenig Aussicht auf Erfolg. Die DLL bekommt nach auch nur nachdem man begründet hat wofür man sie braucht und nach mehreren Tagen Überprüfung.

    Wenn sie dir schon eine Bibliothek geben, mit der du das Protokoll verwenden kannst, ist es nur ein kleiner Schritt dazu dir Details über das Protokoll zu verraten.

    Was ist das denn für eine so geheimnisvolle Bibliothek?!



  • inflames2k schrieb:

    Was ist das denn für eine so geheimnisvolle Bibliothek?!

    http://www.didp.canon-europa.com/



  • Wie man die DLL verwendet ist übrigens sehr schön auf der Seite von Johannes Bildstein beschrieben:
    http://www.codeproject.com/Articles/688276/Canon-EDSDK-Tutorial-in-Csharp#Init


Log in to reply