Absender: Carsten Giesen
Datum: Di, 21.03.2006 19:59:16
Hallo Zusammen, Ich habe einen Patch eingereicht, mit dem man die Zifferntasten mehrfach nutzen kann. Herr Benz bat nun darum das bevor er aufgenommen wird, dieses hier zu diskutieren. Meine Idee, ist abhängig vom Screen den Tsten unterschiedliche Funktionen geben zu können. Bei Screen 1 (Standard) verhalten sich die Tsten auch wie bis her. In einem Screen, der z.B. Funktionen heißen könnte, könnte ich hier nun verschiedene Verhalten auswählen. Oder ich könnte Sensoren kalibrieren. Aufgerufen wird die Funktion dann so (fast wie gehabt): { RC5_CODE_1, rc5_number, { 1, 1 } }, { RC5_CODE_2, rc5_number, { 2, 2 } }, { RC5_CODE_3, rc5_number, { 3, 3 } }, { RC5_CODE_4, rc5_number, { 4, 4 } }, { RC5_CODE_5, rc5_number, { 5, 5 } }, { RC5_CODE_6, rc5_number, { 6, 6 } }, { RC5_CODE_7, rc5_number, { 7, 7 } }, { RC5_CODE_8, rc5_number, { 8, 8 } }, { RC5_CODE_9, rc5_number, { 9, 9 } }, { RC5_CODE_0, rc5_number, { 0, 0 } }, Der Kern ist folgende Routine: /*! * Verarbeitet die Zifferntasten in Abhängigkeit vom eingestelltem Screen */ void rc5_number(RemCtrlFuncPar *par) { switch (display_screen) { case 0: switch (par->value1) { case 0: break; case 1: target_speed_l = BOT_SPEED_SLOW; target_speed_r = BOT_SPEED_SLOW; break; case 2: bot_goto(100, 100, 0); break; case 3: target_speed_l = BOT_SPEED_MAX; target_speed_r = BOT_SPEED_MAX; break; case 4: bot_goto(-20, 20, 0); break; case 5: bot_goto(0, 0, 0); break; case 6: bot_goto(20, -20, 0); break; case 7: bot_goto(-40, 40, 0); break; case 8: bot_goto(-100, -100, 0); break; case 9: bot_goto(40, -40, 0); break; } break; } } Ich kann hier jetzt einfach hergehen und den ganzen case 0 kopieren und als case (z.B.) 5 für Funktion einfügen: case 5: switch (par->value1) { case 0: break; // ungenutzt case 1: activateBehaviour(bot_drive_square); break; case 2: deactivateBehaviour(bot_goto_behaviour); break; case 3: activateBehaviour(bot_olympic_behaviour); break; case 4: deactivateBehaviour(bot_olympic_behaviour); break; case 5: break; case 6: break; case 7: break; case 8: break; case 9: break; } break; Was mein ihr dazu? Cu Carsten