Ich würde die Daten sowieso in einem Array vorhalten.
Die Suche in einem Array ist gegenüber der Suche in einem Listview um ein vielfaches schneller.
Mit _GUICtrlListView_AddArray wird das Listview auch viel schneller gefüllt, als bei Einzelbefehlen (GUICtrlCreateListViewItem).
Und das Edit-Control für die Gesamt-Anzeige kannst Du doch in einem Child-Fenster (Popup) anzeigen.
Beiträge von Oscar
-
-
Dann würde ich das Problem anders lösen.
In der Listview eine gekürzte Version und bei Doppelklick auf den Eintrag in einem Edit-Control (evtl. in einem Zusatzfenster) mehrzeilig anzeigen. -
[verschoben nach Hilfe und Unterstützung]
Und hier die gewünschten Änderungen:
AutoIt
Alles anzeigen#include <EditConstants.au3> #include <FileConstants.au3> #include <GUIConstantsEx.au3> $hGUI = GUICreate("App", 500, 200) $idRadio_1 = GUICtrlCreateRadio("path01", 10, 10, 60, 20) GUICtrlSetState(-1, $GUI_CHECKED) $idPath_1 = GUICtrlCreateInput('', 80, 10, 360, 20, BitOR($ES_LEFT, $ES_AUTOHSCROLL, $ES_READONLY)) $idPathSelect_1 = GUICtrlCreateButton('...', 445, 10, 30, 20) $idRadio_2 = GUICtrlCreateRadio("path02", 10, 50, 60, 20) $idPath_2 = GUICtrlCreateInput('', 80, 50, 360, 20, BitOR($ES_LEFT, $ES_AUTOHSCROLL, $ES_READONLY)) $idPathSelect_2 = GUICtrlCreateButton('...', 445, 50, 30, 20) $idButton = GUICtrlCreateButton("Run", 10, 100, 80, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $idPathSelect_1 $sPath_1 = FileOpenDialog('Bitte die Datei auswählen', '', 'All (*.*)', $FD_FILEMUSTEXIST, '', $hGUI) If Not @error Then GUICtrlSetData($idPath_1, $sPath_1) EndIf Case $idPathSelect_2 $sPath_2 = FileSelectFolder('Bitte Verzeichnis auswählen', '', 0, '', $hGUI) If Not @error Then GUICtrlSetData($idPath_2, $sPath_2) EndIf Case $idButton If BitAND(GUICtrlRead($idRadio_1), $GUI_CHECKED) Then MsgBox(0, '', "Option01") Else MsgBox(0, '', "Option02") EndIf EndSwitch WEnd -
Und diese Logdaten willst/kannst Du nicht weiter aufbereiten/aufteilen?
Ich meine, das (600-700 Zeichen/Zeile) kann doch keiner vernünftig lesen. Mal abgesehen davon, dass das auf keinen Monitor in eine Zeile passt (ohne zu scrollen). -
-
Ich habe ein Ordner nach Dateien ausgelesen mit _FileListToArray.
Diese auch in das Auswahlfeld eingebunden.
Doch ich bekomme nur den kompletten Pfad angezeigt.Warum benutzt Du local $sFileOpenDialog1= _FileListToArray($sFileOpenDialog, Default, Default, True) dann "True" als letzten Parameter, wenn Du doch gar nicht den ganzen Pfad haben willst?
Setze dort einfach "false" ein oder lasse den Parameter weg (false ist default) und Du bekommst den relativen Pfad (in Deinem Fall nur die Dateien). -
Der "Trick" dabei ist ja, dass es sich nicht um eine USB-Übertragung handelt.
Auf beiden Seiten des USB-Kabels befinden sich RS-485 Wandler (siehe obiges Fritzing-Bild), die sind für eine Leitungslänge von bis zu 1200m ausgelegt.
Da sind die 5m eher am unteren Ende.
Ich hatte eher Bedenken wegen der 5V-Spannungsversorgung, weil ich die ja auch über das Kabel zum Nano schicke. Aber auch da ist alles im grünen Bereich (4.85V). -
Heute ist das 5m USB-Kabel (flache Ausführung) angekommen.
Das ist sogar flacher als ich dachte. Nur mal als Vergleich: der Micro-USB-Stecker ist vorne 1.8mm dick und das flache USB-Kabel ist nur 1.3mm dick.
Wenn jetzt auch noch die Übertragung fehlerfrei funktioniert, dann bin ich sehr zufrieden.
Edit: Gerade angeschlossen. Es funktioniert!
-
Ich möchte anhand des Datums die Zeile und damit den Text ermitteln.
Ach, es handelt sich gar nicht um ein Fremdprogramm, sondern eine AutoIt-GUI?
Den Inhalt des Edit-Controls kannst Du mit GuiCtrlRead auslesen. Mit StringSplit(GuiCtrlRead($Edit), @crlf, 3) trennst Du den Inahlt in ein Array auf und dann gehst Du in einer Schleife die einzelnen Einträge durch und vergleichst die ersten 10 Zeichen mit dem gewünschten Datum. Hast Du das richtige Datum gefunden, ist der Rest des Array-Elemts der gewünschte Text. -
WLAN wäre als Übertragung zwischen Basis und Außensensor eigentlich schon overkill.
Ich habe hier schon mit NRF24L01-Modulen getestet. Die senden ebenfalls im 2.4GHz Bereich und verbrauchen sehr wenig Strom.
Diese Module wären meine Wahl, wenn ich eine Funkverbindung haben wollte.
Wie ich aber oben bereits geschrieben habe, will ich gar keine Funkverbindung. Ich ziehe ein Kabel (USB-Kabel als flache Variante) vor, weil ich so auch das Problem der Spannungsversorgung in den Griff bekomme.
Bei der Funk-Variante müsste ich mit Batterien oder Akkus arbeiten. Batterien muss man austauschen. Akkus laden, evtl. mit Solarzelle. Akkus altern relativ schnell und werden unzuverlässig.
Außerdem gilt es zusätzliche Probleme bei der Funkverbindung in den Griff zu kriegen: Sendezeitbegrenzung (ich habe mal was von max. 10% Kanalbelegung gelesen) und andere Sender (WLAN, Bluetooth, etc.).
Du siehst, ich habe mir schon darüber Gedanken gemacht und bin zu dem Schluss gekommen, dass ein Kabel (für mich) die bessere Alternative ist. -
ich bearbeite damit sehr große pdf dateien. die sind immer nach selben schema aufgebaut.
Und das hast Du vor 7 Jahren (Einsteigerproblem) auch schon gemacht?
-
Ja, es tut mir leid, dass ich mich so unklar ausgedrückt habe.
Aber wenn Du eine umfangreiche Antwort erwartest, dann solltest Du die Frage schon genauer stellen (welches Programm, welches Control-Element, wie sieht die Ausgabe von "Au3info.exe" aus). -
Er schrieb von einem 'EdithControl'. Meinste das klappt da auch?
Ich weiß ja nicht, wie er seine Edith kontrolliert, aber wenn er da einen guten Kontrolleur hat, dann traue ich ihm das zu.

-
Wo besteht der Unterschied zu einem Gerät im Handel das das ganze schon kann?
160€ finde ich schon ziemlich happig, das muss es doch günstiger schon fertig geben oder nicht?Nunja, wie ich bereits schrieb. Billig ist das Ganze nicht und die Fertiggeräte sind auch günstiger.
Wenn Du das GPS-Modul (25,-€) und den Lichtsensor (10,-€) wegläßt, geht das schonmal 35,-€ billiger.
Dann noch ein kleines Display, was man auch mit dem UNO/Nano ansteuern kann und es wird nochmal 30,-€ billiger. -
Wie hoch werden von Dir die gesamten Kosten für Hareware usw. beziffert?
Ohoh, eigentlich wollte ich das gar nicht so genau wissen.

Aber ich habe mal eine Aufstellung gemacht:
Kosten (€):
22,40 Windmesser für Ventus Funkwetterstation (https://www.reichelt.de/Wetterstationen/VENTUS-W132/3/index.html?ACTION=3&LA=446&ARTICLE=132595&GROUPID=3848&artnr=VENTUS+W132&SEARCH=Windmesser%2Bf%25FCr%2BVentus%2BFunkwetterstation)
12,95 Regenmesser für Ventus Funkwetterstation (https://www.reichelt.de/Wetterstationen/VENTUS-W174/3/index.html?ACTION=3&LA=446&ARTICLE=132594&GROUPID=3848&artnr=VENTUS+W174&SEARCH=Regenmesser%2Bf%25FCr%2BVentus%2BFunkwetterstation)
24.80 GPS-Modul U-blox NEO-6M (https://www.amazon.de/Electronic-Horizontal-Chargeable-Quadcopter-Positioning/dp/B01JOTM6CW/ref=sr_1_5?s=computers&ie=UTF8&qid=1488216098&sr=1-5&keywords=gps+neo)
17,99 Mega 2560 R3 Board (https://www.amazon.de/SunFounder-ATmega2560-16AU-Board-compatible-Arduino/dp/B00D9NA4CY/ref=pd_sim_147_7?_encoding=UTF8&psc=1&refRID=QE690JWGG76J998CRWCB)
18,99 SainSmart 3.2 TFT LCD (https://www.amazon.de/SainSmart-3-2-TFT-LCD-Display/dp/B008HWL8QS/ref=pd_bxgy_147_2?_encoding=UTF8&psc=1&refRID=GXGZWK0HGQQHTM80045F)
12,00 AptoFun TFT 3.2" Shield (https://www.amazon.de/AptoFun-TFT-Shield-Arduino-Mega2560/dp/B00Y0XV1KG/ref=pd_sim_147_5?_encoding=UTF8&psc=1&refRID=ZAA1V3KJC74F5AAVH9J0)
10,20 Adafruit TSL2591 Digitaler Lichtsensor (https://www.amazon.de/Adafruit-TSL2591-Digitaler-Lichtsensor-Dynamic/dp/B00M40Y0NW/ref=sr_1_1?ie=UTF8&qid=1488216765&sr=8-1&keywords=TSL2591)
8,88 Aukru Netzteil 5V 2A (https://www.amazon.de/Aukru-Netzteil-hdmi-splitter-Switch/dp/B00P0XXYJG/ref=pd_sbs_147_6?_encoding=UTF8&psc=1&refRID=ASRVAYAMYFJS9T7V87NE)
5,99 Fivesix DS3231-RTC-Modul (https://www.amazon.de/Fivesix-AT24C32-Precision-Echtzeituhr-Speichermodul/dp/B012JRZ6QY/ref=pd_sbs_147_2?_encoding=UTF8&psc=1&refRID=7KN0R3BEEDXXGHGXFXYY)
5,50 DHT22/AM2302 zwei Stück (https://www.amazon.de/AM2302-digitaler-Messung-Feuchtigkeit-Temperatur/dp/B01N44IRQ6/ref=sr_1_14?ie=UTF8&qid=1488216482&sr=8-14&keywords=am2302)
4,70 Arduino Nano (https://www.amazon.de/CH340H-Mikro-Controller-Board-Arduino-Nano-ATmega328P/dp/B01L1TMY2A/ref=sr_1_10?ie=UTF8&qid=1488216922&sr=8-10&keywords=arduino+nano)
3,12 BMP180 Luftdruck-Modul (https://www.amazon.de/BMP180-Digitale-Luftdruck-Sensor-Arduino/dp/B00N1TSTPA/ref=sr_1_1?ie=UTF8&qid=1488216569&sr=8-1&keywords=bmp180)
3,72 TTL auf RS-485 Modul (https://www.amazon.de/RS-485-Module-Arduino-MAX485-Chipsatz-Brandneu/dp/B00J3PC1T6/ref=sr_1_11?ie=UTF8&qid=1488216635&sr=8-11&keywords=rs485)
3,21 Breadboard 830 Kontakte (https://www.amazon.de/Steckbrett-Breadboard-Experimentierboard-Steckplatine-Kontakte/dp/B009P04XWW/ref=sr_1_6?s=computers&ie=UTF8&qid=1488216029&sr=1-6&keywords=breadboard)
1,76 Steckbrett Drahtbrücken 65 Stück (https://www.amazon.de/wiederverwendbare-Steckbrett-Drahtbr%C3%BCcke-Schaltung-Schaffen/dp/B008U4ZOLI/ref=pd_bxgy_107_2?_encoding=UTF8&psc=1&refRID=QYS01PF3VHSTQYQBMJS3)
Alles zusammen rund 160,-€ wenn man nichts davon bereits rumliegen hat und das alles einzeln bestellen muss.
Einige Teile mag es anderswo (ebay, aliexpress) günstiger geben. Keine Ahnung! Da muss jeder selbst schauen.
Meist sind die Einzelpreise günstiger, wenn man gleich mehrere kauft. Deswegen ist es schwer die Kosten zu beziffern.Nicht eingerechnet sind die Gehäuse für die Basis und den Außensensor. Außerdem das Kabel zwischen den Beiden.
Letztlich muss das Ganze auch noch dauerhaft (nicht auf Steckbrett) zusammen gebaut werden. Also noch eine Leiterplatte, Lötzinn, etc...Es sollte jedem klar sein, dass man zu dem Preis auch eine komplette Wetterstation mit Funk-Außensensor und schicken Innengehäuse bekommen kann.
Es ist also nicht so, dass man mit dem Selbstbau Kosten sparen kann. Für mich ist es der Spaß am Selbstbau und der Programmierung.Aber Du schreibst, dass Du ein "Arduino Laie" bist. Das ist keine gute Voraussetzung für so einen Nachbau.
Vielleicht solltest Du Dir erstmal ein Arduino-Starterkit kaufen. Am besten eines mit einem Arduino Mega2560.
Den, und einige der anderen Teile, kannst Du dann für das "große" Projekt weiterverwenden.
Auf jeden Fall solltest Du erstmal Erfahrungen sammeln mit einfachen, kleinen Schaltungen.
Als Starterkit mit einem Mega2560 würde ich sowas empfehlen: Arduino-Starterkit -
-
Heute kamen die Teile für die RS485-Verbindung.
Ich habe die Verbindung jetzt mittels USB-Kabel (USB-A (Basis) auf USB-Micro-B (Außensensor) angeschlossen.
Das ist sehr praktisch, weil USB bereits VCC und GND sowie zwei Datenleitungen bereitstellt. Die beiden Datenleitungen sind an "A" und "B" vom RS485-Modul angeschlossen.
Verbindung habe ich bisher mit einem USB-A auf USB-Micro-B und einem USB-Verlängerungskabel, weil das 5m-Kabel noch nicht da ist, aber es funktioniert.
Hier mal ein Screenshot vom TFT:
GPS_Wetterstation.pngHelligkeit ist "0 lux", weil ich für das Foto alles dunkel machen musste.
Oben links über dem Satelliten-Symbol wird die Anzahl der empfangenen Satelliten angezeigt (hier jetzt gerade 0).
Unten links beim Luftdruck werden dann auch noch die Werte von vor 3, 6, 9 und 12 Stunden angezeigt. -
Wäre es ferner auch möglich, einen Arudino KNX Regenmesser oder etwas vergleichbares in Deinem Projekt zu verwenden? Falls ja hätte ich ein großes Interesse daran, Dein Projekt mit allen Optionen die Du genannt hast, nachzubauen.
Ich habe bei Reichelt etwas gefunden, was ich mir noch bestellen werde:
Regensensor
WindmesserDie Elektronik darin kann man ja entfernen/weiterverwenden. Mal schauen...
Auf jeden Fall bietet der externe Nano in meiner Wetterstation noch genügend Reserven dafür. Der hat ja z.Z. nur wenig zu tun.

Ich werde auf jeden Fall hier auch die Quelltexte für die Arduinos sowie die AutoIt-Scripte zur Verfügung stellen. Wer das nachbauen möchte, kann das gerne tun.
Im Moment feile ich noch ein wenig an den Programmen:
Weil in der Wetterstation ja das GPS-Modul mit der hochgenauen Uhr sitzt, wäre es ja Verschwendung, wenn man die vom PC nicht auslesen kann. Also habe ich so eine Abfrage auch mit eingebaut.

-
Noch ein bißchen abgeändert:
AutoIt#Region ;************ Includes ************ #include <Array.au3> #EndRegion ;************ Includes ************ $sTest = "7f hg z5 6z ut" If Not StringRegExp($sTest, '(\b\w{1}(?:\s|\z))|(\b\w{3,}(?:\s|\z))') Then $aTest = StringRegExp($sTest, '(?U)(\w{2}(?:\s|\z))+', 3) _ArrayDisplay($aTest) EndIfWas Du mit "in einer Zeile darzustellen" meinst, verstehe ich aber nicht.
Du willst doch ein Array. _ArrayDisplay stellt 1D-Arrays nunmal untereinander dar. Wenn Du wieder einen String brauchst, dann nimm "_ArrayToString". -
Erst ein Test, ob 3 Buchstaben/Zahlen vorhanden sind und dann das Array erstellen: