HVAC_M7_Command/TasksInfo.c

50 lines
1.3 KiB
C

//
// Created by cfif on 17.12.2024.
//
#include <stdio.h>
#include <string.h>
#include "CommandLines.h"
#include "CliRedirectTable.h"
#include "CmsisRtosThreadUtils.h"
#include "LoggerInterface.h"
char bufSprintf[1024];
int32_t vTaskGetRunTime(void *env, tCliCmd *cli) {
tCommandLine *envCommandLine = env;
volatile UBaseType_t uxArraySize, x;
uxArraySize = uxTaskGetNumberOfTasks();
TaskStatus_t pxTaskStatusArray[uxArraySize];
uxArraySize = uxTaskGetSystemState((void *) pxTaskStatusArray, uxArraySize, NULL);
uint16_t p = 1;
bufSprintf[0] = '\n';
for (x = 0; x < uxArraySize; x++) {
sprintf(&bufSprintf[p], "%lu\t%d\t%s\n",
pxTaskStatusArray[x].xTaskNumber,
pxTaskStatusArray[x].usStackHighWaterMark,
pxTaskStatusArray[x].pcTaskName);
p = strlen(bufSprintf);
}
CliCmd_Print(cli, bufSprintf, p);
sprintf(bufSprintf, "Free Heap Size = %u bytes\n", (unsigned int)xPortGetFreeHeapSize());
p = strlen(bufSprintf);
CliCmd_Print(cli, bufSprintf, p);
sprintf(bufSprintf, "Free Logger Buf Size = %u\n", MAX_COUNT_BUF_LOG - (unsigned int)*envCommandLine->countBufLoggerNames);
p = strlen(bufSprintf);
CliCmd_Print(cli, bufSprintf, p);
return 0;
}