Flprog на оборот..
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
Flprog на оборот..
Хай пипл. Мысль, пишу быстро, что бы не упустить!=) Мысль такая, а что если реализовать такую фитчу, что бы готовый код преобразовывала назад в блоки, для дальнейшего редактирования, читай - изменения. А потом снова, можно в код и в контроллер.. Бывает же такое, есть готовое решение, но не целиком устраивает, а написать с нуля нужно много мозгов и\или свободного времени... По моему было бы круто, не так ли?
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
Flprog на оборот..
эм.. ну естественно нет, я же не разраб. от куда мне знать?! я только это, поделился идеей, мыслью! я же не виноват, что она оказывается бредовая)
- Dev1
- Майор
- Сообщения: 1045
- Зарегистрирован: 12 июл 2016, 18:04
- Откуда: Гондурас
- Поблагодарили: 3 раза
Flprog на оборот..
Ваша идея, по сравнению с моей нервно курит в сторонке.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x 

- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Flprog на оборот..
Во как на Купала накрыло..alverzilin писал(а):Хай пипл. Мысль, пишу быстро, что бы не упустить!=)
Добавлено (08.07.2017, 09:07)
---------------------------------------------
И поволокло....
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
Flprog на оборот..
чем?Sancho писал(а):накрыло..
куда??Sancho писал(а):И поволокло....
Не, ну а в самом деле. Я где то похожее встречал... только там была блок схема... вроде... вот не помню, то ли готовый алгоритм в блок схему, то ли на оборот... Надо погуглить..alverzilin писал(а):Мысль такая
Добавлено (08.07.2017, 09:30)alverzilin писал(а):По моему было бы круто
---------------------------------------------
А вот и пример! Почему бы и нет?
Добавлено (08.07.2017, 09:50)
---------------------------------------------
Нашел программу под названием - Code to Flow chart generator, но из-за того что она платная, работоспособность ещё не проверил, но по ходу, это конвертер из кода в блок схемы с большим количеством поддерживаемых форматов.
- Dryundel
- Полковник
- Сообщения: 2431
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
Flprog на оборот..
Ну не реально это. Не применимо к FLProg.alverzilin писал(а):А вот и пример! Почему бы и нет?
Представьте что разбираете автомобиль. Он состоит всего из трех блоков двигатель, кузов, подвеска. Вот только эти блоки не являются конечными стандартными запчастями, а разобрать до гаек и болтов смысла нет, т.к. в FLProg используются именно блоки. Проблема в том, что невозможно с достоверностью сказать к чему относится крепление двигателя, к кузову или же все-таки к двигателю.
Ни один алгоритм не отделит пользовательский блок от скетча, если только создать какую то общую базу и нанять команду которая будет эти блоки сертифицировать. В случае же когда скетч написан вообще не через FLProg задача становится архи не реальной. Встречаются такие замудреные алгоритмы, что их ни к одному блоку не приравняешь.
Короче говоря, как написано над одними известными вратами, "Оставь надежду, всяк сюда входящий."
И вообще, поаккуратней с канабисом надо, а то еще не так накроет.
Последний раз редактировалось Dryundel 08 июл 2017, 10:50, всего редактировалось 1 раз.
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
Flprog на оборот..
Понятно... Надо завязывать..)
замяли тему...
Оно то понятно. Или на-ибарод.. блоками мудришь поляну размером в стадион, а можно скатеркой отделаться (конечно если знаешь как(специально без запятой))Dryundel писал(а):Встречаются такие замудреные алгоритмы, что их ни к одному блоку не приравняешь.
замяли тему...
Flprog на оборот..
приведу простой пример, уже отписался по этой проблеме в другом разделе, но продублирую
Приведу пример скетча который нормально собирается сам по себе.
[spoiler]
#include <MIDI.h>
MIDI_CREATE_DEFAULT_INSTANCE();
// Variables:
int cc = 1;
int AnalogValue = 0; // define variables for the controller data
int lastAnalogValue = 0; // define the "lastValue" variables
void setup() {
// launch MIDI
MIDI.begin();
}
void loop() {
AnalogValue = analogRead(15); //knob 1 cutoff
// convert to a range from 0 to 127:
cc = AnalogValue / 8;
// check if analog input has changed
if (abs(lastAnalogValue - cc) > 1) {
MIDI.sendControlChange(1, cc, 1);
// update lastAnalogValue zero variable
lastAnalogValue = cc;
}
}
[/spoiler]
исходный скетч собрался нормально. Создал блок, вот что сделал с кодом FLProg
[spoiler]
#include <MIDI.h>
// Variables:
int cc_235447159_1= 1;
int AnalogValue_235447159_1= 0; // define variables for the controller data
int lastAnalogValue_235447159_1= 0; // define the "lastValue" variables
int _PWDC = 0;
bool _gtv1 = 1; //импульс выйти из меню
bool _gtv2 = 1; //войти в меню
bool _gtv3 = 0; //активно главное меню
bool _gtv4 = 1;
int _gtv5 = 150;
int _gtv6 = 950;
int _gtv7 = 38;
bool _gtv8 = 0;
int _gtv9 = 5;
int _gtv10 = 71;
int _gtv11 = 500;
int _gtv13 = 150;
int _gtv14 = 48;
int _gtv15 = 950;
bool _gtv16 = 0;
int _gtv17 = 100;
int _gtv18 = 28;
int _gtv19 = 950;
bool _gtv20 = 0;
int _gtv21 = 150;
int _gtv22 = 45;
int _gtv23 = 950;
bool _gtv24 = 0;
int _gtv25 = 150;
int _gtv26 = 43;
int _gtv27 = 950;
bool _gtv28 = 0;
int _gtv29 = 150;
bool _gtv32 = 0;
int _gtv33 = 100;
int _gtv34 = 49;
int _gtv35 = 800;
bool _gtv36 = 0;
int _gtv37 = 100;
int _gtv38 = 57;
int _gtv39 = 800;
bool _gtv40 = 0;
int _gtv41 = 1;
bool _gtv42 = 1;
int _gtv44 = 100;
int _gtv45 = 800;
bool _gtv46 = 0;
int _gtv47 = 51;
int _gtv48 = 800;
int _gtv49 = 100;
int _gtv50 = 117;
bool _gtv51 = 0;
int _gtv52 = 52;
int _gtv53 = 800;
int _gtv54 = 100;
bool _gtv55 = 0;
int _gtv56 = 100;
int _gtv57 = 90;
bool _gtv58 = 0;
int _gtv59 = 800;
int _gtv60 = 100;
int _gtv61 = 800;
bool _gtv62 = 0;
int _gtv63 = 46;
bool _gtv65 = 0;
bool _gtv66 = 0;
int _gtv68 = 36;
int _gtv71 = 700;
int _gtv74 = 200;
int _gtv75 = 600;
int _gtv76 = 44;
int _gtv77 = 800;
int _gtv67 = 3;
int _gtv69 = 3;
int _gtv70 = 3;
int _gtv73 = 1;
int _gtv78 = 3;
int _gtv79 = 3;
int _gtv80 = 3;
int _gtv81 = 1;
int _gtv82 = 1;
int _gtv83 = 1;
int _gtv84 = 1;
int _gtv85 = 1;
int _gtv88 = 1;
int _gtv89 = 0;
int _gtv90 = 0;
int _gtv64 = 1;
void setup()
{
TCCR2A = 0x00;
TCCR2B = 0x07;
TIMSK2=0x01;
TCNT2=100;
pinMode(3, INPUT);
digitalWrite(3, HIGH);
pinMode(22, INPUT);
digitalWrite(22, HIGH);
pinMode(23, INPUT);
digitalWrite(23, HIGH);
pinMode(2, INPUT);
digitalWrite(2, HIGH);
pinMode(24, INPUT);
digitalWrite(24, HIGH);
pinMode(25, INPUT);
digitalWrite(25, HIGH);
MIDI_CREATE_DEFAULT_INSTANCE();
void setup() {
// launch MIDI
MIDI.begin();
}
void loop()
{_PWDC = 0;
//Плата:1
void loop() {
AnalogValue_235447159_1 = analogRead(15); //knob 1 cutoff
// convert to a range from 0 to 127:
cc_235447159_1 = AnalogValue_235447159_1 / 8;
// check if analog input has changed
if (abs(lastAnalogValue_235447159_1 - cc_235447159_1) > 1) {
MIDI.sendControlChange(1, cc_235447159_1, 1);
// update lastAnalogValue_235447159_1 zero variable
lastAnalogValue_235447159_1 = cc_235447159_1;
}
}
}
ISR(TIMER2_OVF_vect)
{ TCNT2=100;
if(_PWDC >= 1000){asm volatile ("jmp 0x0000");}else{_PWDC = _PWDC+1;};
}
[/spoiler]
и ладно бы сделал, но в void loop() программа дописала {_PWDC = 0; после чего отказалась компилировать, что происходит???
а вы хотите запилить обратный процесс... тут жестокая конвертация кода с ассемблерными вставками или командами, поди разбери... + глюки при сборке с последующим крашем.
Приведу пример скетча который нормально собирается сам по себе.
[spoiler]
#include <MIDI.h>
MIDI_CREATE_DEFAULT_INSTANCE();
// Variables:
int cc = 1;
int AnalogValue = 0; // define variables for the controller data
int lastAnalogValue = 0; // define the "lastValue" variables
void setup() {
// launch MIDI
MIDI.begin();
}
void loop() {
AnalogValue = analogRead(15); //knob 1 cutoff
// convert to a range from 0 to 127:
cc = AnalogValue / 8;
// check if analog input has changed
if (abs(lastAnalogValue - cc) > 1) {
MIDI.sendControlChange(1, cc, 1);
// update lastAnalogValue zero variable
lastAnalogValue = cc;
}
}
[/spoiler]
исходный скетч собрался нормально. Создал блок, вот что сделал с кодом FLProg
[spoiler]
#include <MIDI.h>
// Variables:
int cc_235447159_1= 1;
int AnalogValue_235447159_1= 0; // define variables for the controller data
int lastAnalogValue_235447159_1= 0; // define the "lastValue" variables
int _PWDC = 0;
bool _gtv1 = 1; //импульс выйти из меню
bool _gtv2 = 1; //войти в меню
bool _gtv3 = 0; //активно главное меню
bool _gtv4 = 1;
int _gtv5 = 150;
int _gtv6 = 950;
int _gtv7 = 38;
bool _gtv8 = 0;
int _gtv9 = 5;
int _gtv10 = 71;
int _gtv11 = 500;
int _gtv13 = 150;
int _gtv14 = 48;
int _gtv15 = 950;
bool _gtv16 = 0;
int _gtv17 = 100;
int _gtv18 = 28;
int _gtv19 = 950;
bool _gtv20 = 0;
int _gtv21 = 150;
int _gtv22 = 45;
int _gtv23 = 950;
bool _gtv24 = 0;
int _gtv25 = 150;
int _gtv26 = 43;
int _gtv27 = 950;
bool _gtv28 = 0;
int _gtv29 = 150;
bool _gtv32 = 0;
int _gtv33 = 100;
int _gtv34 = 49;
int _gtv35 = 800;
bool _gtv36 = 0;
int _gtv37 = 100;
int _gtv38 = 57;
int _gtv39 = 800;
bool _gtv40 = 0;
int _gtv41 = 1;
bool _gtv42 = 1;
int _gtv44 = 100;
int _gtv45 = 800;
bool _gtv46 = 0;
int _gtv47 = 51;
int _gtv48 = 800;
int _gtv49 = 100;
int _gtv50 = 117;
bool _gtv51 = 0;
int _gtv52 = 52;
int _gtv53 = 800;
int _gtv54 = 100;
bool _gtv55 = 0;
int _gtv56 = 100;
int _gtv57 = 90;
bool _gtv58 = 0;
int _gtv59 = 800;
int _gtv60 = 100;
int _gtv61 = 800;
bool _gtv62 = 0;
int _gtv63 = 46;
bool _gtv65 = 0;
bool _gtv66 = 0;
int _gtv68 = 36;
int _gtv71 = 700;
int _gtv74 = 200;
int _gtv75 = 600;
int _gtv76 = 44;
int _gtv77 = 800;
int _gtv67 = 3;
int _gtv69 = 3;
int _gtv70 = 3;
int _gtv73 = 1;
int _gtv78 = 3;
int _gtv79 = 3;
int _gtv80 = 3;
int _gtv81 = 1;
int _gtv82 = 1;
int _gtv83 = 1;
int _gtv84 = 1;
int _gtv85 = 1;
int _gtv88 = 1;
int _gtv89 = 0;
int _gtv90 = 0;
int _gtv64 = 1;
void setup()
{
TCCR2A = 0x00;
TCCR2B = 0x07;
TIMSK2=0x01;
TCNT2=100;
pinMode(3, INPUT);
digitalWrite(3, HIGH);
pinMode(22, INPUT);
digitalWrite(22, HIGH);
pinMode(23, INPUT);
digitalWrite(23, HIGH);
pinMode(2, INPUT);
digitalWrite(2, HIGH);
pinMode(24, INPUT);
digitalWrite(24, HIGH);
pinMode(25, INPUT);
digitalWrite(25, HIGH);
MIDI_CREATE_DEFAULT_INSTANCE();
void setup() {
// launch MIDI
MIDI.begin();
}
void loop()
{_PWDC = 0;
//Плата:1
void loop() {
AnalogValue_235447159_1 = analogRead(15); //knob 1 cutoff
// convert to a range from 0 to 127:
cc_235447159_1 = AnalogValue_235447159_1 / 8;
// check if analog input has changed
if (abs(lastAnalogValue_235447159_1 - cc_235447159_1) > 1) {
MIDI.sendControlChange(1, cc_235447159_1, 1);
// update lastAnalogValue_235447159_1 zero variable
lastAnalogValue_235447159_1 = cc_235447159_1;
}
}
}
ISR(TIMER2_OVF_vect)
{ TCNT2=100;
if(_PWDC >= 1000){asm volatile ("jmp 0x0000");}else{_PWDC = _PWDC+1;};
}
[/spoiler]
и ладно бы сделал, но в void loop() программа дописала {_PWDC = 0; после чего отказалась компилировать, что происходит???

а вы хотите запилить обратный процесс... тут жестокая конвертация кода с ассемблерными вставками или командами, поди разбери... + глюки при сборке с последующим крашем.
Flprog на оборот..
Частенько программирую Loxone, там есть такая функция "загрузить из контроллера". Короче загружается проект в блоковом виде, в таком, каком я его и делал. Может при составлении проекта формируется какой то файл, и вместе с проектом загружается в контроллер!? Но этот файл будет отнимать память контроллера,alverzilin писал(а): 07 июл 2017, 19:39что бы готовый код преобразовывала назад в блоки, для дальнейшего редактирования
и без того не большую в ардуине. И зачем эта функция Вам? У Вас же есть исходный проект. Чтоб сливать чужой, и править?
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
Flprog на оборот..
Примерно так. Или возразите мол это неправильно\некрасиво? Так для этого есть fuse...)
-
- Лейтенант
- Сообщения: 373
- Зарегистрирован: 25 фев 2018, 17:56
- Имя: sonata
Flprog на оборот..
пробовали через гугл переводчик большой текст туда сюда переводить?)
по сабжу. если нету времени и желания разбираться - значит не занимайтесь. а так сидя на печи придумывать идеи эт мощно : )
ардуино это самый минимальный уровень. флпрог это фактически на палочках считать математику. куда уж проще?

- Dev1
- Майор
- Сообщения: 1045
- Зарегистрирован: 12 июл 2016, 18:04
- Откуда: Гондурас
- Поблагодарили: 3 раза
Flprog на оборот..
Никто не пилит видосики как на палочках считать.pony sonata писал(а): 16 май 2018, 09:21флпрог это фактически на палочках считать математику. куда уж проще?



Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x 

-
- Лейтенант
- Сообщения: 373
- Зарегистрирован: 25 фев 2018, 17:56
- Имя: sonata
Flprog на оборот..
видосов кстати валом по флпрог на ютуб, правда все как под копирку с видосов ув. гражданина с акцентом... ну и не стоит забывать, что графический язык флпрог FBD-подобный. т.е. практически соответствует стандартам МЭК, то можно и сами стандарты почитать как что делать или гайды на проги с похожей структурой языка. тот же бесплатный кодесис...
ну и не стоит забывать про саму справку для флпрог. я чесн сказать когда ток установил флпрог, первому, чему удивился, что подобный фришный/малобюджетный проект обладает такой справкой. я думаю это +100500 к развитию проекта, т.к. осваивать его не сложно
ну и не стоит забывать про саму справку для флпрог. я чесн сказать когда ток установил флпрог, первому, чему удивился, что подобный фришный/малобюджетный проект обладает такой справкой. я думаю это +100500 к развитию проекта, т.к. осваивать его не сложно
-
- Лейтенант
- Сообщения: 338
- Зарегистрирован: 11 фев 2018, 13:07
- Имя: Сергей
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
Flprog на оборот..
[ref]alverzilin[/ref], Разберите свой первый пост на буквы. А потом дайте кому нибудь, кто его не читал, собрать это всё как было. Вот это то же самое)
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
Flprog на оборот..
Да понял я, понял! Не стоит уж так пинать! И не чего мне не в падлу.. При определённом усердии можно и собрать! Вон, "энигма" тоже казалась супер-пупер машина, а ни чё, разгадали.. и тд и тп.. Тему уже давно можно было закрывать=)Serg_Grn писал(а): 16 май 2018, 20:47[ref]alverzilin[/ref], Разберите свой первый пост на буквы. А потом дайте кому нибудь, кто его не читал, собрать это всё как было. Вот это то же самое)
-
- Лейтенант
- Сообщения: 338
- Зарегистрирован: 11 фев 2018, 13:07
- Имя: Сергей
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
- Dev1
- Майор
- Сообщения: 1045
- Зарегистрирован: 12 июл 2016, 18:04
- Откуда: Гондурас
- Поблагодарили: 3 раза
Flprog на оборот..
Разгадали после того как заполучили энигму, а так бы сидели и репу чесали...alverzilin писал(а): 30 май 2018, 19:57Вон, "энигма" тоже казалась супер-пупер машина, а ни чё, разгадали.. и тд и тп..

Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x 

Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя