1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Oscar

Beiträge von Oscar

  • AutoIt und Arduino

    • Oscar
    • 29. Januar 2016 um 18:33

    An der SD-Karte liegt es wohl nicht!
    Ich habe heute die bestellte 2 GB SD-Karte bekommen und habe das Modul damit getestet, aber der Fehler tritt auch weiterhin auf. :(
    Dann muss ich wohl auf den anderen SD-Cardreader warten, bis ich mit dem Projekt weitermachen kann. Schade!
    Werde ich mich halt mal mit der Laser-Lichtschranke beschäftigen (der Foto-Transistor kam ja auch heute an). :)
    Und wenn die ganze Elektronik-Schaltung erstmal läuft, dann kommt auch die Verbindung zu AutoIt. So ist das jedenfalls geplant...

  • Mehrere Files im Array auslesen und in eine neue CSV Datei schreiben (Hilfe)

    • Oscar
    • 27. Januar 2016 um 17:49

    Dein gesamter Code ist total verwirrend!

    Hier mal eine aufgeräumtere und übersichtlichere Variante:

    AutoIt
    #include <Array.au3>
    #include <File.au3>
    
    
    Global $sXML_Path = 'C:\Users\michel.stober\Desktop\Dropshipping\Skripte\lieferscheine\'
    Global $sCSV_Path = 'C:\Users\michel.stober\Desktop\Dropshipping\Skripte\lieferscheindörns\'
    
    
    Global $aXML_Files = _FileListToArray($sXML_Path, '*.xml', $FLTA_FILES, False) ; alle XML-Dateinamen in ein Array holen
    If @error Then Exit MsgBox(0, 'Fehler', 'Fehlernr.: ' & @error) ; wenn ein Fehler aufgetreten ist, Prg beenden
    _ArrayDisplay($aXML_Files)
    
    
    Global $sXML_Data, $sPurchaseOrderNumber, $sTrackingID, $hFile
    For $i = 1 To $aXML_Files[0] ; alle XML-Dateien durchgehen
    	$sXML_Data = FileRead($sXML_Path & $aXML_Files[$i]) ; Daten aus der XML-Datei lesen
    	$sPurchaseOrderNumber = StringRegExpReplace($sXML_Data, '(?s).+<PurchaseOrderNumber>(.+)</PurchaseOrderNumber>.+', '$1') ; Bestellnummer extrahieren
    	$sTrackingID = StringRegExpReplace($sXML_Data, '(?s).+<TrackingID>(.+)</TrackingID>.+', '$1') ; TrackingID extrahieren
    	$hFile = FileOpen($sCSV_Path & $sPurchaseOrderNumber & '.csv', $FO_OVERWRITE + $FO_CREATEPATH) ; Datei zum schreiben öffnen
    	If $hFile <> -1 Then ; wenn erfolgreich, dann...
    		FileWriteLine($hFile, 'Bestellnummer;TrackingID') ; Überschrift in die Datei schreiben
    		FileWriteLine($hFile, $sPurchaseOrderNumber & ';' & $sTrackingID) ; Daten in die Datei schreiben
    		FileClose($hFile) ; Datei schließen
    	EndIf
    Next
    Alles anzeigen
  • AutoIt und Arduino

    • Oscar
    • 27. Januar 2016 um 15:18

    Das mag ja sein, aber SD-Karten sind mittlerweile kaum noch mit so wenig Kapazität zu bekommen.
    Tatsächlich ist die 4 GB Karte, die ich hier zum testen hatte, die mit der geringsten Kapazität in unserem Haushalt. :rolleyes:
    Ich hab' mir jetzt noch eine 2GB Karte bei Reichelt bestellt (hatte da sowieso noch etwas im Warenkorb).
    Paradoxerweise bekommt man zum gleichen Preis (4,60€) bereits eine 8GB (Class 10, SDHC) Karte. :whistling:

  • AutoIt und Arduino

    • Oscar
    • 27. Januar 2016 um 13:22

    Ich habe mir den SD-Cardreader plus anderer RTC (http://www.amazon.de/dp/B00P9278HM/…8075861_TE_item) mal bestellt. Kann aber bis zu 3 Wochen dauern.

    Kleinere SD-Card (2GB) muss ich mal suchen, ob ich sowas noch rumliegen habe. :huh:

  • AutoIt und Arduino

    • Oscar
    • 27. Januar 2016 um 10:10

    Momentan habe ich Standard-SD-Karten, aber eigentlich ist Micro-SD(HC) auch ausreichend.
    Wäre dann sowas zu empfehlen?
    http://www.amazon.de/Reader-Speicher-Memory-Shield-Arduino/dp/B00QIKJP5W/ref=pd_sim_23_4?ie=UTF8&dpID=51RiFgGPWXL&dpSrc=sims&preST=_AC_UL160_SR160%2C160_&refRID=0MFSP0BBTK0PCQF0YMAK

  • AutoIt und Arduino

    • Oscar
    • 26. Januar 2016 um 19:57

    Die SD-Karten (32 GB und 4 GB) sind mit FAT32 formatiert. Habe sie auch schon mit dem SD-Formatter von Trendy formatiert.
    Mit der Original-Library hat es nicht funktioniert und mit der von Adafruit auch nicht. ChipSelect soll wie bei der Adafruit auf Pin10 sein, das sieht vom Layout auch danach aus.
    Das Shield hat einen 3.3V-Pegelwandler bereits Onboard.

    Gibt es unterschiedliche SD-Card-Reader? Also von der Ansteuerung her? Funktioniert bei denen dann die Original-Library?

  • AutoIt und Arduino

    • Oscar
    • 26. Januar 2016 um 18:48

    Ich denke, dass ich das Steckbrett lediglich zum entwickeln der Projekte benutzen werde. Wenn fertig, dann wird gelötet.
    Jedenfalls bei Projekten, die ich auch längere Zeit nutzen möchte.

    Andy: Den Link zum Attiny habe ich mir mal abgespeichert. Das ist bestimmt für einige Projekte hilfreich und ausreichend. :)

    Das "Data-logging-shield" von "Deek-Robot" (ist ein Adafruit-Clone) bekomme ich nicht zum laufen. :(
    Zumindest den SD-Card-Teil nicht. Die RTC funktioniert, aber beim Zugriff auf die SD-Card gibt's nur ein: "initialization failed".
    Stundenlange Internetsuche und dort beschriebene "Problemlösungen" habe ich schon durch, aber das hilft hier alles nichts. Vielleicht ist das Shield hinüber!?
    Das ist schon etwas frustrierend! ?(

  • AutoIt und Arduino

    • Oscar
    • 25. Januar 2016 um 16:48

    Es könnte sein, dass der Arduino intern bereits PullDown-Widerstände besitzt (soweit kenne ich mich da jetzt noch nicht aus) und es deshalb einwandfrei funktioniert.

    BTW: Betreibst Du Deine Schaltungen so auf dem Steckbrett (dauerhaft) oder ist das nur zum entwickeln und danach wird gelötet?

  • AutoIt und Arduino

    • Oscar
    • 25. Januar 2016 um 16:08

    @xOr: Danke! Aber der Schaltplan ist fehlerhaft! Die 10K-Widerstände sind PullDown-Widerstände für das Gate. Beim unteren FET (rot) ist es noch richtig verdrahtet. Bei den oberen beiden FETs liegt der Widerstand am Drain-Anschluss (falsch).
    Als Schaltplan sollte das dann so aussehen:
    RGB LED Strip_Schaltplan.png

  • AutoIt und Arduino

    • Oscar
    • 24. Januar 2016 um 11:28

    So, die ersten Experimente sind gemacht!
    Das LCD-Modul funktioniert und auch die Taster darauf lassen sich auslesen (ganz clever gemacht = 5 Taster über verschiedene Widerstände an einem AnalogPort, so spart man Porteingänge).
    Das klassische "Hello World" (LED blinken lassen) ist absolviert. :D
    Die 4-fach 7-Segmentanzeige (mit I2C-Backpack) habe ich auch zum laufen bekommen.
    Demnächst muss ich mich dann mit dem Datenlogger-Modul beschäftigen.

    Andy: Dein Beispiel konnte ich ebenfalls erfolgreich nachvollziehen. Dafür schonmal: Vielen Dank!

    Raupi : Solch große 7-Segment-Anzeigen könnte ich auch noch gebrauchen. Muss ich mal nach googeln oder kennst Du da eine Quelle (günstig)?

    Aber irgendwie brauche ich mehr Platz auf dem Schreibtisch. Ich muss wohl mal anbauen. :D

    Jedenfalls hat der Arduino meine Elektronik-Bastelleidenschaft wieder geweckt, nachdem diese einige Jahre im Tiefschlaf lag.
    Damals war das noch der C64, der die Ansteuerung der Elektronik übernehmen musste. Der Arduino ist dagegen schon ein paar Nummern kleiner. ^^

  • AutoIt und Arduino

    • Oscar
    • 22. Januar 2016 um 17:43

    Wow! Jetzt habe ich noch gar nicht richtig angefangen und werde schon mit Extras "bombadiert"! Klasse! Macht weiter so! :)

    Raupi : Ich habe den ESP8266 mal gegoogelt und das könnte doch auch eine Verbindung zum PC darstellen (also per WLAN = Arduino + ESP8266 <-> PC), oder?
    Hast Du da Erfahrung, wie man dann die Kommunikation mittels AutoIt hinbekommt?


    @xOr: Das Projekt mit dem LED-Strip würde mich auch noch interessieren. Kannst Du mir dazu mehr erzählen (Sketch, Aufbau, etc.)?
    Das LCD soll auch zur Anzeige für die Wetterstation dienen, zusätzlich zu der Möglichkeit der Auswertung am PC. Was dort alles angezeigt werden wird, das wird sich noch zeigen.
    Im Moment bin ich sozusagen noch bei Null.

    Andy: So ein Eventmodus interessiert mich ganz besonders, vor allem, weil ich in AutoIt meist auch den Eventmodus benutze. Ich denke aber auch, dass so eine unabhängige Kommunikation mit dem PC überhaupt die Bedingung dafür ist, dass der Arduino im Hintergrund weiter die Daten loggen kann. Er soll ja während der Übertragung nicht damit aufhören. Von daher wäre es schön, wenn Du den Code mit mir teilen würdest.

    Heute sind übrigens die Teile gekommen (ich habe mir auch einen Original-Genuino gegönnt, um die OpenSource-Gemeinde zu unterstützen).
    Für eine andere Projektidee (Geschwindigkeitsmessung beim Kegeln via Lichtschranke) habe ich mir noch ein kleines (5mW) Lasermodul gekauft.
    Ich denke, damit dürfte ich für den Anfang erstmal ausgesorgt haben. :)

  • AutoIt und Arduino

    • Oscar
    • 21. Januar 2016 um 19:43

    Ich wollte mal fragen, wer von euch sich zusätzlich mit dem Arduino beschäftigt?
    Also speziell die Kommunikation zwischen Arduino und PC (AutoIt).

    Ich habe mir jetzt erstmal einen "Arduino Uno" und diverse Zusatz-Elektronik (LCD-Keypad-Shield, Data-Logging-Shield, diverse Sensoren, Steckbrett, etc.) bestellt.
    Mir schwebt da als Projekt eine Wetterstation vor, die die Daten auf SD-Karte loggt und wenn ich dann den PC anmache, möchte ich die geloggten Daten mit AutoIt abholen und dann auswerten.

    Erstmal natürlich einige Grundlagen zur Arduino-Programmierung lernen.
    Aber vielleicht hat ja jemand Lust zu einem Erfahrungsaustausch/Projektbeteiligung?

    Im Forum (forum.arduino.cc) lese ich schon die diversen Beiträge. Mir ist aber auch an der Verbindung zum PC (AutoIt) gelegen.

  • Teilweisen Namen eines Fensters auslesen

    • Oscar
    • 19. Januar 2016 um 16:17

    Mit Opt('WinTitleMatchMode', 2) am Anfang des Scripts.

  • Reg-Ex Pattern für doppelte Orte gesucht!

    • Oscar
    • 17. Januar 2016 um 18:40

    Das kenne ich nur zu gut!
    Man verrennt sich in eine "Lösung" und grübelt stundenlang über ein passendes RegExp-Pattern und dabei liegt die wirkliche Lösung gleich nebenan. Man kommt halt nur nicht drauf.

  • Reg-Ex Pattern für doppelte Orte gesucht!

    • Oscar
    • 17. Januar 2016 um 13:42

    Nicht unbedingt als RegExp-Pattern, aber so funktioniert es wenigstens:

    AutoIt
    #include <Array.au3>
    $string = '<td>60311 Frankfurt am Main Frankfurt am Main</td>' & @CRLF & '<td>36251 Bad Hersfeld Bad Hersfeld</td>' & @CRLF & '<td>20099 Hamburg Hamburg</td>' & @CRLF
    $array = StringRegExp($string, '<td>\d{5}(.+)</td>', 3) ; HTML-Formatierung und PLZ abtrennen
    _ArrayDisplay($array, 'Vorher')
    For $i = 0 To UBound($array) - 1
    	$array[$i] = StringMid($array[$i], 2, StringLen($array[$i]) / 2 - 1) ; einzelne Strings durch 2 teilen
    Next
    _ArrayDisplay($array, 'Nachher')
  • Dateiliste - Verzeichnisliste ... „Koda Form Designer“

    • Oscar
    • 16. Januar 2016 um 15:25
    Zitat von AutoMit

    Falls Ihr für so ein ListView mit Doppelklick und Pfadübergabe ein Programmschnipsel habt, immer rein damit

    Für die ersten beiden Punkte habe ich mal eben ein Script geschrieben:

    AutoIt
    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    
    
    Opt('GUIOnEventMode', 1)
    
    
    Global $hGui = GUICreate('PDF-List DblClick', 480, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
    
    
    Global $idPath = GUICtrlCreateLabel('', 10, 12, 410, 22, Default, $WS_EX_STATICEDGE)
    GUICtrlSetFont(-1, 11, 400, 0, 'Tahoma')
    
    
    Global $idPathSelect = GUICtrlCreateButton('...', 422, 10, 48, 25)
    GUICtrlSetFont(-1, 12, 600, 0, 'Tahoma')
    GUICtrlSetOnEvent(-1, '_SelectPath')
    
    
    Global $idListView = GUICtrlCreateListView('Dateiname|Größe (Bytes)', 10, 45, 460, 245)
    Global $hListView = GUICtrlGetHandle($idListView)
    _GUICtrlListView_JustifyColumn($hListView, 1, 1)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 120)
    
    
    GUISetState(@SW_SHOW, $hGui)
    GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')
    
    
    WinWaitClose($hGui)
    Exit
    
    
    Func _CloseGui()
    	GUIDelete($hGui)
    EndFunc   ;==>_CloseGui
    
    
    Func _SelectPath()
    	Local $sPath = FileSelectFolder('Bitte Verzeichnis auswählen', '', 0, '', $hGui)
    	If @error Or Not FileExists($sPath) Then Return
    	If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    	GUICtrlSetData($idPath, $sPath)
    	Local $aPDFFiles = _FileListToArray($sPath, '*.pdf', $FLTA_FILES), $iFileSize
    	If @error Then Return
    	For $i = 1 To $aPDFFiles[0]
    		$iFileSize = FileGetSize($sPath & $aPDFFiles[$i])
    		GUICtrlCreateListViewItem($aPDFFiles[$i] & '|' & $iFileSize, $idListView)
    	Next
    	_GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    EndFunc   ;==>_SelectPath
    
    
    Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    	#forceref $hWnd, $iMsg, $wParam
    	Local $tNMHDR, $hWndFrom, $iCode, $tInfo, $iIndex, $sPath, $sFile
    	$tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    	$hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
    	$iCode = DllStructGetData($tNMHDR, 'Code')
    	Switch $hWndFrom
    		Case $hListView ; <- das Handle vom ListView
    			Switch $iCode
    				Case $NM_DBLCLK ; <- Doppelklick auf ein Item
    					$tInfo = DllStructCreate($tagNMITEMACTIVATE, $lParam)
    					$iIndex = DllStructGetData($tInfo, 'Index') ; <- der Index zu dem angeklickten Item
    					If $iIndex > -1 Then
    						$sPath = GUICtrlRead($idPath)
    						$sFile = _GUICtrlListView_GetItemText($hListView, $iIndex, 0)
    						ShellExecute($sPath & $sFile)
    					EndIf
    			EndSwitch
    	EndSwitch
    	Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_NOTIFY
    Alles anzeigen

    Den dritten Punkt kriegst Du wohl alleine hin.

  • Dateiliste - Verzeichnisliste ... „Koda Form Designer“

    • Oscar
    • 15. Januar 2016 um 19:32

    Das kommt darauf an, was die Dateiliste für einen Zweck erfüllen soll.
    Meist reicht ja schon _FileListToArray, das Array bearbeiten und _GUICtrlListView_AddArray.
    Sollen noch Benutzeraktionen mit der Liste möglich sein, dann muss man halt noch etwas drumherum programmieren.


    Auf gar keinen Fall benutze ich aber Koda. :D

  • Bedinung

    • Oscar
    • 15. Januar 2016 um 19:18

    :Glaskugel:

  • Radiobuttons die in einer Schleife erstellt wurden

    • Oscar
    • 15. Januar 2016 um 17:22

    Vergiss Assign und benutze direkt ein Array zum speichern der Ctrl-IDs.
    Wenn Du außerdem den OnEventMode für die GUI verwendest, kannst Du einfach @GUI_CtrlId auswerten.

    Edit: Im OnEventMode brauchst Du die Ctrl-IDs noch nicht mal zu speichern:

    AutoIt
    #include <FontConstants.au3>
    #include <GUIConstantsEx.au3>
    
    
    Opt('GUIOnEventMode', 1)
    
    
    Global $b_Split[20], $sCheck = ''
    For $i = 0 To 19
    	$b_Split[$i] = $i
    Next
    $iCols = UBound($b_Split)
    
    
    $gui_name = GUICreate("Händlername", 500, 500, 100, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
    GUISetFont(10, $FW_BOLD)
    $yPos = 10
    For $j = 2 To $iCols - 5
    	GUICtrlCreateRadio($b_Split[$j], 10, $yPos, 300, 20)
    	GUICtrlSetOnEvent(-1, '_CheckRadio')
    	$yPos = $yPos + 30
    Next
    $yPos = $yPos + 30
    $ok = GUICtrlCreateButton("ok", 50, $yPos, 50, 25)
    GUICtrlSetOnEvent(-1, '_Ok')
    
    
    GUISetState()
    WinWaitClose($gui_name)
    Exit
    
    
    Func _CloseGui()
    	GUIDelete($gui_name)
    EndFunc
    
    
    Func _Ok()
    	MsgBox(48, 1, $sCheck)
    EndFunc
    
    
    Func _CheckRadio()
    	$sCheck = GUICtrlRead(@GUI_CtrlId, 1)
    EndFunc
    Alles anzeigen
  • 2D Array erstellen

    • Oscar
    • 15. Januar 2016 um 17:02

    Wobei UEZ mit _FileReadToArray schon recht hatte. Das funktioniert auch mit dem letzten Parameter bei dem Befehl. Allerdings nur, wenn alle Spalten gleich groß sind.
    Mein Script passt das 2D-Array automatisch der längsten Spalte an.

    Für Deine "Suche & Ersetzen"-Aktion musst Du schon konkreter werden und (Beispiel-) Daten zur Verfügung stellen.
    Was heißt "Gleichheit" und womit sollen sie ersetzt werden?
    Nur innerhalb einer Spalte oder im gesamten Array?

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™