Stap 2: Begrip structuren, Pointers, geheugenbeheer en Basic.
Voor het verzenden van grote terug hoeveelheden gegevens over elke vorm van verbinding tussen de meest efficiënte manier om te gaan doen is sturen de onbewerkte bytes van de zender en lees ze in het geheugen op de ontvanger. Dit is niet bijzonder moeilijk, maar het maakt gebruik van enkele unieke low-levelcode u kan niet eerder hebt gebruikt. Bovendien aangezien wij zal worden knutselen met geheugen pointers en grote datastructuren is het mogelijk te verpletteren de arduino heel snel.
Structuren: Een structuur is een beetje zoals een meer fundamentele object. Het bevat een set van variabelen, eigenschappen die toegankelijk zijn aangeroepen met de puntoperator. Bijvoorbeeld:
//define data structure struct myStruct { int a = 0; int b = 0; int c = 0; }; // create instance of myStruct myStruct ms; // assign values to the new instance of myStruct ms.a = 10; ms.b = 11; ms.c = 21;
We gebruiken een gegevensstructuur voor deze gegevens omdat het een vaste grootte hebben zal en structuur, wat betekent dat wanneer we onze structuur terug in het geheugen van onze ontvanger lezen de code automatisch wat alle gegevens weten zal betekent. U kunt een String-variabele in een structuur, zoals dit omdat de tekenreeksvariabele een dynamische hoeveelheid geheugen neemt en leiden onverwachte fouten tot zal. Maar als u opslaan van tekenreeksen gebruikt een matrix van tekens met een vaste grootte wilt. Een ander ding in mening te houden is dat datastructuren de grootte van de som van hun delen zijn. Zo kunnen ze zeer groot. Lees meer: Hier
Tips: Een aanwijzer in de context van een C-taal is een manier voor het verwijzen naar een adres in het fysieke geheugen. Dit is handig voor ons, want we kunnen niet direct een kopie van een ontvangen structuur maken. Eerder we een aanwijzer naar een niet-bestaande structuur in het geheugen te maken dan dat geheugen te vullen met de stroom van gegevens die we van onze zender ontvangen. Echter omdat we zijn met behulp van een pointer naar een structuur in plaats van een 'echte' structuur hebben we middels de operator van de pijl (->) om aan te pakken van onze eigenschappen in plaats van de puntoperator. Als dit verwarrend is bestuderen van de code in de volgende twee stappen en zie hoe deze concepten worden gebruikt. Lees meer: Hier
Geheugenbeheer: Omdat grote structuren is creëren van hen tijdens runtime een geweldige manier in te vullen van de arduino geheugen en veroorzaken crasht. In plaats daarvan moeten we onze structuren en andere statische gegevens door te verklaren ze buiten de functie loop of start() statisch toewijzen. om meer te lezen over de beste praktijken voor SRAM geheugen en variabelen Lees verder:hier