Tus alertas

Programación y Desarrollo para WM Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo WM

Respuesta
 
Herramientas
  #1  
Viejo 03/09/08, 20:47:50
Avatar de badaxavi
badaxavi badaxavi no está en línea
Miembro del foro
 
Fecha de Ingreso: jul 2008
Localización: Badalona
Mensajes: 78
Modelo de smartphone: Samsung Galaxy SIII
Tu operador: Tuenti Movil
leer gps

Hola, a ver si alguien me puede ayudar con vb.net, estoy haciendo una aplicacion para leer los datos del gps, con un serialport, cuando hago un readline me da un error de OutofMemory. Si corro ese código en el pc de sobremesa lee los datos correctamente. Sabe alguien alguna forma de solucionar esto?. El código resumido que pongo es este:

buffer=9060
serialport1.open()
dim leer as string = serialport1.readline
texbox1.text= leer

si en lugar de usar serialport1.readline uso serialport1.readbyte lee bien 2 números.


Otra pregunta como se puede activar el bluetooth. en que puerto está.


Gracias por adelantado.
Responder Con Cita top
  #2  
Viejo 04/09/08, 00:21:54
Avatar de romo1987
romo1987 romo1987 no está en línea
Colaborador/a
 
Fecha de Ingreso: jul 2008
Localización: Asturias
Mensajes: 248
Modelo de smartphone: HTC Diamond
Versión de ROM: Vauss v1.2
No he mirado nada el tema del GPS, aunque podria recomendarte algun ejemplo si quieres...

De todos modos, si pudieras dar algun dato más quiza pudieramos ayudarte, pero me da que has sido demasiado escueto... falla en compilacion o en ejecucion? En que linea?

el buffer que declaras se usa en la llamada de lectura del gps? Porque bueno en principio el OutOfMemory podria venir por ahi...
__________________
Disco duro virtual con recursos de programación en Windows Mobile:
http://htcdiamond.4shared.com

CAPITULOS DEL CURSO:
1. Introducción a la programación en WM y Hola mundo.
2. Programación orientada a objetos. Ejemplo agenda.
3. Introduciendo musica e imagenes. Generando CAB. Tres en raya.

A. Temporizaciones y giros de pantalla.

PRÓXIMOS CAPITULOS:
- Uso de ficheros externos y tokenizers.
- Uso del acelerómetro con ejemplo.
- Splash forms


Responder Con Cita top
  #3  
Viejo 04/09/08, 20:04:29
Avatar de badaxavi
badaxavi badaxavi no está en línea
Miembro del foro
 
Fecha de Ingreso: jul 2008
Localización: Badalona
Mensajes: 78
Modelo de smartphone: Samsung Galaxy SIII
Tu operador: Tuenti Movil
 Cita: Originalmente Escrito por romo1987 Ver Mensaje
No he mirado nada el tema del GPS, aunque podria recomendarte algun ejemplo si quieres...

De todos modos, si pudieras dar algun dato más quiza pudieramos ayudarte, pero me da que has sido demasiado escueto... falla en compilacion o en ejecucion? En que linea?

el buffer que declaras se usa en la llamada de lectura del gps? Porque bueno en principio el OutOfMemory podria venir por ahi...

hola romo1987, gracias por contestar este es el código completo y falla justo al leer los datos ** , cuando corre en el p3300, en el pc de mesa no falla., tambien me gustaria ver algún ejemplo.

Public Class frmGPS

Private Sub btnRead_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnRead.Click

Try
'-----------------------------------------------------------
' COM Port to Use
'-----------------------------------------------------------
Dim sComPort As String = Me.cboCOMPort.Text

Me.txtResult.Text = sComPort & vbCrLf

'-----------------------------------------------------------
' Baud Rate
'-----------------------------------------------------------
Dim iBaudRate As Int32
iBaudRate = Val(Me.cboBaudRate.Text)

Me.txtResult.Text += iBaudRate.ToString & vbCrLf

'-----------------------------------------------------------

Dim comPort As System.IO.Ports.SerialPort
comPort = New System.IO.Ports.SerialPort(sComPort)
comPort.BaudRate = iBaudRate
comPort.ReadBufferSize = 512
With comPort
.PortName = "COM4" 'windows mobile 5
.Handshake = IO.Ports.Handshake.RequestToSend
.Encoding = System.Text.Encoding.ASCII
.ReadTimeout = 500
.WriteTimeout = 500
.ReadBufferSize = 4096
.WriteBufferSize = 4096
.ReceivedBytesThreshold = 1
.BaudRate = 9600
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
.DiscardNull = True
.Open()
End With
'-----------------------------------------------------------
' Retries
'-----------------------------------------------------------
Dim n As Int16
n = Me.nudRetries.Text

'-----------------------------------------------------------
' Loop Reading Data
'-----------------------------------------------------------


comPort.Open()

For i As Int16 = 1 To n

Me.lblNr.Text = i.ToString & "/" & n.ToString

' Read the COM Data
'Dim sReadData As String = comPort.ReadLine.ToString
Dim sReadData As String = comPort.ReadLine **

'sReadData = comPort.ReadByte
Me.txtResult.Text = Me.txtResult.Text + sReadData & vbCrLf

' Parse Values
Dim sValues As String()
sValues = sReadData.Split(",")

' Recommended Minimun Specific GPS Transit Data
If sValues(0) = "$GPGGA" Then
If sValues(3).Length > 0 And sValues(5).Length > 0 Then
Me.lblLatitud.Text = sValues(3)
Me.lblLongitud.Text = sValues(5)
Exit For
End If
End If

Application.DoEvents()

Next


comPort.Close()

'-----------------------------------------------------------

MessageBox.Show("Intents Esgotats")

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Private Sub frmGPS_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

Try
'-----------------------------------------------------------
' Initial Values
'-----------------------------------------------------------
With Me.cboCOMPort.Items
.Add("COM1")
.Add("COM2")
.Add("COM3")
.Add("COM4")
.Add("COM5")
.Add("COM6")
.Add("COM7")
.Add("COM8")
.Add("COM9")
End With
With Me.cboBaudRate.Items
.Add(4800)
.Add(9600)
End With

Me.cboCOMPort.SelectedIndex = 3 'puerto COM4
Me.cboBaudRate.SelectedIndex = 1 '9600
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click
Me.Close()
End Sub


End Class
Responder Con Cita top
  #4  
Viejo 05/09/08, 12:56:22
Avatar de romo1987
romo1987 romo1987 no está en línea
Colaborador/a
 
Fecha de Ingreso: jul 2008
Localización: Asturias
Mensajes: 248
Modelo de smartphone: HTC Diamond
Versión de ROM: Vauss v1.2
Me temo que no voi a poder ayudarte... Visual Basic es desconocido para mi, y aun no he programado para GPS nunca... Pero vamos que con ese error yo prestaria atencion a la asignaciond e buffers y a la memoria dinamica, porque deben de ir por ahi los tiros...

Quiza estas utilizando demasiada y el pda no da mas de si, pues el modelo que me dices tiene la memoria limitada... Asegurate de estar reciclando las reservas, en lugar de reservar memoria constantemente.

Los codigos de ejemplo que tengo con en C#. Pero bueno, por si te pudieran servir, voi a subirlos ahora mismo a mi carpeta de compartidos, seccion Ejemplos GPS. Tengo una brujula gps, un detectos de altitud y longitud, un velocimetro y un programa para que te diga donde gastaste el dinero este mes (con coordenadas de gps).

Espero que te sirvan o alguien mas pueda orientarte, un saludo!
__________________
Disco duro virtual con recursos de programación en Windows Mobile:
http://htcdiamond.4shared.com

CAPITULOS DEL CURSO:
1. Introducción a la programación en WM y Hola mundo.
2. Programación orientada a objetos. Ejemplo agenda.
3. Introduciendo musica e imagenes. Generando CAB. Tres en raya.

A. Temporizaciones y giros de pantalla.

PRÓXIMOS CAPITULOS:
- Uso de ficheros externos y tokenizers.
- Uso del acelerómetro con ejemplo.
- Splash forms


Responder Con Cita top
  #5  
Viejo 05/09/08, 16:33:20
Avatar de badaxavi
badaxavi badaxavi no está en línea
Miembro del foro
 
Fecha de Ingreso: jul 2008
Localización: Badalona
Mensajes: 78
Modelo de smartphone: Samsung Galaxy SIII
Tu operador: Tuenti Movil
gracias de todos modos.
Responder Con Cita top
  #6  
Viejo 18/09/08, 17:51:36
Avatar de Xylar
Xylar Xylar no está en línea
Usuario novato en la web
 
Fecha de Ingreso: ene 2008
Mensajes: 16
Modelo de smartphone: HTC P3300 WM6
A mi me paso

Compi, metele un try catch y pasa del error, ya veras que sorpresa.
Responder Con Cita top
El siguiente usuario ha agradecido a Xylar este post:
  #7  
Viejo 19/09/08, 20:05:37
Avatar de badaxavi
badaxavi badaxavi no está en línea
Miembro del foro
 
Fecha de Ingreso: jul 2008
Localización: Badalona
Mensajes: 78
Modelo de smartphone: Samsung Galaxy SIII
Tu operador: Tuenti Movil
hola Xylar,

Gracias por contestar

si pongo un try..catch ignora el error pero sigue existiendo y sin leer los datos del puerto.


si me puedes decir como lo solucionaste.


Saludos
badaxavi
Responder Con Cita top
  #8  
Viejo 27/10/08, 21:57:02
Avatar de miasky
miasky Hombre miasky no está en línea
Por aquí ando
Compra y venta: (5)
 
Fecha de Ingreso: abr 2007
Mensajes: 3,071
Modelo de smartphone: HTC P3300, Nexus One, Nexus S, Nexus 7
Versión de ROM: 4.2.1
Tu operador: Pepephone
Se que llego un poco tarde, pero si estás programando ese ejemplo en la 3300 el error viene porque nuestra 3300 tiene problemas con los puertos serie, yo tampoco puede programarlo con puertos serie y la conclusión fue esa, 3300 y serial ports no se gustan.
Pero no tienes ningún problema porque con wm5 y wm6 se utiliza el GPS Intermediate Driver, existe un ejemplo en la carpeta de tu pc del sdk correspondiente, échale un ojo.

Saludos.
__________________

... Mejor en el foro que por privados, todos ganamos ...




"Cuando un hombre se sienta con una chica bonita durante una hora, parece que fuese un minuto. Pero déjalo que se siente en una estufa caliente durante un minuto y le parecerá más de una hora. Eso es relatividad." Einstein
"Si ocurre algo malo, bebes para olvidar, si ocurre algo bueno, bebes para celebrarlo, y si no pasa nada, bebes para que pase algo." Charles Bukowski
Responder Con Cita top
  #9  
Viejo 04/12/08, 16:41:39
Avatar de Bertukoo
Bertukoo Bertukoo no está en línea
Usuario novato en la web
 
Fecha de Ingreso: oct 2008
Mensajes: 26
Hola, al fin he podido leer el GPS, pero resulta que la antena envía las señales continuamente, si pongo un buffer de 500 lee bastante rapido en 30 segundos ya las tengo, pero da muchos fallos, lo que pretendo es leer de linea en linea, eso como se podría hacer??

Saludos
Responder Con Cita top
  #10  
Viejo 09/12/08, 10:58:01
Avatar de miasky
miasky Hombre miasky no está en línea
Por aquí ando
Compra y venta: (5)
 
Fecha de Ingreso: abr 2007
Mensajes: 3,071
Modelo de smartphone: HTC P3300, Nexus One, Nexus S, Nexus 7
Versión de ROM: 4.2.1
Tu operador: Pepephone
al final has usado el ejemplo que te indiqué??
para leer por partes es coger todo el texto e ir partiendolo
__________________

... Mejor en el foro que por privados, todos ganamos ...




"Cuando un hombre se sienta con una chica bonita durante una hora, parece que fuese un minuto. Pero déjalo que se siente en una estufa caliente durante un minuto y le parecerá más de una hora. Eso es relatividad." Einstein
"Si ocurre algo malo, bebes para olvidar, si ocurre algo bueno, bebes para celebrarlo, y si no pasa nada, bebes para que pase algo." Charles Bukowski
Responder Con Cita top
  #11  
Viejo 09/12/08, 13:22:07
Avatar de Bertukoo
Bertukoo Bertukoo no está en línea
Usuario novato en la web
 
Fecha de Ingreso: oct 2008
Mensajes: 26
Abrimos el Puerto del GPS

Public Sub GPS_Abrir_Puerto(ByVal nombre_puerto As String, ByVal velocidad As Integer)
With puerto
.PortName = nombre_puerto
.BaudRate = velocidad
.Parity = IO.Ports.Parity.None
.Handshake = Handshake.XOnXOff
.DataBits = 8
.StopBits = StopBits.One
.ReadTimeout = 500000
.Open()
End With
End Sub




Leermos los Datos del GPS

Private Sub puerto_datos_recibidos(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles puerto.DataReceived
Dim pos As Integer = 0
Dim buff As Byte() = New Byte(500) {}
'MsgBox(buff.Length)
While True
Try
If puerto.IsOpen Then
buff(pos) = Convert.ToByte(puerto.ReadByte())
pos += 1
If pos = buff.Length Then
Exit While
End If
Else
Exit Sub
End If

Catch

Exit Try
End Try
End While
datos_gps = ASCIIEncoding.ASCII.GetString(buff, 0, pos)
End Sub


Esta es la solucion que tengo ahora mismo, el buffer lo tengo en 500 para que reciba los datos rápido y correctamente.
Responder Con Cita top
  #12  
Viejo 09/12/08, 13:25:30
Avatar de romo1987
romo1987 romo1987 no está en línea
Colaborador/a
 
Fecha de Ingreso: jul 2008
Localización: Asturias
Mensajes: 248
Modelo de smartphone: HTC Diamond
Versión de ROM: Vauss v1.2
Yo hice un miniprograma hace poco para leer el gps discretamente, cada vez que pulsabas un boton... tome un ejemplo que encontre en la red, pero la verdad es que tampoco me funciono. Aun tengo pendiente buscar el error...
__________________
Disco duro virtual con recursos de programación en Windows Mobile:
http://htcdiamond.4shared.com

CAPITULOS DEL CURSO:
1. Introducción a la programación en WM y Hola mundo.
2. Programación orientada a objetos. Ejemplo agenda.
3. Introduciendo musica e imagenes. Generando CAB. Tres en raya.

A. Temporizaciones y giros de pantalla.

PRÓXIMOS CAPITULOS:
- Uso de ficheros externos y tokenizers.
- Uso del acelerómetro con ejemplo.
- Splash forms


Responder Con Cita top
  #13  
Viejo 09/12/08, 15:39:50
Avatar de Bertukoo
Bertukoo Bertukoo no está en línea
Usuario novato en la web
 
Fecha de Ingreso: oct 2008
Mensajes: 26
Yo con ese código consigo todo, lo que me falta es interpretarlo de forma segura, en el hilo del programa antirrobo JMGarciam me puso cual era el que mostraba la posición, lo que yo quería es leer solo un comando GPS, y no que me muestre todos.
Responder Con Cita top
  #14  
Viejo 09/12/08, 16:02:10
Avatar de miasky
miasky Hombre miasky no está en línea
Por aquí ando
Compra y venta: (5)
 
Fecha de Ingreso: abr 2007
Mensajes: 3,071
Modelo de smartphone: HTC P3300, Nexus One, Nexus S, Nexus 7
Versión de ROM: 4.2.1
Tu operador: Pepephone
pues coge solo la trama NMEA que te interesa, que supongo sea tu duda
__________________

... Mejor en el foro que por privados, todos ganamos ...




"Cuando un hombre se sienta con una chica bonita durante una hora, parece que fuese un minuto. Pero déjalo que se siente en una estufa caliente durante un minuto y le parecerá más de una hora. Eso es relatividad." Einstein
"Si ocurre algo malo, bebes para olvidar, si ocurre algo bueno, bebes para celebrarlo, y si no pasa nada, bebes para que pase algo." Charles Bukowski
Responder Con Cita top
  #15  
Viejo 27/02/09, 10:27:36
Avatar de visinho
visinho visinho no está en línea
Miembro del foro
Compra y venta: (1)
 
Fecha de Ingreso: oct 2008
Mensajes: 279
Modelo de smartphone: HTC Diamond & HTC Desire
Hola, voy a plantear mi duda en este hilo para no abrir uno nuevo..

El caso es que quiero implementar una aplicación que plasme los datos que me interesen del GPS así como otra información del sistema.

El problema que tengo es que no se absolutamente nada de programar con esa función. No sé inicializarlo, no sé cómo hacer que se conecte.. en fín, todo.

Podíais pasarme algún código comentado para ver cómo se maneja?

Muchísimas Gracias.

Un saludo
Responder Con Cita top
Respuesta

Herramientas


Hora actual: 11:31:40 (GMT +2)
Haz click aquí si ves mal la hora en el foro