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. chrisatack

Beiträge von chrisatack

  • Hardware Baukasten Tinkerforge

    • chrisatack
    • 20. Januar 2015 um 10:28
    Zitat von BugFix

    AutoIt Callback-Funktionen

    @BugFix
    Wie sieht denn so eine AutoIt Callback-Funktion aus?
    Ich stelle mir sowas wie GUIRegisterMsg() vor... Aber ist das der Richtige Weg?
    Soetwas wie hier... http://www.autoitscript.com/forum/topic/74…f-event-driven/

    Danke schonmal...

    MFG Chris :D

  • Hardware Baukasten Tinkerforge

    • chrisatack
    • 23. Dezember 2014 um 21:37

    OK..

    wie immer was dazu gelernt..Danke.
    Bin am der Umsetzung dran..

    MFG Chris :D

  • Hardware Baukasten Tinkerforge

    • chrisatack
    • 23. Dezember 2014 um 13:28

    Hallo

    Ich bin jetzt an einem Punkt angekommen, an dem ich mir Gedanken machen muss wie ich Events von der Hardware, also TCP/IP Pakete abfange und verarbeiten muss,
    die nicht ein Resultat einer Abfrage sind. Z.B. Drücken einer der vier Tasten am LCD Display. D.H. sie können auch an einem zeitpunkt kommen in dem das Autoit Script gerade eine ganz andere Aufgabe erledigt.
    Damit würde dann das TCP/IP Paket ins leere laufen oder?
    In Tinkerforge sind das dann die Callback Funktionen.
    Jetzt die eigentliche Frage...

    1. Fange ich das ganze in einer While Schleife ab. In etwa so wie GuiGetMsg()...
    - Nachteil ist aber ganz klar das Pakete verloren gehen können

    Spoiler anzeigen
    [autoit]

    #include'TF.au3'

    [/autoit] [autoit][/autoit] [autoit]

    Global $TF_BrickMaster_UID = _TF_UID_Convert('6xicsa'); = Base58 => 3635950641 = Uint32 => 3134B8D8
    Global $TF_BrickletLCD20x4_UID = _TF_UID_Convert('cd1'); = Base58 => 37700 = Uint32 => 44930000

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $idMsg = _TF_GetMsg();Nur jetzt werdem Nachrichten angenommen
    Select
    Case $idMsg = $TF_BrickletLCD20x4_UID

    ; Weitere selektierung der Msg vom LCD Display

    Case $idMsg = $TF_BrickMaster_UID

    ; Weitere selektierung der Msg vom Master

    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    2. Erledige ich das ganze wie GUIOnEventMode mit AdlibRegister?
    Vorteil, jetzt sollten keine Pakete mehr verlogen gehen?
    Nachteil, das Script wird in anderen Bereichen unterbrochen wenn ein Event von TF statt findet...

    Spoiler anzeigen
    [autoit]

    #include'TF.au3'

    [/autoit] [autoit][/autoit] [autoit]

    Global $TF_BrickMaster_UID = _TF_UID_Convert('6xicsa'); = Base58 => 3635950641 = Uint32 => 3134B8D8
    Global $TF_BrickletLCD20x4_UID = _TF_UID_Convert('cd1'); = Base58 => 37700 = Uint32 => 44930000

    [/autoit] [autoit][/autoit] [autoit]

    _TF_SetOnEvent($TFc,$TF_BrickletLCD20x4_UID,$EVENT_ID,"_FunktionTasteGedrueckt")
    _TF_SetOnEvent($TFc,$TF_BrickMaster_UID,$EVENT_ID,"_FunktionMainChipZuWarm")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(5)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _FunktionTasteGedrueckt($Var1,$Var2,...)

    ; mach was ....

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _FunktionMainChipZuWarm($Var1,$Var2,...)

    ; Kühl mich ;)

    EndFunc

    [/autoit]

    3. Kombination aus den beiden oben.
    Nach meiner Meinung das beste. Es sollten keine Pakete verloren gehen und der User kann entscheiden ob Event nach und nach im While abgearbeitet werden
    oder durch ein _TF_SetOnEvent() direkt mit Unterbrechung des restlichen Scripts

    Spoiler anzeigen
    [autoit]

    #include'TF.au3'

    [/autoit] [autoit][/autoit] [autoit]

    Global $TF_BrickMaster_UID = _TF_UID_Convert('6xicsa'); = Base58 => 3635950641 = Uint32 => 3134B8D8
    Global $TF_BrickletLCD20x4_UID = _TF_UID_Convert('cd1'); = Base58 => 37700 = Uint32 => 44930000

    [/autoit] [autoit][/autoit] [autoit]

    ; evtl. kommt der Buffer auch in _TF_Startup()
    _TF_EventBuffer() ; Buffer wird mit AdlibRegister gefüllt und in der While Schleife über _TF_GetMsg nach und nach abgerufen

    [/autoit] [autoit][/autoit] [autoit]

    _TF_SetOnEvent($TFc,$TF_BrickletLCD20x4_UID,$EVENT_ID,"_FunktionTasteGedrueckt"); Wird direkt beim Event ausgeführt ohne GetMsg()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $idMsg = _TF_GetMsg()
    Select
    Case $idMsg = $TF_BrickletLCD20x4_UID

    [/autoit] [autoit][/autoit] [autoit]

    ; Weitere selektierung der Msg vom LCD Display

    [/autoit] [autoit][/autoit] [autoit]

    Case $idMsg = $TF_BrickMaster_UID

    [/autoit] [autoit][/autoit] [autoit]

    ; Weitere selektierung der Msg vom Master

    [/autoit] [autoit][/autoit] [autoit]

    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _FunktionTasteGedrueckt($Var1,$Var2,...)

    [/autoit] [autoit][/autoit] [autoit]

    ; mach was ....

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]

    Jetzt bin ich mal gespannt was Ihr so denkt. Freue mich auf Feedback. Danke.

    MFG Chris :D

  • Hardware Baukasten Tinkerforge

    • chrisatack
    • 22. Dezember 2014 um 00:50

    Hi

    erste Vorabversion der UDF im ersten Post
    Hardware Baukasten Tinkerforge

    MFG chris :D

  • Convert to Uint32, Uint8 oder int16

    • chrisatack
    • 21. Dezember 2014 um 14:11

    Danke

    Wie immer ein Traum!

    MFG Chris :D

  • Convert to Uint32, Uint8 oder int16

    • chrisatack
    • 20. Dezember 2014 um 22:43

    @spider

    Ich habe noch ein Problem im TF Projekt mit der Umwandlung
    Der Weg zum berechnen einer UDI eines Bausteines geht so...

     UID = 6xicsa = Base58 Decode => 3635950641 = Uint32 => 3134B8D8

    Jetzt führe ich eine Funktion aus die mit ein Callback Paket mit allen angeschlossenen Bausteinen schickt..
    http://www.tinkerforge.com/de/doc/Low_Lev…LBACK_ENUMERATE

    Dann bekomme ich als Antwort folgendes zurück

    Spoiler anzeigen
    [autoit]


    ;~ Zwei Geräte sind angeschlossen...

    [/autoit] [autoit][/autoit] [autoit]

    ;~ Receive Code: ACCEPT: 0x3134B8D822FD080036786963736100003000000000000000300200000203000D0000
    ;~ Receive Code: ACCEPT: 0x4493000022FD08006364310000000000367869637361000063010200020006D40000

    [/autoit] [autoit][/autoit] [autoit]

    ;~ Receive Code zerlegt....
    ;~
    ;~ Seq Flg
    ;~ === UID === Le Fu ----- |-> Payload
    ;~ 31 34 B8 D8 22 FD 08 00 36 78 69 63 73 61 00 00 30 00 00 00 00 00 00 00 30 02 00 00 02 03 00 0D 00 00
    ;~ 44 93 00 00 22 FD 08 00 63 64 31 00 00 00 00 00 36 78 69 63 73 61 00 00 63 01 02 00 02 00 06 D4 00 00

    [/autoit] [autoit][/autoit] [autoit]

    ;~ Payload ist der eigentliche Callback...
    ;~ Wenn ich das richtig verstanden habe wird er so zerlegt ( laut dem link Oben )...

    [/autoit] [autoit][/autoit] [autoit]

    ;~ uid char[8] connected_uid char[8] char hardw_v uint8[3] softw_v uint8[3] ...
    ;~ ----------------------- ----------------------- -- -------- ----------------- ...
    ;~ 36 78 69 63 73 61 00 00 30 00 00 00 00 00 00 00 30 02 00 00 02 03 00 ...

    [/autoit] [autoit][/autoit] [autoit]

    ;~ 36 78 69 63 73 61 00 00 => Müsste mit BASE58 eigentlich 6xicsa ergeben. Geht aber nicht..

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    So wie das aussieht brauche ich also wieder eine Umwandlung die char[8] bzw char heißt..??

    Als zweite Frage... In dem Beispiel das du oben geschrieben hast mit der Uint32...usw.
    Wie füge ich da noch einen Uint16 hinzu?
    Vielen Dank schon mal

    MFG chris :D

  • Convert to Uint32, Uint8 oder int16

    • chrisatack
    • 18. Dezember 2014 um 21:43

    Zu einfach ;)
    Und ich bin nach nem anderem DllStructCreate suchen gegangen

    Danke!

    MFG Chris :D

  • Convert to Uint32, Uint8 oder int16

    • chrisatack
    • 18. Dezember 2014 um 21:26

    Hey Andy

    Danke... Ich werde deine Aussage beachten ;)

    @GTA

    Wie kann ich denn die Umwandlung von uint32 usw. wieder umkehren nativ?

    MFG Chris :D

  • Roboterarm / FTDI FT232RL / Com-Usb

    • chrisatack
    • 18. Dezember 2014 um 18:39

    Hey Draien

    Ich kann dir leider keine Infos zu COM32 geben, aber ich bin an einer Ähnlichen Sache dran.
    Zumindestens könnte man mit Tinkerforge genau das Bauen und steuern was du da hast.

    Video ab ca. 30sec. http://video.golem.de/oss/6597/hardw…inkerforge.html

    Hier mein Thema zur Entwicklung der UDF:
    http://http//autoit.de/ind…en-Tinkerforge/

    MFG Chris :D

  • Hardware Baukasten Tinkerforge

    • chrisatack
    • 18. Dezember 2014 um 09:52

    Hi Devel

    Also... Auch schon wieder etwas länger her, aber ich bin an der UDF über TCP dran...
    Habe auch schon erste sachen steuern können. Ist aber noch viel viel Arbeit.
    Sobald ich was zum Testen fertig habe stelle ich hier mal etwas rein.

    MFG chris :D

  • Convert to Uint32, Uint8 oder int16

    • chrisatack
    • 18. Dezember 2014 um 09:28

    UpdateFaul!

    Nein Spass... Muss ich unbedingt mal noch machen...
    Ich habe nur 2 sehr große Projekte und die sind auf 3.3.8.1
    Habe mir aber noch nicht angeschaut ob das Probleme gibt wenn ich Autoit auf die neue anhebe..

    MFG Chris :D

  • Convert to Uint32, Uint8 oder int16

    • chrisatack
    • 17. Dezember 2014 um 10:45

    Danke Ihr zwei...

    Wie immer Top Arbeit...
    Das mit dem Struct kann ich gar net probieren... habe noch 3.3.8.1 drauf ;)
    Aber Ihr habt mich ein ganzes Stück näher ans Ziel gebracht..
    Vielen Dank..

    MFG Chris :D

  • Convert to Uint32, Uint8 oder int16

    • chrisatack
    • 16. Dezember 2014 um 16:42

    Hallo

    Mal wieder stehe ich auf dem Schlauch.
    Ich befasse mich momentan noch einmal mit dem Tinkerforge Projekt.
    ( Da es aber hier um konvertierung geht habe ich ein neues Thema erstellt und nicht das Alte benutzt )
    Damit man mit der Hardware mittels TCP/IP kommunizieren kann
    muss man die Werte in Uint32, Uint8 oder int16 wandeln.

    Im Paket Layout von TF wird beschrieben wie vorgegangen wird. Das ganze muss dann vorwärts und rückwärts funktionieren.
    Als Bsp. sieht das so aus

    Code
    UID 33688 as uint32 (0x98 0x83 0x00 0x00)


    Ich muss also von 33688 auf 0x98 0x83 0x00 0x00 bzw. 98830000 kommen.
    Oder...

    Code
    x -239 as int16 (0x11 0xff)


    -239 als int16 0x11 0xff bzw. 11ff

    Ich habe schon im Inet danach gesucht aber leider nicht das richtige gefunden.
    Vielleich weiß einer wie das geht.
    Vielen dank schon mal

    MFG Chris :D

  • Mal wieder RegEx; jetzt Problem Telefonnummern

    • chrisatack
    • 21. Oktober 2014 um 17:45

    Hi... vielen Dank erst einmal.
    Ich habe aber eins gefunden...

    [autoit]

    ConsoleWrite(_ValidatePhoneNumber("63172 Rodgau")&@CRLF)

    [/autoit]


    kommt 1 ?
    Man müsste im letzen return RegEx noch eine StringLen mit minimum 7 Stellen oder?
    Die kleinste Telefonnummer die ich kenne ist z.B. 069 1234
    Damit wären dann PLZ raus?

    EDIT: Jetzt verstehe ich ... du meintest das das Wort Rodgau eine Telefonnummer ergibt?
    Nein es sind nur reine Nummern!!!

    MFG chris :D

  • Mal wieder RegEx; jetzt Problem Telefonnummern

    • chrisatack
    • 21. Oktober 2014 um 15:16

    Guuude..

    Kurz und knapp... Ich muss mich zwingend mehr mit RegEx beschäftigen.
    Ich weiß es gibt auch super Tuts.. aber irgendwie komme ich nicht wirklich damit weiter.

    Ich würde gerne in meinem aktuellen Projekt Telefonnummer aus einem Text herausfiltern.
    Das Problem ist das die Nummer unterschiedlich aufgebaut sein können.

    Zitat

    Diese sollen genommen werden:
    069 12345
    069/12345
    0 6108 26 25 76 - 17
    0 6108 26 25 76 0
    06108 / 61 56 67
    06108 12345678
    0171/3543592
    +49(7075)4481524
    +49 2172 36707-191

    Diese aber nicht:
    1234,78€ usw.
    D-35683 Dillenburg
    Bahnhofstr. 12
    63172 Rodgau

    Alles anzeigen

    Mein RegEx bis jetzt:

    [autoit]

    $array = StringRegExp($clipNow,'\d{3,5}\/\d{3,10}|\+49.\d{3,5}.\d{3,10}\-\d{1,5}',3 )

    [/autoit]

    Wie kann ich jetzt verschiedene Formate von Nummern kombinieren?
    Ich hatte es mal so probiert...

    [autoit]

    $array = StringRegExp($clipNow,'[0-9]{3,5}\/[0-9]{3,10}|\+49.[0-9]{3,5}.[0-9]{3,10}\-',3 )

    [/autoit]

    Aber das klappt auch nicht richtig...
    Vielleicht kann mir jemand mal einen Tipp / Lösungsansatz geben.
    Danke.

    MFG Chris :D

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • chrisatack
    • 30. Dezember 2013 um 11:35

    Bei mir gings..

    Mfg Chris

  • Ajaxplorer Remote eine Ordnerfreigabe erstellen

    • chrisatack
    • 30. Dezember 2013 um 09:45

    Hallo

    Bevor ich mich in anderen Foren umfrage erst einmal hier die Frage ob sich jemand mit Ajaxplorer auskennt.
    Ich
    habe die Version 5.0.3 auf einem Server, und möchte gerne per Remote (
    autoit ) Freigaben auf Ordner erstellen, die ich zuvor per FTP
    hochgeladen habe.
    Erstellt man die Freigabe per Hand in der
    Weboberfläche wird in dem Ordner /data/public eine Zufallsdatei z.B.
    0m78um.php erstellt.
    Über den Freigabelink z.B. https://autoit.de/www.domain.de/public/0m78um.php sind dann die Inhalte des Ordners erreichbar.
    Wäre
    cool wenn jemand weiß wie man das auch per Remote erstellen kann, weil
    einfach eine 0m78um.php oder so anlegen klappt natürlich nicht.
    Auch der Inhalt der Datei ist verschlüsselt...

    Vielen Dank schon einmal.

    MFG chris :D

  • Ordner Icon ändern

    • chrisatack
    • 27. August 2013 um 15:55

    Upp?

  • Umlaute Problem mit Sybase über ODBC

    • chrisatack
    • 27. August 2013 um 15:35

    Hallo

    Ich lese aus einer Sybase Datenbank über eine ODBC Verbindung.

    [autoit]

    Global $oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
    $ado = ObjCreate("ADODB.Connection")
    $ado.Open ("DSN=OSD;Uid=OSD;Pwd=osd")
    If @error Then
    MsgBox(0, "ERROR", "Failed to connect to the database")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $query = $ado.Execute( "select beschreibung from DBA.kubetext WHERE belegnr LIKE '«130546%'")
    While not $query.EOF
    ConsoleWrite($query.Fields(0).Value&@CRLF)
    $query.MoveNext
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func MyErrFunc()
    Msgbox(0,"AutoItCOM Test","Ein COM-Fehler ist aufgetreten !" & @CRLF & @CRLF & _
    "err.description is: " & @TAB & $oMyError.description & @CRLF & _
    "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
    "err.number is: " & @TAB & hex($oMyError.number,8) & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
    "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
    "err.source is: " & @TAB & $oMyError.source & @CRLF & _
    "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oMyError.helpcontext )
    Local $err = $oMyError.number
    If $err = 0 Then $err = -1
    Local $g_eventerror = $err
    Endfunc

    [/autoit]

    Jetzt bekomme ich folgendes zurück...

    SQL
    Hängeschrank

    Bei PHP bekomme ich das Problem immer mit UTF8_encode weg..
    Wie geht das hier?
    Hab schon nach Autoit ODBC Umlaute gesucht... leider keine passenden Ergebnisse..
    Vielen dank schon einmal

    MFG Chris :D

  • Suche bestimmtes Alu Profil

    • chrisatack
    • 27. August 2013 um 12:21

    Hi

    leider passt das auch nicht. Glaub mir ich habe mir schon einen Wolf gesucht.
    Sonst würde ich die Frage nicht anfangen in Foren zu schreiben.
    Wofür ich es brauche...

    Das ganze ist eigentlich nicht ein Wakeboard sondern ein Skurfer..

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Wegen der Stufenlosen Verstellung will ich gerne wie im folgenden Bild
    eine Schiene haben. Würde gerne noch etwas mit der Stehposition
    experimentieren. Daher..

    Die Ausgabe für die CNC In Woodwop mit eigenem Muster zum fräsen

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.


    MFG Chris :D

    Dateien

    20130629_165426.jpg 220,01 kB – 0 Downloads Bild 6.jpg 325,09 kB – 0 Downloads

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™