#define SWITCH IN_1 #define LIGHT IN_2 #define X OUT_A #define Y OUT_C #define Z OUT_B /* Rev = down */ #define DX 10 #define DY 10 #define GREY 50 #define LOGSIZE 200 int depth; int eol; sub probe { depth = 0; Rev(Z, 7); wait (SWITCH == 0); wait (SWITCH == 1) { depth+=1; } Fwd(Z, 7); wait (SWITCH == 0); wait (SWITCH == 1); Off(Z); Datalog(depth); } task main { Sensor(SWITCH, IN_SWITCH); Sensor(LIGHT, IN_LIGHT); probe(); SetDatalog(0); /* clear the log */ SetDatalog(LOGSIZE); eol = 0; /* end-of-line */ while (1 == 1) { Rev(X, 7); wait (LIGHT > GREY); wait (LIGHT < GREY); Fwd(X, 7); wait (LIGHT > GREY); Off(X); while (LIGHT > GREY) { probe(); Fwd(X, 7); Sleep(DX); Off(X); } Datalog(eol); Rev(Y, 7); Sleep(DY); Off(Y); } }