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

Beiträge von Speedy86

  • Tv Steuerung

    • Speedy86
    • 25. Februar 2020 um 00:26

    Also hab mal es so versucht.

    Code
    ; Enumerieren der Indizes in "sprechende" Variablen für die Zeilen des Arrays
    Global Enum $TV1, $TV2, $TV3, $VW, $PC, $Sky_receiver, $D_Box_receiver
    
    ; Enumerieren der Spaltenindizes
    Global Enum $IP, $Port, $Name, $Y_pos, $X_pos, $Profile
    
    Global $iDefaultPort = 443, $iNecPort = 8080, $iVLCPort = 9001
    ; Dein Array
    Global $aDevices[][] = _
                         [["192.168.0.10",$iDefaultPort, "TV 1", 100, 100, "Default_Profile"], _
                         ["192.168.0.11",$iDefaultPort, "TV 2", 300, 100, "VLC_Profile"], _
                         ["192.168.0.12",$iDefaultPort, "TV 3", 500, 100, "Default_Profile"], _
                         ["192.168.0.13",$iNecPort, "VW", 700, 100, "NEC_Profile"], _
                         ["192.168.0.14",$iVLCPort, "PC", 900, 100, "VLC_Profile"], _
                         ["192.168.0.15",$iNecPort, "Sky Receiver", 900, 300, "Sky_Profile_receiver"], _
                         ["192.168.0.16",$iDefaultPort, "D-Box", 100, 650, "D-Box_Profile_receiver"]]
    
    ; Zugriff
    ConsoleWrite('IP  (D-Box): ' & $aDevices[$D_Box_receiver][$IP][$Y_pos][$X_pos][$Profile] & @CRLF)
    ConsoleWrite('Port (TV 1): ' & $aDevices[$TV1][$Port][$Profile] & @CRLF)
    Alles anzeigen

    Aber er schreibt mir immer ein Error, warum bin ich mir noch nicht sicher.

    Ich würde dann die Profile auf $Default_Profile ect. umschreiben und hier dann die Context menü drauf legen.

    Hoff das ich es implementieren kann.

    lg und Gute Nacht

    Speedy

  • Tv Steuerung

    • Speedy86
    • 24. Februar 2020 um 22:28

    Hi BugFix,

    was ich nicht ganz versthe ist warum greift die erste Enum auf die Global $aDevices zu

    und das 2 Enum auf Ports.

    Das will mir gerade nicht in mein Kopf rein.


    Zu den Thema mit den Profilen komm ich leider gar nicht weiter, ich hätte keine Ansatz wie ich das umschreiben könnt :(

    auch ist mir beim Testen aufgefallen das ich bei 2 Telnet Befehle oder bzw. sogar manchmal 4 benötige beider Videowall.

    Ich tu mir leider immer noch mit den Contextmenu schwer wie es sich mit den arrays erstellt.


    Aber so wie es ausschaut brauch ich ja nur ein 2d array für die Profile kein 3d das ist unnötig.

  • Tv Steuerung

    • Speedy86
    • 24. Februar 2020 um 02:06

    Hi,

    Danke das mit den Namen hat super funktioniert, sogar das umschreiben mit den Positionen für jeden TV hab ich jetzt heraus wie es funktioniert. Ganz langsam aber doch versteh ich es immer mehr die Arrays.

    das mit den 3d Arrays würde mich schon interessieren da ich vor allem gerne lerne.

    hättest du in meinen fällen ein bsp. wie ich es mir vorstellen muss ?

    Es werden vermutlich doch mehrere Profile da ich ja auch für den Receiver oder Receivern für die channel-liste auch ein machen muss.

    lg

    Speedy

    und Danke jetzt schon mal für deine Bemühung, bin heil froh das es schöner geht als mein erstes scrpt :)

  • ContentMenu auf Button über einer Liste

    • Speedy86
    • 24. Februar 2020 um 01:58

    Hi Musashi,

    Danke vielmals, dass funktioniert echt gut :)

    ich versuch es jetzt noch in ein 3d array irgend wie rein zubekommen :)

    aber das werde ich nur mehr in diesen Thread weiter besprechen:

    Tv Steuerung

    Hier hilft mir zurzeit Kanashius sehr weiter.

    lg

    Speedy

  • ContentMenu auf Button über einer Liste

    • Speedy86
    • 23. Februar 2020 um 21:59

    Hallo Musashi,

    das xml File schaut genau so aus wie im ersten post nur halt mit 100 -150 channels :)

    vermutlich kann man das sogar als Text auslesen.

    lg

    Speedy

  • Tv Steuerung

    • Speedy86
    • 23. Februar 2020 um 21:56

    Hi,

    also mit den Arrays versteh ich ein bissal sogar das mit den 2d und 3d :) aber an der umsetzten das zu schreiben versteh ich es gar nicht .

    zb. das mit den Namen bekomme ich es auch nicht zusammen.

    Hab dies mal geändert:

    Code
    ;TV information
    Global $iDefaultPort=8080
    Global $iNecPort=8020
    Global $arTvList=[ _
                         ["192.168.0.10",$iDefaultPort, "TV 1"], _
                         ["192.168.0.11",$iDefaultPort, "TV 2"], _
                         ["192.168.0.12",$iDefaultPort, "Beamer"], _
                         ["192.168.0.13",$iNecPort, "VW"], _
                         ["192.168.0.14",$iNecPort, "D-Box"], _
                         ["192.168.0.15",$iDefaultPort, "PC"] _
                      ] ;All client IP´s
    Alles anzeigen

    und logischerweise macht er ja noch immer TV 1 - TV 6

    Code
        For $i=0 to UBound($arTvList)-1 step 1
            $arTvListControls[$i][0][0]=GUICtrlCreateButton("TV "&($i+1),$arPointTvListStart[0]+($i*($iTvListItemWidth+$iTvListButtonSpace)),$arPointTvListStart[1],$iTvListItemWidth,$iTvListButtonHeight)

    Ich hab es schon versucht umzubauen aber dann kommt gar kein Button mehr oder Text fehlt komplett :(

    Wegen der Position:

    Kann ich hier auch noch die Position angeben wie zb.

    Code
     ["192.168.0.10",$iDefaultPort, "TV 1", 400, 750], _

    und dann noch etwas zb. fürs Profil:

    Code
     ["192.168.0.10",$iDefaultPort, "TV 1", 400, 750, $arContextMenuButtons], _
     ["192.168.0.10",$iDefaultPort, "VW", 400, 750, $arContextMenuButtons2], _
     ["192.168.0.10",$iDefaultPort, "PC", 400, 750, $arContextMenuButtons3], _

    Hoff das ich dich nicht schon Nerv, ich hab früher nur Windows Application mit Autoit durchgeführt, aber das Projekt ist doch aufwendiger mit den Arrays

    Die Button Add and Remove hab ich komplett entfernt da ich das nicht benötige.

    lg

    Speedy

  • ContentMenu auf Button über einer Liste

    • Speedy86
    • 23. Februar 2020 um 21:01

    Hi,

    Wäre ein anderes Datei format einfacher zb txt oder excel ?

    zb. txt wo steht:

    name=Test Channel 1 channel=1;0;1

    ich hab nur schon vorgefertigte Senderlisten von einen anderen Programm die es so verwendet.

    Aber kann die umschreiben.

    welches würdest du mir raten ?

    lg

    Speedy

  • ContentMenu auf Button über einer Liste

    • Speedy86
    • 23. Februar 2020 um 01:55

    Hallo,

    Ich versuche gerade auf einen Button ein art Contentmenu (also zum aufklappen) und hier soll von einer xml datei alle Einträge angezeigt werden.

    Hier mal ein bsp. vom xml File:

    XML
    <?xml version="1.0" encoding="ISO-8859-15" standalone="yes" ?>
    <channels_list>
        <channel id="1" name="Test Channel 1" command="1;0;1" />
        <channel id="2" name="Test Channel 2" command="1;1;1" />
        <channel id="3" name="Test Channel 3" command="2;4;6" /> 
        <channel id="4" name="Test Channel 4" command="1;1;3;4" /> 
        <channel id="5" name="Test Channel 5" command="1;1;4;5" /> 
    </channels_list>

    Ich würde gern beim Contentmenu alle Namen anzeigen lassen + dahinter Ch: diese 3 Stelligen Nummern bzw. 4 Stellig.

    Wenn ich dann auf Test Channel 3 zb klicke ruf ich eine Funktion mit ein http Request wo diese zahlen mitgeschickt wird.

    über eine IR wandler schick ich die eingelerten IR codes über http request einzeln zum IR wandler.

    zb. erster reqeust: 2

    zweiter reqeust: 4

    dritter reqeust 6

    Somit shcalter der Receiver um.

    Zurzeit verusche ich mit diesen script mein glück aber ich bekomm es nicht zusammen das mit die xml datei ausgelesen wird.

    C
    #include <String.au3>
    #include <file.au3>
    
    local $Rtn = ""
    Local $fArray
    
    If NOT FileExists("sample.txt") Then
        MsgBox(0, "Error", "File is missing" & @CRLF & "please check the file.")
        Exit
    Else
       _FileReadToArray("sample.txt", $fArray)
    
       For $I = 1 to Ubound($fArray)-1
          $Check = _StringBetween( $fArray[$I], '<package_id>', '</package_id>')
          $Rtn &= $Check[0] & @CRLF
       Next
    EndIf
    
    MsgBox(0,"Test: ", $Rtn)
    Alles anzeigen

    Ich versuche gerade eine TV Steuerung zu bauen, das wäre der Receiver Teil :)

    Hier wäre der Link wo ich auch noch ein kleines Problem habe mit den Contentmenü

    Tv Steuerung


    Hoff das mir hier auch jemand weiterhelfen kann.


    lg

    Speedy

  • Tv Steuerung

    • Speedy86
    • 22. Februar 2020 um 22:13

    Hi Kanashius,

    Leider muss ich zugeben das ich doch nicht ganz klar komme wie ich es brauche oder haben will.

    Mein plan war wenn ich es jetzt noch genauer ausführe:

    Ich möchte gerne mein Haus abbilden wo alle TV + Beamer + VLC am Pc´s zu steuern geht :), ich weiß etwas freaky...

    Ich würde gerne jeden TV selber einen Anzeigenamen vergeben und possition auch selber varabel bzw. über die Position von jeden einzelnen verschieben können.

    zb benötige ich auch bei den VLC andere Befehlen bzw. func wie bei den Telnet

    so in etwa

    Code
    Global $TV1_ip = "192.168.0.10" 
    Global $TV1_port = "8080"
    Global $TV1_profile = $TV_Nec_profile
    $TV1fb = GUICtrlCreateButton("TV 1", 100, 100, 60, 20)  ; Das ist zurzeit ein leerer button, woch ich noch eine Fernbedineung einbauen bzw. öffnen soll.
    $TV1ch = GUICtrlCreateButton("", 100, 118, 60, 20)
    
    Global $TV1_ip = "192.168.0.11" 
    Global $TV1_port = "5050"
    Global $TV1_profile = $TV_phillips_profile
    $TV1fb = GUICtrlCreateButton("TV 1", 500, 100, 60, 20)  ; Das ist zurzeit ein leerer button, woch ich noch eine Fernbedineung einbauen bzw. öffnen soll.
    $TV1ch = GUICtrlCreateButton("", 500, 118, 60, 20)
    
    $TV_Nec_profile= 
    Test 1
    Test 2
    
    Restart
    
    hinter den Test 1 zb. :
    ;Telnet_send
    Func telnet_send ()
       TCPStartup ()
       $Conection = TCPConnect ( $telnet_host, $telnet_port )
       If @error Then MsgBox (0,"Error","connection not ok")
          TCPSend ( $Conection, $telnet_command & Chr ( 10 ) )
       If @error Then
          MsgBox (0,"Error","not possible")
       EndIf
    EndFunc
    ; End Telnet_send
    
    $TV_phillips_profile =
    Test 1
    Test 2
    
    Restart
    Hier ist hinter Test zb. ein http Request func.
    Alles anzeigen

    Beim den Profilen würd ich gerne den context angeben können wie die funktion heist + Befehl zb. Telnet befehl oder http request befehl und dann hinter den context die func aus zb. telnet bzw für vlc http request.

    Ich hoff ich hab es verständlich erklärt :)

    mfg

    Speedy

  • Tv Steuerung

    • Speedy86
    • 22. Februar 2020 um 16:00

    Hallo Kanashius :)
    Danke für das Script.


    Werde mal mir das heute am Abend sehr genau anschauen. Weil so weit mit dem Lernen bin ich noch nicht.

    Da sind zurzeit meine Grundkenntnisse noch zu wenig.

    Was ich vieleicht noch einbauen werde das ich doch bei 2-4 TV andere command benötige.

    Was ich meine zb. TV Profil mir würde jetzt gerade 3 verschiedene Profile einfallen. die ich verwenden würde.

    Hoff das ich das in dein Script einbauen kann :)

    Danke einmal.

    mfg

    Speedy

  • Tv Steuerung

    • Speedy86
    • 19. Februar 2020 um 20:32

    Hallo,

    Ich baue gerade ein TV Steuerung wo ich zumindest den Grundstein haben, wie ich es benötige.

    Ich suche noch ein paar tipps dies einfacher zu gestalten da ich noch etwas ratlos bin wie es besser schreiben kann.

    Ich habe in mein Script zb. 3 Tv mit einer aufklappfunktion, wo bestimmte Befehle hinterlegt werden können.

    Nur wie mach ich das wenn ich zb. 10 Tv´s brauche, da wird die Liste ja endlos lang :(
    Ich werden bei allen TV die gleiche Liste angezeigt das kann man sicher auch einfacher durchführen das ich nur mehr die Position des TV angeben muss.

    Könnte mir jemand helfen ?

    C
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsConstants.au3>
    
    #Region all client IP´s
    Global $telnet_port = "8080" ;Port
    Global $TV1_ip = "192.168.0.10"
    Global $TV2_ip = "192.168.0.11"
    Global $TV3_ip = "192.168.0.12"
    #EndRegion
    
    $hGUI = GUICreate("Test", 1000, 750, 0, 0)
    
    #Region TV1 Button
    $TV1fb = GUICtrlCreateButton("TV 1", 100, 100, 60, 20)
    $TV1ch = GUICtrlCreateButton("", 100, 118, 60, 20)
    $TV1chContext = GUICtrlCreateContextMenu($TV1ch)
    $TV1MenuItem1 = GUICtrlCreateMenuItem("Test 1", $TV1chContext)
    $TV1MenuItem2 = GUICtrlCreateMenuItem("Test 2", $TV1chContext)
    $TV1MenuItem3 = GUICtrlCreateMenuItem("Test 3", $TV1chContext)
    $TV1MenuItem4 = GUICtrlCreateMenuItem("Test 4", $TV1chContext)
    $TV1MenuItem5 = GUICtrlCreateMenuItem("Test 5", $TV1chContext)
    $TV1MenuItem6 = GUICtrlCreateMenuItem("", $TV1chContext)
    $TV1MenuRestart = GUICtrlCreateMenuItem("Restart", $TV1chContext)
    GUICtrlSetFont($TV1fb, 8.5, 700, 0, "")
    GUICtrlSetFont($TV1ch, 8.5, 500, 0, "")
    #EndRegion TV1 Button
    #Region TV2 Button
    $TV2fb = GUICtrlCreateButton("TV2", 200, 100, 60, 20)
    $TV2ch = GUICtrlCreateButton("", 200, 118, 60, 20)
    $TV2chContext = GUICtrlCreateContextMenu($TV2ch)
    $TV2MenuItem1 = GUICtrlCreateMenuItem("Test 1", $TV2chContext)
    $TV2MenuItem2 = GUICtrlCreateMenuItem("Test 2", $TV2chContext)
    $TV2MenuItem3 = GUICtrlCreateMenuItem("Test 3", $TV2chContext)
    $TV2MenuItem4 = GUICtrlCreateMenuItem("Test 4", $TV2chContext)
    $TV2MenuItem5 = GUICtrlCreateMenuItem("Test 5", $TV2chContext)
    $TV2MenuItem6 = GUICtrlCreateMenuItem("", $TV2chContext)
    $TV2MenuRestart = GUICtrlCreateMenuItem("Restart", $TV2chContext)
    GUICtrlSetFont($TV2fb, 8.5, 700, 0, "")
    GUICtrlSetFont($TV2ch, 8.5, 500, 0, "")
    #EndRegion TV2 Button
    #Region TV3 Button
    $TV3fb = GUICtrlCreateButton("TV3", 300, 100, 60, 20)
    $TV3ch = GUICtrlCreateButton("", 300, 118, 60, 20)
    $TV3chContext = GUICtrlCreateContextMenu($TV3ch)
    $TV3MenuItem1 = GUICtrlCreateMenuItem("Test 1", $TV3chContext)
    $TV3MenuItem2 = GUICtrlCreateMenuItem("Test 2", $TV3chContext)
    $TV3MenuItem3 = GUICtrlCreateMenuItem("Test 3", $TV3chContext)
    $TV3MenuItem4 = GUICtrlCreateMenuItem("Test 4", $TV3chContext)
    $TV3MenuItem5 = GUICtrlCreateMenuItem("Test 5", $TV3chContext)
    $TV3MenuItem6 = GUICtrlCreateMenuItem("", $TV3chContext)
    $TV3MenuRestart = GUICtrlCreateMenuItem("Restart", $TV3chContext)
    GUICtrlSetFont($TV3fb, 8.5, 700, 0, "")
    GUICtrlSetFont($TV3ch, 8.5, 500, 0, "")
    #EndRegion TV3 Button
    
    GUISetState(@SW_SHOW)
    
    While 1
        Sleep(10)
        $nMsg = GUIGetMsg()
        Switch $nMsg
             Case $GUI_EVENT_CLOSE
                Exit
    
    ;TV1
             Case $TV1fb
    
             Case $TV1ch
                ShowMenu($hGUI, $nMsg, $TV1chContext)
    
             Case $TV1MenuItem1
                Test1()
                $telnet_host = $TV1_ip
                telnet_send ()
                GUICtrlSetData($TV1ch, "Test 1")
    
             Case $TV1MenuItem2
                Test2()
                $telnet_host = $TV1_ip
                telnet_send ()
                GUICtrlSetData($TV1ch, "Test 2")
    
             Case $TV1MenuItem3
                Test3()
                $telnet_host = $TV1_ip
                telnet_send ()
                GUICtrlSetData($TV1ch, "Test 3")
    
             Case $TV1MenuItem4
                Test4()
                $telnet_host = $TV1_ip
                telnet_send ()
                GUICtrlSetData($TV1ch, "Test 4")
    
             Case $TV1MenuItem5
                Test5()
                $telnet_host = $TV1_ip
                telnet_send ()
                GUICtrlSetData($TV1ch, "Test 5")
    
             Case $TV1MenuRestart
                restart()
                $telnet_host = $TV1_ip
                telnet_send ()
                GUICtrlSetData($TV1ch, "")
                Sleep (5000)
                telnet_send ()
    
    ;TV2
             Case $TV2fb
    
             Case $TV2ch
                ShowMenu($hGUI, $nMsg, $TV2chContext)
    
             Case $TV2MenuItem1
                Test1()
                $telnet_host = $TV2_ip
                telnet_send ()
                GUICtrlSetData($TV2ch, "Test 1")
    
             Case $TV2MenuItem2
                Test2()
                $telnet_host = $TV2_ip
                telnet_send ()
                GUICtrlSetData($TV2ch, "Test 2")
    
             Case $TV2MenuItem3
                Test3()
                $telnet_host = $TV2_ip
                telnet_send ()
                GUICtrlSetData($TV2ch, "Test 3")
    
             Case $TV2MenuItem4
                Test4()
                $telnet_host = $TV2_ip
                telnet_send ()
                GUICtrlSetData($TV2ch, "Test 4")
    
             Case $TV2MenuItem5
                Test5()
                $telnet_host = $TV2_ip
                telnet_send ()
                GUICtrlSetData($TV2ch, "Test 5")
    
             Case $TV2MenuRestart
                restart()
                $telnet_host = $TV2_ip
                telnet_send ()
                GUICtrlSetData($TV2ch, "")
                Sleep (5000)
                telnet_send ()
    
    ;TV3
             Case $TV3fb
    
             Case $TV3ch
                ShowMenu($hGUI, $nMsg, $TV3chContext)
    
             Case $TV3MenuItem1
                Test1()
                $telnet_host = $TV3_ip
                telnet_send ()
                GUICtrlSetData($TV3ch, "Test 1")
    
             Case $TV3MenuItem2
                Test2()
                $telnet_host = $TV3_ip
                telnet_send ()
                GUICtrlSetData($TV3ch, "Test 2")
    
             Case $TV3MenuItem3
                Test3()
                $telnet_host = $TV3_ip
                telnet_send ()
                GUICtrlSetData($TV3ch, "Test 3")
    
             Case $TV3MenuItem4
                Test4()
                $telnet_host = $TV3_ip
                telnet_send ()
                GUICtrlSetData($TV3ch, "Test 4")
    
             Case $TV3MenuItem5
                Test5()
                $telnet_host = $TV3_ip
                telnet_send ()
                GUICtrlSetData($TV3ch, "Test 5")
    
             Case $TV3MenuRestart
                restart()
                $telnet_host = $TV3_ip
                telnet_send ()
                GUICtrlSetData($TV3ch, "")
                Sleep (5000)
                telnet_send ()
    
        EndSwitch
    WEnd
    
    
    #Region Func
    Func ShowMenu($hWnd, $CtrlID, $nContextID)
        Local $arPos, $x, $y
        Local $hMenu = GUICtrlGetHandle($nContextID)
    
        $arPos = ControlGetPos($hWnd, "", $CtrlID)
    
        $x = $arPos[0]
        $y = $arPos[1] + $arPos[3]
    
        ClientToScreen($hWnd, $x, $y)
        TrackPopupMenu($hWnd, $hMenu, $x, $y)
     EndFunc   ;ShowMenu
    ; Convert the client GUI coordinates to screen desktop coordinates
    Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
        Local $stPoint = DllStructCreate("int;int")
    
        DllStructSetData($stPoint, 1, $x)
        DllStructSetData($stPoint, 2, $y)
    
        DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))
    
        $x = DllStructGetData($stPoint, 1)
        $y = DllStructGetData($stPoint, 2)
        ; release Struct not really needed as it is a local
        $stPoint = 0
    EndFunc   ;==>ClientToScreen
    ; Show at the given coordinates (x, y) the popup menu (hMenu) which belongs to a given GUI window (hWnd)
    Func TrackPopupMenu($hWnd, $hMenu, $x, $y)
        DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $x, "int", $y, "hwnd", $hWnd, "ptr", 0)
    EndFunc   ;==>TrackPopupMenu
    
    
    ;Channels Func
    Func Test1()
       Global $telnet_command = "Telnet command 1"
    EndFunc
    Func Test2()
       Global $telnet_command = "Telnet command 2"
    EndFunc
    Func Test3()
       Global $telnet_command = "Telnet command 3"
    EndFunc
    Func Test4()
       Global $telnet_command = "Telnet command 4"
    EndFunc
    Func Test5()
       Global $telnet_command = "Telnet command 5"
    EndFunc
    Func restart()
       Global $telnet_command = "Telnet restart"
    EndFunc
    
    
    ;Telnet_send
    Func telnet_send ()
       TCPStartup ()
       $Conection = TCPConnect ( $telnet_host, $telnet_port )
       If @error Then MsgBox (0,"Error","connection not ok")
          TCPSend ( $Conection, $telnet_command & Chr ( 10 ) )
       If @error Then
          MsgBox (0,"Error","not possible")
       EndIf
    EndFunc
    ; End Telnet_send
    #EndRegion Func
    Alles anzeigen

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™