Перейти к содержанию

    

Oleg_IT

Свой
  • Публикаций

    923
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Oleg_IT

  • Звание
    Знающий

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Москва
  1. Даташит на IRLR4132TRPBF

    Остатки остались, для попробовать.
  2. Даташит на IRLR4132TRPBF

    Помогите найти документацию на транзистор IRLR4132TRPBF в корпусе TO-252, конкретно интересует цоколёвка. Цоколёвка совпадает с APM4015PU?
  3. Реле времени ZR3MF012

    У заказчика поломалось реле ZR3MF012. Поиском только документация. Где в России можно это реле купить?
  4. Ethernet азы

    Функцию tcp_nagle_disable(pcb); можно вызвать один раз при установке соединения.
  5. Ethernet азы

    Для ускорения работы по передаче данных с помощью библиотеки lwip нужно применить такой код Кодtcp_nagle_disable(pcb); tcp_write(pcb, Ptr, Size, 0); tcp_output(pcb); И в коде функции tcp_output(pcb); закоментировать три строки Код... //  if (tcp_input_pcb == pcb) { //    return ERR_OK; //  } ...
  6. STM32F4+lwip медленно работает.

    Решил я свою проблему. Код отсылки такой Кодtcp_nagle_disable(pcb); tcp_write(pcb, Ptr, Size, 0); tcp_output(pcb); Спасибо "Сергей Борщ" и "scifi".
  7. STM32F4+lwip медленно работает.

    Пытаюсь вывести дубужную информацию, подключил терминал, включил LWIP_DEBUG, лог идёт, в приложение включил, а ARP запроса нет. Раньше как то такое было, но я так и не понял как победил, сейчас победить не получается, совместно изернет и дебаг не работает.
  8. STM32F4+lwip медленно работает.

    Цитата(arhiv6 @ Nov 10 2016, 10:04) Но Вы запись в сокет делаете из этой же функции, когда вызываете функцию slotSendToServer(). И после этого сразу же читаете из сокета данные, не проверяя их готовность. Вот если бы запись проходила в другом месте - вопросов не возникло бы. А так - данные могут теряться. Там же буфера разные на чтение и запись, у меня ни чего не теряется. Всё лишнее с обеих сторон повыкидывал, остался только номер пакета. Кстати, сейчас передаю по 1024 байта, один пакет передал, один пакет принял, так что в сборщике пакетов потребности сейчас нет. Ситуация та же.
  9. STM32F4+lwip медленно работает.

    Цитата(arhiv6 @ Nov 10 2016, 08:56) Слот slotReadyRead() срабатывает только тогда, когда данные уже готовы, так что ждать тут не чего. kolobok0 спасибо, учту Ваши рекомендации
  10. STM32F4+lwip медленно работает.

    Я свои байты вижу четыре раза в секунду. Может и копит, этот момент я пока не понимаю. Не понимаю тогда куда мне девать ошибку памяти? Если я два раза подряд отправляю пакеты, то второй раз выдаёт ошибку памяти. Не пойму пока куда смотреть чего проверять. Размерв буферов максимальные из рекомендации поставил.
  11. STM32F4+lwip медленно работает.

    Буфер конечно не резиновый, но и о скорости 100500 я не говорю, первый же вызов tcp_write не дождавшись ответа, вызывает ошибку памяти и этот посланный пакет теряется. Из этого и сделал вывод, что «lwip, у меня, ни чего не копит» и на приёмной стороне номеров этих пакетов не получаю. По Qt. ЦитатаВы очищаете массив(закос под кути или порт кутишный). Считываете всё что пришло в ку-байт-эррэй. получаете кол-во принятых байт. и далее передаёте на обработку.... Можно и не очищать. Да всё так. В обработчике AddData у меня стоит сборщик кусков, в пакете синхронизатор включён, а сам пакет постоянной длины, сделал этот код сам, проверено, работает. Пришлось сделать этот код, кода начал получать два пакета одинаковой длины в двух пакетах разной длины, я это уже отмечал. Сделал на PC имитатор стороны ARM, скорости держит несколько килогерц, специально вводил разбиение пакетов, связка работает стабильно. Цитатапогуглите по ключевым словами "LwIP delayed ack" и "LwIP nagle algorithm", возможно найдете что-то полезное. Смотрел, информации по этим темам не много, пока чего-то туплю
  12. STM32F4+lwip медленно работает.

    Цитата(scifi @ Nov 8 2016, 13:59) Если данные для отправки идут маленькими кусочками, lwip старается отложить отправку, пока не наберётся сегмент, приближающийся по размеру к MSS. Это чтобы не было кучи мелких сегментов. Если считаете, что вам виднее, можете просто вызывать tcp_output(), тогда всё, что накопилось к этому моменту, будет отправлено немедленно. Еслиб это было так, lwip, у меня, ни чего не копит, в начале я говорил, что если посылать чаще, то пакеты теряются, подпрограмма tcp_write выдаёт ошибку памяти.
  13. STM32F4+lwip медленно работает.

    Wireshark показывает Test1.JPG из приложения. IP …18 это модуль на ARM, …150 это PC с Windows XP. Получается, что тормоза идут от модуля. И откуда такие залипания, на 4 секунды, строки 36-37? Как в модуле проверить, что данные ушли в контроллёр изернет? Реестр поменял по рекомендации Sanya_kv Реестр.JPG из приложения. Результата не видно. Фрагмент кода приёмника Кодvoid MainWindow::slotReadyRead() {     if (m_pTcpSocket == NULL || m_pTcpSocket->isOpen() == false)         return;     slotSendToServer();     QByteArray dAll;     dAll.clear();     dAll = m_pTcpSocket->readAll();     SizeAll = dAll.count();     if (AddData(dAll.data(),SizeAll,(uint8_t*)m_Data.Data) == true)         WidgetMain->DrawGr(); } void MainWindow::slotSendToServer() {     if (m_pTcpSocket == NULL || m_pTcpSocket->isOpen() == false)         return;     GetControlToModul(m_ControlToModul);     m_pTcpSocket->write((const char*)&m_ControlToModul,sizeof(ControlToModul)); } GetControlToModul(…) заполняет передаваемую структуру. AddData(...) обработка принятых данных, сейчас только извлечения номера посылки, который приходит из модуля.
  14. STM32F4+lwip медленно работает.

    По моей ссылки кода нет, там теория TCP для новичков. Проект на PC достаточно большой, приёмная часть это класс QTcpSocket и его окружение из примера. Обработка пока вообще ни какая, просто беру и вывожу номер пакета, а пвкет это те самые 512 байт. По поводу двух пакетов, заметил, что lwip собирает два павкета, не всегда, но часто и передаёт их в двух пакетах, но с другими длиними, 588 и 436 байт. Увеличивал и уменьшал объём передаваемых данных в два раза, результат тотже.
  15. STM32F4+lwip медленно работает.

    Чем TCP от UDP отличается я знаю, это так к сведению Для уточнений можно, например сюда обратится https://electronix.ru/forum/index.php?showtopic=115578 , там и на стандарты ссылки есть. На приемной стороне, т.е. на РС стоит Qt-шная программа с кодом приёма передачи из её, Qt родного примера, обработка полученного массива данных и генерация передаваемых данных естественно свои, с начало передача ответа, потом обработка.