From d69b8110517114d884c185c4dc8053858670c81f Mon Sep 17 00:00:00 2001 From: lonkaars Date: Mon, 6 Jun 2022 15:31:36 +0200 Subject: scal and spin done, removed lcal --- client/serial_win32.c | 16 ++++------------ client/strings.c | 1 - client/time_windows.c | 4 +--- client/ui.c | 6 +++--- robot/mode_scal.c | 17 +++++++++-------- robot/mode_spin.c | 3 ++- robot/modes.c | 1 - robot/readme.md | 8 +++----- robot/sercomm.c | 6 +++++- shared/modes.h | 11 +++++------ 10 files changed, 32 insertions(+), 41 deletions(-) diff --git a/client/serial_win32.c b/client/serial_win32.c index edc9db1..99f4160 100644 --- a/client/serial_win32.c +++ b/client/serial_win32.c @@ -2,20 +2,12 @@ #include "serial.h" -int w2_serial_read() { - return 0x00; -} +int w2_serial_read() { return 0x00; } -bool w2_serial_write(char *data, uint8_t length) { - return true; -} +bool w2_serial_write(char *data, uint8_t length) { return true; } -bool w2_serial_open(const char *port_name) { - return true; -} +bool w2_serial_open(const char *port_name) { return true; } -void w2_serial_close() { - return; -} +void w2_serial_close() { return; } #endif diff --git a/client/strings.c b/client/strings.c index b97d4b2..a119d9a 100644 --- a/client/strings.c +++ b/client/strings.c @@ -7,7 +7,6 @@ void w2_strings_modes_init() { g_w2_mode_strings[W2_M_DIRC] = W2_UI_MODE_DIRC; g_w2_mode_strings[W2_M_GRID] = W2_UI_MODE_GRID; g_w2_mode_strings[W2_M_HALT] = W2_UI_MODE_HALT; - g_w2_mode_strings[W2_M_LCAL] = W2_UI_MODE_LCAL; g_w2_mode_strings[W2_M_MAZE] = W2_UI_MODE_MAZE; g_w2_mode_strings[W2_M_SCAL] = W2_UI_MODE_SCAL; g_w2_mode_strings[W2_M_SPIN] = W2_UI_MODE_SPIN; diff --git a/client/time_windows.c b/client/time_windows.c index f9082d6..76d1879 100644 --- a/client/time_windows.c +++ b/client/time_windows.c @@ -2,9 +2,7 @@ #include "time.h" -unsigned long w2_get_time() { - return 0; -} +unsigned long w2_get_time() { return 0; } void w2_timer_start(w2_e_client_timers label) { g_w2_client_timers[label] = w2_get_time(); } diff --git a/client/ui.c b/client/ui.c index f636501..3835126 100644 --- a/client/ui.c +++ b/client/ui.c @@ -41,9 +41,9 @@ void w2_ui_paint_statusbar() { mvaddnstr(1, 0, temp, g_w2_ui_width); mvaddnstr(2, 0, temp, g_w2_ui_width); - g_w2_state.connected - ? sprintf(temp, W2_UI_CONN_STAT_CONNECTED ", %ims %s", g_w2_state.ping, W2_UI_CONN_STAT_PING) - : sprintf(temp, W2_UI_CONN_STAT_DISCONNECTED); + g_w2_state.connected ? sprintf(temp, W2_UI_CONN_STAT_CONNECTED ", %ims %s", g_w2_state.ping, + W2_UI_CONN_STAT_PING) + : sprintf(temp, W2_UI_CONN_STAT_DISCONNECTED); mvaddstr(0, 0, temp); sprintf(temp, "(%s)", g_w2_state.info.build_str); diff --git a/robot/mode_scal.c b/robot/mode_scal.c index f3178d7..53cbf67 100644 --- a/robot/mode_scal.c +++ b/robot/mode_scal.c @@ -1,19 +1,20 @@ #include "mode_scal.h" +#include "modes.h" +#include "orangutan_shim.h" void w2_mode_scal() { - // TODO ??? - /* pololu_3pi_init(2000); + pololu_3pi_init(2000); for (int counter = 0; counter < 80; counter++) { if (counter < 20 || counter >= 60) { - g_w2_io.motor_left.speed = 40; - g_w2_io.motor_right.speed = -40; + set_motors(40, -40); } else { - g_w2_io.motor_left.speed = -40; - g_w2_io.motor_right.speed = 40; + set_motors(-40, 40); } calibrate_line_sensors(IR_EMITTERS_ON); - delay_ms(20); // TODO foei - } */ + delay_ms(20); + } + + w2_modes_call(W2_M_PREV); } diff --git a/robot/mode_spin.c b/robot/mode_spin.c index 9145eb3..9ee83b0 100644 --- a/robot/mode_spin.c +++ b/robot/mode_spin.c @@ -1,3 +1,4 @@ #include "mode_spin.h" +#include "orangutan_shim.h" -void w2_mode_spin() {} +void w2_mode_spin() { set_motors(255, -255); } diff --git a/robot/modes.c b/robot/modes.c index 7decf47..fd062a8 100644 --- a/robot/modes.c +++ b/robot/modes.c @@ -22,7 +22,6 @@ void w2_modes_init() { g_w2_modes[W2_M_DIRC] = &w2_mode_dirc; g_w2_modes[W2_M_GRID] = &w2_mode_grid; g_w2_modes[W2_M_HALT] = &w2_mode_halt; - g_w2_modes[W2_M_LCAL] = &w2_mode_lcal; g_w2_modes[W2_M_MAZE] = &w2_mode_maze; g_w2_modes[W2_M_SCAL] = &w2_mode_scal; g_w2_modes[W2_M_SPIN] = &w2_mode_spin; diff --git a/robot/readme.md b/robot/readme.md index f54af21..e8316e3 100644 --- a/robot/readme.md +++ b/robot/readme.md @@ -50,8 +50,7 @@ organizational and form more of a software 'skeleton', while the 'maze' and Maze ─┤ Warehouse ─┤ Emergency stop ─┤ - *logic modes* -> Line finding ─┤ - Charge station ─┤ + *logic modes* -> Charge station ─┤ Direct control ─┤ Wet floor ─┤ Sensor calibration ─┘ @@ -74,11 +73,10 @@ what they're supposed to do: |maze |`mode_maze `|done|Jorn & Abdullaahi| controls robot during maze portion of map; hands off control to warehouse module| |warehouse |`mode_grid `|may 31|Loek| controls robot during warehouse portion of map; hands off control to maze module| |emergency stop |`mode_halt `|done|Fiona| stops all execution until emergency mode is reset by software or user| -|line finding |`mode_lcal `|may 31|Fiona| find line by turning on own axis if lost| |charge station |`mode_chrg `|may 31|Fiona| go to the charging station transition in the grid, and continue until a black circle is found| |direct control |`mode_dirc `|done|Loek| respond to [DIRC](../protocol.md#DIRC) commands| -|wet floor |`mode_spin `|may 31|Fiona| spin uncontrollably (simulating wet floor??)| -|sensor calibration|`mode_scal `|may 31|Jorn & Abdullaahi| calibrate underside uv sensors| +|wet floor |`mode_spin `|done|Fiona| spin uncontrollably (simulating wet floor??)| +|sensor calibration|`mode_scal `|done|Jorn & Abdullaahi| calibrate underside uv sensors| ## some standards diff --git a/robot/sercomm.c b/robot/sercomm.c index c50dd15..f52eb7e 100644 --- a/robot/sercomm.c +++ b/robot/sercomm.c @@ -99,7 +99,11 @@ void w2_cmd_ping_rx(w2_s_bin *data) { w2_sercomm_append_msg(data); } void w2_cmd_mode_rx(w2_s_bin *data) { W2_CAST_BIN(w2_s_cmd_mode_rx, data, req); - w2_modes_swap(req->mode); + if (req->mode == W2_M_SCAL) { + w2_modes_call(req->mode); + } else { + w2_modes_swap(req->mode); + } } void w2_cmd_sped_rx(w2_s_bin *data) { return; } diff --git a/shared/modes.h b/shared/modes.h index ff939ea..b58a760 100644 --- a/shared/modes.h +++ b/shared/modes.h @@ -1,6 +1,6 @@ #pragma once -#define W2_MODE_COUNT 8 +#define W2_MODE_COUNT 7 /** mode constants */ typedef enum { @@ -8,9 +8,8 @@ typedef enum { W2_M_MAZE = 0, W2_M_GRID = 1, W2_M_HALT = 2, - W2_M_LCAL = 3, - W2_M_CHRG = 4, - W2_M_DIRC = 5, - W2_M_SPIN = 6, - W2_M_SCAL = 7, + W2_M_CHRG = 3, + W2_M_DIRC = 4, + W2_M_SPIN = 5, + W2_M_SCAL = 6, } w2_e_mode; -- cgit v1.2.3