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 "main.h"
|
||||
#include "bsp/esp-bsp.h"
|
||||
#include "cJSON.h"
|
||||
|
||||
|
||||
#define upEvent "monter"
|
||||
#define downEvent "descendre"
|
||||
@ -93,6 +95,8 @@ static void draw_temp(char * tempHumid){
|
||||
lv_obj_t* myChart;
|
||||
lv_chart_series_t * ser;
|
||||
lv_obj_t *lblHauteurCuve;
|
||||
lv_obj_t* lblEtatMachine;
|
||||
|
||||
|
||||
void drawIhm(void *xIHMEventQueueParam) {
|
||||
QueueHandle_t xIHMEventQueue = (QueueHandle_t)xIHMEventQueueParam;
|
||||
@ -140,7 +144,6 @@ void drawIhm(void *xIHMEventQueueParam) {
|
||||
break;
|
||||
|
||||
case IHM_EVT_PUISSANCE_EMISE:
|
||||
case IHM_EVT_ETAT_MACHINE:
|
||||
if (display_lock("updateChart")) {
|
||||
int val = (int)xReceivedEvent->pvData;
|
||||
if (val == 0) {
|
||||
@ -151,6 +154,30 @@ void drawIhm(void *xIHMEventQueueParam) {
|
||||
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");
|
||||
}
|
||||
break;
|
||||
|
||||
case IHM_EVT_HAUTEUR_CUVE:
|
||||
if (display_lock("updateCuve")) {
|
||||
@ -709,11 +736,11 @@ static void draw_event_cb(lv_event_t * e)
|
||||
}
|
||||
}
|
||||
|
||||
lv_obj_t* lblEtatMachine;
|
||||
void draw_tabMinuteur(lv_obj_t * parent)
|
||||
{
|
||||
lblEtatMachine = lv_label_create(parent);
|
||||
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);
|
||||
lv_chart_set_type(myChart, LV_CHART_TYPE_BAR);
|
||||
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){
|
||||
ESP_LOGD(TAG,"Msg reecu sur test");
|
||||
}else if (strncmp(event->topic, topicConsoElec, event->topic_len) == 0){
|
||||
char* datas = malloc(event->data_len+1);
|
||||
strncpy(datas, event->data, event->data_len);
|
||||
//char* datas = malloc(event->data_len+1);
|
||||
//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){
|
||||
char* datas = malloc(event->data_len+1);
|
||||
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){
|
||||
if(strncmp(event->data,"restart",7)==0){
|
||||
@ -240,9 +240,17 @@ void send_event(domo_events evt, void* pDatas) {
|
||||
break;
|
||||
|
||||
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->pvData = pDatas;
|
||||
ihmEvt->bNeedToFreeData = false;
|
||||
ihmEvt->pvData = msg_copy2;
|
||||
ihmEvt->bNeedToFreeData = true;
|
||||
break;
|
||||
|
||||
case EVT_HAUTEUR_CUVE: {
|
||||
@ -254,7 +262,6 @@ void send_event(domo_events evt, void* pDatas) {
|
||||
}
|
||||
*data = *(float *)pDatas;
|
||||
ESP_LOGE(TAG, "EVENT_HANDLER -> On a recu %f", *data);
|
||||
|
||||
ihmEvt->eEventType = IHM_EVT_HAUTEUR_CUVE;
|
||||
ihmEvt->pvData = data;
|
||||
ihmEvt->bNeedToFreeData = true;
|
||||
@ -267,7 +274,7 @@ void send_event(domo_events evt, void* pDatas) {
|
||||
return;
|
||||
}
|
||||
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");
|
||||
if (ihmEvt->bNeedToFreeData && ihmEvt->pvData) {
|
||||
free(ihmEvt->pvData);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user