Pagina 1 di 1

Collegamento via Socket Server...in VB

Inviato: 08/07/2011, 23:14
da MrSEO
Hi guys,
mi sono messo a giocare con il controllo Socket di VB ma non riesco a cavarne molto. :cry:
In pratica ho buttato giù due righe di questo tipo:

Codice: Seleziona tutto

Private Sub Connetti_Click()
    wskClient.Connect "http://192.168.0.2", "215"
End Sub

Private Sub wskClient_DataArrival(ByVal bytesTotal As Long)
   Dim a As String
   wskClient.GetData a
   txtReply.Text = a & vbCrLf
End Sub
Fatto sta che qualsiasi cosa accada sulla centrale non ricevo nessun messaggio.
Se ho capito bene: posso solo fare richieste o interrogazioni? Questo è il motivo per il quale la centrale non mi dice nulla? :shock:
Grazie!
Beppe

Re: Collegamento via Socket Server...in VB

Inviato: 09/07/2011, 15:28
da Max_Egodom3
Ciao mrSeo,
la centrale espone tutto ciò che succede sul BUS sul socket, pertanto semplicemente attivando un thread che "ascolta" il socket, DEVI ricevere "quella montagna di dati" che la Centrale gestisce sul BUS.

Giusto x non escludere nulla (non mi mandare a quel paese), hai già verificato che il PC da cui fai le prove ha disattivati eventuali firewall software (windows, comodo ecc.) che magari ti bloccano il traffico? Prova a pingare la centrale sulla porta.

Se sono già disattivi, posta il progetto VB che ci diamo un occhio.
Poi vediamo se gli altri del supporto, Nik o Alby, hanno altre idee.
CIAOOOO

Re: Collegamento via Socket Server...in VB

Inviato: 11/07/2011, 8:58
da Nik_Egodom3
Ciao MrSeo,
affinchè la Centrale invii messaggi al client che gli si è connesso, questo deve prima essersi "registrato". Questo avviene nel momento in cui il client stesso invia il messaggio C_Richiesta_Codice (codice 9000). Tale messaggio, come specificato alla pagina 66 della documentazione del protocollo, deve necessariamente essere il primo da inviare alla Centrale.
In pratica, la centrale "risponde" alle richieste inviategli dal client. Fa eccezione, ad esempio, l'aggiornamento delle temperature dei termostati, dati comunque inviati solo ai client che si sono precedentemente registrati.

Prova pertanto ad inviare il messaggio C_Richiesta_Codice (codice 9000) e sicuramente avrai una risposta dalla Centrale :)

Re: Collegamento via Socket Server...in VB

Inviato: 18/07/2011, 16:48
da MrSEO
Perdonatemi ma so di essere un asino in questo argomento... :?

ping 192.168.0.2:215
Impossibile trovare l'host 192.168.0.2:215. Verificare che il nome sia corretto e riprovare.

Questo anche dopo aver inserito le regole sul firewall del PC, devo inserire la stessa regola sul firewall del router?
Grazie!

Re: Collegamento via Socket Server...in VB

Inviato: 18/07/2011, 17:14
da Nik_Egodom3
Ciao MrSEO!
Il comando ping non ha bisogno della specifica del numero di porta, e quindi ti basta dare

ping 192.168.0.2

per vedere se ti risponde.
Inoltre, ho un appunto in merito alla procedura di collegamento che hai postato:
Private Sub Connetti_Click()
wskClient.Connect "http://192.168.0.2", "215"
End Sub
A meno che non vuoi collegarti utilizzando un browser, la specifica "http" non è necessaria. Sono sufficienti l'indirizzo ip e la porta, pertanto il tuo codice dovrebbe essere qualcosa di simile:

Private Sub Connetti_Click()
wskClient.Connect "192.168.0.2", "215"
End Sub

Re: Collegamento via Socket Server...in VB

Inviato: 01/02/2013, 0:23
da marcobassetti
Salve Nik,
facendo riferimento alla pag 66 della documentazione, all'invio della richiesta (codice 9000) seguirà l'indicazione di fornire parte del Codice d'accesso. Di che codice si tratta? Dove lo configuro?
Grazie



Nik_Egodom3 ha scritto:Ciao MrSeo,
affinchè la Centrale invii messaggi al client che gli si è connesso, questo deve prima essersi "registrato". Questo avviene nel momento in cui il client stesso invia il messaggio C_Richiesta_Codice (codice 9000). Tale messaggio, come specificato alla pagina 66 della documentazione del protocollo, deve necessariamente essere il primo da inviare alla Centrale.
In pratica, la centrale "risponde" alle richieste inviategli dal client. Fa eccezione, ad esempio, l'aggiornamento delle temperature dei termostati, dati comunque inviati solo ai client che si sono precedentemente registrati.

Prova pertanto ad inviare il messaggio C_Richiesta_Codice (codice 9000) e sicuramente avrai una risposta dalla Centrale :)

Re: Collegamento via Socket Server...in VB

Inviato: 11/02/2013, 10:59
da Nik_Egodom3
Ciao Marco,
il Codice d'Accesso è una protezione attivabile sulla Centrale per consentire l'accesso ai soli client autenticati. Lato client, bisognerà inserire le cifre corrispondenti alle posizioni richieste.
Ad esempio, se il PIN memorizzato sulla Centrale è 54321, e sul client viene richiesto 24, l'utente dovrà inserire 42, che corrisponde alle cifre nella posizione 2 e 4 del PIN.