Диспетчер задач by Alex Gyver

Пользовательские блоки дополняющие набор стандартных блоков
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Диспетчер задач by Alex Gyver

Сообщение Phazz »

Диспетчер задач сделанный на библиотеке https://github.com/GyverLibs/GyverOS



Добавлен информационный вход включения ручного режима задачи.
Благодарность [ref]Rovki[/ref], за тестирование
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Phazz 21 сен 2022, 21:10, всего редактировалось 4 раза.
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

Диспетчер задач by Alex Gyver

Сообщение ecoins »

Очень и очень любопытный подход.
Остерегаюсь обсуждения с искрами сомнения, которые могут некоторыми участниками форума боленено восприняты как "критика".
Подождал немного, тема интересная ("Диспетчер задач"), попробую что-то написать, возможно буду первым.
1.Интересен и подход, и код от библиотеки Gyver, подсмотрел там любопытное и полезное.
2.FLProg предлагает, подразумевает некоторые новые возможности и также некоторые ограничения, по сравнению с проектом просто на С++.
3.В FLProg заложена и использована одна из ключевых возможностей этой системы - вызов плат по условию. Она появилась не сразу, до неё приходилось как-то "кривоватые" решения подыскивать.
4.На мой взгляд задачей, как единицей проектирования", должна рассматриваться плата или совокупность плат, которые вызываются по условию. Еще очень полезным подспорьем оказался метод "Контакт".
В выложенном Вами тестовом примере на плате 4 завершается задача 1, начинается задача 4, которая завершается на плате 5. Как-то мудрено немного...
5.Еще одна полезная возможность FLProg(и мы ей часто пользуемся при отладке проектов), это отключение платы из процесса компиляции. В предложенном "Диспетчере задач" это можно делать если на каждой плате есть начальный и завершающий блок.
6.В FLProg нет пока жесткого метода выполнения последовательности блоков, как следствие потребуется на каждой плате контролировать эту последовательность вручную, а она может сбиться случайным образом, что может привести к неожиданным и непредсказуемым результатам...
7.Мне представляется, что предложенная библиотека больше подходит для проектов на C++ , и не лучший способ для FLProg.
8.Периодический вызов задач( (если это одна или несколько задач) достаточно просто реализовать и средствами FLProg - это
генератор + триггер по фронту + bool переменная.
По этой переменной можно вызывать требуемую плату (или несколько плат) по условию bool переменная =1. Мы это называем "Вызов по событию". Таких конструкций можно скажем поставить на первой плате неограниченное кол-во и вызывать соотвественно много разных задач.
9.Средствами FLProg можно реализовать и приоритет, и блокирование задач не только по времени, но и дополнительным условиям (пины, счетчики и т.п.).
10.Если требуется что-то поизящнее с приоритетами, заданием кол-ва задач, самое главное, выделение процессорного ресурса когда все периодические задачи уже выполнены, посмотрите на решения "Диспетчера задач" от ecoins - там и код покомпактней, и скорее всего немного побыстрее. Это код находится в библиотеке RT_HW_Base.h ->BASE_030_API_Time.h->API_031_TimerSheduler_h. К слову там реализован любопытный точный генератор с защитой от переполнения от Gyver, которому в свою очередь еще кто-то предложил (на его сайте есть описание).
-------------
Тема планирования задач в FLProg и важная, и полезная, исследования в этом направлении интересны и нужны.
Успехов.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Диспетчер задач by Alex Gyver

Сообщение Dryundel »

ecoins писал(а): 28 авг 2022, 20:57 Если требуется что-то поизящнее с приоритетами, заданием кол-ва задач, самое главное, выделение процессорного ресурса когда все периодические задачи уже выполнены, посмотрите на решения "Диспетчера задач" от ecoins - там и код покомпактней, и скорее всего немного побыстрее. Это код находится в библиотеке RT_HW_Base.h ->BASE_030_API_Time.h->API_031_TimerSheduler_h.
[ref]ecoins[/ref], здесь не пишется библиотека, а используется готовая. Это ваше предложение мне кажется не совсем уместным. Может быть оно будет полезно AlexGyver. Попробуйте с ним связаться.
Ваша ревность в принципе понятна, но не смотря на то, что:
ecoins писал(а): 28 авг 2022, 20:57 Мне представляется, что предложенная библиотека больше подходит для проектов на C++ , и не лучший способ для FLProg.
Этой библиотекой можно пользоваться и делать это легко и удобно.
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Диспетчер задач by Alex Gyver

Сообщение Phazz »

[ref]ecoins[/ref], да тут другой подход к выполнению задач. Можно считать это просто альтернативой куче таймеров и условий если это делать все на блоках. Но есть еще одно преимущество. Эти задачи можно вызывать по прерыванию моментально а не ждать пока дойдет до них очередь.
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

Диспетчер задач by Alex Gyver

Сообщение ecoins »

Phazz писал(а): 28 авг 2022, 21:54 ecoins, да тут другой подход к выполнению задач. Можно считать это просто альтернативой куче таймеров и условий если это делать все на блоках. Но есть еще одно преимущество. Эти задачи можно вызывать по прерыванию моментально а не ждать пока дойдет до них очередь.
Да, конечно.
И в этом еще одна "засада" - в прерываниях.
Это может привести к нарушению работы некоторых блоков, которые к этому не приспособлены, например блок измерения HC-SR04, DHT-22.
Впрочем прерываний создающих проблем в реальных проектах и так достаточно.
Как ни странно 3-й год совершенствую блок ds1820 и получаю новые откровения.
Все хорошо работает с AVR, если нет скажем быстрого счетчика по прерываниям и ли как в нашем случае блок HC-SR04 по прерыванию.
Посылки между контроллерами не просто длинные, но еще требуют запрета прерываний ....
Еще большая проблема с ESP8266 и ESP32 - там еще и CORE меняют в части работы с прерываниями, что приводит порой либо к ошибкам компиляции, либо еще хуже к перезагрузке процессора.
Эти проблемы в основном удалось преодолеть. Как ни странно самым чувствительным к скорости обмена чрез дискретный вывод оказался ESP32 - оказалось иллюзией его высокое быстродействие - 240 мгц это для Wi-Fi, а как процессор он порой реально скатывается по быстродействию к AVR.
Так вот когда и WiFi работает (а он по прерываниям) , многие блок DS1820 испытывает трудности.
Похоже нашли хитроумный способ условного преодоления этих проблем, но это путем встраивания в библиотеку целого многоступенчатого планировщика обмена транзакциями с DS1820. Сейчас тестируем, если получится выложим в отдельной ветке.
--------
Таким образом введение еще одного прерывания с принудительным переключения задач, может порождать новый список проблем, он не короткий. Собственно часть из них схож и при работе с 2-я ядрами- требует специальных действий для избежания конфликтов.
Собственно почти все традиционные библиотеки работы с устройствами оказываются в зоне риска.
-------
Разработки AlexGyver основательны и интересны. И разработки других авторов.
Но как-то все грешат тем, что замалчивают о проблемах:
1.которые проявляются на разных контроллерах;
2.о встроенных тормозах - повсеместно используется delay() на значительные времена;
3.о возможных проблемах с прерываниями от одновременно работающих устройств разных разработчиков;
4.и порой просто о конфликтах с другими библиотеками.
-------
Как-то так об аккуратности использования прерываний на простых контроллерах без специальных операционных систем.
FreeRTOS проблем всех не решает, но добавляет новая.
-------
За предложенные решения спасибо - они полезны, интересны, помогают расширить кругозор о проблемах практического использования вроде бы простого устройства - контроллера под Arduino.
-------
Успехов.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Диспетчер задач by Alex Gyver

Сообщение Dryundel »

Вот о чем человек написал? Про что эти нескончаемые тексты? Какое отношение они имеют к новому проекту топикстартера?
Складывается впечатление, что специально нагоняется пурга, что бы все поняли - все кроме разработок ecoins туфта и даже не стоит начинать.
А в конце, так ехидно:
ecoins писал(а): 28 авг 2022, 22:29Успехов.

Типа - ну-ну попробуй создать что то стоящее, а я поухмыляюсь и забью тему километровыми абстрактными текстами.

Может почистить все, что после первого поста? И дать возможность топикстартеру сделать нормальное описание.
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Диспетчер задач by Alex Gyver

Сообщение Rovki »

Предупрежден , значит вооружен . Вот и все ! Причем из практики ...А дальше пользователь решит, что ему использовать и к кому обращаться за помощью ,если что...
Автору поста отдельное спасибо за разнообразие и труд.
Электронщик до мозга костей и не только
krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06 сен 2015, 15:18
Откуда: Калуга
Имя: Андрей

Диспетчер задач by Alex Gyver

Сообщение krom23 »

[ref=#808080]Phazz[/ref], спасибо, на первый взгляд вроде всё понятно, попробую. Кстати, не пора ли обновиться, вышла версия 1.2.1.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Диспетчер задач by Alex Gyver

Сообщение Dryundel »

krom23 писал(а): 15 сен 2022, 22:53 Кстати, не пора ли обновиться, вышла версия 1.2.1.
Просто скачайте новую библиотеку и удалите старую. Как правило блоки сделанные на предыдущих версиях библиотек AlexGyver, прекрасно работают и со свежими, в отличии от библиотек некоторых других авторов.
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Диспетчер задач by Alex Gyver

Сообщение Phazz »

Нумерация версии блока не имеет отношения к нумерации версии библиотеки.
krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06 сен 2015, 15:18
Откуда: Калуга
Имя: Андрей

Диспетчер задач by Alex Gyver

Сообщение krom23 »

Спасибо ребята, я так и понял/сделал. Пойду почитаю, что люди пишут, что написал Алекс, прочитал.
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Диспетчер задач by Alex Gyver

Сообщение Rovki »

Dryundel писал(а): 16 сен 2022, 09:46
krom23 писал(а): 15 сен 2022, 22:53 Кстати, не пора ли обновиться, вышла версия 1.2.1.
Просто скачайте новую библиотеку и удалите старую. Как правило блоки сделанные на предыдущих версиях библиотек AlexGyver, прекрасно работают и со свежими, в отличии от библиотек некоторых других авторов.
Успокойтесь уже наконец ,без грязных намеков ...И не говорите, что вас в очередной раз ни так поняли.
Электронщик до мозга костей и не только
krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06 сен 2015, 15:18
Откуда: Калуга
Имя: Андрей

Диспетчер задач by Alex Gyver

Сообщение krom23 »

[ref=#ff8000]Rovki[/ref], вы писали в соседней теме, что используете блоки от ecoins без диспетчера задач. Какие блоки можно использовать таким образом? Просто я не в теме три года как. Вот думаю скрестить ужа с ежом, диспетчер от Alex Gyver, а блоки от "некоторых других авторов", раз уж они так хороши, с ваших слов.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Диспетчер задач by Alex Gyver

Сообщение Ingwar »

krom23 писал(а): 17 сен 2022, 20:38 Вот думаю скрестить ужа с ежом
Да, мне тоже очень любопытно увидеть реальный пример использования.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Диспетчер задач by Alex Gyver

Сообщение Rovki »

krom23 писал(а): 17 сен 2022, 20:38 [ref=#ff8000]Rovki[/ref], вы писали в соседней теме, что используете блоки от ecoins без диспетчера задач. Какие блоки можно использовать таким образом? Просто я не в теме три года как. Вот думаю скрестить ужа с ежом, диспетчер от Alex Gyver, а блоки от "некоторых других авторов", раз уж они так хороши, с ваших слов.
Любые ,что есть в его примерах , с вопросами обращайтесь к автору этих блоков. Но помните ,могут быть проблемы с этим диспетчером ,работающий по прерываниям с теми блоками у которых длинная посылка и штатными коммуникациями которые также используют прерывания... :smile37:
Электронщик до мозга костей и не только
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Диспетчер задач by Alex Gyver

Сообщение Phazz »

[ref=#ff8000]Rovki[/ref], вообще ни каких проблем с прерыванием и прочим не будет.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Диспетчер задач by Alex Gyver

Сообщение Dryundel »

[ref=#808080]Phazz[/ref], для кого то это действительно магия о том и предупреждение. :)
с вопросами обращайтесь к автору этих блоков. Но помните ,могут быть проблемы...
Как в сказке. "Но помни, ровно в полночь карета превратиться в тыкву!"
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Диспетчер задач by Alex Gyver

Сообщение Rovki »

Dryundel писал(а): 18 сен 2022, 10:08 Откуда: Сургут
Вы сюда сказки пришли читать?( флудить)
Электронщик до мозга костей и не только
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Диспетчер задач by Alex Gyver

Сообщение Ingwar »

Rovki писал(а): 18 сен 2022, 11:21 Вы сюда сказки пришли читать?( флудить)
Впрочем как и вы))
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Диспетчер задач by Alex Gyver

Сообщение Rovki »

Phazz писал(а): 18 сен 2022, 09:25 [ref=#ff8000]Rovki[/ref], вообще ни каких проблем с прерыванием и прочим не будет.
Уважаемый [ref=#808080]Phazz[/ref], Проверьте простой пример - слейв есп ,мастер каскада (модбас ТСР) читает всего 1 переменную. 2 задача вывод константы в уарт на консоль , включите вывод данных на консоль
testGyverOS 1.0 (1).rar
диспетчер.rar
:smile427:
второй файл это проект на каскаде, другой нет , а вы можете использовать любую

Отправлено спустя 2 минуты 20 секунд:
Ingwar писал(а): 18 сен 2022, 11:23
Rovki писал(а): 18 сен 2022, 11:21 Вы сюда сказки пришли читать?( флудить)
Впрочем как и вы))
мне был задан вопрос ,я дал ответ , потом дал автору конкретный пример , адвокатов я не вызывал , тем более для флуда
Screenshot_2022-09-18-11-38-33-127_ru.kablov.kascada_full.modbus.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
Ответить

Вернуться в «Триггеры, таймеры, счетчики, детекторы сигнала»

Кто сейчас на конференции

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