Automatically add code to main.c
All checks were successful
Build & Publish / build (push) Successful in 10m5s
All checks were successful
Build & Publish / build (push) Successful in 10m5s
This commit is contained in:
parent
555419f701
commit
231880178f
@ -8,4 +8,6 @@ COPY snippets /opt/snippets
|
|||||||
|
|
||||||
RUN sudo chmod +x /opt/script.sh
|
RUN sudo chmod +x /opt/script.sh
|
||||||
|
|
||||||
|
WORKDIR /opt
|
||||||
|
|
||||||
ENTRYPOINT /opt/script.sh
|
ENTRYPOINT /opt/script.sh
|
27
script.sh
27
script.sh
@ -20,19 +20,6 @@ display_result() {
|
|||||||
--msgbox "$2" -1 -1
|
--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() {
|
main_dialog() {
|
||||||
selection=$(dialog --stdout \
|
selection=$(dialog --stdout \
|
||||||
--backtitle "Configure Zephyr RTOS" \
|
--backtitle "Configure Zephyr RTOS" \
|
||||||
@ -201,10 +188,13 @@ sensors_dialog() {
|
|||||||
|
|
||||||
case $sensors in
|
case $sensors in
|
||||||
1 ) # Button
|
1 ) # Button
|
||||||
imports=$(cat snippets/button/imports.txt)
|
|
||||||
code=$(cat snippets/led/code.txt)
|
code=$(cat snippets/led/code.txt)
|
||||||
|
echo $code >> /workdir/app/src/main.c
|
||||||
|
|
||||||
display_code "Use this code snippet" "$imports" "$code"
|
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 )
|
2 )
|
||||||
# TODO
|
# TODO
|
||||||
@ -227,10 +217,13 @@ actuators_dialog() {
|
|||||||
|
|
||||||
case $actuators in
|
case $actuators in
|
||||||
1 ) # LED
|
1 ) # LED
|
||||||
imports=$(cat snippets/led/imports.txt)
|
|
||||||
code=$(cat snippets/led/code.txt)
|
code=$(cat snippets/led/code.txt)
|
||||||
|
echo "$code" >> /workdir/app/src/main.c
|
||||||
|
|
||||||
display_code "Use this code snippet" "$imports" "$code"
|
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 )
|
2 )
|
||||||
# TODO
|
# TODO
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
|
||||||
|
|
||||||
|
/* --------------------------- */
|
||||||
|
/* Buttons */
|
||||||
|
/* --------------------------- */
|
||||||
|
|
||||||
|
/* Imports / Declarations */
|
||||||
#include <zephyr/device.h>
|
#include <zephyr/device.h>
|
||||||
#include <zephyr/drivers/gpio.h>
|
#include <zephyr/drivers/gpio.h>
|
||||||
#include <zephyr/sys/util.h>
|
#include <zephyr/sys/util.h>
|
||||||
@ -25,6 +32,7 @@ static struct gpio_dt_spec led = GPIO_DT_SPEC_GET_OR(DT_ALIAS(led0), gpios,
|
|||||||
{0});
|
{0});
|
||||||
|
|
||||||
|
|
||||||
|
/* Functions */
|
||||||
void button_pressed(const struct device *dev, struct gpio_callback *cb,
|
void button_pressed(const struct device *dev, struct gpio_callback *cb,
|
||||||
uint32_t pins)
|
uint32_t pins)
|
||||||
{
|
{
|
||||||
|
1
snippets/button/config.txt
Normal file
1
snippets/button/config.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
CONFIG_GPIO=y
|
@ -1,32 +1,48 @@
|
|||||||
/* --------- */
|
|
||||||
/* LED */
|
|
||||||
/* --------- */
|
/* --------------------------- */
|
||||||
|
/* LED */
|
||||||
|
/* --------------------------- */
|
||||||
|
|
||||||
/* Imports / Declarations */
|
/* Imports / Declarations */
|
||||||
|
#include <zephyr/kernel.h>
|
||||||
#include <zephyr/drivers/gpio.h>
|
#include <zephyr/drivers/gpio.h>
|
||||||
|
|
||||||
|
/* The devicetree node identifier for the "led0" alias. */
|
||||||
#define LED0_NODE DT_ALIAS(led0)
|
#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 */
|
/* Functions */
|
||||||
int blink_led(void) {
|
int initialize_led(void) {
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!gpio_is_ready_dt(&led)) {
|
if (!gpio_is_ready_dt(&led)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
|
ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while (1) {
|
int blink_led(int blink_delay) {
|
||||||
ret = gpio_pin_toggle_dt(&led);
|
int ret;
|
||||||
if (ret < 0) {
|
|
||||||
return 0;
|
while (1) {
|
||||||
}
|
ret = gpio_pin_toggle_dt(&led);
|
||||||
k_msleep(1000);
|
if (ret < 0) {
|
||||||
}
|
return 0;
|
||||||
return 0;
|
}
|
||||||
|
k_msleep(blink_delay);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -34,7 +50,8 @@ Example:
|
|||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
blink_led();
|
initialize_led();
|
||||||
|
blink_led(10000); # Millis
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
1
snippets/led/config.txt
Normal file
1
snippets/led/config.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
CONFIG_GPIO=y
|
Loading…
Reference in New Issue
Block a user