Страница 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...");
 
а не 


Код: Выделить всё

{
   pinMode( IR_SENSOR_PIN , INPUT);
   }
Так же в 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 предложенный код чтобы убедится, что он компилируется, потом обнаружил возможную причину, а лишние фигурные скобки не влияют на корректность для редактора блоков.

Ironrw6cm имеет ввиду, что Вам придётся изменить секцию 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
Таки да. Загрузил оригинальный скетч и выяснилось что у меня проблемс на первом этапе  .

А ваш блок похоже все верно выводит на Сом порт, точно без стабильных результатов утверждать не могу.

Буду начинать все с начала.
С уважением.