PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programiersprache für "Robotorartiges Projekt" gesucht



Involut
25.05.2011, 10:46
Hallo zusammen,
Ich habe mir etwas überlegt wollte gerne fragen ob das überhaupt machbar ist und wenn ja welche Sprache sich dafür eignet.

Das Programm sollte auf einem Windows PC oder auch evtl einem PC mit Ubuntu laufen.
Dabei sollten der folgende Ablauf (z.b. Jede Minute) ausgeführt werden.

1) Eine oder mehrere IP-Addressen anpingen die idr immer erreichbar sind (z.B. www.gmx.de)

2.1) Falls der Ping erfolgreich ist, ist alles OK und es geht nach einer Minute mit Punt 1) weiter.

2.2) Falls der Ping nicht erfolgreich beantwortet wird heißt das, dass mein Router evtl abgestürzt ist. Dann geht es mit Punkt 3) weiter.

3) Jetzt soll sich das Programm auf dem Webinterface des Routers einloggen und diesen neu starten (das ist ein Menüpunkt).

Am besten wäre es wenn dann noch ein Logfile geschrieben wird, damit auch sieht ob bzw wie oft ein Ereignis aufgetreten ist.

Was haltet Ihr von diesem Internet Reset Roboter?

Das Ziel ist über dyndns sich von außen mit einen pc bei mir zu Hause zu verbinden. Nur leider stürzt meine Fritzbox (zwar selten aber immer noch zu oft) immer dann ab wenn ich es testen will.

Danke und Gruß

Involut

021aet04
25.05.2011, 10:57
Hast du das Logfile des Routers (falls vorhanden) schon angeschaut?

Bei meinem Router (ist aber ein Anderer) ist das Logging automatisch eingeschaltet. Es wird alles protokolliert(Start, Netzwerk bzw Internet Online,.....)

Solche Programme, die auf mehreren Systemen (verschiedene) laufen sollen schreibt man normalerweiße in C. Wie das mit Linux bzw Windows geht weiß ich nicht. Für reine Win. Systeme kannst du Visual C von Microsoft nehmen.

MfG Hannes

DanielSan
25.05.2011, 11:02
Hi,

Ich würde das mit Autoit machen. Das schliesst allerdings Ubuntu aus!
Da schreibst du dir dann einfach ein kleines Skript, welches einmal in der Minute pingt. Anschliessend kannst du mit autoit deinen Browser (InternetExplorer oder Firefox) steuern. Sowas ähnliches hab ich auch schonmal gemacht.

Gruß Daniel

Involut
25.05.2011, 19:40
Hallo und vielen Dank für die Antworten.

Für visual studio habe ich leider keine Lizenz deswegen scheidet es wohl aus.

Autoit scheint wohl ziemlich gut für sowas zu sein. Ich habe auch schon dem Ping Befehl getestet.

Allerdings habe ich keine Idee wie ich den Browser starten und sogar fernsteuern soll.
Wenn das auch so einfach wie das pingen geht wäre ich ja schon fast am Ziel...

DanielSan
25.05.2011, 20:21
Ganz sooo einfach ists nicht aber es ist dennoch einfach.

Ich würde dir dabei helfen! Dazu müsste ich allerdings wissen, welchen Browser du verwenden möchtest. Ich könnte dir bei IE und FF helfen.

Gruß Daniel

shedepe
25.05.2011, 20:38
Also ich würde .Net (C# , VB.Net) verwenden. Da gibt es die entsprechenden Komponenten die du dafür benötigst bereits im Framework und dank Mono sind .Net Programme auch unter Ubuntu ausführbar.
Von Visualstudio gibt es auch die kostenlosen Express versionen

DanielSan
25.05.2011, 20:56
.Net wäre mit kanonen auf spatzen schiessen. Autoit ist wie der name schon sagt für sowas gemacht. Können die express versionen denn ne exe erstellen?

Gruß daniel

shedepe
25.05.2011, 21:09
Ja klar können die ne exe erstellen. Man muss sie zwar aus dem Debug ordner des Projekt "rausfischen" aber es geht.
Und ob es mit kanonen auf Spatzen geschossen wäre hängt ganz davon ab ob man die Sprache usw. schon kann oder nicht.
Bei AutoIt ist halt die Frage ob es unter Ubuntu läuft.

DanielSan
25.05.2011, 22:39
Und ob es mit kanonen auf Spatzen geschossen wäre hängt ganz d Sprache usw. schon kann oder nicht.
Ich würde es ehr so ausdrücken: es hängt davon ab ob man das .net bereits heruntergeladenund installiert hat ;-).
Denn wenn man eine programmiersprache bereits kann, lernt man andere sprachen viel schneller.

So wie ich es verstanden hab ist win wichtiger als ubuntu. Aber autoit scripte laufen nicht/schlecht unter ubuntu.

Involut
26.05.2011, 16:43
Hallo und nochmal Danke für die Hilfe.

Ich habe jetzt AutoIt genommen, was nicht heißen soll das .net jetzt nicht geeignet wäre. Ich wusste nur nicht nicht das es eine kostenlose Version gibt und da hatte ich Autoit auch schon installiert.

Ich habe jetzt ein Skript das www.gmx.de anpingt und wenn es nicht erreichbar ist meine Fritzbox neu startet.

Das ist schon mal mehr sehr viel wert weil ich das dann auch meiner Frau geben kann, und immer wenn das Inet mal wieder weg ist dann muss sie nur doppelklicken und wenn es wirklich weg ist gibts einen Neustart.

Jetzt wäre es natürlich noch interessant das Skript nach einem Zeitplan (z.B. einmal die Stunde) auszuführen.

Habt Ihr eine Idee wie man das elegant hinbekommen könnte?
Ich könnte natürlich ein 2tes Skript schreiben das endlos läuft und alle 60 min das erste aufruft...aber irgendwie kommt mir das nicht so "elegant" vor.

nanoBean
26.05.2011, 17:51
Hi,

Wenn du dich etwas mit HTML und Formularen auskennst, würde ich das mit Linux und Shell-Skripten machen (Shell-Skripte sind aber etwas gewöhnungsbedürftig; ggf. kannst du auch perl oder python o.ä. verwenden). Crontab einrichten, der alle Stunde dein Script ausführt (oder auch alle 5 min). Das Anmelden am Router dann per curl und auch das Ausführen des Router-Resets. Wenn du dich jedoch nicht mit HTML auskennst, nimm irgendein Tools, was mit Makros o.ä. auf einer graphischen Oberfläche arbeitet (bzw AutoIt usw). Vielleicht taugt auch das curl-Tutorial auf youtube was (hab keine Lust mir das anzusehen). Laut Beschreibung zeigt es jedoch, wie man sich mit curl auf einer Webseite anmeldet. Bei deinem Router wäre es ja dann ähnlich.

DanielSan
26.05.2011, 18:06
Mach doch einfach ne endlos Schleife in das erste Skript. Das überprüft dann alle 60min obs Internet noch geht und dann fängt es eben von vorne an.
Da brauchst du kein zweites script und es ist "elegant".

shedepe
26.05.2011, 18:43
Unter Windows müsste man das Skript auch mithilfe des Taskplaners alle 60min ausführen können.
PS. der Taskplaner heißt unter Win7 und Vista aufgabenplanung

Involut
28.05.2011, 14:33
Hi,
ob ich nun Daniels Methode wähle oder den Taskplaner bemühe muss ich noch entscheiden wenn mein Notebook endlich kommt.

Ich hatte eigentl. schon gestern damit gerechnet aber naja...

Dieses NB wollte ich dann als "Server" einsetzten auf dem dann (unter anderem) das Skript läuft.

An dieser Stelle nochmal vielen Danke an ALLE und spezial an DanielSan.