Dubov 0 13 марта, 2018 Опубликовано 13 марта, 2018 (изменено) · Жалоба Прошу рассказать о каких-либо примерах применения Python в Embedded. Все чаще в вакансиях встречаю требование знать Python. Ума не приложу где его можно применить программисту C++. Поделитесь опытом, как Python и скрипты сделали вашу жизнь проще. Возможно, в тестировании как-то это полезно?... Изменено 13 марта, 2018 пользователем Dubov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scorp 0 13 марта, 2018 Опубликовано 13 марта, 2018 · Жалоба Использую как вспомогательный инструмент для преобразования массивов данных там, где не хватает скилов применить Excel :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 13 марта, 2018 Опубликовано 13 марта, 2018 · Жалоба например pyserial - какой-нибудь лабудой по UART (через USB2UART) управлять обработка текстовых файлов - например из нетлиста схемы сгенерить констрейны для ПЛИС (раньше использовал awk, но python гораздо удобнее) также всякая "внезапная" деятельность - например, понадобилось s-record распечатать в hexdump - pip instal bincopy и готово :), а на С++ это писать - день возни раньше под винду использовал pywin32 для всякого "автомейшина" - то есть из PADSa какие-то данные доставал, в эксель вставлял - наверно это и бейсиком можно, но я бейсика не знаю, и когда на нем пытался что-то делать испытывал только отрицательные эмоции, а питон очень удобен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 6 13 марта, 2018 Опубликовано 13 марта, 2018 · Жалоба Тесты, кодогенераторы (когда нужно сделать узкозаточенное железо, с кучей одинаковых блоков с разными коэффициентами), модели, для проверки концепции, кроме того, визуализация достаточно легко делается (графики, гистограммы, созвездия) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 13 марта, 2018 Опубликовано 13 марта, 2018 · Жалоба Поделитесь опытом, как Python и скрипты сделали вашу жизнь проще. Возможно, в тестировании как-то это полезно?... Питон встроен в свежий KiCAD, LibreOffice и т.п. - можно автоматизировать некоторые вещи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Помимо автоматизации рутинных операций Python очень крут для анализа данных, моделирования и исследований - библиотеки numpy, matplotlib, jupyter и т.д (на венде лучше всего установить пакет Anaconda). Например, jupyter notebook - веб приложение класса computational notebook, позволяющее эффективно вести исследования и расчёты, совмещая с документированием. Вот я ради пробы побаловался. Тут в ячейке 1 цепляемся к процессу, который гонит видеопоток, во 2-й ячейке выдёргиваем кадр (объект f), в 3-й выводим кадр, в 4-й выводим профиль 60-й строки. Далее можно делать что угодно - строить и анализировать гистограммы, наводить статистику, производить обработку изображения. Кадров можно выдрать сколько угодно и работать с их массивом. Вот тут более взрослое использование фич jupyter notebook - прямо законченный документ, с оформлением, данными, вычислениями, ссылками и т.д. Помимо показанного там ещё можно писать формулы в формате LaTeX, получается очень красиво. :) Здесь обзор некоторых фич. Кроме того, очень удобно писать вспомогательный и/или технологический софт, в том числе когда требуется GUI - например, с использованием биндинга PyQt. Скорость разработки возрастает по сравнению с кодированием на С++, а скорость приложения получается почти такой же. Критичные места можно реализовать на С++. Одной из самых крутых фишек является возможность внедрить в приложение на PyQt ядро jupyter и получить доступ к потрохам приложения в питоновой консоли по типу IPython со всеми плюшками в виде автодополнения, умной истории команд, возможности использовать всю мощь matplotlib и т.д. Доступ по чтению и записи - т.е. можно оперативно выхватывать данные из приложения и изменять внутренние объекты интерактивно. Нам очень это помогает при работе с видеопотоками от камер. В общем, Python - универсальный язык, поддержанный огромным количеством библиотек на все случаи жизни, предоставляющий возможность быстро решать широчайший спектр задач от простой автоматизации рутинных операций до построения эффективного ПО для программно-аппаратного лабораторного комплекса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 2 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Этот дебильный пхытон куда только нынче не пихают! Но на мой взгляд изучать его нет необходимости, особенно в embedded, где кроме С и ассемблера ничего не нужно. А во всяких embedded-linux'ах тоже пхытону места нет: скрипты на bash или zsh значительно удобней. И читаются намного легче идиотского синтаксиса пхытона. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Этот дебильный пхытон куда только нынче не пихают! Но на мой взгляд изучать его нет необходимости, особенно в embedded, где кроме С и ассемблера ничего не нужно. А во всяких embedded-linux'ах тоже пхытону места нет: скрипты на bash или zsh значительно удобней. И читаются намного легче идиотского синтаксиса пхытона. расскажите об этом любителям ардуино) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 6 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба о построения эффективного ПО для программно-аппаратного лабораторного комплекса. Нет, как раз ПО будет неэффективным. Но это прямо провозглашено в идеологии питона - он не для производительности ПО, он для производительности труда. Поэтому, правильнее будет не "построения эффективного ПО...", а "эффективного построения ПО". Кстати, рекомендую сразу правильно пользоваться операторами сложения, конкатенации и т.п. Потому что это сейчас питон - язык с динамической типизацией, но постепенно такие языки приходят к строгой типизации, и этот путь уже прошли perl и php. В этом плане тоже идеология питона мне приятна - "должен быть только один способ сделать что-либо правильно". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvilWrecker 0 14 марта, 2018 Опубликовано 14 марта, 2018 (изменено) · Жалоба Нет, как раз ПО будет неэффективным. Наверное спорно- случаи есть разные: мне кажется в озвученном контексте проще в качестве примера привести какой-нибудь Rust , который вроде как очень неплох и интересен на бумаге, но что-то не видно "серьезного" софта(HPC, эмбед без мейкерских иот/бле игрушек и пр). Или я отстал от жизни? Изменено 16 марта, 2018 пользователем Herz грубость Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 6 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Наверное спорно- случаи есть разные Наверняка есть разные случаи, и, действительно, есть всегда есть смысл обговорить точку отсчёта. Но, как правило, код на C - это 10% аппаратных затрат того же алгоритма, но выполненного на perl/python. В perl эту задачу решили, сделав математические и dsp-шные библиотеки на C, и прикрутив к ним perl'овский интрефейс, то есть, для программиста на perl это выглядит как обыкновенный perl'овый модуль. Но там хитрость - передача данных от perl к C и обратно требует накладных расходов, поэтому, даже если делать всё правильно - собирать большие объёмы данных и уже их отправлять на обработку в модуль, то можно достичь производительности 90% от кода на чистом C. На python мне такое делать не приходилось, но уверен на 140%, что там есть что-то похожее, правда, оставляю 6%, что подобного там нет. В то время, когда я подобными вещами пользовался, ещё не было. Но, признаюсь, синтаксис perl мне нравится больше, чем python, считаю python хипстерским языком, что, однако, не мешает мне видеть его сильные стороны (ну или я на это надеюсь). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 2 14 марта, 2018 Опубликовано 14 марта, 2018 (изменено) · Жалоба расскажите об этом любителям ардуино) Хорошее сравнение: как абдуринщики лепят свои поделки, совершенно не вникая суть и по принципу "абы работало" ("а если не хватит этой абдурины, возьмем более мощную или 2-3-5 штук") вместо того, чтобы взять нормальный микроконтроллер и почитать даташит, так и пхытон раскручивают, чтобы люди, вообще не имеющие даже базовых основ программирования, могли надергать куски готового кода и слепить "абы работало". А то, что оно тормозит как не в себя и ресурсов жрет неплохо, их не пугает: ведь можно проапгрейдить процессор, добавить памяти (а то и более мощный компьютер купить, если пхытон слишком тормозит на старом). Краткое название всему этому — ориентирование на потребителя легкого поведения. Изменено 14 марта, 2018 пользователем Эдди Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
twix 0 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Прошу рассказать о каких-либо примерах применения Python в Embedded. Это идиотизм применять язык высокого уровня, предназначенный для обработки больших массивов данных в Embedded где все заточено на экономию ресурсов. Нельзя его там применять и точка. Искать примеры еще больший идиотизм. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 6 14 марта, 2018 Опубликовано 14 марта, 2018 (изменено) · Жалоба Нельзя его там применять и точка. Искать примеры еще больший идиотизм. Очень узко мыслите. Вот прямо очень. Прямо пример, который сразу приходит в голову - это парсер текстовых файлов - написан он будет на скриптовом языке очень быстро, отлажен очень быстро, а работать он будет очень надёжно. Это могут быть файлы конфигурации устройства на том же JSON или XML, приняли tar, распаковали его, обработали oneliner'ом, вычленили изменения настроек, применили. на том же perl это реально может быть oneliner - то есть, код в одну строку. Надёжно, протестировано, эффективно. Нужно раз в полгода, а-то и раз в несколько лет. Накладные расходы на использование скриптового языка получаются крайне низкими. P.S. И это пример, когда скриптовый язык может применяться в конечном устройстве непосредственно. Выше в этой теме есть примеры, когда он используется в ходе разработки, а не в конечном изделии. Я чаще применяю именно так (в ходе разработки). Изменено 14 марта, 2018 пользователем one_eight_seven Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Нет, как раз ПО будет неэффективным. А вы пробовали? А мы да. У нас есть приложение, принимающее поток с камеры - по сути software-defined camera: на дивайсе вся обработка выключена, что с сенсора снято, то и отправляется на хост в "сыром" виде, цель - отработка алгоритмов обработки видеопотока. Приложение написано на Qt5. И есть вариант этого же приложения на PyQt5. Оба приложения ожирают в районе 9% производительности проца (плюс-минус процент). При этом на питоновом варианте функциональность даже побогаче, не говоря уже о возможности интерактивно работать с потрохами приложения через консоль, висящую в другом процессе. Да, критичные места переписаны на С++, но там их всего ничего - три-четыре функции. Тормозов нет, потому что внутри всё равно работает оптимизированный код: что GUI'ая часть - библиотеки Qt, что numpy (видеокадры - массивы ndarray) - операции реализованы на С (хотя кое-что пришлось переписать, например, их функция построения гистограммы очень медленная для нас оказалась, она универсальная и навороченная, для интерактива годится, для потока нет, пришлось написать свою, там кода пять строк). В этом и фишка питона: это язык-фронтэнд. Не нужно стремиться писать на нём всё, нужно уметь правильно распределить код - нагруженные вещи реализовывать в оптимизированных модулях, а на самом питоне писать только управление этим. В этом суть pythonic философии. И не случайно питон занимает лидирующее место по количеству библиотек - буквально есть почти подо всё. Но, признаюсь, синтаксис perl мне нравится больше, чем python, считаю python хипстерским языком Ну, на вкус и цвет... Но насчёт хипстерского вы явно перегнули. У питона наиболее простой и человечный синтаксис из всего, что видел. Он просто акцентированно простой и неперегруженный синтаксическими элементами. Даже точки с запятой в конце выражений нет. Даже лексем для выделения блоков. Уж проще просто некуда. Даже проще чем в матлабе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться