#include #include #define FRAME_SIZE 48 static EVENT_HANDLER(debugger) { printf("\tDEBUG-2\n"); } static EVENT_HANDLER(receiver) { char frame[FRAME_SIZE]; size_t len; int link = 1; len = sizeof(frame); CHECK(CNET_read_physical(&link, frame, &len)); printf("\t\tRX %s\n", frame); } static EVENT_HANDLER(transmit) { static int tx = 0; char frame[FRAME_SIZE]; size_t len; sprintf(frame, "%s=%d", nodeinfo.nodename, tx++); len = strlen(frame)+1; CHECK(CNET_write_physical(1, frame, &len)); printf("TX %s\n", frame); // RESCHEDULE EV_TIMER1 TO OCCUR AGAIN IN 1SEC CNET_start_timer(EV_TIMER1, 1000000, 0); } EVENT_HANDLER(reboot_node) { // REQUEST THAT ALL OUTPUT TO stdout IS MIRRORED TO THE NAMED FILE CHECK(CNET_set_outputfile("/tmp/hello")); // INDICATE THAT WE ARE INTERESTED IN THESE EVENTS CHECK(CNET_set_handler(EV_TIMER1, transmit, 0)); CHECK(CNET_set_handler(EV_PHYSICALREADY, receiver, 0)); CHECK(CNET_set_debug_string(EV_DEBUG2, "tryme")); CHECK(CNET_set_handler(EV_DEBUG2, debugger, 0)); // REQUEST THAT EV_TIMER1 OCCUR IN 1SEC, IGNORING THE RETURN VALUE CNET_start_timer(EV_TIMER1, 1000000, 0); }