Нужен отдельный котёл для эмбеддеров, делающих фрейминг в serial link (будь то uart или еще что-то) тупо на счётчике байтов, без какого либо стаффинга. Зато там црц есть. Если удастся его найти в потоке-то.
This entry was originally posted at
https://ex0-planet.dreamwidth.org/102228.html. Please comment there using
OpenID.
Comments 27
зыЖ но есть и более дикий грех - в определенном месте посылки поднимать/опускать какой-нибудь rts/dtr/ring итп. (привет буферизации в уртах и в ос)
Reply
То что линк может _порваться_ в середине пакета, оставив другую сторону в непонятном состоянии - не, не слышали.
RTS/DTR - это ж для всяких кривых недоимплементаций RS-485 в основном, да? Это слава богу научились лечить - доступностью нормальных мостов, в основном, но тем не менее. Давно уже не видел такого.
Reply
или линк не точка-точка, а на условной шине сидит больше пары устройств, и к кому-то из них может придти ПЦ или прийти космическая частица на стопицот МЭв, которая заткнет или стартанет передачу в произвольный момент.
а, да, еще совершенно комическая, но таки реальная ситуация - изготовитель говорит, что у него оптроны медленные и "115200" не тянут, но в плане эксперимента можно попробовать. по другой версии со стороны того же устройства - там наэкономили на центральном процессоре и на программистах. но итог тот же - иногда теряются фрагменты пакетов (если смотреть с точки зрения софта высокого уровня)
Reply
Ебануться, извините мой французский, там что, 4N35?
6N137 сто лет в обед, а лучшая в мире микроэлектронная промышленность до сих пор не освоила аналога? Это же про "импортозамещение" речь, я правильно понимаю?
Reply
Хуже этого только сделать еще внутренний стейт, который невозможно сбросить иначе как выключением питания.
Reply
Хуже другое - видя ебанину, тиражируемую из проекта в проект, начинаешь сомневаться в собственной адекватности....
Reply
это первый шаг. потом сомнения перерастают в отрицание чего-то другого, потом в уверенность в чем-то третьем.
но вообще - да, тиражируемая ебанина - сильно демотивирует, как и типовая пиздецома получаемая из типового кроилова при типовых вводных. причем, с ТЗ разных ролей в проекте, ебанина-пиздецома будет сильно разной
Reply
когда-то давно, когда усб2.0 только-только пришел на смену усб1.1, я допиливал чужой усб-стек и читал всякие даташиты на разные участки потрохов этого уёбищного порождения корпораций и комитетов.
так вот. если мне склероз не изменяет, чуть ли не со времен мертворожденного 1.0 у усб есть управление питанием и "более верхний софт" может отключить питание конкретного порта хаба. именно обесточить порт, а не пожелать устройству войти в спящий режим.
так вот, интересно, хоть где-то это работает и хоть где-нибудь стабильно и воспроизводимо можно "стандартно по стандарту УСБ" обесточить клиента, подождать, подать напряжение и итого получить хард-ресет?
Reply
ЗЫ: вообще упустил, что сейчас в большинстве случаев Serial не физический, а эмулированный. Сам я, когда что-то делаю, всегда по старинке подразумеваю, что он физический.
Reply
Таймауты... ну, я бы сказал что грамотный фрейминг не сложнее плясок с таймаутами. Можно и на таймаутах, конечно, и в большинстве случаев всё будет работать потому что пакет скорее всего пролезет в буфер целиком и прочее в таком духе, но вообще это наслоения текущих абстракций. И когда это сломается, никто не будет разбираться - "просто передёрните питание".
Reply
Reply
Ну вот послали мы заголовок "щас пришлю картинку", потом полезли за картинкой в память, а она возьми да и засвопься. Вот и таймаут. А потом утилита наваливает в ничего не подозревающую стейт машину какие-то байты.
Сам дурак и надо было ставить ssd?
Reply
Reply
Работает же оно как-то.... до первого сбоя. Просто мне это всё живо напомнило из другой области: "Не надо ничего чинить - просто сделай чтобы оно завелось".
Reply
>программисты всегда рады потрещать о том, какой хуевый код пишут другие программисты.
иногда выдают свои оценки за "сделать лучше", и иногда делают лучше. и это систематически повторяется. и типа-менеджер может это увидеть и оценить медианно, средне, или "идеально повезет".
а вообще, если погромисты декларируют "умею пахать от забота до заката, хочу Ъ денег за час", если упоротые-менеджеры декларируют "за Ъ денег сделаю ПРОЕКТ, и выплачу по Ё,Ы,Ф часов трем погромистам", то.. то какого хуя менеджеры пытаются привсунуть программистам ответственность "за рас" кроме типично программистской "я оценил напряг за час, оценил задачу в часах. наверное. примерно"
плюс
Я ПРОГРАММИСТ ОЦЕНИЛ ЗАДАЧУ В ъ ЧАСОВ, ТЫ, МЕНЕДЖЕР, ОЦЕНИЛ ЭТУ ЗАДАЧУ И МОИ УМЕНИЯ В ъ*й ЧАСОВ, ТЫ ВЗЯЛ С ЗАКАЗЧИКА Ъ*й*й ДЕНЕГ, ТАК КАКОГО ХРЕНА РИСК ОЦЕНКИ ЦЕНЫ - ЭТО МОЙ А НЕ ТВОЙ РИСК
Reply
Ну и любой кодосрач - это, в самом позитивном случае, борьба за дальние цели, вроде технического долга. В то время как KPI и прочие эстимейты - средне- и краткосрочные, и в идеальном случае пересекаться они не должны.
Reply
Leave a comment