Как у нас с трихограммой?
Perelesnik:
Задержался с выпуском новой версии программы с зачатками навигации. Прошу понять и простить: формулы для расчетов по этой самой навигации оказались весьма неочевидными и довольно "кучерявыми"... но пара недель работы по ночам в тишине помогли :)
Внешне в программе особо ничего не поменялось. Как бы... А перелопатить её мне пришлось основательно.
Вкратце:
Всего на экране 3 указателя.
Первый, как и был, просто компас (только теперь направление на Север берется не с протокола GPS, а вычисляется внутренними средствами приложения на основе последовательности координат... ладно, в общем, зачем те подробности - компас он и есть компас) :
Второй указатель - направление домой. "Домом" считается точка, где был подключен Блютуз и получены первые координаты с GPS после запуска программы. Если во время полета перейти на Гугл-карту, затем вернуться на главный экран и снова подключить Блютуз, то "Домом" будет считаться эта новая точка. Не думаю, что кто-то в полете такое будет делать... но мое дело предупредить.
Значок "Дома" на экране присутствует всегда при наличии связи с GPS - устройством. Красной стрелочкой он указывает направление на "Дом" (место, откуда взлетели). Внизу - расстояние до этого места и время, которое нужно, чтобы туда долететь с той скоростью, на которой в данный момент летим:
Главная стрелка направления указывает на центр того того или иного квадрата, куда мы собираемся долететь (собственно, в ту точку, куда на Гугл-карте ткнули пальцем при выборе квадрата).
Какой это именно квадрат - видно по желтому цвету и значкам >> << возле номера на квадрате:
В данном случае стрелочка будет показывать направление на квадрат №1 (а находимся мы на квадрате № 4, так как он ярко зеленый).
Выбрать, куда лететь, можно просто нажав на нужный квадратик пальцем, или предоставить сие дело самой программе - она "проведет" начиная с первого по счету квадрата и далее последовательно.
Это удобно при планировании перелетов - просто клацаем пальцем по карте точки курса и вносим их последовательно в ячейки 1, 2, 3... и так далее. Ну и летим по стрелочке к "первой" точке, как пролетим ее, программа даст курс на вторую, и так далее.
Да, ячейки можно "забивать" не подряд. а, допустим так: 3, 5, 6, 9, 10. Без разницы - программа пропуски проигнорирует. Сначала укажет на точку №3, после нее на №5 , ну и далее по списку.
Алгоритм автоматического переключения на следующую путевую точку такой: если мы оказались в радиусе 1000 метров от "целевой" точки и расстояние до нее начало увеличиваться вместо того, чтобы сокращаться, программа предполагает, что мы эту точку пролетели и даст направление на очередную точку.
Вот сам указатель с дистанцией до нужной нам точки и прогнозируемым временем подлета к ней:
Внизу --> номер квадрата, куда летим. Если летим домой, то вместо номера там будет слово "HOME".
Если стрелочка и эти циферки мешают при работе, клацаем на "самолетик", и это все исчезает с экрана. Клацаем по самолетику снова - появляется.
Ну и при работе на гоне эта стрелочка с цифрами исчезнет сама (чтобы не мешала), а затем вернется...
В общем, такое.
И по мелочам кое-что подправил в программе. Теперь при успешном подключении к GPS появляется на пару секунд соответствующее сообщение в центре экрана (просили - сделал). И еще что-то... уже не помню :)
Файлик лежит здесь: https://drive.google.com/file/d/1vDuhLzNa-uYN-3XQQBMOPHHAjeMJWqlg/view
И это только начало "большого пути". Пока что это "перелетная" навигация - чтобы от точки к точке летать, от "квадарата" к "квадрату" , и на аэродром.
Дальше буду эту навигацию впроваджувати (пардон, забыл как это слово по русски) в работу на гонах, чтобы "навигатор" научился выводить пилота с разворота точно в нужную точку захода на очередной гон. Особенно, если гон не рядом с предыдущим, а на загонках... чтобы кратность соблюдалась.
Ну и чтобы выводило не просто в "квадрат" при дообработке поля, а туда, откуда нужно продолжать обработку после дозаправки (или на следующий день).
Андрей-пилот:
Внедрять.
Perelesnik:
Очередное обновление...
https://drive.google.com/file/d/13EIP2qb-0hUyeOGuSlLcv-wRzKNQagX7/view?usp=sharing
Что нового:
1) после пролета первого рабочего гона на поле рисуются точки захода на гон - 30 точек влево, 30 вправо. Точки пронумерованы, как и просили. Это для работы загонкой. Если на поле уже работали, точки захода не проставятся. Они рисуются только один раз после первого гона на новом поле.
2) в "меню" появилась возможность вносить коррекцию в ширину заливки трека. То есть, реальный гон у нас 25 метров, допустим, вводим коррекцию +1, вся разметка по навигации остается из расчета 25 метров, но заливку будет рисовать шириной 27 метров (по +1 метру с каждой строны). Просили, чтобы агроному приятнее смотрелось на результаты работы в программе. А то пропуски в глаза сильно бросаются...
3) Координаты аэродрома программа запоминает только если скорость движения меньше 20 км/ч. То есть, когда мы на земле. Сделано для того, чтобы если во время полета "отвалится" Блютуз-связь, программа не взяла точку при возобновлении связи (где-то в полях, в полете). Если такое произойдет, программа возьмет ту точку из своей памяти, которую она записала, будучи на земле.
4) Если не доработали поле, стрелочка курса в следующем полете направит ровно в ту точку, где прервали обработку. Чтобы оттуда и продолжить.
Perelesnik:
Точки захода на гон:
Точки проставляются перпендикулярно направлению первого гона. Нумерация крупная, при подлете вполне читаемая. Хотя я так и не понял, зачем нумеровать эти точки - на какую точку вышел при развороте, на такую и заходишь. Лишь бы потом все на поле сошлось (а оно и так и так сойдется, на какую из точек не зайди). Тут, я так понимаю, определяющее то, с каким адекватным радиусом разворота ходить, а не то, на какой там по счету гон попадем.
Ну да ладно... Просили, сделал.
Что по ближайшей работе:
Изначально сделано так, что данные о количестве обработанных гектар увековечиваются в названии файла картинки "для агронома", которую получаем при нажатии на "дискетку" на экране. Но, как оказалось, не на всех смартфонах удобно это название посмотреть. Бывает, что саму картинку посмотреть - без проблем, а вот название картинки пойди выковыряй...
Поэтому сделаю так: при сохранении картинки количество гектар будет напечатано прямо на ней. Допустим... в левом верхнем углу. Читаемыми крупными цифрами (и буквами). И количество внесенного материала будет напечатано. И дозировка. И дата... Пожалуй, всё, больше там ничего интересного не напечатаешь.
Да, замечание: данные о гектарах сохраняются только когда они есть на рабочем экране. При перезагрузке программы, при выходе из главного окна программы ... эти данные обнуляются. Поэтому, если там ничего уже нет, то и сохранятся только "нолики".
Что я ВООБЩЕ хотел сказать:
Сейчас этой программой реально пользуются уже десятки пилотов (мне, кстати, это видно - все обращения из программы к Гугл-картам фиксируются этим самым Гуглом, по дням и по часам, это не я придумал, это в Гугле такое заведено без меня).
Ну так вот... Реально мне звонят-пишут по нюансах использования программы только пара-тройка человек. И то, редко.
А я сам лично над полями с химией не летаю. Я на стуле сижу за компьютером и кнопочки нажимаю. И мне со стула не очень видно, что не так, что нужно, как нужно и как удобнее для пилота сделать.
Позвонили, сказали "Руслан, а можно вот так сделать?" - я делаю. Не сказали - то я и не в курсе, то я и не делаю.
В общем, понятно, да?
Замечена такая черта характера наших "постсоветских" авиаторов (блин, я тоже "постсоветский", по себе вижу), что если что-то хреново работает (или вообще хрен работает), то "наши люди" старой закалки начинают молча пытаться всё исправить-приспособить собственными силами. Или смиряются и оставляют так. Или находят какое-то непредусмотренное разработчиком решение косвенными путями...
"Ненаши" вот не так делают - я англоязычные форумы читаю. Там совсем наоборот: если что-то не так, то разработчик будет иметь мгновенно кучу сообщений о том, что не так, и о том, как хотят, чтобы оно было. Потому и развитие проектов там очень активное. И качество продукта на высоте. И голова болит не у пользователя, а у разработчика (что есть правильно). Потому, что "обратная связь" работает.
Если скажете, что все прямо таки довольны программой, а только 2-3 человека капризничают по этому поводу - то не поверю.
Perelesnik:
Поступило замечание по поводу функции разметки поля для работы загонкой.
В предыдущей версии за базовый гон брался самый первый гон на новом поле - в момент выхода с этого гона и рисовалась разметка с нумерацией гонов.
Но не всегда именно первый гон оказывается таким, по которому далее "равняется" основная часть гонов.
То есть, нужно предоставить пилоту возможность выбрать, какой гон будет "Базовым" для дальнейшей работы на поле.
Хотел обойтись без лишнего "клацания" пальцем по экрану во время полета, но здесь такой случай, что придется. Иначе как дать понять программе, какой гон делать "базовым"?
Чтобы не загромождать экран дополнительной кнопкой и не вынуждать пилота лезть в меню для нажатия на что-то там, решил в качестве такой кнопки использовать уже имеющийся на экране элемент.
Выбор пал на цифру ширины гона в нижнем правом угу экрана, которая в сереньком овале. Ну и на ощупь туда удобно "целиться" пальцем - что тоже хорошо.
Порядок действий такой:
1) Если новое поле не имеет разметки, то цифра в овале будет красного цвета.
Летаем, обходим края, делаем первые рабочие гоны... делаем что хотим, разметки не будет.
2) Когда решим, что вот этот гон, который сейчас будем делать (или уже делаем) будет "базовым" - клацаем пальцем по цифре.
Цифра из красной перекрасится в синюю. Значит, "курок взведен", и в момент выхода из данного гона будет сделана разметка поля.
3) Если вдруг передумали делать разметку на этом гоне, то можем в любой момент до появления этой разметки (до выхода из гона) сделать отмену - вернуться в состояние до "взведения курка".
Для этого делаем долгое нажатие на цифру. То, что отмена произошла, увидим по всплывающей надписи внизу экрана. Цифра снова станет красной. И при выходе с гона разметка произведена не будет.
4) Выбрав подходящий гон, повторяем пункт №2. И это тоже можно в случай чего отменить, произведя действие из пункта №3.
5) В момент выхода из "базового" гона произведется разметка и цифра станет черной.
6) Если возникло желание сделать дополнительную разметку на поле при наличии уже произведенной разметки, делаем длинное нажатие на цифру, пока не появится всплывающая надпись внизу экрана (цифра станет красной). Далее делаем пункт №2.
7) Если мы улетели с поля, а затем вернулись на него, программа определит, есть ли на поле разметка - если есть, то цифра будет черной, и чтобы сделать еще раз разметку (ну вдруг понадобилось), нужно произвести действие №3 и затем действие №2. Если на поле разметки не было, цифра будет красной, и нужно сделать действие №2.
8) Разметку можно и не делать. В этом случае просто не трогаем цифру.
9) Произведенную разметку "стереть" невозможно. Это точно такой же рисунок на "квадрате" поля, как и все треки, заливки и линии, которые программа там рисует в процессе полета.
10) Следствием предыдущего пункта является то, что если пролетите с включенной химаппаратурой по разметке, то заливка этого трека закрасит разметку поверху.
Навигация