Hallo liebes Forum! Ich habe ein kleines Hobby-Projekt am Laufen, welches folgendermaßen aussieht. Auf einem (meinem) Webserver sollen Files liegen, welche Befehle für eine Steuerung eines Raspberry Pi beinhalten. Beispiel: http://meinwebserver.de/data/befehlfile1.x http://meinwebserver.de/data/befehlfile2.x Eine Java-Anwendung die auf dem Raspberry Pi laufen soll, soll diese Daten ("befehlfile1.x") abholen bzw. "parsen" und entsprechend die Befehle abarbeiten (GPIOs schalten). So ein befehlfile beinhaltet dann eine Anordnung von Befehlen zur Steuerung der GPIOs: >GPIO1:AN:30s >GPIO2:AN:10s >GPIO1:PWM:AN:50%:20s >... Die Java-Anwendung listet sämtliche auf dem Webserver befindliche Befehlfiles auf, die der Anwender dann auswählen und ausführen kann. Nun meine Frage(n): - In welchem Format sollten am Besten die Befehlfiles beschrieben sein? Würde sich hierfür XML eignen? Im einfachsten Fall wären es vermutlich Textfiles, da Java aber meines Wissens XML-Parser bietet, könnte man diese direkt nutzen - Ist es mit Java möglich, auf solche Daten eines Webservers zuzugreifen und diese generell abzuholen/zu parsen? Ich wäre für eure Ratschläge sehr dankbar und freue mich über Antworten! Gruß Jonas
JK schrieb: > - Ist es mit Java möglich, auf solche Daten eines Webservers > zuzugreifen und diese generell abzuholen/zu parsen? Klar, hier ein Beispiel, das den aktuellen Dollarkurs von der EZB abholt:
1 | private BigDecimal getDollarKurs() { |
2 | BigDecimal ret = null; |
3 | try { |
4 | InputStream is = new URL("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml").openStream(); |
5 | DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
6 | DocumentBuilder db = dbf.newDocumentBuilder(); |
7 | Document doc = db.parse(is); |
8 | |
9 | NodeList nodeList = doc.getElementsByTagName("Cube"); |
10 | |
11 | for (int i = 0; i < nodeList.getLength(); i++) { |
12 | Node node = nodeList.item(i); |
13 | if (node.getNodeType() == Node.ELEMENT_NODE) { |
14 | Element element = (Element) node; |
15 | if (element.getAttribute("currency").equals("USD")) { |
16 | ret = new BigDecimal(element.getAttribute("rate")); |
17 | } |
18 | |
19 | } |
20 | } |
21 | } catch (IOException | ParserConfigurationException | SAXException e) { |
22 | e.printStackTrace(System.out); |
23 | } |
24 | return ret; |
25 | } |
>lar, hier ein Beispiel
Ah, super, vielen Dank erstmal! :)
Also würdest du die Steuerbefehle in XML notieren?
Java unterstützt XML und wenn du wenig Ram hast kannst du den SAX Parser nehmen aber aufpassen nicht alle Zeichen sind in XML erlaubt .. die musst du dann in ein CDATA Tag verpacken.
JK schrieb: > Also würdest du die Steuerbefehle in XML notieren? Kann man machen, aber schlanker ist JSON.
Könnte man nicht gleich ne scriptsprache für die "befehlsfiles" nehmen? Z.B. Lua ist sehr beliebt.
Wichtig wäre außerdem noch, dass man aus dem XML-File/JSON-File eine HTML generieren kann, damit man die Befehlssätze "schön leserlich" als HTML-Datei im Webbrowser einsehen kann.
Du kannst dir als Tip auch mal Node-Red anschauen. Ist bei dem Debian auf dem Raspberry meist schon installiert.
JK schrieb: > Wichtig wäre außerdem noch, dass man aus dem XML-File/JSON-File eine > HTML generieren kann, damit man die Befehlssätze "schön leserlich" als > HTML-Datei im Webbrowser einsehen kann. XML kannst du mit XSLT direkt nach HTML (oder beliebige andere Markups) transformieren. Die Java-Runtime-Lib hat dazu alles schon drin. Bei JSON geht das sicher auch, aber nur mit zusätzlichen Libs.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.