implemented basic shell commands for challenge application,main
parent
34cbb8f143
commit
c88388b415
@ -1,59 +0,0 @@ |
||||
/*
|
||||
* application.s |
||||
* |
||||
* Created on: 25.11.2022 |
||||
* Author: jonas |
||||
*/ |
||||
|
||||
#include "application.h" |
||||
#include "freertos/FreeRTOS.h" |
||||
#include "freertos/task.h" |
||||
#include "myMqtt.h" |
||||
#include "wifi.h" |
||||
|
||||
static TaskHandle_t appTaskHandle; |
||||
|
||||
static void appTask(void *pv){ |
||||
if(pv != NULL){ |
||||
printf("task argument: %s\n", (char*)pv); |
||||
} |
||||
|
||||
printf("Application was started"); |
||||
fflush(stdout); |
||||
|
||||
while(WiFi_isConnected() == false){ |
||||
vTaskDelay(pdMS_TO_TICKS(1000)); |
||||
} |
||||
|
||||
// wifi now connected
|
||||
printf("Application task detected that WiFi is connected\n"); |
||||
if(MyMqtt_Init()){ |
||||
vTaskDelay(pdMS_TO_TICKS(1000)); |
||||
printf("5s done\n"); |
||||
|
||||
MyMqtt_Subscribe("scada/status"); |
||||
|
||||
printf("Application endless task was started\n"); |
||||
fflush(stdout); |
||||
|
||||
// endless loop
|
||||
for(;;){ |
||||
MyMqtt_Publish("scada/status", "Testmessage from ESP"); |
||||
|
||||
vTaskDelay(pdMS_TO_TICKS(10000)); |
||||
} |
||||
} else { |
||||
printf("Init of MyMqtt failed! Quitting application task.\n"); |
||||
} |
||||
|
||||
} |
||||
|
||||
BaseType_t res; |
||||
|
||||
void Application_Start(void){ |
||||
res = xTaskCreate(appTask, "task1", 4096/sizeof(StackType_t), (void*)"ARG_0", tskIDLE_PRIORITY, &appTaskHandle); |
||||
if(res != pdPASS){ |
||||
printf("creating myTask failed!\r\n"); |
||||
} |
||||
} |
||||
|
||||
@ -1,13 +0,0 @@ |
||||
/*
|
||||
* application.h |
||||
* |
||||
* Created on: 25.11.2022 |
||||
* Author: jonas |
||||
*/ |
||||
|
||||
#ifndef MAIN_APPLICATION_H_ |
||||
#define MAIN_APPLICATION_H_ |
||||
|
||||
void Application_Start(void); |
||||
|
||||
#endif /* MAIN_APPLICATION_H_ */ |
||||
@ -0,0 +1,101 @@ |
||||
/*
|
||||
* application.s |
||||
* |
||||
* Created on: 25.11.2022 |
||||
* Author: jonas |
||||
*/ |
||||
|
||||
|
||||
#include "challenge_app.h" |
||||
#include "platform.h" |
||||
#include "freertos/FreeRTOS.h" |
||||
#include "freertos/task.h" |
||||
#include "myMqtt.h" |
||||
#include "wifi.h" |
||||
|
||||
/* LOCAL Var */ |
||||
// identifies robot Mode for the challenge: true = robot is stationary, false = robot is moveable
|
||||
static bool robotModeStationary = false; |
||||
// task handle
|
||||
static TaskHandle_t appTaskHandle; |
||||
|
||||
|
||||
|
||||
static void appTask(void *pv){ |
||||
if(pv != NULL){ |
||||
printf("task argument: %s\n", (char*)pv); |
||||
} |
||||
|
||||
printf("Application was started"); |
||||
fflush(stdout); |
||||
|
||||
while(WiFi_isConnected() == false){ |
||||
vTaskDelay(pdMS_TO_TICKS(1000)); |
||||
} |
||||
|
||||
// wifi now connected
|
||||
printf("Application task detected that WiFi is connected\n"); |
||||
if(MyMqtt_Init()){ |
||||
vTaskDelay(pdMS_TO_TICKS(1000)); |
||||
printf("5s done\n"); |
||||
|
||||
MyMqtt_Subscribe("scada/status"); |
||||
|
||||
printf("Application endless task was started\n"); |
||||
fflush(stdout); |
||||
|
||||
// endless loop
|
||||
for(;;){ |
||||
MyMqtt_Publish("scada/status", "Testmessage from ESP"); |
||||
|
||||
vTaskDelay(pdMS_TO_TICKS(10000)); |
||||
} |
||||
} else { |
||||
printf("Init of MyMqtt failed! Quitting application task.\n"); |
||||
} |
||||
|
||||
} |
||||
|
||||
|
||||
BaseType_t res; |
||||
void Challenge_App_Init(void){ |
||||
res = xTaskCreate(appTask, "ChallengeAppTask", 4096/sizeof(StackType_t), (void*)"ARG_0", tskIDLE_PRIORITY, &appTaskHandle); |
||||
if(res != pdPASS){ |
||||
printf("creating appTask failed!\r\n"); |
||||
} |
||||
} |
||||
|
||||
/*********/ |
||||
/* SHELL */ |
||||
/*********/ |
||||
#if PL_CONFIG_USE_SHELL |
||||
static uint8_t PrintStatus(const McuShell_StdIOType *io) { |
||||
McuShell_SendStatusStr((unsigned char*)"challenge", (unsigned char*)"ESP32 Challenge status\r\n", io->stdOut); |
||||
McuShell_SendStatusStr((unsigned char*)" robotMode", robotModeStationary?(unsigned char*)"stationary\r\n":(unsigned char*)"mobile\r\n", io->stdOut); |
||||
return ERR_OK; |
||||
} |
||||
|
||||
static uint8_t PrintHelp(const McuShell_StdIOType *io) { |
||||
McuShell_SendHelpStr((unsigned char*)"challenge", (unsigned char*)"Group of ESP32 Challenge commands\r\n", io->stdOut); |
||||
McuShell_SendHelpStr((unsigned char*)" help|status", (unsigned char*)"Shows Challenge help or status\r\n", io->stdOut); |
||||
return ERR_OK; |
||||
} |
||||
|
||||
uint8_t Challenge_ParseCommand(const unsigned char* cmd, bool *handled, const McuShell_StdIOType *io) { |
||||
if (McuUtility_strcmp((char*)cmd, (char*)McuShell_CMD_HELP)==0 || McuUtility_strcmp((char*)cmd, (char*)"challenge help")==0) { |
||||
*handled = TRUE; |
||||
return PrintHelp(io); |
||||
} else if (McuUtility_strcmp((char*)cmd, (char*)McuShell_CMD_STATUS)==0 || McuUtility_strcmp((char*)cmd, (char*)"challenge status")==0) { |
||||
*handled = TRUE; |
||||
return PrintStatus(io); |
||||
} |
||||
/*else if (McuUtility_strcmp((char*)cmd, (char*)"led suspend")==0) {
|
||||
*handled = TRUE; |
||||
LED_Suspend(); |
||||
} else if (McuUtility_strcmp((char*)cmd, (char*)"led resume")==0) { |
||||
*handled = TRUE; |
||||
LED_Resume(); |
||||
}*/ |
||||
return ERR_OK; |
||||
} |
||||
#endif /* PL_CONFIG_USE_SHELL */ |
||||
@ -0,0 +1,27 @@ |
||||
/*
|
||||
* application.h |
||||
* |
||||
* Created on: 25.11.2022 |
||||
* Author: jonas |
||||
*/ |
||||
|
||||
#ifndef MAIN_CHALLENGE_APP_H_ |
||||
#define MAIN_CHALLENGE_APP_H_ |
||||
|
||||
/*! \brief Module initialization, start app task */ |
||||
void Challenge_App_Init(void); |
||||
|
||||
#if PL_CONFIG_USE_SHELL |
||||
#include "McuShell.h" |
||||
|
||||
/*!
|
||||
* \brief Command line and shell handler |
||||
* \param cmd The command to be parsed |
||||
* \param handled If command has been recognized and handled |
||||
* \param io I/O handler to be used |
||||
* \return error code, otherwise ERR_OK |
||||
*/ |
||||
uint8_t Challenge_ParseCommand(const unsigned char* cmd, bool *handled, const McuShell_StdIOType *io); |
||||
#endif |
||||
|
||||
#endif /* MAIN_CHALLENGE_APP_H_ */ |
||||
Loading…
Reference in new issue