Обновить
18
0
Andrej Shadura@andrewsh

Consultant Software Engineer

Отправить сообщение
А вот меня ссылки с кириллицей бесят, а сам я всегда даю ссылки в urlencode, потому что иначе приходится бороться с пробелами и прочим мусором в ссылках, который автоматизированно распарсить в тексте невозможно.
485 можно было, но требовало переразводки платы.
Читайте выше, изначальный дизайн платы не наш. Кроме того, в плате всё разведено было с учётом всего, что надо.

Ну и вообще речь не о том, а о том, какова поддержка USB CDC в Windows, и каких проблем можно отгрести, если попробовать на неё положиться.
Даже не знаю, как только вообще можно нахваливать что IAR, что Keil. У обоих совершенно уродские IDE и ужаснейшие компиляторы.
Не поверите, но нам на C не хватало.
А теперь давайте попробуйте это в реальной жизни. USB CDC на Windows — да больше никогда в жизни.
Я вам расскажу одну байку, основанную на реальных событиях. Делали мы один девайс как раз на вышеописанном процессоре. Одна индустриальная машинка, управляемая с компа. Модулей несколько, от трёх до много, все подключены к компу и им дирижируются. Увы, изначальный дизайн платы был не наш, потому на некоторые решения повлиять было сложно в процессе работы — у нас были примерно 10 готовых плат, в которые мы могли вносить минимальные изменения, на них нужно было отладить работу, чтобы потом заказать редизайн и новые платы.

Так вот, изначально когда-то было принято решения, что устройства управляются через RS-232. Потом наши предшественники решили, что это не очень OK, потому как в компах количество компортов со временем стремится к нулю, и заменили их на USB CDC. На платах были разведены USB-хабы, девайсы были подключены друг к другу по цепочке, а хвост втыкался в USB-порт управляющего PC. В итоге софт переделывать практически не пришлось. И вот в таком виде девайс попал к нам.

Вроде как всё работало замечательно. До поры до времени. А именно, в нашем устройстве было много сервомоторов, шаговых двигателей, соленоидов и прочей трасцы, которая давала нехилые помехи в сеть и грозила отсечь пальцы и прочие неаккуратно оставленные на рабочих поверхностях части тела, а потому в составе девайса предусматривались средства безопасности. Предполагалось, что специальный ключ размыкает цепь, которая обесточивает некоторый контур, а специальный модуль с релюхами обесточивает всё остальное, когда это заметит. Интерлок такой, в общем. Ну а потом, соответственно, при устранении опасной ситуации все эти моторы и прочая все вместе включались, пусть и с небольшими задержками.

Вот когда мы начали этим интерлоком часто пользоваться, выяснилось, что одновременное выключение нескольких десятков работающих моторов и прочего просто начисто убивает USB. Т.е. сбрасываются все хабы и вообще всё, что есть на шине. Более того, ну ладно, сбрасываются они — и пусть, ведь подключаются сразу же назад. Оказалось, что не каждая операционная система с этим умеет бороться. К нашему сожалению, наши предшественники решили писать софт на C# и крутить его на Windows XP Embedded. Так вот, при каждом срабатывании интерлока ОС выпадала в «синий экран» в драйвере USB CDC. В качестве пробы я подключал свой лаптоп с Linux — устройства пропадали и возвращались, система никак не страдала. Мы перепробовали всё. Пробовали определять пропадание устройств, чтобы сразу же закрывать порт, думали о том, чтобы переписать нафиг драйвер (в каком-то SDK от MS есть исходники простого CDC-драйвера), была мысль даже написать userspace-драйвер на libusb (почти получилось, надо сказать). В конце концов избавились вообще от USB в пользу мультипортовой PCI-платы расширителя RS-232 и десятка экранированных кабелей. При всех теоретических недостатках RS-232 работало намного стабильнее.

Ну а следующая редакция платы просто использовала CAN (как и стоило бы делать с самого начала).
Ничто не мешает нам слинковаться с правильным генератором ПСЧ, который выдаёт заданную последовательность.
Ну и как это поможет? Сеть доверия — поможет. Описанный Вами способ — увы.
Есть мысль, что можно на базе Vimperator сделать что-то, причём более универсальное. Нажал хоткей — содержимое текстбокса зашифровалось.
Можно, но смысла особого нету. Злоумышленник может точно так же приложить ключ к зашифрованному самостоятельно сообщению. Смысл PGP в сети доверия через подписи ключей, а сервера ключей обеспечивают инфраструктуру для работы этой сети.
Её поставили на её колени, прижав её руки к её груди.
«Регэксп». Потому что «регьюлар экспрешн».
Угу. Уже сколько раз наблюдал:
Невозможно произвести запись на диск, включена защита от записи. Выключьте защиту от записи и попробуйте ещё раз.
— Оно выдало ошибку, что делать?
Ну или сто раз жмут OK как в статье.
Ну… гм, так необязательно их делать юзерами в RhodeCode.
Крёстный — не тот, кто учит вере. Крёстный — тот, кто берёт на себя ответственность за то, что человек получит должное духовное воспитание. Потому он может принадлежать к другой религии или быть неверующим вовсе. Главное — чтобы он выполнил то, на что «подписался».
Крёстный не обязан быть верующим.
Как я уже и сказал, Вы — воинствующий невежда, отстаивающий свою неправоту с пеной у рта. Но не волнуйтесь, это проходит. Со временем. Обычно.

Информация

В рейтинге
Не участвует
Откуда
Bratislava, Словакия
Зарегистрирован
Активность