Stap 3: Voorbeeldcode voor de Arduino IDE
/** LED testprogramma
* De LED zal worden gecontroleerd door TCP socket
* Dit programma dient een voorbeeld van een TCP-socketserver
*
* De TCP socket code is adpoted uit: http://www.thegeekstuff.com/2011/12/c-socket-programming/
*
* Gebruik linker kit LED module, en installeer het op D2 D3 V G positie
*
* Jingfeng Liu
*
* 5/4/2013
*
*/
#include < sys/socket.h >
#include < netinet/in.h >
#include < arpa/inet.h >
#include < stdio.h >
#include < stdlib.h >
#include < unistd.h >
#include < errno.h >
#include < string.h >
#include < sys/types.h >
#include < time.h >
#include < core.h >
int led_pin = 2;
int listenfd = 0, connfd = 0;
int n;
struct sockaddr_in serv_addr;
char sendBuff [1025];
time_t teken;
VOID Setup
{
led_pin = 2;
pinMode (led_pin, OUTPUT);
listenfd = socket (AF_INET, SOCK_STREAM, 0);
memset (& serv_addr, '0', sizeof(serv_addr));
memset (sendBuff, '0', sizeof(sendBuff));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.S_ADDR = htonl(INADDR_ANY);
serv_addr.sin_port = htons(5000);
binden (listenfd, (struct sockaddr *) & serv_addr, sizeof(serv_addr));
Luister (listenfd, 10);
connfd = accepteren (listenfd, (struct sockaddr *) NULL, NULL);
}
void loop
{
teken = time(NULL);
snprintf (sendBuff, sizeof(sendBuff), "Jingfeng Liu%.24s\r\n", ctime(&ticks));
schrijven (connfd, sendBuff, strlen(sendBuff));
n = lezen (connfd, sendBuff, strlen(sendBuff));
if(n>0)
{
if(sendBuff[0]=='O') digitalWrite (led_pin, hoge); de LED aangezet
if(sendBuff[0]=='F') digitalWrite(led_pin,LOW); verrekening van de LED
}
Close(connfd);
Sleep(1) daarvoor;
}