diff options
author | Joey Castillo <joeycastillo@utexas.edu> | 2022-04-20 17:18:58 -0400 |
---|---|---|
committer | Joey Castillo <joeycastillo@utexas.edu> | 2022-04-20 17:21:47 -0400 |
commit | b0bdf35d8f6340be04aebe7fbd368418d8c15043 (patch) | |
tree | abf080fb2529452db286673fee1c4772a3006048 /movement | |
parent | 263e7c6543ab580bed0567b018d1f198f918a64b (diff) | |
download | Sensor-Watch-b0bdf35d8f6340be04aebe7fbd368418d8c15043.tar.gz Sensor-Watch-b0bdf35d8f6340be04aebe7fbd368418d8c15043.tar.bz2 Sensor-Watch-b0bdf35d8f6340be04aebe7fbd368418d8c15043.zip |
add mechanism for building alternate firmware images
Diffstat (limited to 'movement')
-rw-r--r-- | movement/alt_fw/alt_time.h | 41 | ||||
-rw-r--r-- | movement/alt_fw/deep_space_now.h | 44 | ||||
-rw-r--r-- | movement/alt_fw/focus.h | 42 | ||||
-rw-r--r-- | movement/alt_fw/the_athlete.h | 43 | ||||
-rw-r--r-- | movement/alt_fw/the_backpacker.h | 44 | ||||
-rw-r--r-- | movement/alt_fw/the_stargazer.h | 42 | ||||
-rwxr-xr-x | movement/make/.gitignore | 1 | ||||
-rwxr-xr-x | movement/make/make_alternate_fw.sh | 36 | ||||
-rw-r--r-- | movement/movement.c | 17 |
9 files changed, 310 insertions, 0 deletions
diff --git a/movement/alt_fw/alt_time.h b/movement/alt_fw/alt_time.h new file mode 100644 index 00000000..8108bcf3 --- /dev/null +++ b/movement/alt_fw/alt_time.h @@ -0,0 +1,41 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + beats_face, + day_one_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/deep_space_now.h b/movement/alt_fw/deep_space_now.h new file mode 100644 index 00000000..1d395fca --- /dev/null +++ b/movement/alt_fw/deep_space_now.h @@ -0,0 +1,44 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + mars_time_face, + world_clock_face, + world_clock_face, + world_clock_face, + day_one_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/focus.h b/movement/alt_fw/focus.h new file mode 100644 index 00000000..865459e8 --- /dev/null +++ b/movement/alt_fw/focus.h @@ -0,0 +1,42 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + tomato_face, + stopwatch_face, + countdown_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/the_athlete.h b/movement/alt_fw/the_athlete.h new file mode 100644 index 00000000..5d9d9529 --- /dev/null +++ b/movement/alt_fw/the_athlete.h @@ -0,0 +1,43 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + stopwatch_face, + countdown_face, + counter_face, + pulsometer_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/the_backpacker.h b/movement/alt_fw/the_backpacker.h new file mode 100644 index 00000000..01af7b06 --- /dev/null +++ b/movement/alt_fw/the_backpacker.h @@ -0,0 +1,44 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + sunrise_sunset_face, + moon_phase_face, + thermistor_readout_face, + thermistor_logging_face, + blinky_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/the_stargazer.h b/movement/alt_fw/the_stargazer.h new file mode 100644 index 00000000..320436ad --- /dev/null +++ b/movement/alt_fw/the_stargazer.h @@ -0,0 +1,42 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + astronomy_face, + sunrise_sunset_face, + moon_phase_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/make/.gitignore b/movement/make/.gitignore index 3722ac63..45eba6ef 100755 --- a/movement/make/.gitignore +++ b/movement/make/.gitignore @@ -1 +1,2 @@ build/
+firmware/
diff --git a/movement/make/make_alternate_fw.sh b/movement/make/make_alternate_fw.sh new file mode 100755 index 00000000..575c9e52 --- /dev/null +++ b/movement/make/make_alternate_fw.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +fw_dir="firmware/download" +sim_dir="firmware/simulate" +colors=("green" "blue") +variants=("standard" "alt_time" "deep_space_now" "focus" "the_athlete" "the_backpacker" "the_stargazer") + +if [ -d "$fw_dir" ] ; then + rm -r "$fw_dir" +fi +if [ -d "$sim_dir" ] ; then + rm -r "$sim_dir" +fi + +mkdir -p "$fw_dir" +mkdir -p "$sim_dir" + +for variant in "${variants[@]}" +do + VARIANT=$(echo "$variant" | tr '[:lower:]' '[:upper:]') + for color in "${colors[@]}" + do + COLOR=$(echo "$color" | tr '[:lower:]' '[:upper:]') + make clean + make LED=$COLOR FIRMWARE=$VARIANT + mv "build/watch.uf2" "$fw_dir/$variant-$color.uf2" + done + make clean + emmake make FIRMWARE=$VARIANT + mkdir "$sim_dir/$variant/" + mv "build/watch.wasm" "$sim_dir/$variant/" + mv "build/watch.js" "$sim_dir/$variant/" + mv "build/watch.html" "$sim_dir/$variant/index.html" +done + +echo "Done." diff --git a/movement/movement.c b/movement/movement.c index 13cef97b..d61c90c7 100644 --- a/movement/movement.c +++ b/movement/movement.c @@ -27,7 +27,24 @@ #include <limits.h> #include "watch.h" #include "movement.h" + +#ifndef MOVEMENT_FIRMWARE +#include "movement_config.h" +#elif MOVEMENT_FIRMWARE == MOVEMENT_FIRMWARE_STANDARD #include "movement_config.h" +#elif MOVEMENT_FIRMWARE == MOVEMENT_FIRMWARE_ALT_TIME +#include "alt_fw/alt_time.h" +#elif MOVEMENT_FIRMWARE == MOVEMENT_FIRMWARE_FOCUS +#include "alt_fw/focus.h" +#elif MOVEMENT_FIRMWARE == MOVEMENT_FIRMWARE_THE_BACKPACKER +#include "alt_fw/the_backpacker.h" +#elif MOVEMENT_FIRMWARE == MOVEMENT_FIRMWARE_THE_ATHLETE +#include "alt_fw/the_athlete.h" +#elif MOVEMENT_FIRMWARE == MOVEMENT_FIRMWARE_THE_STARGAZER +#include "alt_fw/the_stargazer.h" +#elif MOVEMENT_FIRMWARE == MOVEMENT_FIRMWARE_DEEP_SPACE_NOW +#include "alt_fw/deep_space_now.h" +#endif #if __EMSCRIPTEN__ #include <emscripten.h> |