Git Product home page Git Product logo

arduleader's Introduction

Hi there ๐Ÿ‘‹

I mostly move the mouse but also type a little.

github stats

arduleader's People

Contributors

geeksville avatar rabraham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arduleader's Issues

Two finger swipe between screens

Moving around in map causes screen to switch to next window. Left,up,down movement was ok. Just panning right.

Device: HTC one x plus

New UI is very slick.

connect 3DR via Bluetooth

Your app "must" connect via BT to flightdata. I solder my 3DR to a bluetooth smirf gold (I switch only RX/TX). On the BT-Module comes 1:1 the same data. I've use this with copter-gcs (similar project).

Feature request: Password protected User mode for only telemetry monitoring.

Great work Kevin!,

Add password protected user mode only for monitoring mavlink data, which don't allow for example pid or flight mode changes. So basically we are only receiving data, no transmitting except packet requests.

Optional feature would be combined user mode, where user can select from list what changes are allowed.

This feature will help to avoid unwanted changes in flight resulting crash if ground station is used by unauthorized person or spectator.

Regards Jani

auto crash report from china - work when there are zero waypoints

tail of empty apparently bad...


java.lang.UnsupportedOperationException: empty.tail
at scala.collection.TraversableLike$class.tail(TraversableLike.scala:445)
at scala.collection.AbstractTraversable.tail(Traversable.scala:105)
at com.geeksville.andropilot.MainActivity.handleWaypoints(MainActivity.scala:364)
at com.geeksville.andropilot.MainActivity$MyVehicleMonitor$$anonfun$onWaypointsDownloaded$1.apply$mcV$sp(MainActivity.scala:157)
at com.geeksville.util.ThreadTools$$anon$1.run(ThreadTools.scala:11)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4448)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
at dalvik.system.NativeStart.main(Native Method)

compatScreenHeightDp=544
compatScreenWidthDp=320
compatSmallestScreenWidthDp=320
fontScale=1.0
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
locale=zh_CN
mcc=460
mnc=2
navigation=NAVIGATION_NONAV
navigationHidden=NAVIGATIONHIDDEN_YES
orientation=ORIENTATION_PORTRAIT
screenHeightDp=544
screenLayout=SCREENLAYOUT_SIZE_NORMAL+SCREENLAYOUT_LONG_YES
screenWidthDp=320
seq=11
skinPackage=com.sonyericsson.blacktheme
smallestScreenWidthDp=320
textLayoutDirection=0
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false

auto crash report

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.geeksville.andropilot/com.geeksville.andropilot.MainActivity}: java.util.NoSuchElementException: None.get
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2001)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2028)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1179)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4508)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.util.NoSuchElementException: None.get
at scala.None$.get(Option.scala:313)
at scala.None$.get(Option.scala:311)
at com.geeksville.andropilot.MainActivity.map(MainActivity.scala:68)
at com.geeksville.andropilot.MainActivity.initMap(MainActivity.scala:457)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:282)
at android.app.Activity.performCreate(Activity.java:4479)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1965)
... 11 more
java.util.NoSuchElementException: None.get
at scala.None$.get(Option.scala:313)
at scala.None$.get(Option.scala:311)
at com.geeksville.andropilot.MainActivity.map(MainActivity.scala:68)
at com.geeksville.andropilot.MainActivity.initMap(MainActivity.scala:457)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:282)
at android.app.Activity.performCreate(Activity.java:4479)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1965)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2028)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1179)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4508)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
at dalvik.system.NativeStart.main(Native Method)

BOARD=yecon75_tb_ics
BOOTLOADER=unknown
BRAND=alps
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=yecon75_tb_ics
DISPLAY=Mediacom M-MP7503G - Ver 4.10
FINGERPRINT=alps/yecon75_tb_ics/yecon75_tb_ics:4.0.4/IMM76D/1355360860:user/test-keys
HARDWARE=mt6575
HOST=kf-mid
ID=IMM76D
IS_DEBUGGABLE=false
MANUFACTURER=alps
MODEL=SmartPad7503G
PRODUCT=yecon75_tb_ics
RADIO=unknown
SERIAL=0123456789ABCDEF
TAGS=test-keys
TIME=1355361417000
TYPE=user
UNKNOWN=unknown
USER=hcl

compatScreenHeightDp=320
compatScreenWidthDp=593
compatSmallestScreenWidthDp=320
fontScale=1.0
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
locale=it_IT
mcc=222
mnc=1
navigation=NAVIGATION_DPAD
navigationHidden=NAVIGATIONHIDDEN_NO
orientation=ORIENTATION_LANDSCAPE
screenHeightDp=552
screenLayout=SCREENLAYOUT_SIZE_LARGE+SCREENLAYOUT_LONG_NO
screenWidthDp=1024
seq=23
simSetLocale=false
smallestScreenWidthDp=600
textLayoutDirection=0
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false

Investigate auto crash report

Yes, current version of Google maps, but running a custom ROM (ReVolt JB v2.8.2). I don't know what time the cash report was sent but about 25 mins ago (now is 3:36pm UTC). I uninstalled the Play store version and downloaded one from the github downloads which doesn't have the option to send a crash report but I'll get the play store one again and send the report with my name on it.
Edit: sent new crash report at 3:45UTC

NoClassDefFoundError: com.geeksville.andropilot.R&layout

Ubuntu 12.04 64bit.
Nexus 7 Jelly Bean 4.2.1

SBT:

> compile
[info] Dexing /home/danpe/Projects/andropilot/arduleader/andropilot/target/classes.dex

trouble processing:

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$2.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$2.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/ScopeDisplay$ScopeThread.class
...while processing com/bvcode/ncopter/widgets/ScopeDisplay$ScopeThread.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$1.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$1.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/DoubleNumberPicker.class
...while processing com/bvcode/ncopter/widgets/DoubleNumberPicker.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker.class
...while processing com/bvcode/ncopter/widgets/NumberPicker.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$Formatter.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$Formatter.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/HUD$ScopeThread.class
...while processing com/bvcode/ncopter/widgets/HUD$ScopeThread.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/ScopeDisplay$1.class
...while processing com/bvcode/ncopter/widgets/ScopeDisplay$1.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$NumberRangeKeyListener.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$NumberRangeKeyListener.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/DoubleNumberPicker$1.class
...while processing com/bvcode/ncopter/widgets/DoubleNumberPicker$1.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPickerButton.class
...while processing com/bvcode/ncopter/widgets/NumberPickerButton.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/MinMaxCurrentSlider.class
...while processing com/bvcode/ncopter/widgets/MinMaxCurrentSlider.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/HUD.class
...while processing com/bvcode/ncopter/widgets/HUD.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/ScopeDisplay$ScaleListener.class
...while processing com/bvcode/ncopter/widgets/ScopeDisplay$ScaleListener.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/comms/DeviceListActivity.class
...while processing com/bvcode/ncopter/comms/DeviceListActivity.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/comms/DeviceListActivity$3.class
...while processing com/bvcode/ncopter/comms/DeviceListActivity$3.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/comms/DeviceListActivity$2.class
...while processing com/bvcode/ncopter/comms/DeviceListActivity$2.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/comms/DeviceListActivity$1.class
...while processing com/bvcode/ncopter/comms/DeviceListActivity$1.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$NumberPickerInputFilter.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$NumberPickerInputFilter.class
bad class file magic (cafebabe) or version (0033.0000)

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$OnChangedListener.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$OnChangedListener.class
...while parsing com/bvcode/ncopter/widgets/ScopeDisplay.class
...while processing com/bvcode/ncopter/widgets/ScopeDisplay.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$string.class
...while processing com/geeksville/andropilot/R$string.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$style.class
...while processing com/geeksville/andropilot/R$style.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$styleable.class
...while processing com/geeksville/andropilot/R$styleable.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R.class
...while processing com/geeksville/andropilot/R.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$array.class
...while processing com/geeksville/andropilot/R$array.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$layout.class
...while processing com/geeksville/andropilot/R$layout.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$xml.class
...while processing com/geeksville/andropilot/R$xml.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$menu.class
...while processing com/geeksville/andropilot/R$menu.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$id.class
...while processing com/geeksville/andropilot/R$id.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$attr.class
...while processing com/geeksville/andropilot/R$attr.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/google/android/gms/R$string.class
...while processing com/google/android/gms/R$string.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/google/android/gms/R$styleable.class
...while processing com/google/android/gms/R$styleable.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/google/android/gms/R.class
...while processing com/google/android/gms/R.class
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$drawable.class
...while processing com/geeksville/andropilot/R$drawable.class
35 warnings
[info] Packaging /home/danpe/Projects/andropilot/arduleader/andropilot/target/andropilot-1.0.07.apk
[info]  pkg: /data/local/tmp/andropilot-1.0.07.apk
[info] Success
[info] 3431 KB/s (1506555 bytes in 0.428s)
[info] Starting: Intent { act=android.intent.action.MAIN cmp=com.geeksville.andropilot/.gui.MainActivity }
[success] Total time: 54 s, completed Mar 9, 2013 12:00:33 AM
> 

Logcat:

E/AndroidRuntime(26794): FATAL EXCEPTION: main
E/AndroidRuntime(26794): java.lang.NoClassDefFoundError: com.geeksville.andropilot.R$layout
E/AndroidRuntime(26794):    at com.geeksville.andropilot.gui.MainActivity.onCreate(MainActivity.scala:190)
E/AndroidRuntime(26794):    at android.app.Activity.performCreate(Activity.java:5104)
E/AndroidRuntime(26794):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
E/AndroidRuntime(26794):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
E/AndroidRuntime(26794):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
E/AndroidRuntime(26794):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/AndroidRuntime(26794):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
E/AndroidRuntime(26794):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(26794):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(26794):    at android.app.ActivityThread.main(ActivityThread.java:5039)
E/AndroidRuntime(26794):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(26794):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(26794):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(26794):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime(26794):    at dalvik.system.NativeStart.main(Native Method)

build fails when attempting to get google-play-services#google-play-services_2.10;0.1-SNAPSHOT

sbt compile gets me:

[info] Updating {file:/Users/james/runtime-EclipseApplicationwithEquinoxWeaving/arduleader/}andropilot...
[info] Resolving org.scala-lang#scala-library;2.10.0 ...
[warn] Resource id 'param_value' mapped to android.widget.EditText and android.widget.TextView
[info] Resolving org.scala-lang#scala-actors;2.10.0 ...
[info] Wrote /Users/james/runtime-EclipseApplicationwithEquinoxWeaving/arduleader/andropilot/target/scala-2.10/src_managed/main/scala/com/geeksville/andropilot/TR.scala
[info] Resolving google-play-services#google-play-services_2.10;0.1-SNAPSHOT ...
[warn]  module not found: google-play-services#google-play-services_2.10;0.1-SNAPSHOT
[warn] ==== RESTPhone Nexus: tried
[warn]   http://localhost:8081/nexus/content/groups/public/google-play-services/google-play-services_2.10/0.1-SNAPSHOT/google-play-services_2.10-0.1-SNAPSHOT.pom
[warn] ==== sonatype-snapshots: tried
[warn]   https://oss.sonatype.org/content/repositories/snapshots/google-play-services/google-play-services_2.10/0.1-SNAPSHOT/google-play-services_2.10-0.1-SNAPSHOT.pom
[warn] ==== local: tried
[warn]   /Users/james/.ivy2eclipse/local/google-play-services/google-play-services_2.10/0.1-SNAPSHOT/ivys/ivy.xml
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: google-play-services#google-play-services_2.10;0.1-SNAPSHOT: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[trace] Stack trace suppressed: run last andropilot/*:update for the full output.
[error] (andropilot/*:update) sbt.ResolveException: unresolved dependency: google-play-services#google-play-services_2.10;0.1-SNAPSHOT: not found
[error] Total time: 1 s, completed Feb 10, 2013 10:54:25 AM

As of 64266a4

improvement: allow volume setting..

My audio volume is most often low.
the easy way to adjust volume (not ring-volume) is when AndroPilot speaks - that is not too often.

It would be nice if it could set volume, -or- if it was easy to make it speak at start.
maybe loud readout of some essential data once connected ? - that would give some time to increase the volume ..

Position updated only on waypoints ? (arducopter)

I flew today in auto mode, . between some waypoints.
the plane, (not quad but plane) symbol seems to only be updated once arriving at the positions.

I can provide tlog from this flight if it helps.

autobug in 1.06

java.lang.RuntimeException: Unable to create service com.geeksville.andropilot.service.AndropilotService: java.io.IOException: Could not claim data interface.
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2366)
at android.app.ActivityThread.access$1600(ActivityThread.java:134)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4697)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.io.IOException: Could not claim data interface.
at com.hoho.android.usbserial.driver.CdcAcmSerialDriver.open(CdcAcmSerialDriver.java:73)
at com.geeksville.andropilot.service.AndroidSerial.open(AndroidSerial.scala:176)
at com.geeksville.andropilot.service.AndroidSerial.(AndroidSerial.scala:59)
at com.geeksville.andropilot.service.MavlinkAndroid$.create(MavlinkAndroid.scala:11)
at com.geeksville.andropilot.service.AndropilotService$$anonfun$serialAttached$2.apply(AndropilotService.scala:262)
at com.geeksville.andropilot.service.AndropilotService.serialAttached(AndropilotService.scala:252)
at com.geeksville.andropilot.service.AndropilotService.onCreate(AndropilotService.scala:161)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2356)
... 10 more
java.io.IOException: Could not claim data interface.
at com.hoho.android.usbserial.driver.CdcAcmSerialDriver.open(CdcAcmSerialDriver.java:73)
at com.geeksville.andropilot.service.AndroidSerial.open(AndroidSerial.scala:176)
at com.geeksville.andropilot.service.AndroidSerial.(AndroidSerial.scala:59)
at com.geeksville.andropilot.service.MavlinkAndroid$.create(MavlinkAndroid.scala:11)
at com.geeksville.andropilot.service.AndropilotService$$anonfun$serialAttached$2.apply(AndropilotService.scala:262)
at com.geeksville.andropilot.service.AndropilotService.serialAttached(AndropilotService.scala:252)
at com.geeksville.andropilot.service.AndropilotService.onCreate(AndropilotService.scala:161)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2356)
at android.app.ActivityThread.access$1600(ActivityThread.java:134)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4697)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
at dalvik.system.NativeStart.main(Native Method)

Android 4.1.1 - duplicate res id with play services?

Hi Kevin,

Amazing project.

Now I'm testing it and I've found some issues. First, the hardware used:

APM1 with firmware V2.68 (ARDUPLANE)
Modem RFD900
Samsung Galaxy S3 with android 4.1.1

I can connect with the airplane, show its position when getting a GPS Fix, see HUD's movements and see RF channels values. The issues I've found are:

  1. The parameter list doesn't show data, only that circle running as if the system was processing data;
  2. The same issue for the waypoint list;
  3. The Flight Mode section doesn't change the flight mode when selected a different mode;
  4. Even I selecting option "keep screen on" at settings list, the phone fade screen off;

Thats it.

Marcos Souza

Add warning for guided flight

Press and hold on the map starts a guided flight, please add some logic to add safety - like "if distance" to new target >200m then ask for confirmation.

1.30 possible 3DR Telemetry Issues

Kevin,
I tried across 4 APM 2.5s on different craft with 1.30. Versions from 2.6 through 2.9.1 and I am getting no data out of the 3DR Telemtry. The plane turns Blue, but does not lock into home position, I get no updates and the Vehicle Overview is black and the "looking for vehicle" has no updates. I have validated that all 4 work perfect at the proper baud rate with Mission Planner and when I back install 1.27 it works to give me data again although 1.27 was limited in what we could do. The param screen sometimes it just shows a Circle and nothing ever comes up, other times it shows partial params, with alot of the with ? marks....When I click on the plane icon I get only Alt 137m showing, so I am not receiving the other data I did in 1.27 like battery voltage etc...when I click on the plane icon. Let me know if this is just me or something that needs troubleshooting, happy to help solve this. Very eager to get 1.30 running I have some live tests I wanted to do with it and make some videos walking through it.

Auto crash report in maps (due to rotation?)

1/22/2013 0:00:22,493e83df-d179-4da2-b93d-f9fed1bd57aa,9,0.1.9,com.geeksville.andropilot,/data/data/com.geeksville.andropilot/files,GT-P7510,samsung,GT-P7510,3.2,"BOARD=GT-P7510
BOOTLOADER=P7500XXKJ2
BRAND=samsung
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=GT-P7510
DISPLAY=HTJ85B
FINGERPRINT=samsung/GT-P7510/GT-P7510:3.2/HTJ85B/XWKL1:user/release-keys
HARDWARE=p3
HOST=DELL85
ID=HTJ85B
MANUFACTURER=samsung
MODEL=GT-P7510
PRODUCT=GT-P7510
RADIO=unknown
SERIAL=C4F12D20CD89A2F
TAGS=release-keys
TIME=1323235728000
TYPE=user
UNKNOWN=unknown
USER=root
",14080704512,13791928320,,,"java.lang.RuntimeException: Unable to start activity ComponentInfo{com.geeksville.andropilot/com.geeksville.andropilot.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1818)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
at android.app.ActivityThread.access$500(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4126)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:256)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
... 11 more
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f030009
at android.content.res.Resources.getText(Resources.java:238)
at android.content.res.Resources.getString(Resources.java:322)
at com.google.android.gms.common.GooglePlayServicesUtil.b(Unknown Source)
at com.google.android.gms.internal.d.a(Unknown Source)
at com.google.android.gms.internal.d.onCreateView(Unknown Source)
at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:754)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:956)
at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1035)
at android.app.Activity.onCreateView(Activity.java:4177)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664)
... 18 more
android.view.InflateException: Binary XML file line #6: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:256)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
at android.app.ActivityThread.access$500(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4126)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f030009
at android.content.res.Resources.getText(Resources.java:238)
at android.content.res.Resources.getString(Resources.java:322)
at com.google.android.gms.common.GooglePlayServicesUtil.b(Unknown Source)
at com.google.android.gms.internal.d.a(Unknown Source)
at com.google.android.gms.internal.d.onCreateView(Unknown Source)
at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:754)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:956)
at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1035)
at android.app.Activity.onCreateView(Activity.java:4177)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664)
... 18 more
android.content.res.Resources$NotFoundException: String resource ID #0x7f030009
at android.content.res.Resources.getText(Resources.java:238)
at android.content.res.Resources.getString(Resources.java:322)
at com.google.android.gms.common.GooglePlayServicesUtil.b(Unknown Source)
at com.google.android.gms.internal.d.a(Unknown Source)
at com.google.android.gms.internal.d.onCreateView(Unknown Source)
at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:754)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:956)
at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1035)
at android.app.Activity.onCreateView(Activity.java:4177)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:256)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
at android.app.ActivityThread.access$500(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4126)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
","locale=nl_NL
compatScreenHeightDp=320
compatScreenWidthDp=545
compatSmallestScreenWidthDp=320
fontScale=1.0
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
FlipFont=0
mcc=0
mnc=0
navigation=NAVIGATION_NONAV
navigationHidden=NAVIGATIONHIDDEN_YES
orientation=ORIENTATION_LANDSCAPE
screenHeightDp=752
screenLayout=SCREENLAYOUT_SIZE_XLARGE+SCREENLAYOUT_LONG_NO
screenWidthDp=1280
seq=4
smallestScreenWidthDp=800
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false
","locale=nl_NL
compatScreenHeightDp=320
compatScreenWidthDp=545
compatSmallestScreenWidthDp=320
fontScale=1.0
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
FlipFont=0
mcc=0
mnc=0
navigation=NAVIGATION_NONAV
navigationHidden=NAVIGATIONHIDDEN_YES
orientation=ORIENTATION_LANDSCAPE
screenHeightDp=752
screenLayout=SCREENLAYOUT_SIZE_XLARGE+SCREENLAYOUT_LONG_NO
screenWidthDp=1280
seq=4
smallestScreenWidthDp=800
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false
","width=1280
height=752
pixelFormat=1
refreshRate=60.0fps
metrics.density=x1.0
metrics.scaledDensity=x1.0
metrics.widthPixels=1280
metrics.heightPixels=752
metrics.xdpi=149.82489
metrics.ydpi=150.51852",,N/A,2013-01-22T09:59:28.000+00:00,2013-01-22T09:59:28.000+00:00,"Applications Memory Usage (kB):
Uptime: 1231452 Realtime: 1400728

** MEMINFO in pid 3737 [com.geeksville.andropilot] **
native dalvik other total
size: 3124 6791 N/A 9915
allocated: 3123 6521 N/A 9644
free: 0 270 N/A 270
(Pss): 552 1570 4686 6808
(shared dirty): 972 2044 7732 10748
(priv dirty): 532 236 4084 4852

Objects
Views: 2 ViewRoots: 0
AppContexts: 2 Activities: 1
Assets: 3 AssetManagers: 3
Local Binders: 1 Proxy Binders: 6
Death Recipients: 0
OpenSSL Sockets: 0

SQL
heap: 0 MEMORY_USED: 0
PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0

Map optimizations

  • On each screen rotation, waypoints are lost, the re-fetched.
  • Usually - the devices and aurcraft GPS would be very close to each other, please allow a preset zoomlevel on the map - and use the device's position to center the map.

Stuck near Africa... mavlink-ivy-interface

Hi Kevin,
This looks like fantastic work and we can't wait to start using it, but somehow I was not yet able to get any reponse yet.
I do not have an APM but another MavLink autopilot (ardrone, https://github.com/mavlink/mavlink-ivy-interface, ...) so that is probably the reason. On all platforms I'm sending the same mavlink1.0 heartbeat, attitude, sys_status, global_position_int, param_value_pack at 1Hz, either over UDP:14550 or over FTDI232 cable@57600.

When I connect that to QGroundcontrol or even APM Planner Mav 1.0 I get position and attitude shown both with the UDP and serial connection.
When I connect AndroPilot (tried 0.1.10 and 0.1.28 to 0.1.35) on an Android 4.2 Samsung Nexus, I apparently get data since the logfile is not empty (included below) but the screen shows nothing (also included below). Moreover, in UDP mode the autopilot receives heartbeats from the phone: sysid=253. When I connect the FTDI cable, I see a message: 3DR Telemetry Connected. When unplugging the FTDI, it used to freeze+autoreboot the phone but 0.1.35 does not have that anymore. (I often can not close the app with the Back key though)
Any wild guess what might be going on? Or can you point me to the code where mavlink messages are being parsed? Who is sysid253, Isn't the Gcs sysid255? Is there some infinite while loop somewhere (getting parameters/waypoints which I don't have) or something like that?
Attachments:
Screenshot_20130204164614

http://www.diydrones.com/forum/attachment/download?id=705844%3AUploadedFile%3A1118869

1.06 fix this autobug for phones that don't have market

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://play.google.com/store/apps/details?id=com.google.android.gms flg=0x80000 pkg=com.android.vending }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
at android.app.Activity.startActivityForResult(Activity.java:3370)
at android.app.Activity.startActivityForResult(Activity.java:3331)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817)
at android.app.Activity.startActivity(Activity.java:3566)
at android.app.Activity.startActivity(Activity.java:3534)
at com.google.android.gms.internal.d$2.onClick(Unknown Source)
at android.view.View.performClick(View.java:4204)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5195)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)

HUD text on side is missing

Im using Andropilot, version 1.1.00 on Samsung Galaxy Note 10.1 tablet with Android 4.1.2. When APM 2.5 is connected even if directly via USB cable or via 3DR telemetry, data are received from APM to Andropilot, (and shown in vehicle overview), but HUD remains frozen. What am I doing wrong?

auto crash report

ava.util.NoSuchElementException: None.get
at scala.None$.get(Option.scala:313)
at scala.None$.get(Option.scala:311)
at com.geeksville.andropilot.MyMapFragment.map(MyMapFragment.scala:34)
at com.geeksville.andropilot.MyMapFragment.onServiceConnected(MyMapFragment.scala:47)
at com.geeksville.andropilot.AndroServiceClient$$anon$1.onServiceConnected(AndroServiceClient.scala:76)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1097)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1114)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4899)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)

Add option to use/display altitude relative to point of start.

It seems like Andropilot is displaying all altitudes as AMSL.
My VLOS/BLOS license will always limit me - and many others- to altitude AGL.
most missions are VLOS, - meaning the most important altitude for me, is the altitude relative to the start point.

Please add option to make barometric altitude during arming, be "0" , so everything displayed is relative to that.

  • You made a great tool, very, very impressive. Thank you.

HEARTBEAT messages have wrong type

Hi Kevin,
I just noticed the HEARTBEAT messages that andropilot is putting in the log from itself has type=16, which is MAV_TYPE_FLAPPING_WING. Quite funny really!
It should be type=6, which is MAV_TYPE_GCS, otherwise various mavlink log tools think they are seeing a mode change on every heartbeat packet, which breaks analysing log files.
It should also set HEARTBEAT.autopilot=8 (for MAV_AUTOPILOT_INVALID).
Cheers, Tridge

auto bug report

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.geeksville.andropilot/com.geeksville.andropilot.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2182)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2207)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4899)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.geeksville.andropilot.MainActivity$$anonfun$onCreate$3.apply(MainActivity.scala:167)
at com.geeksville.andropilot.MainActivity$$anonfun$onCreate$3.apply(MainActivity.scala:154)
at scala.Option.map(Option.scala:145)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:154)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2136)
... 11 more
java.lang.NullPointerException
at com.geeksville.andropilot.MainActivity$$anonfun$onCreate$3.apply(MainActivity.scala:167)
at com.geeksville.andropilot.MainActivity$$anonfun$onCreate$3.apply(MainActivity.scala:154)
at scala.Option.map(Option.scala:145)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:154)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2136)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2207)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4899)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)

Does not show position of arducopters

when starting the app, the aircraft is placed in the sea by africa, even when my GPS gets fix, (indicated by LED, not 100% sure of the quality of the fix) - the aircraft is still outside africe.

(see tlogs in mail from Andre)

Using android version 4.1.1

All connected perfectly
Connected directly to the flight controller and also via 913mhz telemetry .

However is my issue once connected the data take forever to be updated to the andropilot app No maps no hub ( running the latest version

More details
Running app on a cubieboard ( http://cubieboard.org/ ) and odroid-x2( http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G135235611947 ) both boards have the speed to run this app however something is wrong.

You can email me at stuartsja at gmail com and I will provide more details

I think what you are doing is the way to go especially with these development board the can make great ground stations

Misc suggestions

Very impressive app Kevin!
I've been testing it against a SITL version of ArduPlane, usnig mavproxy to forward packets over a 3DR radio so I can test the full capabilities at home. A couple of things stand out as possible improvements:
speech output for key events. I find the main thing I use my ground station for while flying is the speech output, as I like to keep my eyes on the aircraft. The key things are "mode XXX", "height XXX" (every 10 meters is good), "battery XX%" (every 10% is good), and optionally airspeed. Is there a nice android text to speech lib that could be used for this? Perhaps with a set of dialogs to enable/disable?
height above ground, not above sea-level. The best message to use for relative height is GLOBAL_POSITION_INT.relative_alt*0.001 (to get it in meters). It would be even better to use a cached version of SRTM data to get the true AGL height, by querying SRTM for the terrain height. That is how mavproxy displays correct AGL altitude (see https://github.com/tridge/MAVProxy/blob/master/modules/mavproxy_map...)
a way to pre-cache the map tiles for an area, so it will work with no network access at the field. I ended up doing my own slipmap implementation for mavproxy to get this (see https://github.com/tridge/MAVProxy/blob/master/modules/mavproxy_map...)
a button to enable/disable following the planes location on the map
a menu to load/save the waypoints to local files.
a menu to load/save/display the geofence
There also seems to be a bug that causes the aircraft position to lag the true position by quite a long way. Perhaps there is a buffering problem on the mavlink connection to the radio? Are you assuming a stream rate, or just reading messages as fast as they come in?
Overall this is a great app though - I had planned on porting MAVProxy to android, but I think it may be better for me to learn a bit of Java coding and submit some patches for your app.
Thanks!
Thanks!
re: speech
Yes there is - in fact it uses the cool google speach stuff from maps so it even gets inflection right...
Good idea & easy to add
Re: height above ground
Good point
Re: precaching
Not allowed with the google maps client (the embedded version doesn't support precache yet). There is an android version of OSM - if someone wants to add it I'd happily accept a PR/help with questions. I might add it someday but probably not that soon...
Re: follow plane
Yep easy to add & a good idea
Re: save/load waypoints
Easy to add. Is there a 'standard' suffix for mavlink waypoint files (so I can have my app register with android that I handle those files - really sexy for opening email attachments or links on the web)
Likewise, is there a standard suffix for param files?
Re: Geofence
Good idea

more annoucements

More suggestions which the MP doesn't have yet:

announce and display a failsafe condition,

announce arming and disarming.

Switch ftdi into 'large read mode'

curretly it is doing 64 byte reads (max), we want more like 512. This should allow us to move up from the current 72 packets a sec to more like the 200 packets a sec on direct connect

AGL not MSL

Request for Andropilot to report vehicle altitude in AGL not MSL/ASL

fix this autobug in 1.06: a race condition

java.lang.IllegalStateException: Content view not yet created
at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328)
at android.support.v4.app.ListFragment.getListView(ListFragment.java:222)
at com.geeksville.andropilot.gui.WaypointListFragment.com$geeksville$andropilot$gui$WaypointListFragment$$handleWaypoints(WaypointListFragement.scala:136)
at com.geeksville.andropilot.gui.WaypointListFragment$$anonfun$onVehicleReceive$1$$anonfun$applyOrElse$1.apply(WaypointListFragement.scala:128)
at com.geeksville.andropilot.gui.WaypointListFragment$$anonfun$onVehicleReceive$1$$anonfun$applyOrElse$1.apply(WaypointListFragement.scala:128)
at com.geeksville.util.ThreadTools$$anon$1.run(ThreadTools.scala:11)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4514)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)

Add a 'Navigate to plane' button that uses maps

When telemetry is lost- display last coordinates/heading/altitude and time in the map.

  • also display "click to copy" - so coordinates can be easily used to navigate to in maps. - or .. of course ,
    would be very useful if somebody run out of juice or crashed - yes, it's a protection for amateurish errors, but I bet people would appriciate it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.