Wenn Datei existiert, dann Benutzer anrufen... möglich?

  • Hallo zusammen,


    ich versuche mich gerade an meinem ersten Modul.


    Ich kann C++ und möchte ein relativ simples Modul schreiben.


    Ich würde gerne alle 10 Sekunden einen Netzwerkpfad pollen, ob hier eine Datei dort drinn liegt. Ich habe mir mal die Anweisungen in der Starface angesehen...
    Wenn ich hier eine einfache while schleife machen würde, dann benötige ich ein "Sleep". Ich habe keins gefunden.


    Bin ich hier vielleicht sogar auf dem Holzweg? Kann so ein Modul überhaupt automatisch und immer aktiv sein oder greifen die Module nur bei einer Aktion eines Benutzer (wie z.b. der Anruf)



    Danke

  • Hallo orange


    In der SF gibt's "Timer" EntryPoints.


    Damit kannst du eine Funktion alle [n] Sekunden/Minuten/Stunden/Tage .... auslösen.


    Wenn du z.b. alle 30 Sekunden eine Funktion ausführen willst.



    MfG


    Fabian

  • Vielen Dank für deine Antwort,


    also so wie ich das sehe brauche ich nur 5 Anweisungen und diesen Timer...



    Was würde passieren, wenn ein Modul in der Endlosschleife hängt? Checkt das die Starface? Oder lege ich dann meine TA lahm?



    Noch eine Frage, die Funktion "FileExists" kann ich hier einen Netzwerkpfad mit IP angeben?? z.B. " \\192.168.2.100\freigabe "??
    wie sieht es mit der Rechtevergabe für die Freigabe aus?

    Einmal editiert, zuletzt von orange ()

  • Hallo Orange


    Das Modul hat eine Maximale Schleifenanzahl, die Hardgecoded ist.


    Wenn du also das ganze in einer While Schleife ausführst, wird die SF das irgendwann abschiessen.


    FileExists geht auf den Netzwerkpfad Vermutlich nicht direkt.


    Du müsstest es über einen Umweg (SMBMount) auf die Freigabe machen, also Z.b.


    SMBMount ==> \\testserver\testfreigabe
    Danach den Fileexists Pfad auf \\[SMBMount Variable]\Test.txt setzen, und auf diesen String dann File Exists a



    MfG


    Fabian

  • Hallo Fabian,


    vielen Dank für die Antwort.


    Ich habe die Experten Einstellungen gefunden und dort ist auch der SMBMount versteckt. Ich habe mir das schon in die Richtung gedacht.
    Jetzt stelle ich mir aber die Frage, wie "teuer" der SMBMount ist, wenn der z.B. alle 5s ausgeführt wird...


    Ich habe jetzt leider auch zu wenig Erfahrung mit den Starface Modulen, ob das nicht auch möglich wäre das einmal zu machen und dann immer darauf zugreifen kann.


    Wenn ich mir die Windows Funktion "PathFileExists" ansehe, dann kann ich dort auf einen UNC Pfad limitiert zugreifenl, sofern Windows bereits die Rechte hat, oder der Ordner so Freigegeben ist, dass ich keine Rechte benötige.
    Die Frage ist ob dass die Starface auch kann.


    Was steckt hinter den Modulen? Java?

  • Hallo Orange


    Ja dahinter Stecken Java Klassen.


    Das Problem mit dem SMBMount und deren Leistungsauswirkung kann mit Modulpersistenten Variablen gelöst werden.


    Du kannst einen Mount ausführen, und diesen in einer Modulübergreifenden Variable ablegen, und überprüfen.


    Die Entsprechenden Bausteine sieht du im Expert Mode im 3. Tab von unten her (Variables)


    Quick and Dirty Codeschnipsel:


  • Wow vielen Dank für so viel Hilfe!



    Es ist wie gesagt mein erstes Modul, für einen C++ Programmierer ist es relativ neu so Programme zu erstellen, aber es ist eigentlich ganz komfortabel.



    Ich find den Code jetzt garnicht so Dirty, viel schöner hätte ich es nicht gemacht ;)


    Ich muss mir jetzt nur noch was einfallen lassen wie ich das Modul teste, ich würde es ungern an einer Produktiv laufenden Telefonanlage tun.



    // edit
    Nur mal so eine Idee, wenn ich eine Freigabe ohne User und Kennwort erstelle, also für jeden, dann müsste ich doch um den Mount drum rum kommen?

    Einmal editiert, zuletzt von orange ()


  • Du kannst z.B. eine STARFACE VM bei dir installieren (am besten in ein anderes Netz als deine Live-Anlagen Telefone) und das Modul darauf laufen lassen :)

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • Jetzt muss ich mich nochmal zurück melden, da irgendwie jetzt es ans testen geht und jetzt gehen die Probleme los...


    Ich hatte jetzt 5 Versionen, da habe ich immer schön Debug die ich eingebaut habe gesehen. Jetzt scheint es so, dass das Modul nicht mehr startet... Ich habe ganz am Anfang eine Ausgabe"start" die erscheint nicht mal mehr.


    Woran kann das jetzt liegen, dass das Modul nicht mal mehr startet, obwohl eigentlich alles ok sein sollte?



    // EDIT


    Offensichtlich funktionieren Log(DEBUG) ausgaben nicht mehr, bzw. werden nicht angezeigt, da ERROR funktioniert einwandfrei...

    Einmal editiert, zuletzt von orange ()


  • Ist DEBUG Logging in der Modulinstanz aktiv? Standardmäßig ist ERROR eingestellt.

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • hmm wenn ich nur die Funktion finden würde, dann könnte ich dir das sagen... Es scheint aber so, dass nur noch ERROR aktiv ist, die andere gehen nämlich nicht mehr...


    // edit
    das muss ich aber auch automatisch deaktiviert haben??!?

  • Muss man das dann Speichern? Denn nur auf "Aktualisieren" zeigt mir keine Debug Nachrichten... ERROR geht...


    Hi,


    damit wird das LogLevel geändert. Die Funktion ist keine Filteroption für das Frontend sondern es aktiviert ab dem Zeitpunkt des Speicherns das Logging auf der eingestellten Stufe für die Modulinstanz.

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!