我正在使用 GUI Guider 创建 HMI(使用 1.80 和 1.90 版本,结果相同)。我正在使用 FRDM-RW612 板,并从“屏幕转换”小部件开始,对其进行了一些更改。我遇到的问题是,无论我做什么,我都无法摆脱一些不断生成的自定义代码。
/*
* 版权所有 2024 恩智浦
* NXP 专有。该软件由恩智浦拥有或控制,并且只能在
* 符合适用的许可条款。通过明确接受此类条款或通过下载、安装、
* 激活和/或以其他方式使用该软件,即表示您同意您已阅读并同意
* 遵守并受此类许可条款的约束。如果您不同意受适用许可的约束
* 条款,则您不得保留、安装、激活或以其他方式使用该软件。
*/
/*********************
* 包括
*********************/
#include < stdio.h >
#include < stdlib.h >
#include " lvgl.h "
#include "自定义.h "
/*********************
* 定义
*********************/
#定义CHART1_POINTS 100
/**********************
* 类型定义
**********************/
/**********************
* 静态原型
**********************/
/**********************
* 静态变量
**********************/
静态int32_t速度= 0 ;
静态bool is_increase = true ;
静态int16_t spd_chart [ CHART1_POINTS ] = { 0 } ;
静态bool is_up = true ;
/**
* 创建一个演示应用程序
*/
void custom_init(lv_ui *ui)
{
/* 在这里添加您的代码 */
}
/**********************
* 静态函数
**********************/
void speed_meter_timer_cb ( lv_timer_t * t )
{
lv_ui * gui = t->user_data;
如果(速度> = 110 ) is_increase = false ;
如果(速度<= 70 ) is_increase = true ;
lv_meter_set_indicator_value ( gui- >速度计板, gui- >速度计板尺度_0_ndline_0 ,速度) ;
lv_label_set_text_fmt ( gui- > speed_label_digit , “%” LV_PRId32 ,速度) ;
如果( is_increase )
{
速度++;
}else
{
速度- ;
}
}
无效记录图表计时器_cb ( lv_timer_t * t )
{
lv_obj_t * obj = t->user_data;
lv_chart_series_t * ser = lv_chart_get_series_next ( obj , NULL ) ;
lv_coord_t * ser_array = lv_chart_get_y_array(obj, ser);
对于( int i = 0 ; i < CHART1_POINTS - 1 ; i ++ )
{
spd_chart[i] = spd_chart[i+1];
ser_array [ i ] = spd_chart [ i ] ;
}
如果( spd_chart [ CHART1_POINTS - 1 ] > 110 ) is_up = false ;
如果( spd_chart [ CHART1_POINTS - 1 ] < 70 ) is_up = true ;
如果( is_up )
{
spd_chart [ CHART1_POINTS - 1 ] += lv_rand ( 0 , 5 ) ;
}else
{
spd_chart [ CHART1_POINTS - 1 ] - = lv_rand ( 0 , 5 ) ;
}
ser_array [ CHART1_POINTS - 1 ] = spd_chart [ CHART1_POINTS - 1 ] ;
lv_chart_refresh ( obj ) ;
}
custom.h 也存在同样的问题,我希望所有这些自定义代码都消失:
/*
* 版权所有 2024 恩智浦
* NXP 专有。该软件由恩智浦拥有或控制,并且只能在
* 符合适用的许可条款。通过明确接受此类条款或通过下载、安装、
* 激活和/或以其他方式使用该软件,即表示您同意您已阅读并同意
* 遵守并受此类许可条款的约束。如果您不同意受适用许可的约束
* 条款,则您不得保留、安装、激活或以其他方式使用该软件。
*/
#ifndef __CUSTOM_H_
#定义__CUSTOM_H_
#ifdef __cplusplus
外部“C” {
#endif
#include " gui_guider.h "
void custom_init(lv_ui *ui);
void speed_meter_timer_cb ( lv_timer_t * t ) ;
无效记录图表计时器_cb ( lv_timer_t * t ) ;
#ifdef __cplusplus
}
#endif
#endif /* EVENT_CB_H_ */
图形屏幕上的所有原始小部件均被删除,请参阅附件中的屏幕截图。首先删除了小部件(没有删除代码),然后更改了屏幕名称,添加了其他小部件(仍然获得自定义代码)。事件查看器中没有包含此代码的事件。所以,我不知道代码是从哪里生成的。
我也无法在代码编辑器中直接编辑它。如果我做了任何更改,当我访问另一个文件时,这些更改就会消失,即使我转到文件->保存或生成代码。我也尝试清理代码并再次生成,但仍然得到代码。我检查了自定义代码选项卡下两个屏幕的自定义代码,但它们已经是空的(见屏幕截图)。
W