вопрос про dir620

Тема в разделе "Флудилка", создана пользователем Igor68, 20 сен 2019.

  1. ZAZ-965

    ZAZ-965 Гуру

    @parovoZZ, под какую задачу прицениваетесь к Omega2? Я играюсь в Armbian и OpenWrt на Orange Pi Zero - цена та же, а возможностей больше.
     
  2. parovoZZ

    parovoZZ Гуру

    Веб морда + работа по SPI. Но дашик ещё не читал - не представляю что там да как.
     
  3. Для spi всего один 32-х байтный регистр, dma каналы не подключаются, при использовании full-duplex есть аппаратный баг, на half-duplex работает удовлетворительно.
    Подключал к нему stm32 по spi, на макете проводами 20см, на 30-ти мегабитах работает, пробовал на 40, ошибки сыпятся.
     
  4. ZAZ-965

    ZAZ-965 Гуру

    Никто случайно не помнит, как назывались недонетбуки\наладонники на форке OpenWrt? Лет 10 назад китайцы выпускали, по моему MIPS 500-700Мгц c 64Мб ОЗУ.
     
  5. parovoZZ

    parovoZZ Гуру

    именно к SPI?

    ну мне такие скорости не нужны)

    для данных? Без буфера?

    А как там на Сях дружат работу с периферией и стандартным вебсервером (чтоб свой не писать)?
     
  6. Для spi нет возможности использовать dma, можно посмотреть исходники драйвера и убедится.
    В релизах openwrt 18.06.x ещё была поддержка full-duplex (кривой правда), но 18.06.x мне не подходит, брал из транка openwrt-19.07, там full-duplex отсутствует, при попытке выполнить транзакцию указывая буфер для передачи и приема, получаю -EINVAL
    Из юзер-спейса с периферией точно также (почти) как и на ОС линукс, или пишем свой драйвер если этого не достаточно.
    Что значит "стандартным вебсервером" без уточнения стандарта не ясно о чем речь, пользуюсь nginx-ом мне этого достаточно, есть библиотека POCO, кроссплатформенная и довольно мощная, на ней в приложении rest-запросы обрабатываю, а nginx статику отгружает.
    Поднимал всякие openvpn-ы stunnel-ы, для openssl собрал ГОСТ-овый энжайн, без гост-а нынче никудА.
    Для СКУД-а поднимал астера и на vps-е второго астера (он был транком для локального), в диал-плане при наборе вызов сразу на два номера, типа на домофоне набрали номер - вызов на квартирную панель и на смартфон, если вас дома нет, то можете ответить удаленно.
     
    Последнее редактирование: 25 окт 2019
  7. parovoZZ

    parovoZZ Гуру

    Я про другое. Допустим, крутится приложение, которое обслуживает внешние устройства через интерфейсы. Так вот вопрос в том, как текущие сырые данные вытащить в веб страницу и обратно, если веб сервер типа nginx, lighttp? Ну то бишь без привлечения файловой системы, базы данных.
     
  8. Эти данные известны только приложению, где-то в памяти например, и мы не хотим создавать файл в tmpfs (фактически та-же память), тогда в приложении реализуем простой REST и nginx по урл-ам проксирует запросы в приложение.
    Вариант 2: поскольку tmpfs та-же память, сохраняем данные в tmpfs, а nginx отгружает их как обычную статику.
     
  9. parovoZZ

    parovoZZ Гуру

    я как-то с малиной не заморачивался по поводу доступа к регистрам, а вот для Omega на гитхабе лежат какие-то исходники.

    это через localhost?
     
  10. Через него.
     
  11. Igor68

    Igor68 Гуру

    Вот и поставил через SERIAL и TFTP поставил OpenWrt. Очень и очень понравилась прошивка! Всё там шикарно, сразу SSH в наличии, ничего с бантиками и рюшечками в WEB интерфейсе но всё в наличии... вот только не увидел NFS. Может в консоли и есть... но под конец ночи уже сил нет искать было. Хотя fdisk, vi и др не встретил. А исходя из того, что связь настроил на асусах, а длинк решил включить в замороженный проект для стыковки всех малин с общей сетевой файловой системой NFS. Посмотрю... и если не найду выхода буду искать OpenWrt (сейчас 18.ХХ) с NFS ну или Padavan. Надеюсь данная прошивка позволит заливать другую прошивку через WEB морду без тупых проверок, потому как dir620b1 заменой загрузчика (по незнанию залил файл другого формата - надо было вскрыть файл или ещё что) окирпичил... при этом балдел от DD-WRT.
     
    ZAZ-965 нравится это.
  12. ZAZ-965

    ZAZ-965 Гуру

    @Igor68, NFS есть https://openwrt.org/docs/guide-user/services/nas/nfs.server, но для веб интерфейса LuCi плагина нет. Прошивку брали готовую или сами собрали? Я в старый ADSL D-Link с 32 МБ ОЗУ и 8 МБ ПЗУ запихнул mosquitto_ssl, музыку mpd c ympd, поддержку 3G модемов и графические mc, htop, ncdu.

    @parovoZZ, моих знаний хватает только на WiringPi или работы через файлы устройств, вроде такого https://raspberry-projects.com/pi/programming-in-c/i2c/using-the-i2c-interface
     
    Igor68 нравится это.
  13. Igor68

    Igor68 Гуру

    Прошивку брал готовую. LuCi плагин не требую, мне и консоли достаточно(даже предпочтительнее)... а про веб-морду сказал, потму как не увидел в ней мусора в виде украшений и т.п.
     
  14. parovoZZ

    parovoZZ Гуру

    громоздко как-то( Межпоточного взаимодействия нет в Linux?
     
  15. Причем тут межпоточное взаимодействие? Есть http прокси сервер, работающий по определенным правилам, заданным в конфигах. Сказано по определенным урл-лам проксировать на локалхост, он это и делает.
    Локалхост резолвится на лупбэк адаптер и данные попадают только в стек и не более.
    Если-бы http прокси сервер мог работать с файловыми сокетами, то можно обойтись и без стека.
     
  16. ZAZ-965

    ZAZ-965 Гуру

    А ubus для этих целей не подойдет (не проще)?
     
  17. Может и проще (реализация через те же сокеты работает, для отправки использует sendmsg), но разработка получится дольше, потому как в кросс-платформенные проекты ubus затягивать придется.
     
  18. parovoZZ

    parovoZZ Гуру

    брррр
    вы не поняли или я не могу пояснить))
    Есть программа на сях. Ламерски она начинается так:
    Код (C++):
    int main(int argc, char* argv[])
    Т.е. параметры можем ей передать только при запуске, получить параметры от нее можем только при завершении. А я хочу, чтобы она крутилась всегда. Допустим, программа состоит из десятка строк)), а чтобы ей передать какие-то значения, вы предлагаете ещё пару сотню строк кода туда вписать. Как-то не рационально)) Я так понимаю, что если следовать ламерскому подходу, то есть два простых варианта - через ФС (физ. или вирт.) или через базу данных.
     
  19. УжОоос!!
    Если это простое приложение, не служба и не драйвер, то существуют стримы, как минимум stdin stdout и stderr
    Передавайте сколько угодно через stdin, получайте результаты из stdout и stderr пока выполняется приложение.
    Если по каким то причинам этого недостаточно, используйте именованные пайпы.
     
    parovoZZ нравится это.
  20. DetSimen

    DetSimen Guest

    стримы у Ардуины находятся в зачаточном состоянии и попервоначалу указывают прямо в dev/null. Но если их как следовает правильно инициализировать, то можно перенаправить стандартный ввод/вывод куда угодно. Например, написав такую функцию
    Код (C++):
    int srlPutChar(char c, FILE *AStream) {
        if (c == '\r') srlPutChar('\n', AStream);
        Serial.print(c);
        return 0;
    }
    и прописав в setup()
    Код (C++):
        stdout = fdevopen(srlPutChar, NULL); //only send function
     
    Можно заставить стандартные Сишные функции форматированного вывода работать прям с Serial по умолчанию, например
    Код (C++):
    puts_P(F("Program started...\n"));

    или

    printf("%02d:%02d", RTC.getHours(), RTC.getMinutes());
    без всяких дополнительных заморочек. Точно так же можно переназначить стандартный ввод, хоть из Serial, хоть из клавиатурной матрицы, хоть из файла на SD. Главна, правильно задать функцию getchar().