Stap 4: Bewerken testleds.cpp
Wij gaan testleds.cpp wijzigen zodat het toont wat nuttige informatie: het IP-adres van de zedboard. Wij zullen het knipperen van elke byte voor een tweede en vervolgens alle blanco voor een tweede.
Bewerken testleds.cpp. U kunt dit doen op de webinterface van github of in uw favoriete editor.
Eerst toevoegen
#include <string.h>
aan de lijst met bevat, omdat wij zijn gonna call memset().
De eenvoudigste manier om de board IP-adres te bepalen is uit te voeren van ifconfig, dus de volgende regels toegevoegd na "Starting LED test.":
FILE *pipe = popen("ifconfig eth0", "r"); char buf[256]; // read the first line and discard it fgets(buf, sizeof(buf), pipe); // read the second line fgets(buf, sizeof(buf), pipe); printf("address line: %s", buf); // done with the pipe, close it fclose(pipe);
Buf bevat nu een reeks van de vorm "inet addr:172.17.1.185", dus een aanroep van scanf toevoegen:
int addr[5];<br> memset(addr, 0, sizeof(addr)); int status = sscanf(buf, " inet addr:%d.%d.%d.%d", &addr[0], &addr[1], &addr[2], &addr[3]); printf("eth0 addr %d.%d.%d.%d\n", addr[0], addr[1], addr[2], addr[3]);
Tot slot werken de code waarmee de waarden van de LED voor gebruik van de addr bytes worden verzonden:
for (int i = 0; i < 20; i++) {<br> printf("led value %x\n", addr[i % 5]); device->setLeds(addr[i % 5], blinkinterval); sleep(sleepinterval); }
Nu sparen het dossier, commit en push op github. Als u aan het bewerken bent op de webinterface van github, doet het de duw automatisch.