Paso 2: Comprensión estructuras, punteros, gestión de memoria y básica.
Para enviar grandes cantidades de datos sobre cualquier forma de enlace de comunicaciones en la forma más eficiente de hacerlo es enviar los bytes sin procesar desde el transmisor y leerlos de nuevo en la memoria del receptor. Esto no es particularmente difícil, pero hace uso de un código único de nivel bajo te puede no ha usado antes. Además desde que se jugando con punteros de memoria y estructuras de datos grandes es posible crash arduino muy rápidamente.
Estructuras: Una estructura es algo así como un objeto más básico. Contiene un conjunto de variables llamadas propiedades que se pueden acceder con el operador punto. Por ejemplo:
Utilizamos una estructura de datos para representar estos datos porque tendrá un tamaño fijo y estructura, lo que significa que cuando leemos nuestra estructura en memoria de nuestro receptor el código automáticamente sabrá que todos los datos. Se puede utilizar una variable de cadena en una estructura como esta, porque la variable de cadena lleva una cantidad dinámica de memoria y causará errores inesperados. Más bien si quiere almacenar cuerdas uso una matriz de caracteres con un tamaño fijo. Otra cosa a tener en cuenta es que las estructuras de datos son del tamaño de la suma de sus partes. para que puedan hacer muy grandes. Leer más: Aquí
Punteros: Un puntero en el contexto de un lenguaje C es una forma de hacer referencia a una dirección de memoria física. Esto es útil para nosotros porque directamente no podemos crear una copia de una estructura de recibido. Más bien nos crea un puntero a una estructura inexistente en memoria luego que la memoria se llenan de la secuencia de datos que recibimos de nuestro transmisor. Sin embargo porque estamos usando un puntero a una estructura en lugar de una estructura 'real' tenemos que usar el operador flecha (->) para atender nuestras propiedades en lugar del operador punto. Si esto es confuso estudio el código en los dos pasos siguientes y ver cómo se utilizan estos conceptos. Leer más: Aquí
Gestión de memoria: Porque las estructuras son grandes crear en tiempo de ejecución es una gran manera de llenar la memoria de arduino y causar accidentes. En su lugar deberíamos estáticamente asignamos nuestras estructuras y otros datos estáticos por declarar fuera de la función loop() o start() . para leer más sobre las mejores prácticas para memoria SRAM y variables leer más:aquí