При разработки Пользовательских блоков с кодом Си встречал несколько проблем:
Первый случай:
Пользовательский параметр timesend (равен 300)
В вставлял код:
if ((millis() - time1) >= timesend || errorstate !=0)
При компиляции получалось:
if ((millis() - time1) >=_168551789_1 300 || errorstate !=0)
И так во многих местах после знака "= "
Решил проблему убрав пробелы после "="
В вставлял код:
if ((millis() - time1) >=timesend || errorstate !=0)
При компиляции получалось:
if ((millis() - time1) >= 300 || errorstate !=0)
Еще нельзя использовать в названии входов и выходов блоков пользователя названия отличающиеся на дополнение с "_"
Например
text и En_text
При компиляции получится
En_text_124678817_1_124678817_1
Для обхода Достаточно использовать хотя бы так
text_1 и En_text
или надёжнее так
text и EnText
Нельзя использовать объявление структуры кодом
typedef struct{
...
...}
test;
Пришлось заменить на такой кодом
struct test{
...
...
};
Возможно не все из перечисленного баг, может так и задумывалось.