Problema connessione

mercoledì 27 luglio 2011 - 12.26
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Visual Studio 2008  |  SQL Server Express

Carlik Profilo | Junior Member

Salve , ho implementato un'applicazione per pocket. La mia applicazione funziona Offline , ma quando deve sincronizzarsi col server centrale sfrutta la rete wifi per accedere al web service esposto dal server locale. In emulazione il tutto funziona discretamente bene.

Quando invece distribuisco il software avviene la tragedia : dopo un paio di sincronizzazioni il palmare inizia a non vedere più il web service e di conseguenza dopo un minuto circa spunta un errore di timeout. Avete qualche consiglio in merito?

Carlo

PS:Scusate ma non sapevo dove postarlo

nico839 Profilo | Senior Member

ciao, hai controllato che non dipenda dalla qualità del segnale wifi? ci sono librerie per controllare il livello del segnale e attivare/disattivare la wifi in caso si disattivi sul poket...
Ciao.
Nicolas

http://perledinico.blogspot.com

Carlik Profilo | Junior Member

Ad esempio quali?

nico839 Profilo | Senior Member

in questo articolo msdn http://msdn.microsoft.com/en-us/library/aa446491.aspx spiega come utilizzare OpenNetCF che appunto è una libreria che permette di valutare il segnale wifi del poket


ad esempio:

#Region "wifiUtility" Dim signal As New List(Of WIFIStatus) Dim sig As New WIFIStatus Private m_adapters As OpenNETCF.Net.AdapterCollection Private m_nearbyAPs As OpenNETCF.Net.AccessPointCollection Public Function UpdateAdapter() As List(Of WIFIStatus) signal.Clear() m_adapters = Networking.GetAdapters() For Each ad As Adapter In m_adapters m_nearbyAPs = ad.NearbyAccessPoints Dim c As Integer = m_nearbyAPs.Count Dim conn(c, 3) As String For Each ap As AccessPoint In m_nearbyAPs sig = New WIFIStatus sig.Nome = ap.Name sig.Decibel = ap.SignalStrength.Decibels sig.Signal = ap.SignalStrength.ToString() signal.Add(sig) Next Next Return signal End Function #End Region

dove wifistatus è una classe descritta come:


Public Class WIFIStatus Private _name, _signal As String Private _decibel As Integer Public Property Nome() As String Get Return _name End Get Set(ByVal value As String) _name = value End Set End Property Public Property Decibel() As Integer Get Return _decibel End Get Set(ByVal value As Integer) _decibel = value End Set End Property Public Property Signal() As String Get Return _signal End Get Set(ByVal value As String) _signal = value End Set End Property Public Enum WiFiStatus _ON OFF Unknow End Enum End Class

dopo di chè ti basta controllare se un wifistatus in signal ha un valore della proprietà "Decibel" maggiore di un tuo valore accettabile ( nel mio caso ho utilizzato -70dB) e sai se il poket è connesso decentemente con wifi o no...

per quanto riguarda l'attivazione o spegnimento della wifi dipende molto dal tuo dispositivo, io usavo un iPaq200 dell'hp e ho usato una dll fatta apposta per questa famiglia di dispositivi
Ciao.
Nicolas

http://perledinico.blogspot.com

Carlik Profilo | Junior Member

Ancora non ho potuto provare il tuo codice , però la cosa che mi stupisce è che , mettendomi seduto e cercando di fare la mia sincronizzazione 2 volte di fila la fa senza problemi , la terza si impalla senza pietà. Non riesco proprio a capire

nico839 Profilo | Senior Member

in che senso si impalla? Errore di connessione o altro errore (ad esempio outofmemoryexception)?
Ciao.
Nicolas

http://perledinico.blogspot.com

Carlik Profilo | Junior Member

Ho provato il tuo codice.
A dir poco fantastico con range (per il mio caso) sopra i -50 Db
Grazie

nico839 Profilo | Senior Member

prego, mi fa piacere se ti è stato utile e ti ha risolto il problema...


Ciao.
Nicolas

http://perledinico.blogspot.com
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5