Страница 1 из 1
Не получается блок пользователя
Добавлено: 25 ноя 2017, 23:38
Iron
Нужна помощь.
Блок не отправляется на компиляцию, в низу редактора блока красная надпись"Блок не корректен | Блок не изменён"
Что неверно в блоке.
Опасаюсь, что без знаний Си много чего неверно .
Выкладываю проект блока и источник.
С уважением.
Не получается блок пользователя
Добавлено: 25 ноя 2017, 23:49
Mikhail72
Такая надпись может появиться из-за незаполненного параметра пользователя, например. Но если блок добавить на плату и заполнить все необходимые параметры проект должен скомпилироваться.
Не получается блок пользователя
Добавлено: 25 ноя 2017, 23:59
Iron
Удалил единственный пользовательский параметр , не помогло
Не получается блок пользователя
Добавлено: 26 ноя 2017, 00:00
Mikhail72
А где проект блока?
Не получается блок пользователя
Добавлено: 26 ноя 2017, 00:02
Iron
Прошу пардон
Не получается блок пользователя
Добавлено: 26 ноя 2017, 00:30
Mikhail72
Я думаю, это из-за несовершенства редактора, видимо он считает недопустимой секцию Declare с таким содержимым, т.к. при создании нового блока после вставки кода в данную секцию блок становится некорректным при добавлении объединения(union), если его удалить в вашем блоке, то блок становится корректным. Может кто-то из генералов знает как это обыграть, у меня пока не хватает знаний в этой области.
Не получается блок пользователя
Добавлено: 26 ноя 2017, 01:04
Dev1
Читаем пост
№51 и делаем как там написано.
И переносим код правильно, без лишних скобок...
В SetupSection вставляем
Код: Выделить всё
pinMode(IR_SENSOR_PIN, INPUT);
Serial.begin(9600);
Serial.println("Ready...");
а не
Так же в Loop и Function...
И сначала перенесите код как есть, добейтесь работы, а потом уже выкидывайте лишнее, вроде вывода инфы в Serial... Чтоб потом не спрашивать, а почему не компилиться...
Не получается блок пользователя
Добавлено: 26 ноя 2017, 07:15
rw6cm
Iron,
В FLProg, в секции Declare, в строках с директорией #define, не вставить данные из "параметров пользователя" не под каким соусом.
В той же секции Declare пропихнуть такое через FLProg:
[spoiler=Спойлер]struct mlt_command{
mlt_command_type command_type;
union {
mlt_shot_data shot_data;
mlt_system_command sys_cmd;
};
};[/spoiler]
надо очень хорошо по изгаляться

)
и не факт что после компиляции это заработает.
плюс очень много ошибок со скобками.
Не получается блок пользователя
Добавлено: 26 ноя 2017, 08:57
Iron
rw6cm, Вы правы НЕ ЗАРАБОТАЛО .
Спасибо всем за внимание. Попробую разобраться в том что написал rw6cm, пока не чего не понял .
С уважением
Не получается блок пользователя
Добавлено: 26 ноя 2017, 09:59
Mikhail72
Меня конечно удивил ответ генералов, но я ожидал большего. Я же указал в чём проблема, остальное подсказал бы компилятор Arduino IDE. Лучше бы подсказали где почитать про структуры, как их преобразовать в понятный для FLprog код. Я для начала вставил в IDE предложенный код чтобы убедится, что он компилируется, потом обнаружил возможную причину, а лишние фигурные скобки не влияют на корректность для редактора блоков.
Iron,
rw6cm имеет ввиду, что Вам придётся изменить секцию Declare примерно по такому принципу:
- Убираете в Declare строку #define IR_SENSOR_PIN IR_Sensor
- В секции Setup пишите pinMode(IR_Sensor, INPUT); // Где IR_Sensor ваш пользовательский параметр
- А в остальных функциях, где упоминается IR_SENSOR_PIN, меняете его на IR_Sensor
Остальные параметры Вам я так понял не нужны, поэтому их можно оставить константами. Но необходимо разобраться со структурами. И преобразовать указанный
rw6cm, кусок кода во что-то более понятное для FLprog, но возможно более сложное для восприятия человеком на С, т.к. структуры это предполагаю что-то типа оптимизации кода, ранее не сталкивался поэтому не подскажу.
Не получается блок пользователя
Добавлено: 26 ноя 2017, 10:54
Iron
Mikhail72, Спасибо. Сейчас буду проверять
- Убираете в Declare строку #define IR_SENSOR_PIN IR_Sensor
- В секции Setup пишите pinMode(IR_Sensor, INPUT); // Где IR_Sensor ваш пользовательский параметр
- А в остальных функциях, где упоминается IR_SENSOR_PIN, меняете его на IR_Sensor
Здесь вроде даже для меня понятно.

Добавлено (26.11.2017, 10:54)
---------------------------------------------
Mikhail72, Первый , пункт уже был выполнен
rw6cm, Выполнил второй и третий, но увы безрезультатно.
Я взялся за пользовательский блок, не зная Си из за одной проблемки.
Может вы что то подскажите. Я постараюсь описать ее.
Есть такой встроенный блок IR Ressive. Так вот. Создаю проект в котором кроме него и индикатора 16х2 нечего нет, он отлично читает т.е. я вижу на индикаторе правильные данные сигнала. Но как только в блоке появляются элементы логики с генераторами, логикой , счетчиками, все кирдык показаниям,точнее уйма неверных срабатываний и часть логики перестает работать.
Может попытаться как то с помощью реализации каких то временных задержек это реализовать. Хочу добавить что извлекая этот блок из проекта и коммутируя сигналы кнопками, логическая часть тоже работает.
Я уже правда открывал об этом тему
http://forum.flprogwiki.ru/viewtopic.php?f=49&t=2730 но увы предложений не было. Так и сижу у разбитого корыта.
С уважением.
Не получается блок пользователя
Добавлено: 26 ноя 2017, 10:54
R2PM
rw6cm, Доброе время суток!!
Возможно с Вами связаться по эд. почте
R2PM
Не получается блок пользователя
Добавлено: 26 ноя 2017, 10:58
rw6cm
Для начала всегда надо вставить в блок код такой, какой он есть (естественно скетч должен быть рабочим).
И заставить его работать (как в оригинале)
Только после этого можно пытаться прикручивать ему входы, выходы, и т д.
Попробуйте этот блок посмотреть на ком порте, что он будет выдавать.
Если что, измените последнюю строку Declare в скетче, на вид как в оригинале,
если все работает и разницы нет, то можно приступать к модернизации кода под себя.
Не получается блок пользователя
Добавлено: 26 ноя 2017, 13:01
Iron
rw6cm,
Таки да. Загрузил оригинальный скетч и выяснилось что у меня проблемс на первом этапе .
А ваш блок похоже все верно выводит на Сом порт, точно без стабильных результатов утверждать не могу.
Буду начинать все с начала.
С уважением.