.
Buenas.
Tengo un problema a la hora de asignar un valor a "una variable" declarada globamente. Lo he puesto entre comillas, porque realmente no se si es una variable o que diablos es (creo que es una estructura o una unión, declarada en un .h).
Esta es la declaración:
IPAddress IP_Remote(255, 255, 255, 255); // IP para Broadcast
Vale que queda declarada globalmente y se puede leer desde cualquier parte o función del programa, el problema viene cuando quiero cambiar su valor desde una función o desde el main. Es el valor de una IP Remota para enviar paquetes de datos por UDP, que el usuario puede cambiar en un fichero de configuración de texto almacenado en tarjeta SD.
Leo el archivo de la SD, depuro y trato de cambiar el valor, el resultado es que no lo hace a nivel global.
Si hago por ejemplo esto: IPAddress IP_Remote(192, 168, 1, 3); , no afecta a la variable global, parece que crea la misma variable pero a nivel local, comprobado por Debug. Con lo cual no usa el nuevo valor de IP en la función encargada de enviar los paquetes UDP.
Si hago esto: IP_Remote(192, 168, 1, 3); , me da error de compilación.
No se como cambiar esa variable a nivel global. Al final lo he resuelto con un truco, los valores de la IP en el fichero de configuración, los guardo en una matriz declarada como global, y cuando se va a utilizar en la instrucción UDP, le pongo los elementos de la matriz directamente en la instrucción así;
Udp.beginPacket(IPAddress (ipxr[0], ipxr[1], ipxr[2], ipxr[3]), localPort);
Así me funciona, pero me gustaría saber como cambiar esa variable a nivel global, y que no me cree otra variable del mismo nombre pero local.