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