/****************************************************************************** * RCX receiver * 20APR04 JRH Finalized Version 1.0 of RCX Communication software.. * Questions can be directed to Joseph Hansen at * (760) 939-6999, or joseph.hansen@navy.mil *******************************************************************************/ #include "recvInit.h" // motors and sensors #define LEFT_MOTOR OUT_A #define RIGHT_MOTOR OUT_C #define BOTH_MOTORS LEFT_MOTOR + RIGHT_MOTOR #define C 523 /* Middle C */ #define CS 554 /* C Sharp */ #define D 587 /* D */ #define DS 622 /* D Sharp */ #define E 660 /* E */ #define F 699 /* F */ #define FS 741 /* F Sharp */ #define G 785 /* G */ #define GS 832 /* G Sharp */ #define A 880 /* A */ #define AS 932 /* A Sharp */ #define B 988 /* B */ #define C2 1046 /* C (octave) */ #define L 20 /* Long note duration */ #define S 10 /* Short note duration */ #define L2 24 /* Long wait duration */ #define S2 12 /* Short wait duration */ /**************************************************************** * MAIN TASK: Test routine to show how to use RCX Comm software. ****************************************************************/ task main() { int msgId; int i; /* set the team ID */ setTeamId (); SetPower(BOTH_MOTORS, 2); while (true) { /* get the message */ getMsg (msgId); Wait(10); /* NOTE: Valid msgId values are 1 .. 20 */ /* if there was one button tap */ if (msgId == 1) { PlayTone (440, 25); OnFwd(BOTH_MOTORS); Wait(100); Off(BOTH_MOTORS); Wait(25); OnRev(BOTH_MOTORS); Wait(100); Off(BOTH_MOTORS); } /* else if there were two button taps */ else if (msgId == 2) { PlayTone (880, 25); OnFwd(LEFT_MOTOR); OnRev(RIGHT_MOTOR); Wait(350); Off(BOTH_MOTORS); } /* else if there were three button taps */ else if (msgId == 3) { PlayTone (1320, 25); OnFwd(RIGHT_MOTOR); OnRev(LEFT_MOTOR); Wait(350); Off(BOTH_MOTORS); } /* else if there were four button taps */ else if (msgId == 4) { for (i=0; i<1; i++) { PlayTone(C2, L); Wait(L2); PlayTone(B, L); Wait(L2); PlayTone(AS, S); Wait(S2); PlayTone(B, S); Wait(S2); PlayTone(AS, S); Wait(S2); PlayTone(A, S); Wait(S2); PlayTone(GS, L); Wait(L2); PlayTone(G, L); Wait(L2); PlayTone(FS, L); Wait(L2); PlayTone(G, L); Wait(L2); PlayTone(A, L); Wait(L2); PlayTone(GS, L); Wait(L2); PlayTone(G, S); Wait(S2); PlayTone(GS, S); Wait(S2); PlayTone(G, S); Wait(S2); PlayTone(FS, S); Wait(S2); PlayTone(F, L); Wait(L2); PlayTone(E, L); Wait(L2); PlayTone(DS, L); Wait(L2); PlayTone(E, L); Wait(L2); PlayTone(G, L); Wait(L2); PlayTone(D, S); Wait(S2); PlayTone(D, S); Wait(S2); PlayTone(CS, L); Wait(L2); PlayTone(D, L); Wait(L2); PlayTone(G, L); Wait(L2); PlayTone(D, L); Wait(L2); PlayTone(CS, L); Wait(L2); PlayTone(D, L); Wait(L2); PlayTone(C, S); Wait(S2); PlayTone(CS, S); Wait(S2); PlayTone(D, S); Wait(S2); PlayTone(DS, S); Wait(S2); PlayTone(E, S); Wait(S2); PlayTone(F, S); Wait(S2); PlayTone(FS, S); Wait(S2); PlayTone(G, S); Wait(S2); PlayTone(GS, S); Wait(S2); PlayTone(A, S); Wait(S2); PlayTone(AS, S); Wait(S2); PlayTone(B, S); Wait(S2); PlayTone(A, L); Wait(L2); PlayTone(G, L); Wait(L2); } } /* else if there were anything else, beep */ else if (msgId > 0) PlayTone (220, 25); } /* while (true) */ } /* main */