lecture etat machine
This commit is contained in:
parent
de8d9ede17
commit
555a6c6b6a
31
main/ihm.c
31
main/ihm.c
@ -9,6 +9,8 @@
|
|||||||
#include "meteofrance.h"
|
#include "meteofrance.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "bsp/esp-bsp.h"
|
#include "bsp/esp-bsp.h"
|
||||||
|
#include "cJSON.h"
|
||||||
|
|
||||||
|
|
||||||
#define upEvent "monter"
|
#define upEvent "monter"
|
||||||
#define downEvent "descendre"
|
#define downEvent "descendre"
|
||||||
@ -93,6 +95,8 @@ static void draw_temp(char * tempHumid){
|
|||||||
lv_obj_t* myChart;
|
lv_obj_t* myChart;
|
||||||
lv_chart_series_t * ser;
|
lv_chart_series_t * ser;
|
||||||
lv_obj_t *lblHauteurCuve;
|
lv_obj_t *lblHauteurCuve;
|
||||||
|
lv_obj_t* lblEtatMachine;
|
||||||
|
|
||||||
|
|
||||||
void drawIhm(void *xIHMEventQueueParam) {
|
void drawIhm(void *xIHMEventQueueParam) {
|
||||||
QueueHandle_t xIHMEventQueue = (QueueHandle_t)xIHMEventQueueParam;
|
QueueHandle_t xIHMEventQueue = (QueueHandle_t)xIHMEventQueueParam;
|
||||||
@ -140,7 +144,6 @@ void drawIhm(void *xIHMEventQueueParam) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case IHM_EVT_PUISSANCE_EMISE:
|
case IHM_EVT_PUISSANCE_EMISE:
|
||||||
case IHM_EVT_ETAT_MACHINE:
|
|
||||||
if (display_lock("updateChart")) {
|
if (display_lock("updateChart")) {
|
||||||
int val = (int)xReceivedEvent->pvData;
|
int val = (int)xReceivedEvent->pvData;
|
||||||
if (val == 0) {
|
if (val == 0) {
|
||||||
@ -148,6 +151,30 @@ void drawIhm(void *xIHMEventQueueParam) {
|
|||||||
} else {
|
} else {
|
||||||
lv_chart_set_next_value(myChart, ser, val);
|
lv_chart_set_next_value(myChart, ser, val);
|
||||||
}
|
}
|
||||||
|
display_unlock("updateChart");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case IHM_EVT_ETAT_MACHINE:
|
||||||
|
if (display_lock("updateChart")) {
|
||||||
|
char * etatMachine = xReceivedEvent->pvData;
|
||||||
|
ESP_LOGE(TAG,"Etat Machine : %s", etatMachine);
|
||||||
|
cJSON *root = cJSON_Parse(etatMachine);
|
||||||
|
bool enRoute = cJSON_GetObjectItem(root,"state")->valueint;
|
||||||
|
int depuisQuand= cJSON_GetObjectItem(root,"timestamp")->valueint;
|
||||||
|
ESP_LOGE(TAG,"Timestamp lu : %i", depuisQuand);
|
||||||
|
time_t rawtime = (time_t)(depuisQuand);
|
||||||
|
struct tm *heure_locale = localtime(&rawtime);
|
||||||
|
char heureFormattee[50];
|
||||||
|
strftime(heureFormattee, sizeof(heureFormattee), "%d/%m/%Y %I:%M:%S %p", heure_locale);
|
||||||
|
ESP_LOGE(TAG,"Heure: %s", heureFormattee);
|
||||||
|
char etatFormate[90];
|
||||||
|
if(enRoute){
|
||||||
|
sprintf(etatFormate,"Machine en route depuis %s", heureFormattee);
|
||||||
|
}else{
|
||||||
|
sprintf(etatFormate,"Machine : Arrêt détecté depuis %s", heureFormattee);
|
||||||
|
}
|
||||||
|
ESP_LOGE(TAG,"%s", etatFormate);
|
||||||
|
lv_label_set_text(lblEtatMachine,etatFormate);
|
||||||
display_unlock("updateChart");
|
display_unlock("updateChart");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -709,11 +736,11 @@ static void draw_event_cb(lv_event_t * e)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lv_obj_t* lblEtatMachine;
|
|
||||||
void draw_tabMinuteur(lv_obj_t * parent)
|
void draw_tabMinuteur(lv_obj_t * parent)
|
||||||
{
|
{
|
||||||
lblEtatMachine = lv_label_create(parent);
|
lblEtatMachine = lv_label_create(parent);
|
||||||
lv_label_set_text(lblEtatMachine,"Machine: ");
|
lv_label_set_text(lblEtatMachine,"Machine: ");
|
||||||
|
lv_obj_set_style_text_font(lblEtatMachine,lv_theme_get_font_normal(lblEtatMachine),0);
|
||||||
myChart = lv_chart_create(parent);
|
myChart = lv_chart_create(parent);
|
||||||
lv_chart_set_type(myChart, LV_CHART_TYPE_BAR);
|
lv_chart_set_type(myChart, LV_CHART_TYPE_BAR);
|
||||||
lv_chart_set_point_count(myChart, 30);
|
lv_chart_set_point_count(myChart, 30);
|
||||||
|
|||||||
23
main/main.c
23
main/main.c
@ -153,16 +153,16 @@ void mqtt_cb(mqtt_evt evt, esp_mqtt_event_handle_t event){
|
|||||||
}else if (strncmp(event->topic, topicTest, event->topic_len) == 0){
|
}else if (strncmp(event->topic, topicTest, event->topic_len) == 0){
|
||||||
ESP_LOGD(TAG,"Msg reecu sur test");
|
ESP_LOGD(TAG,"Msg reecu sur test");
|
||||||
}else if (strncmp(event->topic, topicConsoElec, event->topic_len) == 0){
|
}else if (strncmp(event->topic, topicConsoElec, event->topic_len) == 0){
|
||||||
char* datas = malloc(event->data_len+1);
|
//char* datas = malloc(event->data_len+1);
|
||||||
strncpy(datas, event->data, event->data_len);
|
//strncpy(datas, event->data, event->data_len);
|
||||||
|
|
||||||
send_event(EVT_PUISSANCE_RECUE,(int*)atoi(datas));
|
send_event(EVT_PUISSANCE_RECUE,(int*)atoi(event->data));
|
||||||
|
|
||||||
}else if (strncmp(event->topic, topicEtatMachine, event->topic_len) == 0){
|
}else if (strncmp(event->topic, topicEtatMachine, event->topic_len) == 0){
|
||||||
char* datas = malloc(event->data_len+1);
|
char* datas = malloc(event->data_len+1);
|
||||||
strncpy(datas, event->data, event->data_len);
|
strncpy(datas, event->data, event->data_len);
|
||||||
|
|
||||||
send_event(EVT_ETAT_MACHINE,(int*)atoi(datas));
|
send_event(EVT_ETAT_MACHINE,datas);
|
||||||
|
|
||||||
}else if (strncmp(event->topic, topicdomoticCommand, event->topic_len) == 0){
|
}else if (strncmp(event->topic, topicdomoticCommand, event->topic_len) == 0){
|
||||||
if(strncmp(event->data,"restart",7)==0){
|
if(strncmp(event->data,"restart",7)==0){
|
||||||
@ -240,9 +240,17 @@ void send_event(domo_events evt, void* pDatas) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case EVT_ETAT_MACHINE:
|
case EVT_ETAT_MACHINE:
|
||||||
|
const char *msg2 = (const char *)pDatas;
|
||||||
|
char *msg_copy2 = malloc(strlen(msg2) + 1);
|
||||||
|
if (!msg_copy2) {
|
||||||
|
ESP_LOGE(TAG, "malloc failed for message string");
|
||||||
|
free(ihmEvt);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
strcpy(msg_copy2, msg2);
|
||||||
ihmEvt->eEventType = IHM_EVT_ETAT_MACHINE;
|
ihmEvt->eEventType = IHM_EVT_ETAT_MACHINE;
|
||||||
ihmEvt->pvData = pDatas;
|
ihmEvt->pvData = msg_copy2;
|
||||||
ihmEvt->bNeedToFreeData = false;
|
ihmEvt->bNeedToFreeData = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EVT_HAUTEUR_CUVE: {
|
case EVT_HAUTEUR_CUVE: {
|
||||||
@ -254,7 +262,6 @@ void send_event(domo_events evt, void* pDatas) {
|
|||||||
}
|
}
|
||||||
*data = *(float *)pDatas;
|
*data = *(float *)pDatas;
|
||||||
ESP_LOGE(TAG, "EVENT_HANDLER -> On a recu %f", *data);
|
ESP_LOGE(TAG, "EVENT_HANDLER -> On a recu %f", *data);
|
||||||
|
|
||||||
ihmEvt->eEventType = IHM_EVT_HAUTEUR_CUVE;
|
ihmEvt->eEventType = IHM_EVT_HAUTEUR_CUVE;
|
||||||
ihmEvt->pvData = data;
|
ihmEvt->pvData = data;
|
||||||
ihmEvt->bNeedToFreeData = true;
|
ihmEvt->bNeedToFreeData = true;
|
||||||
@ -267,7 +274,7 @@ void send_event(domo_events evt, void* pDatas) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ESP_LOGE(TAG, "Envoi d'un evt %i a l'IHM", ihmEvt->eEventType);
|
ESP_LOGE(TAG, "Envoi d'un evt %i a l'IHM", ihmEvt->eEventType);
|
||||||
if (xQueueSendToFront(ihm_queue, &ihmEvt, pdMS_TO_TICKS(10)) != pdPASS) {
|
if (ihmEvt && xQueueSendToFront(ihm_queue, &ihmEvt, pdMS_TO_TICKS(10)) != pdPASS) {
|
||||||
ESP_LOGE(TAG, "La queue est pleine");
|
ESP_LOGE(TAG, "La queue est pleine");
|
||||||
if (ihmEvt->bNeedToFreeData && ihmEvt->pvData) {
|
if (ihmEvt->bNeedToFreeData && ihmEvt->pvData) {
|
||||||
free(ihmEvt->pvData);
|
free(ihmEvt->pvData);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user