GUI Guider (LVGL v9 simulator) FreeMASTER binding: Meter with Image Needle disappears GG_METER h

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

GUI Guider (LVGL v9 simulator) FreeMASTER binding: Meter with Image Needle disappears GG_METER h

793件の閲覧回数
ryan_hong_wtmec
Contributor I

Hi all,
I’d like to share an issue and workaround for GUI Guider + LVGL v9 simulator with FreeMASTER binding.

Environment: GUI Guider 9.2 / 1.10.0 GA, LVGL v9 simulator (lvgl-simulator or lv_web_emscripten),
FreeMASTER JSON-RPC WebSocket (ws://localhost:41000), Windows 10/11.

Problem: When a FreeMASTER variable is bound to a Meter/Scale widget using an Image Needle,
the needle disappears or does not update correctly. The same variable bound to a Label updates
normally (e.g., 40–60), so the incoming value is valid.

Workaround/Fix: Patch the simulator code (or the template) here:
C:\nxp\GUI-Guider-1.10.0-GA\environment\template\project\v9\lvgl-simulator\gg_external_data\freemaster\freemaster_client.c

Update the GG_METER case to safely handle image needles vs line needles (and add NULL guards):

case GG_METER:
{
for (int i = 0; i < user_parm->arrayLen; i++)
{
meter_needle *nd = (meter_needle *)user_parm->childObjArray[i];
int v = atoi(dataArray[i]);

if (nd && nd->needle_obj)
{
if (lv_obj_check_type(nd->needle_obj, &lv_image_class))
lv_scale_set_image_needle_value(user_parm->parentObj, nd->needle_obj, v);
else
lv_scale_set_line_needle_value(user_parm->parentObj, nd->needle_obj, nd->needle_length, v);
}
}
break;
}


Question: Is this a known issue? If not, could this fix be integrated into future GUI Guider releases/templates?

Thanks.

0 件の賞賛
返信
1 返信

768件の閲覧回数
Celeste_Liu
NXP Employee
NXP Employee

Hello @ryan_hong_wtmec ,

Thank you for sharing. I will report this to the internal team and wait for their further confirmation.

Thank you for again your contribution in the NXP community.

BR

Celeste

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2267842%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EGUI%20Guider%20(LVGL%20v9%20%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF)%20FreeMASTER%20%E3%83%90%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%3A%20%E7%94%BB%E5%83%8F%E9%87%9D%E4%BB%98%E3%81%8D%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%8C%E6%B6%88%E3%81%88%E3%82%8B%20GG_METER%20h%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2267842%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%81%BF%E3%82%93%E3%81%AA%E3%80%81%3CBR%20%2F%3E%20FreeMASTER%20%E3%83%90%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%20GUI%20Guider%20%2B%20LVGL%20v9%20%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%A8%E5%9B%9E%E9%81%BF%E7%AD%96%E3%82%92%E5%85%B1%E6%9C%89%E3%81%97%E3%81%9F%E3%81%84%E3%81%A8%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E7%92%B0%E5%A2%83%EF%BC%9AGUI%20Guider%209.2%20%2F%201.10.0GA%E3%80%81LVGL%20v9%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%EF%BC%88lvgl-simulator%E3%81%BE%E3%81%9F%E3%81%AFlv_web_emscripten%EF%BC%89%E3%80%81%3CBR%20%2F%3E%20FreeMASTER%20JSON-RPC%20WebSocket%20(ws%3A%2F%2Flocalhost%3A41000)%E3%80%81Windows%2010%2F11%E3%80%82%3C%2FP%3E%3CP%3E%E5%95%8F%E9%A1%8C%3A%20FreeMASTER%E5%A4%89%E6%95%B0%E3%81%8C%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%83%8B%E3%83%BC%E3%83%89%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%2F%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%82%A6%E3%82%A3%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88%E3%81%AB%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%80%81%3CBR%20%2F%3E%E9%87%9D%E3%81%8C%E6%B6%88%E3%81%88%E3%81%9F%E3%82%8A%E3%80%81%E6%AD%A3%E3%81%97%E3%81%8F%E6%9B%B4%E6%96%B0%E3%81%95%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%E3%82%8A%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%83%A9%E3%83%99%E3%83%AB%E3%81%AB%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89%E3%81%95%E3%82%8C%E3%81%9F%E5%90%8C%E3%81%98%E5%A4%89%E6%95%B0%E3%81%8C%E6%9B%B4%E6%96%B0%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%3CBR%20%2F%3E%E9%80%9A%E5%B8%B8%E3%81%AF%EF%BC%88%E4%BE%8B%EF%BC%9A40%EF%BD%9E60%EF%BC%89%E3%80%81%E5%85%A5%E5%8A%9B%E5%80%A4%E3%81%AF%E6%9C%89%E5%8A%B9%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E5%9B%9E%E9%81%BF%E7%AD%96%2F%E4%BF%AE%E6%AD%A3%3A%20%E3%81%93%E3%81%93%E3%81%A7%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%20%E3%82%B3%E3%83%BC%E3%83%89%20(%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88)%20%E3%81%AB%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%20C%3A%5Cnxp%5CGUI-Guider-1.10.0-GA%5Cenvironment%5Ctemplate%5Cproject%5Cv9%5Clvgl-simulator%5Cgg_external_data%5Cfreemaster%5Cfreemaster_client.c%3C%2FP%3E%3CP%3EGG_METER%20CASE%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%97%E3%81%A6%E3%80%81%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%20%E3%83%8B%E3%83%BC%E3%83%89%E3%83%AB%E3%81%A8%E3%83%A9%E3%82%A4%E3%83%B3%20%E3%83%8B%E3%83%BC%E3%83%89%E3%83%AB%E3%82%92%E5%AE%89%E5%85%A8%E3%81%AB%E5%87%A6%E7%90%86%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%20(NULL%20%E3%82%AC%E3%83%BC%E3%83%89%E3%82%82%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%99)%E3%80%82%3C%2FP%3E%3CP%3ECASE%20GG_METER%3A%3CBR%20%2F%3E%7B%3CBR%20%2F%3Efor%20(int%20i%20%3D%200%3B%20i%20%26lt%3B%20user_parm-%26gt%3BarrayLen%3B%20i%2B%2B)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Emeter_needle%20*nd%20%3D%20(meter_needle%20*)user_parm-%26gt%3BchildObjArray%5Bi%5D%3B%3CBR%20%2F%3Eint%20v%20%3D%20atoi(%E3%83%87%E3%83%BC%E3%82%BF%E9%85%8D%E5%88%97%5Bi%5D)%3B%3C%2FP%3E%3CP%3Eif%20(nd%20%26amp%3B%26amp%3B%20nd-%26gt%3Bneedle_obj)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20if%20(lv_obj_check_type(nd-%26gt%3Bneedle_obj%2C%20%26amp%3Blv_image_class))%3CBR%20%2F%3E%20lv_scale_set_image_needle_value(user_parm-%26gt%3BparentObj%E3%80%81nd-%26gt%3Bneedle_obj%E3%80%81v)%3B%3CBR%20%2F%3E%E3%81%9D%E3%82%8C%E4%BB%A5%E5%A4%96%3CBR%20%2F%3Elv_scale_set_line_needle_value(user_parm-%26gt%3BparentObj%E3%80%81nd-%26gt%3Bneedle_obj%E3%80%81nd-%26gt%3Bneedle_length%E3%80%81v)%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%E5%A3%8A%E3%81%99%3B%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E%E8%B3%AA%E5%95%8F%3A%20%E3%81%93%E3%82%8C%E3%81%AF%E6%97%A2%E7%9F%A5%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%A7%E3%81%99%E3%81%8B%3F%E3%81%9D%E3%81%86%E3%81%A7%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%80%81%E3%81%93%E3%81%AE%E4%BF%AE%E6%AD%A3%E3%81%AFFUTURE%E3%81%AEGUI%20Guider%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%2F%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AB%E7%B5%B1%E5%90%88%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2267842%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E9%80%9A%E4%BF%A1%E3%81%A8%E5%88%B6%E5%BE%A1%EF%BC%88I3C%20%7C%20I2C%20%7C%20SPI%20%7C%20FlexCAN%20%7C%20%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%8D%E3%83%83%E3%83%88%20%7C%20FlexIO%EF%BC%89%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2267914%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20GUI%20Guider%20(LVGL%20v9%20simulator)%20FreeMASTER%20binding%3A%20Meter%20with%20Image%20Needle%20disappears%20%20GG_METER%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2267914%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F258268%22%20target%3D%22_blank%22%3E%40ryan_hong_wtmec%E3%81%95%E3%82%93%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3E%E5%85%B1%E6%9C%89%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%8D%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%82%8C%E3%82%92%E7%A4%BE%E5%86%85%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AB%E5%A0%B1%E5%91%8A%E3%81%97%E3%80%81%E3%81%95%E3%82%89%E3%81%AA%E3%82%8B%E7%A2%BA%E8%AA%8D%E3%82%92%E5%BE%85%E3%81%A1%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3ENXP%20%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%B8%E3%81%AE%E8%B2%A2%E7%8C%AE%E3%81%AB%E6%94%B9%E3%82%81%E3%81%A6%E6%84%9F%E8%AC%9D%E7%94%B3%E3%81%97%E4%B8%8A%E3%81%92%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E3%82%BB%E3%83%AC%E3%82%B9%E3%83%86%3C%2FP%3E%3C%2FLINGO-BODY%3E