fix POU logic :
- SAVE is a BOOL
- invocation of py_eval on rising edge of SAVE
- remove save python argument
fix python:
- use no encoding for file open (python2)
- re-use detected dialect if any
- use no "rt+" and truncate since no need to re-sniff dialect for output file
- return "OK" instead of "#SUCCESS", preventing POU logic to ACK result
- support creating new line if writing just after last line
- support appending data on short rows
fix example:
- use a HMI:Button to trigger CSV write instead of HMI:Input +1
- reload CSVs on on each new CSV opened in file browser
- add display of CSV write output
# 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;