Литмир - Электронная Библиотека
Содержание  
A
A

«Да, — подтвердил искин и добавил: — Ник, тебе самому трудновато будет тут что-то интегрировать. Увы, но ты пока слишком грубо работаешь с плетениями и, скорее всего, запорешь работу».

В соответствии с моим мысленным пожеланием Умник вывел при помощи бадди-компа перед моими глазами диаграмму, отражающую архитектуру самой сетки, отдельного датчика и главной конструкции. При этом часть фрагментов картинки мигала немного раздражающим красным пунктиром. Так мы с Умником в свое время договорились обозначать на диаграммах фрагменты плетений, которые пока не очень соответствуют разработанной нами модели магии. Таких кусочков было больше чем достаточно.

«Умник, — я тут же мысленно ткнул пальцем в один из них, — ты говорил, что учтешь в модели и особенности магии других стихий, кроме земли?»

«Сам же меня загрузил другими работами», — проворчал в ответ электронный кудесник.

«Угу», — согласился я, раздумывая над задачкой. Умник был прав. Соваться в эту красоту моими пока еще кривоватыми магическими ручками было бессмысленно. Все равно что пытаться выправить погнутую шестеренку в красивых механических настенных часах с помощью домашнего молотка, которым забивают гвозди в стену. Может, что-то там даже и выправится, но часы точно работать не будут. К тому же в плетении слишком много не проработанных нашей моделью магии фрагментов. И мне довольно сложно угадывать в пока не слишком знакомой области эльфийской магии, что разработчики имели в виду, добавляя непонятные куски в магоформу. А Умник все-таки универсал. И там, где мы пока не очень понимаем местные магические выкрутасы, ему всегда помогает знание инфомагии и способность эффективно получать информацию из инфосети. Надеюсь, после полета в точку фокуса у меня самого появятся эти полезные умения. А пока…

«Ладно, Умник, — согласился я, — твой выход. Только описывай каждый свой шаг и консультируйся со мной». Я сел на землю рядом с площадкой, контролируемой эльфийским плетением, в позу лотоса, закрыл глаза, отключился от окружающего мира и стал смотреть, как Умник будет разбирать и корежить изделие детей леса.

«Так, смотри, — начал Умник, разворачивая у меня перед глазами картинку, выделяя стрелками и свечением части плетения, о которых ведется речь, — это датчики влажности. Физика способа, которым они контролируют почву, не очень ясна, но это в данный момент неважно».

«Почему?» — тут же удивился я. Большой опыт программиста мне подсказывал, что мелочей на самом деле не бывает. Когда нужно интегрировать чужую разработку с собственной, а интерфейсы и протоколы обмена информацией не очень подходят, порой какая-нибудь мелочь позволяет эффективно решить задачу.

Конечно, правильнее объединять в единое целое любой софт, чужой и свой, на основе объектно-ориентированного подхода, переписывая куски, которые этим принципам не соответствуют. Результат всегда получается намного более качественным. Но, увы, жизнь редко соответствует идеальным правилам. Порой важно, чтобы программа заработала как можно скорее. И пусть ее поведение будет не слишком надежным, пусть отдельные подсистемы будут соединены довольно коряво и временами станут сыпаться, но важно, чтобы какой-то полезный результат был здесь и сейчас, а не через неделю или месяц работы над нормальной интеграцией.

«Потому, — ответил Умник, — что при демонстрации действия плетения в самом начале я снял все протекающие в датчиках процессы на магическом уровне, как при активации, так и при деактивации. Теперь их даже включать повторно не надо — и так понятно, что они делают и какие магические сигналы генерируют в тех или иных случаях. Или мне следует подробно раскопать и объяснить сами плетения-датчики?»

«Нет, не надо, — согласился я со своим помощником. Тратить время на копание в мелочах явно не стоило. — Ты прав. Сейчас у нас другая задача. Однако эти эльфийские датчики, контролирующие внешнюю среду, — штука очень интересная и полезная в будущем. Обязательно занеси эти плетения в базу данных. Потом мы с тобой как-нибудь подробно разберем все магоформы».

«Хорошо, — подтвердил исполнение моего распоряжения искин. — Продолжаем. Ключевой для нас элемент плетения — узел в его центре. Собственно, так располагаются не одна, а две целых две конструкции, два крупных тесно связанных друг с другом управляющих модуля. Один из них явно выполняет функцию концентратора сети. Он периодически генерирует импульсы, проходящие по сети, соединяющей датчики, и воспринимает ответные. Видимо, так и добывается информация о влажности. Концентратор обеспечивает проверку состояния всех датчиков. Акцент, судя по всему, делается на суммарное изменение амплитуды волны. Каждый из датчиков, фиксируя степень влажности почвы, чуть-чуть ослабляет импульс. Поэтому, послав импульс достаточной силы по одной нити, который росчерком пропутешествует по всей сети, и сравнив с эталоном его отклик, пришедший по соседней, концентратор может определить среднее состояние увлажнения почвы. При этом (с учетом того что отклик приходит по всем четырем нитям, входящим в концентратор) есть возможность определить и конкретный датчик, в котором произошло нарушение ситуации. Впрочем, в данном случае последнее не требуется. Ведь свечение должно появляться только в том случае, если почва полностью подсохла или, наоборот, переувлажнена, а не тогда, когда только один датчик сигнализирует о сухости».

«Ага, компаратор». Я мысленно покивал.

«Ну что-то вроде того… — подтвердил Умник. — В нем срабатывает одно подобие реле, когда влажность избыточна, и другое — когда недостаточна. Сигнал поступает на второй управляющий узел и активирует его. При этом будет гореть красный, зеленый или фиолетовый свет в зависимости от сигнала».

«Я так понимаю, надо цепляться к выходу первого узла, — подытожил я слова искина. — А где подвох?»

«Какой подвох?» — удивился Умник.

«Ну слишком просто получается». Мой земной опыт сдачи многочисленных экзаменов говорил о том, что если проверяющий недружествен претенденту, то простое решение — это путь к позорному изгнанию с экзамена «некомпетентного олуха, не понимающего элементарных вещей». Что сейчас тоже явно имеется какая-то пакость, я чувствовал кожей. Уж слишком ехидно смотрела на меня гроссмейстерша. Потому я еще раз «пришпорил» искина: «Давай думать».

Некоторое время мы молчали, Умник по-своему что-то там соображал, а я тем временем анализировал диаграмму, построенную на основе модели магии, и старался, поставив себя на место разработчика плетения, понять, куда бы сам засунул бяку, если бы вдруг это понадобилось.

«Ладно, давай пока продолжим, — не услышав ничего от Умника и не найдя пакость самостоятельно, произнес я. — Разъясняй магоформу дальше. Вдруг гадость не здесь, а где-нибудь во втором управляющем узле, который как-то влияет на концентратор».

«Хорошо, — согласился искин и продолжил объяснять: — Второй узел командует свечением. Здесь простой механизм — три вида сигналов, каждый на определенный цвет. Никакой сложной логики, аналог плетения для лампочек из первого задания для генерирования света разных цветов. Вот посмотри…» — Умник выделил часть схемы. Я согласно покивал.

«Ой, а вот и засада!» — вдруг воскликнул искин.

«Где?» — тут же насторожился я.

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

«И что, все так плохо?» — удрученно спросил я. Похоже, таки подставила меня Дитрия. И сделать честным путем что-то сложно. Что остается? Светить свои инфомагические возможности? Ах, как надоело оглядываться по сторонам и все время остерегаться!

285
{"b":"907684","o":1}