* Altered DropDown widget: Added another mandatory path variable - selection value (depending on use case, one could prefer direct access to selection value rather than selection index); and another optional path variable - options (string variable to allow for dynamic change of options, as opposed to providing static list of options through arguments); and example with both static and dynamic dropdowns.
* Make second path variable optional, for backwards compatibility
# Naive code generator for type convesion function XX_TO_YY testing
types = [
("BOOL", "TRUE"),
("SINT", "42"),
("USINT", "42"),
("BYTE", "42"),
("STRING", "'42'"),
("INT", "42"),
("UINT", "42"),
("WORD", "42"),
("DINT", "42"),
("UDINT", "42"),
("DWORD", "42"),
("LINT", "42"),
("ULINT", "42"),
("LWORD", "42"),
("REAL", "42.0"),
("LREAL", "42.0"),
#("TIME", "42"),
#("TOD", "42"),
#("DATE", "42"),
#("DT", "42"),
]
for tsrc, src_literal in types:
for tdest, dest_literal in types:
if tsrc == tdest: continue
s = f"""
RESULT := '{tsrc}_TO_{tdest}';
IF {tsrc}_TO_{tdest}({tsrc}#{src_literal}) <> {tdest}#{dest_literal} THEN RETURN; END_IF;