Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Últimos temas

Estadísticas del foro
  • Mensajes del foro:1,582
  • Temas del foro:344
  • Miembros:89
  • Último miembro:chescobar


Enviado por: tincho
19-04-2021, 17:47
Foro: Aplicaciones/Fragmentos de Código
- Respuestas (6)

Hola a todos.
Resulta que el texto que sale de un pdf no esta formateado correctamente, pero si que se pueden hacer algunas cosas para mejorarlo.
Si por ejemplo una cadena termina en ".\n" (punto+nueva-linea) estamos casi con seguridad en el final de un párrafo.
Pero luego hay situaciones en las que se trata de un título y que la linea de texto no termina en "." pero por suerte sucede que luego la siguiente linea comienza por una mayúscula.
Bien ahora la pregunta ¿Cual es la expresión regular, u otra forma para reemplazar \n# por \n[::jump::]#? donde # es cualquier letra mayúscula.

  • Reemplazar \n# por \n[::jump::]#
Saludos.

Imprimir


Enviado por: vuott
18-04-2021, 00:45
Foro: Aplicaciones/Fragmentos de Código
- Sin respuestas

Apuntar Big Grin  en el mapa de un MapView: 

GAMBAS
  1. Private MapView1 As MapView
  2. Private mp As MapPoint = MapPoint(36.490590, -6.238170)  ' en honor de mi amigo, Romanorum Consul Shell
  3. Private DrawingArea1 As DrawingArea
  4.  
  5.  
  6. Public Sub Form_Open()
  7.  
  8.   Dim pn As Panel
  9.  
  10.   With Me
  11.     .W = Screen.AvailableWidth
  12.     .H = Screen.AvailableHeight
  13.     .Arrangement = Arrange.Fill
  14.     .Mouse = Mouse.Blank
  15.   With MapView1 = New MapView(Me) As "MapView1"
  16.     .Map.AddTile("GoogleMap", "https://mt0.google.com/vt/lyrs=s&hl=&x={x}&y={y}&z={z}")
  17.     .Map.Zoom = 11
  18. ' Imposta il centro della mappa:
  19.     .Map.Center = mp
  20.  
  21.   pn = MapView1.Children[0]
  22.   DrawingArea1 = pn.Children[0]
  23.    
  24.  
  25. Public Sub MapView1_MouseMove()
  26.  
  27.   Dim pt As New Point(Mouse.X, Mouse.Y)
  28.   Dim lat As Float = MapView1.Map.PixelToMapPointRel(pt).Lat
  29.   Dim lon As Float = MapView1.Map.PixelToMapPointRel(pt).Lon
  30.  
  31.   mp = MapPoint(lat, lon)
  32.  
  33.   MapView1.Refresh
  34.   MapView1.Map.Refresh
  35.  
  36.  
  37. Public Sub MapView1_Draw()
  38.  
  39.   Dim c, x, y, r As Short
  40.   Dim po As Point = MapView1.Map.MapPointToPixelRel(mp)
  41.  
  42.   With Paint
  43.     .Begin(DrawingArea1)
  44.     .Brush = .Color(Color.DarkOrange)
  45.     .LineWidth = 2.0
  46.     .Arc(MapView1.Map.MapPointToPixelRel(mp).X, MapView1.Map.MapPointToPixelRel(mp).Y, 50, 0, 360, False)
  47.     .Arc(MapView1.Map.MapPointToPixelRel(mp).X, MapView1.Map.MapPointToPixelRel(mp).Y, 30, 0, 360, False)
  48.     .Stroke
  49.     .Brush = .Color(Color.Red)
  50.     .Arc(MapView1.Map.MapPointToPixelRel(mp).X, MapView1.Map.MapPointToPixelRel(mp).Y, 1.5, 0, 360, False)
  51.     .Fill
  52.     
  53.     r = 50
  54.     x = po.X
  55.     y = po.Y
  56.     
  57.     For c = 0 To 360 Step 90
  58.       po.X = x + r * Cos(Rad(c))
  59.       po.Y = y + r * Sin(Rad(c))
  60.       .MoveTo(po.X, po.Y)
  61. ' Per ridurre la lunghezza della "x" per i gradi 0, 90, 180 e 270 è necessaria questa sequenza: +n 0 -n 0 che si ottiene con il Coseno di c.
  62. ' Per ridurre la lunghezza della "y" per i gradi 0, 90, 180 e 270 è necessaria questa sequenza: 0 -n 0 +n che si ottiene con il Coseno di c + 90.
  63.       .LineTo(x + (20 * Cos(Rad(c))), y - (20 * Cos(Rad(c + 90))))
  64.       .Stroke
  65.     Next
  66.     .Brush = .Color(Color.Yellow)
  67.     .DrawText(Format(mp.Lat, "0.######"), x + r * Cos(Rad(270)) - (Me.Font.TextWidth(Format(mp.Lat, "0.######")) / 2), (y + (r + 15) * Sin(Rad(270))), Me.Font.TextWidth(Format(mp.Lat, "0.######")), Me.Font.TextHeight(Format(mp.Lat, "0.######")), Align.Left)
  68.     .DrawText(Format(mp.Lon, "0.######"), x + r * Cos(Rad(0)) - (Me.Font.TextWidth(Format(mp.Lon, "0.######")) / 2), (y + (r + 15) * Sin(Rad(0))), Me.Font.TextWidth(Format(mp.Lon, "0.######")), Me.Font.TextHeight(Format(mp.Lon, "0.######")), Align.Left)
  69.     .End
  70.  


Imprimir


Enviado por: AlfredoSC
16-04-2021, 23:36
Foro: Hardware & IoT
- Respuestas (6)

Hola...saludos:

Pues comencé a hacer proyectos con el ESP32 adicionando las librerías a Arduino bajo Win2 y también en Ubuntu 18.04. Para "subir" el software ya compilado al ESP32 hay que oprimir el botón BOOT mientras avanzan algunos % de carga. Luego se puede soltar y la carga continúa.

Durante estos momentos yo veía fluctuar en intensidad el led integrado rojo del ESP32. Luego al terminar de "subir" el software, y abriendo la terminal Serial, aparecían paquetes de mensajes, cuyo encabezado decía algo parecido a:

"Brownout detector was triggered. CPU Reset"...

Estuve buscando en la web temas relacionados, pero hay muy pocas soluciones. Incluso Expressive (los fabricantes) no proporcionan una solución. En cierta página, alguien propuso modificar un archivo de los descargados para la tarjeta ESP32, denominado sdkconfig, cambiando a la línea que contiene _BROWNOUT_DET=y, se le pone "n", para quedar como:

... _BROWNOUT_DET=n

Pero el colega que propuso esta solución indica que no le funcionó. Así que yo también modifiqué otro archivo:

sdkconfig.h

El cual contiene entre otras muchas la línea .... _BROWNOUT_DET=1

Así que por lógica, lo cambié por ..._BROWNOUT_DET= 0

Guardados ambos archivos, volví a compilar mi proyecto de ESP32 con Arduino y puede "subir" el software a la placa sin ningún problema. Al terminar de subir, de inmediato funcionó y sin mandar los molestos paquetes de error o reset.

Claro que bajé unos 4 datasheets del ESP32 para analizar un poco la cosa del registro que controla la detección de Brownout, que no es otra cosa que la detección del voltaje de alimentación que "baja" un poco por el consumo que hace el ESP32 al encender sus componentes diversos. También encontré que tiene 8 niveles de detección de niveles de voltaje, pero como lo he deshabilitado, ya no interesan de momento.

El problema real es cuando se arma un circuito con el ESP32, varios sensores, fuente y baterías de respaldo. En algún momento al funcionar con baterías, y estas agotarse un poco solamente, el ESP32 comenzará  a hacer sus RESETS, ante la asombro del diseñador.

Incluso si durante las prácticas se usa un cable USB largo (80 cm o mas), la caída de tensión será mas notoria. Es por eso que yo hice la maniobra en ambos archivos. Al principio quise aminorar el problema colocando un capacitor de 1000uF/10V entre Vin y Gnd del ESP32, pero no se quitó el problema.

Por último, he querido hacer lo mismo en Ubuntu, pero no encuentro los dichosos archivos....ayuda por favor...

Eso es todo....
<Nota: Editado>

Imprimir