• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
il spegnere raspberry

Spegnere il Raspberry
#1
Questa è una sub (linguaggio B4J) che chiude una finestra sul desktop di un PC Windows 11.
Codice:
Sub MainForm_CloseRequest (EventData As Event)
  Log("QUI BISOGNEREBBE SPEGNERE IL RASPBERRY")
  vlc.stop
  vlc.release
End Sub
Tale finestra visualizza una stream video proveniente da un Raspberry.
La domanda è: come faccio a chiudere la sessione all'interno di questa sub ?
Poi ovviamente manualmente spengo il Raspberry azionando l'interruttore sull'alimentatore.
Grazie per l'attenzione.
Risposta
#2
Ho chiesto alla AI, suggerisce così:
Codice:
Sub MainForm_CloseRequest (EventData As Event)
    ' Arresta VLC
    vlc.stop
    vlc.release
    
    ' Spegni il Raspberry Pi
    Dim sh As Shell
    Dim indirizzo_IP As String = "192.168.1.100" ' Sostituisci con l'IP corretto
    Try
        sh.Initialize("bash", Array("ssh", "pi@" & indirizzo_IP, "sudo shutdown -h now"))
        sh.Run(-1)
        Log("Comando di spegnimento inviato con successo.")
    Catch
        Log("Errore nell'invio del comando.")
    End Try
End Sub
Risposta
#3
Le varie intelligenze artificiali raramente indicano la soluzione esatta al primo colpo. Anzi, spesso si ostinano a proporre codice assai approssimativo.
Non è tua colpa beninteso, ma guarda cosa mi dice ChatGPT a proposto della soluzione da te riportata :
"Il codice B4J che ti è stato suggerito ha una buona logica, ma non può funzionare così com'è per diversi motivi tipici di ambienti Windows e SSH"
Questo viceversa funziona :

Codice:
Dim sh As Shell
Dim IP As String = "192.168.xxx.yyy"
Dim percorsoPlink As String = "C:\Program Files\PuTTY\plink.exe"  ' plink.exe è un'utility di putty 
Try
Dim args As List
args.Initialize
args.Add(IP)
args.Add("-l")
args.Add("nome utente del raspberry")
args.Add("-pw")
args.Add("password dell'utente")
args.Add("sudo shutdown -h now")
sh.Initialize("plink", percorsoPlink, args)
sh.Run(-1)
Log("Il comando è stato inviato")
Catch
Log("Errore nell'invio del comando.")
End Try
Grazie comunque
Risposta
#4
non conoscendo B4J, ho pensato di pubblicare uno spunto da cui partire.
Se hai risolto, ottimo!
Risposta
  


Vai al forum:


Navigazione: 2 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect