Скотская мастдайка!
May. 13th, 2015 03:57 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Ковыряли сегодня мой ircontroller под мастдайкой.
Сразу столкнулись с веселой штукой: оказывается, в этом говне даже на виртуальный ком-порт надо скачивать и ставить "драйвер", да еще и не из централизованного проверяемого репозитория, а черт знает откуда! Как после этого удивляться, что там постоянно вирусы всякие кишмя кишат?
Другая веселая штука — даже после установки драйвера VCP мастдайка мелкоконтроллер не опознала (хотя он — обычный USB CDC: .idVendor = 0x0483, .idProduct = 0x5740). Что за анальное огораживание? Как вообще такое может быть?
Третья веселая штука: мы перебрали с пяток разных терминальных клиентов для мастдайки и не нашли ни одного приличного. Единственный более-менее нормальный выдавал чудеса: в символьном режиме МК он работал, а в строковом — фигвам! Я уж думал, у меня в коде какие-то глюки; подключил к USART1 переходник на PL2303, воткнул в нетбук — все в строковом режиме работает. ОК, втыкаю переходник в компьютер с мастдайкой (бумц! Ставь дрова!!! Благо, хоть это говно себя перезагружать не потребовало) — символьный работает, строковый — нет.
Нет, это мазохизм чистой воды разрабатывать что-то под мастдайку!
Сразу столкнулись с веселой штукой: оказывается, в этом говне даже на виртуальный ком-порт надо скачивать и ставить "драйвер", да еще и не из централизованного проверяемого репозитория, а черт знает откуда! Как после этого удивляться, что там постоянно вирусы всякие кишмя кишат?
Другая веселая штука — даже после установки драйвера VCP мастдайка мелкоконтроллер не опознала (хотя он — обычный USB CDC: .idVendor = 0x0483, .idProduct = 0x5740). Что за анальное огораживание? Как вообще такое может быть?
Третья веселая штука: мы перебрали с пяток разных терминальных клиентов для мастдайки и не нашли ни одного приличного. Единственный более-менее нормальный выдавал чудеса: в символьном режиме МК он работал, а в строковом — фигвам! Я уж думал, у меня в коде какие-то глюки; подключил к USART1 переходник на PL2303, воткнул в нетбук — все в строковом режиме работает. ОК, втыкаю переходник в компьютер с мастдайкой (бумц! Ставь дрова!!! Благо, хоть это говно себя перезагружать не потребовало) — символьный работает, строковый — нет.
Нет, это мазохизм чистой воды разрабатывать что-то под мастдайку!
no subject
Date: 2015-05-13 01:00 pm (UTC)no subject
Date: 2015-05-13 01:02 pm (UTC)tera-term (или как-то так) наиболее близок к желаемому оказался (но тоже дряной, хотелось бы просто в командной строке набрать что-нибудь вроде com /dev/ttyS0 115200 и получить связь).
no subject
Date: 2015-05-13 01:04 pm (UTC)no subject
Date: 2015-05-13 01:16 pm (UTC)из всех драйверов там простой инф написать. Хотя это бесит конечно.
в строковом не работает - windows тут не при чем - скорее всего преобразование cr/lf
no subject
Date: 2015-05-13 02:32 pm (UTC)> из всех драйверов там простой инф написать
Ну, этим уж я точно заниматься не буду.
Сейчас еще раз ковырнул putty - ну и наркоманский же там интерфейс! Попробуй найди, как соединиться ☺
> скорее всего преобразование cr/lf
Именно в этом и получилась проблема. Терминал на нажатие enter зачем-то шлет вместо '\n' либо '\r' либо вообще "\r\n". А у меня ожидается формат вида "[ команды ]\n", т.е. пока '\n' во входном потоке не появится, строка обрабатываться не будет; а если перед '\n' нет закрывающей скобки, сообщение считается мусором.
Вот проблема и решилась.
Надеюсь, питон и/или IDL умеет правильно окончания строк делать? Потому что человек, который будет для мастдайки писать обертку, планирует либо напрямую из IDL с портом работать (но непонятно, как там с поллингом - у меня-то передача асинхронная), либо через прослойку на пхитоне (правда, так у него вряд-ли получится: я сильно сомневаюсь, что у него нахрапом выйдет написать демона и наладить IPC -- в мастдайке-то!).
no subject
Date: 2015-05-13 05:47 pm (UTC)Назови хоть один нормальный.
> Именно в этом и получилась проблема.
Итого: ты попросту не умеешь корректно парсить входной поток строк. Проблема в говнокоде, а не в винде.
no subject
Date: 2015-05-13 05:56 pm (UTC)мой и com из пакета tinyserial — как элементарщина для нубов, либо старый добрый screen. Просто для запуска screen надо страничку мана прочесть.
> ты попросту не умеешь корректно парсить входной поток строк
Как это не умею? Умею. Просто как-то, знаешь ли, не ожидал, что во входном потоке левые символы будут сами по себе втыкаться.
Эдак какой-нибудь шестой гилли бейтс решит туда \b втыкать, и я должен буду на все случаи жизни костыли городить? Да пошли они нафиг!
no subject
Date: 2015-05-14 11:55 am (UTC)в сетях кстати вообще принято, что стандартным окончанием является CRLF.
no subject
Date: 2015-05-14 12:20 pm (UTC)Это было давно. Последнее время у меня в CGI'шках строки заканчиваются только '\n', и все браузеры это съедают.
Вот я про эту проблему и подзабыл...
Ну, ничего: я сегодня утром починил эту проблему. Правда, помучился изрядно (пришлось то тут немножко подправить, то там чуть-чуть)...
no subject
Date: 2015-05-13 02:24 pm (UTC)no subject
Date: 2015-05-13 02:26 pm (UTC)Воистину, Билли -- тот еще Гейтс...
no subject
Date: 2015-05-13 03:23 pm (UTC)no subject
Date: 2015-05-13 04:23 pm (UTC)no subject
Date: 2015-05-13 04:40 pm (UTC)Всё нормально работает. У меня на разных компах стоит Windows 7? Windows 8, Debian и OS X Mountain Lion, и я на всех работаю, просто прекрасно.
no subject
Date: 2015-05-13 04:43 pm (UTC)И да, меня от мастдайки настолько воротит, что я просто лучше уволюсь, чем буду с этим говном что-то пытаться серьезное сделать!
no subject
Date: 2015-05-13 05:05 pm (UTC)no subject
Date: 2015-05-14 11:57 am (UTC)