diff --git a/Dockerfile b/Dockerfile index 1a7cb2b..d8762ec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,4 +8,6 @@ COPY snippets /opt/snippets RUN sudo chmod +x /opt/script.sh +WORKDIR /opt + ENTRYPOINT /opt/script.sh \ No newline at end of file diff --git a/script.sh b/script.sh index 14711a3..53c21ae 100755 --- a/script.sh +++ b/script.sh @@ -20,19 +20,6 @@ display_result() { --msgbox "$2" -1 -1 } -display_code() { - string="----- Imports ----- -${2} - ------ Code ----- -${3}" - - dialog --title "$1" \ - --backtitle "Configure Zephyr RTOS" \ - --no-collapse \ - --msgbox "$string" -1 -1 -} - main_dialog() { selection=$(dialog --stdout \ --backtitle "Configure Zephyr RTOS" \ @@ -201,10 +188,13 @@ sensors_dialog() { case $sensors in 1 ) # Button - imports=$(cat snippets/button/imports.txt) code=$(cat snippets/led/code.txt) - - display_code "Use this code snippet" "$imports" "$code" + echo $code >> /workdir/app/src/main.c + + config=$(cat snippets/led/config.txt) + echo $config >> /workdir/app/prj.conf + + display_result 'Added functionality' "Added functionality successfully at the end of main.c.\nYou have to call the function like in the example manually." ;; 2 ) # TODO @@ -227,10 +217,13 @@ actuators_dialog() { case $actuators in 1 ) # LED - imports=$(cat snippets/led/imports.txt) code=$(cat snippets/led/code.txt) - - display_code "Use this code snippet" "$imports" "$code" + echo "$code" >> /workdir/app/src/main.c + + config=$(cat snippets/led/config.txt) + echo "$config" >> /workdir/app/prj.conf + + display_result 'Added functionality' "Added functionality successfully at the end of main.c.\nYou have to call the function like in the example manually." ;; 2 ) # TODO diff --git a/snippets/button/code.txt b/snippets/button/code.txt index 02bdc32..5b87cca 100644 --- a/snippets/button/code.txt +++ b/snippets/button/code.txt @@ -1,3 +1,10 @@ + + +/* --------------------------- */ +/* Buttons */ +/* --------------------------- */ + +/* Imports / Declarations */ #include #include #include @@ -25,6 +32,7 @@ static struct gpio_dt_spec led = GPIO_DT_SPEC_GET_OR(DT_ALIAS(led0), gpios, {0}); +/* Functions */ void button_pressed(const struct device *dev, struct gpio_callback *cb, uint32_t pins) { diff --git a/snippets/button/config.txt b/snippets/button/config.txt new file mode 100644 index 0000000..91c3c15 --- /dev/null +++ b/snippets/button/config.txt @@ -0,0 +1 @@ +CONFIG_GPIO=y diff --git a/snippets/led/code.txt b/snippets/led/code.txt index 7fc034d..88effe0 100644 --- a/snippets/led/code.txt +++ b/snippets/led/code.txt @@ -1,32 +1,48 @@ -/* --------- */ -/* LED */ -/* --------- */ + + +/* --------------------------- */ +/* LED */ +/* --------------------------- */ /* Imports / Declarations */ +#include #include + +/* The devicetree node identifier for the "led0" alias. */ #define LED0_NODE DT_ALIAS(led0) +/* + * A build error on this line means your board is unsupported. + * See the sample documentation for information on how to fix this. + */ +static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios); + + /* Functions */ -int blink_led(void) { +int initialize_led(void) { int ret; - if (!gpio_is_ready_dt(&led)) { - return 0; - } + if (!gpio_is_ready_dt(&led)) { + return 0; + } - ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE); - if (ret < 0) { - return 0; - } + ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE); + if (ret < 0) { + return 0; + } +} - while (1) { - ret = gpio_pin_toggle_dt(&led); - if (ret < 0) { - return 0; - } - k_msleep(1000); - } - return 0; +int blink_led(int blink_delay) { + int ret; + + while (1) { + ret = gpio_pin_toggle_dt(&led); + if (ret < 0) { + return 0; + } + k_msleep(blink_delay); + } + return 0; } /* @@ -34,7 +50,8 @@ Example: int main(void) { - blink_led(); + initialize_led(); + blink_led(10000); # Millis return 0; } diff --git a/snippets/led/config.txt b/snippets/led/config.txt new file mode 100644 index 0000000..91c3c15 --- /dev/null +++ b/snippets/led/config.txt @@ -0,0 +1 @@ +CONFIG_GPIO=y