На крыше старой водонапорной башни стоял флюгер в форме ласточки. Он поворачивался к ветру клювом и сообщал маленькой метеостанции, откуда дует воздух.
Сама станция была устроена просто. Чашечки анемометра крутились и считали скорость ветра. Дождемер собирал воду в узкую ёмкость. Термометр прятался в белом ящике с прорезями, чтобы солнце не нагревало его напрямую. А флюгер отвечал за направление.
Каждые десять минут приборы передавали показания в городскую диспетчерскую. Там по ним решали, когда закрывать мост для высоких машин, стоит ли предупреждать лодочную станцию и с какой стороны ждать грозу.
Флюгер относился к своей работе серьёзно. Север означал север, запад — запад. Он не любил приблизительных ответов.
Однажды ночью ветер шёл с реки. Флюгер повернулся на восток, анемометр насчитал семь метров в секунду, и станция записала всё как положено.
Утром в журнале оказалось другое: запад, два метра в секунду.
— Это не мои данные, — сказал флюгер.
Разумеется, люди его не услышали. Зато услышал старый громоотвод, который стоял рядом и привык принимать на себя чужие неприятности.
— Может, ты ночью задремал, — предположил громоотвод.
— Я могу обледенеть. Могу застрять. Но спать я не умею.
На следующую ночь ветер дул с юга. Флюгер повернулся точно по метке. Утром журнал снова показал запад.
Западный ветер появлялся теперь каждый день ровно в четыре часа утра и длился десять минут. Он был слабым, одинаковым и совершенно не зависел от настоящей погоды.
Флюгер решил вести собственный учёт. У него не было бумаги, зато на оси осталась тонкая полоска старой краски. Каждый раз, когда он поворачивался, край корпуса царапал её. По новым следам можно было понять, куда он смотрел ночью.
Три утра подряд следы подтверждали: флюгер работал правильно.
На четвёртый день на башню поднялась техник Ольга Сергеевна. Диспетчеры заметили странность: в городе бушевал порывистый северный ветер, а башня на десять минут передала тихий западный.
Ольга Сергеевна проверила ось флюгера. Она двигалась свободно. Сверила стрелку с компасом. Северная метка была на месте. Осмотрела кабель.
Кабель уходил от датчика в серый шкаф и выглядел целым.
— Значит, ошибка дальше, — сказала она.
Флюгер одобрительно качнулся.
В шкафу стоял контроллер — небольшой компьютер, который собирал сигналы всех приборов. Направление ветра приходило к нему числом от нуля до трёхсот пятидесяти девяти. Ноль означал север, девяносто — восток, сто восемьдесят — юг, двести семьдесят — запад.
Ольга Сергеевна подключила ноутбук и увидела, что в четыре утра контроллер действительно получает число 270.
— Но я в это время смотрел на юг! — возмутился флюгер.
Громоотвод промолчал. Он знал, что техника слышит только сигналы приборов.
Ольга Сергеевна решила оставить на ночь переносную камеру. Она направила её на шкалу флюгера и синхронизировала часы с контроллером.
На записи всё стало ясно лишь наполовину. В 03:59 флюгер смотрел на северо-восток. В 04:00 контроллер записал запад. В 04:10 данные снова совпали.
— Значит, подменяется не движение флюгера, а число после датчика, — сказала Ольга Сергеевна.
Она просмотрела настройки и нашла расписание самопроверки. Каждый день в четыре часа контроллер посылал тестовые значения: температуру двадцать градусов, скорость ветра два метра в секунду и направление 270. Так проверяли, умеет ли система передавать данные в диспетчерскую.
— Вот и чужой ветер, — сказал громоотвод.
— Тестовый, — поправил флюгер. — И он не должен попадать в настоящий журнал.
Но почему раньше этого не происходило?
Ольга Сергеевна открыла историю обновлений. Неделю назад контроллер получил новую программу. В старой версии тестовые данные помечались словом «проверка». Диспетчерский сервер видел метку и складывал их в отдельный журнал. После обновления метка исчезла.
Казалось, причина найдена. Можно было вернуть старую версию и закончить работу.
Однако Ольга Сергеевна не спешила. Она посмотрела записи за неделю и заметила ещё одну странность. Во время теста пропадали не только данные флюгера. Исчезали реальные показания дождемера и температуры.
Если в четыре утра начнётся сильный ливень, система десять минут будет сообщать, что дождя нет.
— Заёмный ветер оказался шире ветра, — заметил громоотвод.
Ольга Сергеевна отключила автоматическую отправку теста, но саму проверку оставила. Теперь контроллер создавал отдельный внутренний файл, не заменяя настоящие данные. Затем она добавила тревогу: если направление ветра десять минут остаётся ровно 270 при неизменной скорости, система должна сравнить запись с соседней метеостанцией.
Ночью пошёл дождь. Ветер менялся от восточного к северо-восточному. В четыре часа контроллер провёл самопроверку, записал тест в служебный файл и продолжил передавать настоящую погоду.
Утром Ольга Сергеевна поднялась на башню ещё раз. Она сверила видеозапись, журнал контроллера и данные диспетчерской. Всё совпало.
Флюгер повернулся к реке.
— Теперь мой ветер снова мой.
— Ненадолго, — сказал громоотвод. — Через минуту придёт новый.
Так и случилось. С реки потянул прохладный воздух, ласточка повернула клюв на восток, чашечки анемометра завертелись быстрее. В диспетчерскую ушла свежая строка: восток, восемь метров в секунду, порывы до одиннадцати.
А тестовый западный ветер остался там, где ему и полагалось быть, — в отдельном служебном журнале, среди других вещей, которые существуют только для проверки.