Комплексный прибор - авиагоризонт, скорость, высота и т.д.

Алексей, попробуй в файле Speed.java, в классе Speed, в методе valueInMetersPerSecond() умножить переменную speedInMetersPerSecond на 3.6, проверь результат. 
Можно просто ввести новую переменную

Лучше новую, т.к. старая может использоваться не только для отображения.
 
А какую версию DroidPlanner Вы дорабатывали? Их там много. Похожий "HUD" я нашёл, например, в v1.2.0. Познее HUD, да и весь дизайн, сильно поменялся... Если использовалась v1.2.0 или близкая к ней, то там всё очень похоже на текущую версию для Windows. Я не большой специалист в C#, но, как мне кажется, изменения для отображения скорости, высоты и вертикальной скорости в каких угодно единицах, независимо от единиц, используемых в остальной программе, должны быть небольшими. В примере они выделены "//!>>>>>>" что-бы легче было искать... Попробую поставить Android-studio (или что там), ознакомиться быстренько с Java (совсем не специалист) и поглядеть...
 

Вложения

  • HUD.zip
    HUD.zip
    27,3 КБ · Просмотры: 113
Да просто метод довавить в класс Speed и применить его вместо текущего при выводе. 3 строки кода.
 
Мне нужен исходный код и сам редактор синтаксиса под андроид. Только вот прибора у меня к сожалению нет. Могу заняться доработкой, но вот тестирование нужно будет производить Вам на приборе. В связи с чем вопрос, прибор выдает сигнал к планшету, а планшет уже его приводит в графическое отображение, или же все мозги в приборе? Мне нужен эмулятор сигнала под андроид. Где скачать открытый код? И где найти редактор синтаксиса Андроида?

Дайте ссылки сделаем. Спасибо!

А какую версию DroidPlanner Вы дорабатывали?


Droidplanner v1.2.0
https://github.com/arthurbenemann/droidplanner

Графическое отображение формирует планшет.

Если получится, обязуюсь тестировать.
Варианты можно присылать на Alex-vr@ya.ru
 

Тогда как  @ dimky говорит:

В "HudScroller.java" поменять, например,

double groundSpeed = huDwidget.drone.speed.getGroundSpeed();
double airSpeed = huDwidget.drone.speed.getAirSpeed();
double targetSpeed = huDwidget.drone.speed.getTargetSpeed();

на

double groundSpeed = huDwidget.drone.speed.getHUDGroundSpeed();
double airSpeed = huDwidget.drone.speed.getHUDAirSpeed();
double targetSpeed = huDwidget.drone.speed.getHUDTargetSpeed();

А в "Speed.java" добавить три метода:

public double getHUDGroundSpeed() {
   return groundSpeed * 3.6;
}

public double getHUDAirSpeed() {
   return airSpeed * 3.6;
}

public double getHUDTargetSpeed() {
   return targetSpeed * 3.6;
}

И будет всё в км/час. Причём будет локализовано только в HUDе и ни на что другое не повлияет.
 
То что, лежит в андроиде.
В файле  MiniWidgetAttitudeSpeedInfo.kt
private fun onSpeedUpdate() {
        if (!isAdded)
            return

        val drone = drone
        val speed = drone.getAttribute<Speed>(AttributeType.SPEED) ?: return

        val groundSpeedValue = speed.groundSpeed
        val verticalSpeedValue = speed.verticalSpeed

        val speedUnitProvider = speedUnitProvider

        horizontalSpeed?.text = getString(R.string.horizontal_speed_telem, speedUnitProvider.boxBaseValueToTarget(groundSpeedValue).toString())
        verticalSpeed?.text = getString(R.string.vertical_speed_telem, speedUnitProvider.boxBaseValueToTarget(verticalSpeedValue).toString())
    }
но .kt- каким-то свойским плагином обрабатывается, правда он из репозитория сам ставится.
И ещё, при поиске не забывайте, что Velocity-  то-же скорость. 🙂
Завтра ещё посмотрю, если из больнички выпустят.
 
В "HudScroller.java" поменять, например,double groundSpeed = huDwidget.drone.speed.getGroundSpeed();double airSpeed = huDwidget.drone.speed.getAirSpeed();double targetSpeed = huDwidget.drone.speed.getTargetSpeed();наdouble groundSpeed = huDwidget.drone.speed.getHUDGroundSpeed();double airSpeed = huDwidget.drone.speed.getHUDAirSpeed();double targetSpeed = huDwidget.drone.speed.getHUDTargetSpeed();А в "Speed.java" добавить три метода😛ublic double getHUDGroundSpeed() {return groundSpeed * 3.6;}public double getHUDAirSpeed() { return airSpeed * 3.6;}public double getHUDTargetSpeed() { return targetSpeed * 3.6;}И будет всё в км/час. Причём будет локализовано только в HUDе и ни на что другое не повлияет.

Согласен хороший вариант.
 
Я его тоже не нашёл. Проект собрал из ЗИП-а, в эмуляторе пытается запуститься, есс-но требует 3Дсервисез, а я принципиально из ГуглеСторе ничего не беру, у меня и гуглёвого аккаунта нету. Опять возникает вопрос про эмулятор или тестовое устр-во для отладки. Могу собрать АПК-шку с предложенными изменениями и попробовать локализовать.
Только я со среды на полмесяца в больничке.
ПС: в drinekit<-bla-bla>2.6.6<bla-bla>.jar есь класс Speed от него наследоваться или переписать, но.... возвращаясь к названному выше .kt, обнаруживаем в нём Юнит-провайдера,
public class MetricSpeedUnitProvider extends SpeedUnitProvider {
    @Override
    public SpeedUnit fromBaseToTarget(MeterPerSecond base) {
        return base;
    }
}, в дополнение к нему ImperialUnitProvider. Похоже, что это  зависит от локали, русской локали нету, можно попробвать создать ея, и ковырять в ней, чтоб остальной код не портить.
 
Airspeed лежит в папке MAVLINK GIT-исходника, но как его достать не понятно, если только попробывать написать Артутру Бенеману - разработчику. Сделайте плиз APK-шку и скиньте на почту Алексея Alex-vr@ya.ru.

А я пока исходник поищу.
 
А я пока исходник поищу.

https://github.com/DroidPlanner/Tower/tags

И там внизу несколько раз жмёте кнопку "Next", пока не найдёте "Droidplanner_v1.2.0"  ( Oct 25 2013 )...

Я совсем новичок в Андроиде... Чего-то совсем не могу конвертнуть это дело в проект для текущей версии "Android Studio" и построить. Ошибок кучу выдаёт... Кто-нибудь в курсе, как это сделать?
 
Droidplaner 1.2.0, судя по дате, ещё не gradle проект.
Когда с версии 1.0 переползал на 1.2- всё проклял, половину того что наковырял бросил и начал заново.

Я пока не дописал, куда добрался. Не надо ковырять Air speed
Точно подтвердилось, надо делать свою локаль, в ней какой- нибудь KilometricUnitprovider, и будет нам Щасстье!
Ну, или MetricUnitProvider переписывать.
 
Мне кажется километрик юнит в самый раз пойдет. А метрик юнит оставить. Чтобы код весь не перестраивать. Худ вариант тоже интересный.
 
Всё-таки я его сконвертировал в новую "студию" и запустил наконец! Сейчас уже работать надо, в Понедельник смогу "поиграть" если ещё надобность не отпадёт. ADT bundle там не нужен. Это для Eclipse. Только ключ к картам надо сгенерировать и всё.
 
Назад
Вверх