После длительного перерыва (поверьте, плодотворного) возвращаюсь к теме.
Предыстория такая:
Всякие авиахимработы требуют какой-никакой навигации (на самой поверхности поля не особо видно, где мы обработали, где не особо обработали, а где вообще конь не валялся). В мире беспилотников вопрос решается просто - изначально задается точный маршрут по гонам, и дальше аппарат летит по заданным координатам. Что нарисовали, то и получили - дебет с кредитом всегда сходится, так как у беспилотников фантазия не особо развита, и они летят строго по написанному.
В пилотируемой авиации (упустим предысторию с сигнальщиками и подобными высокими технологиями) вопрос решается с помощью системы параллельного вождения, либо, когда нет возможности такую систему приобрести (установить, освоить...), примерно по GPS, "на глаз", или вообще, "по внутреннему чутью пилота сельхозавиации".
Ближе к телу: уже второй год меня соблазняли на создание бюджетной, простой и максимально информативной программы параллельного вождения (ну, допустим, летания) в комплект к моим трихограммницам (да, впрочем, без разницы, к трихограммницам, для десикации, подкормки озимых или чему угодно еще, что с неба на землю орошается).
Тут соблазнителей не только функционал интересовал, но еще и чтобы подешевле.
А по функционалу: чтобы рисовало только когда тумблер на аппаратуре включен, без дополнительных тыков пальцами в экран, чтобы интернета не требовало на полях, чтобы результат работы можно было наглядно показать агроному, не обладающему высокими познаниями в компьютерных технологиях (проще говоря, прислать агроному обычную картинку в JPEG формате, которую он может легко и плодотворно рассматривать даже на своей верной старой "Nokia".
Да, и чтобы работало на почти любом смартфоне с Android.
С последним пунктом у меня были сложности (так как привык писать программы сугубо под Windows), поэтому и отбрыкивался сколько мог от такой задачи.
Да, написал сначала под Windows... из любопытства. Изначально понимал, что такая "несмартфоновая" программа никому не пригодится, так как с ноутбуками никто не летает, а планшеты и телефоны под "Винду" у нас не особо распространены. Поэтому "дружественным интерфейсом" особо не увлекался, просто отрабатывал математику. Написал чисто для себя.
И тут бы я с чистым сердцем сказал пользователям: не жадничайте, купите себе обычную систему параллельного вождения, и обрабатывайте свои поля на здоровье...
Но на практике возник такой вопрос: куда ставить экранчик трихограммницы в самолёте? На экранчике полезные данные: гектары, объем высыпанной смеси, режим работы, дозировка, работает-не работает... Нужно хоть иногда посматривать во время обработки. Экранчик не очень большой (а если ставить большой, то уже дорого, да и куда его ставить-то по габаритам?) К экранчику коробочка с контроллером - тоже место занимает, а на приборной панели с местом - дефицит.
Логично - вывести эти данные на большой экран смартфона или планшета... но только для данных с трихограммницы ставить отдельный смартфон на панель - избыточная роскошь. Там и так GPS-навигатор,
фото любимой тёщи, система параллельного вождения (при наличии)... и еще куча всяких полезностей.
Разумно все эти данные втиснуть в уже существующий экран "на правах бедного родственника", где-то в уголок, чтобы и видно было, и места лишнего не занимало.
Кроме того, контроллер трихограммницы производит гораздо больше информации, чем я вывожу на его экранчик. Например, с GPS я там беру только скорость полёта, а сами координаты, высота, курс... пропадет зря.
Короче говоря, если данные с трихограммницы нельзя впихнуть с существующие системы параллельного вождения (кто же из разработчиков в здравом уме даст свой исходный код для переработки), то впихну я систему параллельного вождения в приложение для трихограммницы.
Изначально поставил такую задачу: пилот должен как можно реже трогать пальцами экран программы, а сама программа должна предугадывать, что ей следует делать в данный момент. Пилоту, по сути, нужно только пилотировать свой аппарат, и еще вовремя щелкнуть тумблером на штурвале, чтобы включить само внесение.
Для тестирования программы взял старый планшет дочки (она его уже давно забросила в дальний угол, так как устарел, тормозил, глючил, бесил... и появился новый быстрый смартфон). С другой стороны, если на старом тормознутом планшете работает, то на чем-то более новом работать будет точно.
Ладно, не буду тянуть кота за все подробности, вот что получается:
Включаем программу, попадаем на главный рабочий экран. Сначала, при первом запуске, там картинки по центру не будет, но в целом вид такой:
Справа - 10 ячеек для наших полей на текущий полёт. Занятые ячейки подсвечены, не занятые - серые.
Чтобы выбрать поле в ячейку, нужен интернет, а когда поле приписано к ячейке, интернет уже не нужен. То есть, поля "забиваем" на земле, программа запоминает координаты, сохраняет изображение поля в формате картинки, а дальше может работать в оффлайне.
Чтобы внести в ячейки поля, нужно клацнуть по изображению глобуса слева на экране.
Откроется обычное окно с обычной Google картой:
Если мы уже что-то отмечали, на карте будут маркеры с соответствующими номерами ячеек.
Карту, как обычно, масштабируем, двигаем, находим нужное поле, клацаем пальцем на центр поля:
Если всё нормально, справа появляются наши ячейки.
Все они доступны для записи. То есть, выбранное поле можно сохранить в любую из них. Те ячейки, что были записаны ранее, желтого цвета, вообще пустые - серые, а новозаписанные будут зелеными.
Здесь всё очень просто. Если выделил не то, или не так - клацай пальцем еще по карте, перезапиши.
Да, размер квадрата для поля - 2000 х 2000 метров.
Когда все поля, какие нужно, внесены в ячейки, возвращаемся на предыдущий экран (интернет можно отключать).
На этом главном экране можно нажимать на ячейки и появятся картинки с соответствующими полями.
Но это так, больше из любопытства нужно. Программа во время полета сама найдет и подключит нужное поле - пальцы к экрану прилагать не нужно.
Нет, нужно - чтобы подключить обработку данных с GPS трихограммницы. Для этого клацаем по значку "GPS" слева на экране. Хотя эту штуку можно включить и с самого начала, и больше не трогать.
Да, трихограммница подключается через USB на смартфоне, не по блютузу. Так что кабель нужно будет не забыть воткнуть в разъем.
Когда всё это дело подключено, значки ячеек становятся разного размера - чем ближе мы находимся к полю, которое в ячейку прописано, тем больше длина значка ячейки.
Ну а когда мы подлетим вообще близко к полю, соответствующая ячейка активируется сама, выведет на экран изображение куска карты с этим полем, слева напишет его номер, справа - подсветит ячейку зеленым, и начнет рисовать на карте маршрут.
Если мы ничего не сыплем на поле - будет тонкая желтая линия, когда включаем внесение (обычно, тумблером на штурвале), зона внесения будет закрашиваться розовым цветом соответствующей ширине захвата. Ширина захвата устанавливается "ползунком" внизу экрана. Если выключим тумблер - будет снова тонкая линия маршрута.
Ну и, естественно, вверху экрана пишется общая дистанция обработки (только при внесении), и обработанные гектары (дистанция, умноженная на ширину захвата).