Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 29 su 29
  1. #21
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Sisi io uso Putty come terminale. Quando eseguo quel comando restituisce OK. Dove lo vedo il timeout?

    RGazie

  2. #22
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da Vicar
    Sisi io uso Putty come terminale. Quando eseguo quel comando restituisce OK. Dove lo vedo il timeout?

    RGazie
    serialport1.ReadTimeout

    comunque se vuoi un consiglio, per la lettura avvia un thread separato.

  3. #23
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Si va bene però almeno capire come fare a leggere sarebbe interessante !


    E' a -1 che significa?

  4. #24
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da Vicar
    Si va bene però almeno capire come fare a leggere sarebbe interessante !


    E' a -1 che significa?
    dovrebbe essere infinito... mettilo a 500-1000

    per leggere... come ti dicevo prima...

    guarda questo esempio fa la lettura :

    msdn

  5. #25
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Npon mi funziona ancora! Umh.. si blocca!

  6. #26
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da Vicar
    Npon mi funziona ancora! Umh.. si blocca!
    hai letto l'esempio del link che ti ho postato? se si posta il codice come l'hai modificato per te.

  7. #27
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Ora funziona.. Cioè facendo la readline in questo modo non capisco cosa mi restituisce, cioè quale riga mi resituisce.

    Come faccio a digli quale prendere?? Cioè la risposta al comando AT (inquesto caso)

    codice:
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            Dim readThread As Thread = New Thread(AddressOf Read)
    
    
            ' Set the read/write timeouts
            SerialPort1.ReadTimeout = 500
            SerialPort1.WriteTimeout = 500
    
            SerialPort1.WriteLine("AT" & vbCrLf)
    
            readThread.Start()
        End Sub
    
        Public Sub Read()
                Try
                    Dim message As String = SerialPort1.ReadLine()
                MessageBox.Show(message)
                Catch ex As TimeoutException
                    ' Do nothing
                End Try
        End Sub

  8. #28
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da Vicar
    Ora funziona.. Cioè facendo la readline in questo modo non capisco cosa mi restituisce, cioè quale riga mi resituisce.

    Come faccio a digli quale prendere?? Cioè la risposta al comando AT (inquesto caso)
    codice:
    Dim serialport1 As SerialPOrt
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            Dim readThread As Thread = New Thread(AddressOf Read)
    
    
            ' Set the read/write timeouts
            SerialPort1.ReadTimeout = 500
            SerialPort1.WriteTimeout = 500
            '*************************
            ' se già aprivi la porta allora questo non serve
            serialport1.Open()
            '*************************
            SerialPort1.WriteLine("AT" & vbCrLf)
    
            readThread.Start()
        End Sub
    
        Public Sub Read()
            Dim _continue = True
            'di linee ne può dare più di una, quindi devi ciclarle
            Do While _continue
                Try
                    Dim message As String = SerialPort1.ReadLine()
                    'quando raggiungi la stringa che cercavi, puoi anche interrompere il ciclo
                    If message = "OK" Then
                        MessageBox.Show(message)
                        _continue = False
                    End If
                Catch ex As TimeoutException
                    _continue = False
                End Try
            Loop
        End Sub
    se ti stai chiedendo come fai a sapere la stringa che ti serve per interrompere il ciclo, allora dovresti sapere come ti risponde in genere a un dato comando, ecco perchè prima ti dicevo che bisogna sapere in anticipo come potrebbe rispondere (tutte le varie possibilità), ad esempio :

    (>=scrive sulla porta il pc)
    (<=scrive sulla porta il device)

    >AT+CMGL=1 (NewLine)
    <ERROR (NewLine)-----------> (nuovo ReadLine()) (qui devi terminare...)

    oppure se tutto va bene (dipende da device a device, potrebbe non essere uguale)

    >AT+CMGL=1 (NewLine)
    <OK (NewLine)------------------------------> (nuovo ReadLine())
    <ciao da un sms (NewLine)-----------------> (nuovo ReadLine())
    <ciao da un'altro sms (NewLine)-----------> (nuovo ReadLine())
    <blablabla (NewLine) ----------------------->(nuovo ReadLine())
    <(NewLine) ---------------------------------->(nuovo ReadLine()) (carattere di escape, ha finito, quindi puoi uscire)

    ovviamente ogni "<" o ">" e una riga (ReadLine() o WriteLine())
    questi sono solo degli esempi, devi vedere un po tu come risponde il tuo device e agire di conseguenza.

  9. #29
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Il device con il quale si deve interfacciare la mia apllicazione è uno e solo uno. Il mio caro Nokia5000.

    Ora ho capito forse, provo e ti dico.

    Ok dovrei avere capito. per ora grazie mille se ci sono altri problemi ti scrivo.

    GRazie di tutto per ora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.