Не получается блок пользователя

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
Iron
Рядовой
Сообщения: 26
Зарегистрирован: 23.11.2016{, 17:20}
Репутация: 1

Не получается блок пользователя

#1

Сообщение Iron » 25.11.2017{, 23:38}

Нужна помощь.
Блок не отправляется на компиляцию, в низу редактора блока красная надпись"Блок не корректен | Блок не изменён"

Что неверно в блоке.
Опасаюсь, что без знаний Си  много чего неверно   .

Выкладываю проект блока и источник.

С уважением.
Вложения
mlt_receive.txt
(5.22 КБ) 51 скачивание

Mikhail72
Рядовой
Сообщения: 44
Зарегистрирован: 21.12.2016{, 06:01}
Репутация: 0
Откуда: Тюмень
Имя: Михаил

Не получается блок пользователя

#2

Сообщение Mikhail72 » 25.11.2017{, 23:49}

Такая надпись может появиться из-за незаполненного параметра пользователя, например. Но если блок добавить на плату и заполнить все необходимые параметры проект должен скомпилироваться.

Iron
Рядовой
Сообщения: 26
Зарегистрирован: 23.11.2016{, 17:20}
Репутация: 1

Не получается блок пользователя

#3

Сообщение Iron » 25.11.2017{, 23:59}

Удалил единственный пользовательский параметр , не помогло

Mikhail72
Рядовой
Сообщения: 44
Зарегистрирован: 21.12.2016{, 06:01}
Репутация: 0
Откуда: Тюмень
Имя: Михаил

Не получается блок пользователя

#4

Сообщение Mikhail72 » 26.11.2017{, 00:00}

А где проект блока?

Iron
Рядовой
Сообщения: 26
Зарегистрирован: 23.11.2016{, 17:20}
Репутация: 1

Не получается блок пользователя

#5

Сообщение Iron » 26.11.2017{, 00:02}

Прошу пардон
Вложения
mlt_receive-COD.ubi
(50.09 КБ) 57 скачиваний

Mikhail72
Рядовой
Сообщения: 44
Зарегистрирован: 21.12.2016{, 06:01}
Репутация: 0
Откуда: Тюмень
Имя: Михаил

Не получается блок пользователя

#6

Сообщение Mikhail72 » 26.11.2017{, 00:30}

Я думаю, это из-за несовершенства редактора, видимо он считает недопустимой секцию Declare с таким содержимым, т.к. при создании нового блока после вставки кода в данную секцию блок становится некорректным при добавлении объединения(union), если его удалить в вашем блоке, то блок становится корректным. Может кто-то из генералов знает как это обыграть, у меня пока не хватает знаний в этой области.
Последний раз редактировалось Mikhail72 26.11.2017{, 01:03}, всего редактировалось 1 раз.

Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12.07.2016{, 18:04}
Репутация: 59
Откуда: Гондурас

Не получается блок пользователя

#7

Сообщение Dev1 » 26.11.2017{, 01:04}

Читаем пост №51 и делаем как там написано.

И переносим код правильно, без лишних скобок...  
В SetupSection вставляем 

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

pinMode(IR_SENSOR_PIN, INPUT);
   Serial.begin(9600);
   Serial.println("Ready...");
 
а не 


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

{
   pinMode( IR_SENSOR_PIN , INPUT);
   }
Так же в Loop и Function...
И сначала перенесите код как есть, добейтесь работы, а потом уже выкидывайте лишнее, вроде вывода инфы в Serial... Чтоб потом не спрашивать, а почему не компилиться...
Win10-64 FLProg v7.5.2 Portable :fie:

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Не получается блок пользователя

#8

Сообщение rw6cm » 26.11.2017{, 07:15}

Iron,
В FLProg, в секции Declare, в строках с директорией #define, не вставить данные из "параметров пользователя" не под каким соусом.
В той же секции Declare пропихнуть такое через FLProg:
СпойлерПоказать
struct mlt_command{
mlt_command_type command_type;
union {
mlt_shot_data shot_data;
mlt_system_command sys_cmd;
};
};
надо очень хорошо по изгаляться :))
и не факт что после компиляции это заработает.
плюс очень много ошибок со скобками.
Вложения
mlt_receive1-CO.ubi
(50.95 КБ) 56 скачиваний
Последний раз редактировалось rw6cm 26.11.2017{, 07:15}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

Iron
Рядовой
Сообщения: 26
Зарегистрирован: 23.11.2016{, 17:20}
Репутация: 1

Не получается блок пользователя

#9

Сообщение Iron » 26.11.2017{, 08:57}

rw6cm, Вы правы НЕ ЗАРАБОТАЛО  .

Спасибо всем за внимание. Попробую разобраться в том что написал rw6cm, пока не чего не понял  .
 
С уважением

Mikhail72
Рядовой
Сообщения: 44
Зарегистрирован: 21.12.2016{, 06:01}
Репутация: 0
Откуда: Тюмень
Имя: Михаил

Не получается блок пользователя

#10

Сообщение Mikhail72 » 26.11.2017{, 09:59}

Меня конечно удивил ответ генералов, но я ожидал большего. Я же указал в чём проблема, остальное подсказал бы компилятор 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, но возможно более сложное для восприятия человеком на С, т.к. структуры это предполагаю что-то типа оптимизации кода, ранее не сталкивался поэтому не подскажу.

Iron
Рядовой
Сообщения: 26
Зарегистрирован: 23.11.2016{, 17:20}
Репутация: 1

Не получается блок пользователя

#11

Сообщение Iron » 26.11.2017{, 10:54}

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 но увы предложений не было. Так и сижу у разбитого корыта.

С уважением.

R2PM
Рядовой
Сообщения: 16
Зарегистрирован: 18.09.2015{, 22:58}
Репутация: 0
Откуда: Тула

Не получается блок пользователя

#12

Сообщение R2PM » 26.11.2017{, 10:54}

rw6cm, Доброе время суток!!
Возможно с Вами связаться по эд. почте

R2PM
Последний раз редактировалось R2PM 26.11.2017{, 11:10}, всего редактировалось 1 раз.
R2PM

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Не получается блок пользователя

#13

Сообщение rw6cm » 26.11.2017{, 10:58}

Для начала всегда надо вставить в блок код такой, какой он есть (естественно скетч должен быть рабочим).
И заставить его работать (как в оригинале)
Только после этого можно пытаться прикручивать ему входы, выходы, и т д.

Попробуйте этот блок посмотреть на ком порте, что он будет выдавать.
Если что, измените последнюю строку Declare в скетче, на вид как в оригинале,
если все работает и разницы нет, то можно приступать к модернизации кода под себя.
Вложения
mlt_receive2-CO.ubi
(26.13 КБ) 50 скачиваний
Последний раз редактировалось rw6cm 26.11.2017{, 11:02}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

Iron
Рядовой
Сообщения: 26
Зарегистрирован: 23.11.2016{, 17:20}
Репутация: 1

Не получается блок пользователя

#14

Сообщение Iron » 26.11.2017{, 13:01}

rw6cm
Таки да. Загрузил оригинальный скетч и выяснилось что у меня проблемс на первом этапе  .

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

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

Ответить

Вернуться в «Спросить у знатоков»