Hello
I have this test application for an ESP32, I tested it on different models and the problem is repeated.
I want to use WIFI and BLUETOOTH simultaneously and when the number of variables defined exceeds a value, the BLUETOOTH stops working, giving strange errors in the console
To test it you can define "Private Onda1(18500) As UInt" to a value greater than 18000 and the problem appears, if it is defined to a value less than 18000 everything works correctly again
Not only for this, if more variables are defined there comes a time when the problem appears, it took me a few hours to find out what was happening since after some modifications the BLUETOOTH stopped responding so I didn't even imagine it would be a problem with the variables that increased.
Does anyone have any idea how to solve the problem?
Thank you very much
I have this test application for an ESP32, I tested it on different models and the problem is repeated.
I want to use WIFI and BLUETOOTH simultaneously and when the number of variables defined exceeds a value, the BLUETOOTH stops working, giving strange errors in the console
To test it you can define "Private Onda1(18500) As UInt" to a value greater than 18000 and the problem appears, if it is defined to a value less than 18000 everything works correctly again
Not only for this, if more variables are defined there comes a time when the problem appears, it took me a few hours to find out what was happening since after some modifications the BLUETOOTH stopped responding so I didn't even imagine it would be a problem with the variables that increased.
Does anyone have any idea how to solve the problem?
Thank you very much
#Region Project Attributes
#AutoFlushLogs: True
#CheckArrayBounds: True
#StackBufferSize: 2000
#End Region
'Ctrl+Click to open the C code folder: ide://run?File=%WINDIR%\System32\explorer.exe&Args=%PROJECT%\Objects\Src
Sub Process_Globals
Private Serial1 As Serial
Private WIFI As ESP8266WiFi
Public BC As ByteConverter
' si se aumenta el numero de variables se pierde la conexion bluetooth
Private Onda1(18500) As UInt
End Sub
Private Sub AppStart
Dim Name As String = "Core War 2.4G"
Dim Pass As String = "#39KYcTMDDLp"
Serial1.Initialize(115200)
Log("Inicia Aplicacion")
' Conecta Red WIFI
Log("conectando WIFI")
Conecta_Wifi(Name,Pass)
' iNICIALIZA EL BLUETOOTH
Log("Iniciando BLUETOOTH")
BLUETOOTH.Inicializa_Blue
End Sub
'
' Conecta la Red WIFI
Sub Conecta_Wifi(Name As String,Pass As String)
WIFI.ConnectAsync(Name,Pass,0,Null,"Estado_Wifi")
End Sub
'
' Cambio de Estado de la Conexion WIFI
Public Sub Estado_Wifi(Estado As Boolean)
Dim Ayuda As String
If Estado = True Then ' WIFI Conectada
Log ("Conectado a la Red WIFI !!!") ' Presenta Informacion
Ayuda = JoinStrings(Array As String("Mi IP es : ", WIFI.LocalIp))
Log(Ayuda) '
Else
Log ("Fallo Conexion Red WIFI") ' Presenta Informacion
End If
End Sub
Sub Process_Globals
Private Blue_T As ESP32Bluetooth ' Libreria BlueTooth
Private astream As AsyncStreams ' Comunicaciones Serie del BlueTooth
Private Cnt_BT As Long
End Sub
'
' Inicializa la Conexion BlueTooth
Public Sub Inicializa_Blue
Dim Ayuda As String
Dim Blue_Name As String = "Multi-Generador"
Log("Inicializando BlueTooth en Curso")
Log("Nombre:",Blue_Name)
If Blue_T.Connected = True Then
Blue_T.Close '
Log("Cierra Conexion")
End If
If Blue_T.Initialize(Blue_Name, "Blue_T_CambioEstado") = False Then '
Log("Fallo Iniciando BlueTooth") '
Else
astream.Initialize(Blue_T.Stream, "Blue_T_NewData", "Blue_T_Error")
Log("BlueTooth Iniciando Correctamente")
Ayuda = JoinStrings(Array As String("Nombre BlueTooth = ",Blue_Name))
Log(Ayuda)
End If
End Sub
'
' Cambio del Estado de la Conexion BlueTooth
Sub Blue_T_CambioEstado (Connected As Boolean)
If Connected = False Then
Blue_T.Close
Inicializa_Blue
End If
Log("Cambio Estado BLUETOOTH ",Connected)
End Sub
'
' Errores en la Comunicacion BlueTooth
Sub Blue_T_Error
Log("ERROR BLUETOOTH ... Blue_T_ERROR")
End Sub
'
' Telegramas de Entrada en la Comunicacion BlueTooth
Sub Blue_T_NewData (Buffer() As Byte)
Dim T() As Byte = Buffer
Dim Tt As String
Cnt_BT = Cnt_BT + 1
Tt = Main.BC.StringFromBytes(T)
Log(Cnt_BT,"->",Tt)
Envia_Blue_T(Tt)
End Sub
'
' Envia por BlueTooth
Public Sub Envia_Blue_T(Texto As String)
Dim L(4) As Byte ' Auxiliar de Longuitud
Dim Largo As Int = 0 ' Longuitud del Telegrama Enviado
Largo = Texto.Length ' Largo del Telegrama
L(1) = Largo / 256
L(0) = Largo - (L(1) * 256)
L(2) = 0
L(3) = 0
astream.Write(L) ' Cabecera de Longuitud
astream.Write(Texto.GetBytes) ' Telegrama
End Sub