| BG Development · За реклама · За контакти |
Помощ Търсене Потребители Календар Правила |
| Здравей! ( Включване | Регистриране ) |
| Страници: (5) 1 2 [3] 4 5 ( Първото ново мнение ) | ![]() ![]() ![]() |
| Дон Реба |
Публикувано на: 17-06-2026, 12:44
|
||
|
Име: Група: Потребител Ранг: Почетен член Мнения: 10496 Регистриран на: 11.11.06 |
самото "оправяне с имена на портовете" е мърлящина, пингваш всички портове, и си намираш устройствата, или ако не искаш така ползваш апито на чипа, и не ползваш vcp |
||
| thrawn |
Публикувано на: 17-06-2026, 12:53
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3864 Регистриран на: 17.01.17 |
И това не е много ОК, защото отнема време (а трябва да го правиш преди всяка команда, защото тези устройства могат да изчезнат и да се появят по-всяко време).
Като цяло, под linux имаш някакво поле за действие докато в windows нещата са си на самотек. |
| Дон Реба |
Публикувано на: 20-06-2026, 06:59
|
|
Име: Група: Потребител Ранг: Почетен член Мнения: 10496 Регистриран на: 11.11.06 |
абсолютно не, в нмикакъв случай преди всяка команда, а само когато софтуера стартира. тая педераско-програмистка философия "ама те могат да се откачат и закачат когато си искат" е тотален антипатерн.
|
| thrawn |
Публикувано на: 20-06-2026, 08:04
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3864 Регистриран на: 17.01.17 |
Да де, но се случва. Ето, на предната страница линкнах инфо на апарат на датекс (без сериен номер само vid/pid). Апаратът има режим за самоизключване (да пести батерия). Ако закачиш два такива и пуснеш приложение което ги управлява то ще работи коректно. Но ако те се изключат и ги включиш отново (без да спираш приложението), как би разбрал на кой порт кой апарат е (при твоята идея с детектване на устрийството)?
Точно за това трябва да имаш механизъм който да ти гарантира, че това устрийство излиза сами и единствено на този порт. Тоя проблем съм виждал да се решава от колеги с различни usb to rs адаптери. Това мнение е било редактирано от thrawn на 20-06-2026, 08:06 |
| Дон Реба |
Публикувано на: 20-06-2026, 08:37
|
|
Име: Група: Потребител Ранг: Почетен член Мнения: 10496 Регистриран на: 11.11.06 |
апарата се самоизключва след някакъв период на бездействие, няма проблем ако софтуера сканира портовете еднократно, когато започва сесия след период на бездействие, сканирането е около 100 милисекунди, не е забавяне от гледна точка на оператора. от там нататък си работи с порта на който го е открил, до края на сесията, през която апарата разбира се няма да се самоизключи, защото е зает.
Това мнение е било редактирано от Дон Реба на 20-06-2026, 08:37 |
| thrawn |
Публикувано на: 20-06-2026, 10:23
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3864 Регистриран на: 17.01.17 |
Има някакъв резон да се напраеи така, но забавянето няма да е 100 ms. А повече, защото трябва да саканираш всички портове и да изчакаш таймаутите на грешните портове.
Като цяло, аз не бих (и не) го направил така. Просто си мапвам устройствата както ми трябват а в последатвие проверката дали устройството е там или не се свежда до проста проверка дали файлът го има ими не. В windows обаче не става толкова лесно. Но като цяло гледам да не поддържам системи с windows. |
| Дон Реба |
Публикувано на: 20-06-2026, 11:23
|
|
Име: Група: Потребител Ранг: Почетен член Мнения: 10496 Регистриран на: 11.11.06 |
100 милисекунди е дори с огромен презапас, ако се наложи може да падне до 20. в тия 100 се побира дори ресет , ако се знае че това няма да навреди
|
| thrawn |
Публикувано на: 20-06-2026, 11:55
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3864 Регистриран на: 17.01.17 |
Не знам как ги определяш тия времена... За комуникацията с машините на датекс (и изобщо всичко ползващо същия протокол) имаш фиксирано време за отговор до 60 ms. За да е сигурно, че устройството е прихванало пакетът трябва да го изпратиш поне 2-3 пъти, за да обявиш че го няма. Това праеи общ минимален таймаут от 180 ms. Добави времето за изпращане на пакетът отиваш на 200 ms. Лично аз задавам таймаут на 200 ms. на всяка команда (и 3 повторения). Та лесно можеш да стигнеш до секуда че и повече
|
| ici |
Публикувано на: 20-06-2026, 13:24
|
||
![]() Име: Ивайло Илчев Група: VIP Ранг: Почетен член Мнения: 19077 Регистриран на: 06.06.04 |
Ресета не е толкова прозд. Когато получа команда за ресет връщам стандартен отговор че командата е приета и почвам да чакам по контролният ендпоинт команда че се освобождават модемните линии. Това означавяа порта е затворен. Даже и да не я получа след 500ms рестартирам при всички случаи. Ако не се затвори порта Windows намя да го закачи отново или ще му даде друг номер. След това чакам 10 сек за да се закачи в системата и се опитвам да го отворя отново. За 100мс не става. Така се прави ако се рестартира в DFU, ъпдейтне се фърмуера и се рестартира нормално. Пак се чака 10 сек. Може да стане и за 5, но е по-добре 10. -------------------- Facebook is a bit like checking your underwear after a fart.
Most likely there's nothing new and if there is it's probably shit. |
||
| Дон Реба |
Публикувано на: 21-06-2026, 07:07
|
||||||
|
Име: Група: Потребител Ранг: Почетен член Мнения: 10496 Регистриран на: 11.11.06 |
ресет с команда не е ресет, ако устройството е умряло няма да я приеме, а ако е живо за какво ти е ресет? аз говоря за истински ресет, с някой от помощните пинове на модема, аз лично предпочитам RTS защото визуално и фонетично наподобява думата ресет.
е, ако хардуера е някакъв външен няма как, човек работи с каквото има. но тогава дискусиите за архитектура на свързването губят смисъл, защото ползваш тяхната, не е под наша власт. |
||||||
Страници: (5) 1 2 [3] 4 5 |
![]() ![]() ![]() |