Você está na página 1de 3

// 1

int main(int argc,char *argv[]) {


int d = dio_open("");

dio_set(d,"RED_LED",1);
sleep(1);
dio_set(d,"RED_LED",0);
sleep(1);
dio_set(d,"GREEN_LED",1);
sleep(1);
dio_set(d,"GREEN_LED",0);
}
// 2
int main(int argc,char *argv[]) {
int d = dio_open("192.168.0.218");

printf("Red LED is %s\n",dio_get(d,"RLED")?"ON":"OFF");


printf("Green LED is %s\n",dio_get(d,"GLED")?"ON":"OFF");
dio_close(d);
}
// 3
int main(int argc,char *argv[]) {
int d = dio_open("192.168.0.218");
int gled,rled;

gled = dio_lookup(d,"GLED");
rled = dio_lookup(d,"RLED");
printf("Red LED is %s\n",dio_getpin(d,rled)?"ON":"OFF");
printf("Green LED is %s\n",dio_getpin(d,gled)?"ON":"OFF");
dio_setpin(d,rled,1);
sleep(1);
dio_setpin(d,rled,0);
sleep(1);
dio_setpin(d,gled,1);
sleep(1);
dio_setpin(d,gled,0);
dio_close(d);
}
// 4
int main(int argc,char *argv[]) {
int d = dio_open("192.168.0.218");
char *name;
int val;

while (dio_names(d,&name,&val) != -1) {


printf("%s=%d\n",name,val);
}
dio_close(d);
}
// 5
int main(int argc,char *argv[]) {
int d = dio_open("192.168.0.218");
int group;
int block=1;
int i;
struct timeval tv;

group = dio_groupinit(d);
dio_groupadd(d,group,"GLED");
dio_groupadd(d,group,"RLED");
if (block) {
printf("Waiting for LEDs...\n");
dio_grouplock(d,group);
dio_getcurrenttime(d,&tv);
printf("Done waiting\n");
// do something to actually wait for lock to occur
// otherwise we will queue all our requests and when
// the lock occurs they will all be done at once without
// the required delays!
} else {
if (!dio_grouptrylock(d,group)) {
printf("LED(s) busy\n");
return 0;
}
}
for (i=0;i<5;i++) {
dio_set(d,"RLED",1);
dio_groupsync(d,group);
sleep(1);
dio_set(d,"RLED",0);
dio_groupsync(d,group);
sleep(1);
dio_set(d,"GLED",1);
dio_groupsync(d,group);
sleep(1);
dio_set(d,"GLED",0);
dio_groupsync(d,group);
if (i<4) sleep(1);
}
dio_groupunlock(d,group);
dio_close(d);
}
// 6
int main(int argc,char *argv[]) {
int d = dio_open("192.168.0.218");
int i,group,gled,rled;

group = dio_groupinit(d);
dio_groupadd(d,group,"GLED");
dio_groupadd(d,group,"RLED");

if (dio_grouptrylock(d,group)) {
printf("Driving LEDs\n");
while (1) {
dio_set(d,"RLED",1);
dio_groupsync(d,group);
sleep(1);
dio_set(d,"RLED",0);
dio_groupsync(d,group);
sleep(1);
dio_set(d,"GLED",1);
dio_groupsync(d,group);
sleep(1);
dio_set(d,"GLED",0);
dio_groupsync(d,group);
sleep(1);
}
} else {
printf("Watching LEDs\n");
dio_groupisync(d,group);
while (1) {
gled = !dio_get(d,"GLED");
rled = !dio_get(d,"RLED");
dio_groupwaitirq(d,group,(gled?1:0)+(rled?2:0),3);
if (dio_get(d,"GLED") == gled) {
printf("GLED turned %s\n",gled?"ON":"OFF");
}
if (dio_get(d,"RLED") == rled) {
printf("RLED turned %s\n",rled?"ON":"OFF");
}
}
}
dio_close(d);
}

Você também pode gostar