#include "lvgl.h" #include #include #define SCREEN_W 1024 #define SCREEN_H 600 #define TOTAL_ROWS 50 #define VISIBLE_ROWS 15 #define COL_CNT 6 /* Dynamic Row 7 Data */ typedef struct { int vol; int temp; int res; } row_data_t; static row_data_t row7_data = {1,1,601}; /* ===== Get Row Text ===== */ static void get_row_text(int row, int col, char * buf, int len) { if(row == 6) { // Row 7 dynamic data switch(col){ case 0: lv_snprintf(buf,len,"7"); break; case 1: lv_snprintf(buf,len,"BT007"); break; case 2: lv_snprintf(buf,len,"12.%03d",row7_data.vol); break; case 3: lv_snprintf(buf,len,"20.%03d",row7_data.temp); break; case 4: lv_snprintf(buf,len,"%d",row7_data.res); break; case 5: lv_snprintf(buf,len,"2025-12-17 17:05"); break; default: buf[0]=0; break; } return; } switch(col){ case 0: lv_snprintf(buf,len,"%d",row+1); break; case 1: lv_snprintf(buf,len,"BT%03d",row+1); break; case 2: lv_snprintf(buf,len,"12.%03d",row+1); break; case 3: lv_snprintf(buf,len,"20.%03d",row+1); break; case 4: lv_snprintf(buf,len,"%d",601+row); break; case 5: lv_snprintf(buf,len,"2025-12-17 17:05:%02d",row%60); break; default: buf[0]=0; break; } } /* ===== Update Row 7 ===== */ static void update_row7(lv_obj_t * table) { char buf[32]; for(int c=0;c