June 23rd, 2021

doomguy

Побочные эффекты "Спутника-V"

В четверг наконец-то получил первую дозу. Никаких проблем: колют совсем чуть-чуть, 0,5 мл, в плечо. У меня ничего не распухло, рука не отнималась, ну разве что под вечер "на всякий случай" померял температуру: 37,1. А на следующее утро уже 36,6.

Но на этой неделе, прям с понедельника, началось! Обильное потоотделение, пересыхает в горле, очень хочется пить, когда еду на работу на велосипеде! Особенно тяжко на набережной Яузы, на которой ни намёка на тень. Сегодня и вовсе ехал по свежеуложенному асфальту, ещё раскалённый, от него так и веет жаром, и какие-то рабочие кричат на своём языке. Покупаю по пути поллитра дюшеса, и приходя на рабочее место, выпиваю чуть ли не залпом, потом ещё наливаю кружку чая - и наконец-то "отпускает".

На прошлой неделе я точно также ездил на работу на том же велосипеде, по тому же маршруту, в той же одежде, но такой фигни не было, определённо это вакцина :)

Ну зато через 3 недели смогу попасть на территорию РКК Энергия, совершенно бесплатно! Вот бы ещё макет к тому времени запустить.

PS. Бонусный огарь, ему чего-то тоже тяжело, клюв раскрыл.
QuatCore

Двойная буферизация для МКО - зло!

Поначалу хотел реализовать в своём "контроллере МКО".

Вот есть у нас "полётное задание" - массив данных, где задано множество флажков ("разрешить переход в сопровождение", "разрешить захват ближней дистанции", "разрешить захват дальней дистанции", "разрешить стереорежим"), настроек (размер окна для нахождения скорости сближения, использовать ли мишени дальней дистанции, когда начали различать отдельные отражатели ближней дистанции и пр), параметры перехода из системы координат прибора в систему координат корабля: вектор параллельного переноса и кватернион поворота.

Когда только включается питание, память уже инициализируется значениями из ПЗУ, некими "значениями по умолчанию", позволяющими убедиться в работоспособности прибора и СКОРЕЕ ВСЕГО соответствующими некой типовой работе. И любая приходящая посылка с подадресом 1_0001 = 17 будет переписывать этот массив.

Но при нынешней реализации, мы его начнём переписывать, не дожидаясь окончания передачи. И вот проверим контрольную сумму - а она не совпадает! Получается, и старые (сколько-нибудь рабочие значения) запороли, и новые так и не приняли!

Суть двойной буферизации - мы принимаем данные во временную область памяти, убеждаемся в их правильности - и только потом переписываем. Если контрольная сумма не сошлась - остаёмся со старыми данными.

Collapse )

В общем, с чистой совестью делать эту буферизацию не буду :) Впрочем, тут и без неё ещё есть, чем заняться, вот проверкой сообщений хотя бы. И "Синхронизация (с СД)" у нас до сих пор не реализована!
QuatCore

"МКО через UART", часть 5, проверка командного слова

Контроллер оконечного устройства МКО у нас в неплохой степени готовности, но пока он слишком доверчив, позволяя записать данные на любой подадрес и прочитать данные с любого подадреса. Пока я ковырялся с процессором, считал "доверчивость" нормальной чертой - на прописанные команды мы откликаемся как надо, а на "недокументированные" может отреагировать неким интересным сочетанием разных функций, потому как это наша внутренняя память, а если мы ей не доверяем, то должны будем ввести коды коррекции ошибок, на одних только "недокументированных командах" всё равно далеко не уйдёшь! (их не так-то много)

Но в информационном обмене вероятность схватить ошибочные слова гораздо выше, тут нужно быть параноиком до мозга костей!

Collapse )

Я доволен, провели практически полное покрытие кода - всё работает. Осталось ещё с командами управления разобраться, это уже завтра.