|
@@ -46,13 +46,12 @@ bool spkfault_svc(void);
|
|
|
/****************************************************************************************
|
|
|
*
|
|
|
*/
|
|
|
-static void task_stats( void ) {
|
|
|
+static void task_stats( cJSON* top ) {
|
|
|
#ifdef CONFIG_FREERTOS_USE_TRACE_FACILITY
|
|
|
static struct {
|
|
|
TaskStatus_t *tasks;
|
|
|
uint32_t total, n;
|
|
|
} current, previous;
|
|
|
- cJSON * top=cJSON_CreateObject();
|
|
|
cJSON * tlist=cJSON_CreateArray();
|
|
|
current.n = uxTaskGetNumberOfTasks();
|
|
|
current.tasks = malloc( current.n * sizeof( TaskStatus_t ) );
|
|
@@ -80,11 +79,6 @@ static void task_stats( void ) {
|
|
|
cJSON_AddNumberToObject(t,"st",current.tasks[i].eCurrentState);
|
|
|
cJSON_AddNumberToObject(t,"num",current.tasks[i].xTaskNumber);
|
|
|
cJSON_AddItemToArray(tlist,t);
|
|
|
- char * topsts = cJSON_PrintUnformatted(t);
|
|
|
- if(topsts){
|
|
|
- ESP_LOGI(TAG,"task detail: %s",topsts);
|
|
|
- FREE_AND_NULL(topsts);
|
|
|
- }
|
|
|
if (i % 3 == 2 || i == current.n - 1) {
|
|
|
ESP_LOGI(TAG, "%s", scratch);
|
|
|
n = 0;
|
|
@@ -104,11 +98,6 @@ static void task_stats( void ) {
|
|
|
cJSON_AddStringToObject(t,"st",current.tasks[i].eCurrentState);
|
|
|
cJSON_AddNumberToObject(t,"num",current.tasks[i].xTaskNumber);
|
|
|
cJSON_AddItemToArray(tlist,t);
|
|
|
- char * topsts = cJSON_PrintUnformatted(t);
|
|
|
- if(topsts){
|
|
|
- ESP_LOGI(TAG,"task detail: %s",topsts);
|
|
|
- FREE_AND_NULL(topsts);
|
|
|
- }
|
|
|
if (i % 3 == 2 || i == current.n - 1) {
|
|
|
ESP_LOGI(TAG, "%s", scratch);
|
|
|
n = 0;
|
|
@@ -116,12 +105,6 @@ static void task_stats( void ) {
|
|
|
}
|
|
|
#endif
|
|
|
cJSON_AddItemToObject(top,"tasks",tlist);
|
|
|
- char * top_a= cJSON_PrintUnformatted(top);
|
|
|
- if(top_a){
|
|
|
- messaging_post_message(MESSAGING_INFO, MESSAGING_CLASS_STATS,top_a);
|
|
|
- FREE_AND_NULL(top_a);
|
|
|
- }
|
|
|
- cJSON_free(top);
|
|
|
if (previous.tasks) free(previous.tasks);
|
|
|
previous = current;
|
|
|
#endif
|
|
@@ -131,13 +114,26 @@ static void task_stats( void ) {
|
|
|
*
|
|
|
*/
|
|
|
static void monitor_callback(TimerHandle_t xTimer) {
|
|
|
+ cJSON * top=cJSON_CreateObject();
|
|
|
+ cJSON_AddNumberToObject(top,"free_iram",heap_caps_get_free_size(MALLOC_CAP_INTERNAL));
|
|
|
+ cJSON_AddNumberToObject(top,"min_free_iram",heap_caps_get_minimum_free_size(MALLOC_CAP_INTERNAL));
|
|
|
+ cJSON_AddNumberToObject(top,"free_spiram",heap_caps_get_free_size(MALLOC_CAP_SPIRAM));
|
|
|
+ cJSON_AddNumberToObject(top,"min_free_spiram",heap_caps_get_minimum_free_size(MALLOC_CAP_SPIRAM));
|
|
|
+
|
|
|
ESP_LOGI(TAG, "Heap internal:%zu (min:%zu) external:%zu (min:%zu)",
|
|
|
heap_caps_get_free_size(MALLOC_CAP_INTERNAL),
|
|
|
heap_caps_get_minimum_free_size(MALLOC_CAP_INTERNAL),
|
|
|
heap_caps_get_free_size(MALLOC_CAP_SPIRAM),
|
|
|
heap_caps_get_minimum_free_size(MALLOC_CAP_SPIRAM));
|
|
|
|
|
|
- task_stats();
|
|
|
+ task_stats(top);
|
|
|
+ char * top_a= cJSON_PrintUnformatted(top);
|
|
|
+ if(top_a){
|
|
|
+ messaging_post_message(MESSAGING_INFO, MESSAGING_CLASS_STATS,top_a);
|
|
|
+ FREE_AND_NULL(top_a);
|
|
|
+ }
|
|
|
+ cJSON_free(top);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/****************************************************************************************
|
|
@@ -145,6 +141,7 @@ static void monitor_callback(TimerHandle_t xTimer) {
|
|
|
*/
|
|
|
static void jack_handler_default(void *id, button_event_e event, button_press_e mode, bool long_press) {
|
|
|
ESP_LOGD(TAG, "Jack %s", event == BUTTON_PRESSED ? "inserted" : "removed");
|
|
|
+ messaging_post_message(MESSAGING_INFO, MESSAGING_CLASS_SYSTEM,"jack is %s",BUTTON_PRESSED ? "inserted" : "removed");
|
|
|
if (jack_handler_svc) (*jack_handler_svc)(event == BUTTON_PRESSED);
|
|
|
}
|
|
|
|