[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Developers] Status of the Android application -- 2



On Thu, Aug 11, 2011 at 11:57 AM, Orekit <orekit@c-s.fr> wrote:
> Hi Alexis,
>
> I'm Pascal from the Orekit team.

Hi Pascal,

> I've tested this last snapshot, and it looks fine to me, you're doing an
> impressive job.

Thanks :)

> I don't get used to Android (I have no smartphone, no tablet ...), I just
> run the app in the emulator on my Linux desktop and I can't test the
> rotating use case this way (I let this task to Luc with his tablet), but I
> trust you :)

I think you can rotate the emulator by pressing 7 or 9 on the
numerical keypad with "Num lock" disabled. If you don't have a
numerical keypad, Ctrl+F11/Ctrl+F12 may work (it's written in the
documentation here :
http://developer.android.com/guide/developing/tools/emulator.html with
all the other available shortcuts, but it doesn't work for me).

> The uncaught exceptions are unchecked RunTimeException, so you'll have to
> also catch Exception at the end of the try/catch, not only those declared by
> Orekit, this avoids the Force Close dialog (I've tested on a bad TLE, it
> ends with an Error Dialog and you can go back to the app).

Thanks, this worked :)

About the bad TLE, I don't know how I had this exception, I've entered
the TLE available on Wikipedia by hand twice (one on the emulator, and
one on my Nexus One) and I always got the same crash. I couldn't
reproduce it after this.

>> * I've tweaked the fields which require to enter double value to show
>> a numerical keypad (if you use a virtual keyboard) instead of the full
>> alphabetical keyboard, which could save some time entering the values.
>
> OK (it looks better after I changed from Japan in the Settings ...).
> Some double values can be pretty huge (the Central Coefficient Attraction
> for the Earth is about 4.e+14), is there a way to access some scientific
> notation ?

(I don't understand why they put a Japanese virtual keyboard by
default on the emulator images :) )

That's the issue. I don't know if it's possible to act on the keyboard
in such a way (it's possible to change little things like the "OK"
button to a "Next" or "Search" button, but I don't know if it's
possible to go further than that). I'll search later but I think this
would be a dilemna between entering all the values slowly on an
alphabetical keyboard with a "e" or entering the values faster but
with no "e" key.

>> * By default, there is some TLE data when you want to enter the
>> details of a TLE orbit, but that's temporary, it's just because
>> entering a TLE orbit by hand on the virtual keyboard is *very*
>> annoying. (it's the ISS orbit data I found on celestrak :) ). A known
>> issue is that when you rotate, you'll have the same sample TLE data
>> again, that's because I put this hack a line too far on
>> TLESelector.java :)
>
> Yes, TLE format is a nightmare.
> In a sense, it is not a bad idea to have a kind of guideline to enter it,
> maybe a line by line, field by field entries with some format control, is it
> possible ?

Hmm, yes. However I thought we were going to add a button to download
TLE data from the web, so this nightmare would be reduced but why not
:) I'll deal with all the UI stuff when I've finished implementing the
features.

By the way, I'm currently implementing impulse maneuver support and
I'm having some troubles with TLE orbits. In fact as soon as I use a
TLE orbit (I got by t = new TLE(line1, line2); and orbit =
TLEPropagator.selectExtrapolator(t).propagate(date).getOrbit() -- so
if I understood correctly this should now be a "normal" orbit
independent from the TLE propagation model) and I feed it to
KeplerianPropagator with an ImpulseManeuver event, I get an
OrekitException :

W/System.err(  364): org.orekit.errors.OrekitException$1: frame
EME2000 does not match frame TEME
W/System.err(  364):    at
org.orekit.propagation.SpacecraftState.checkConsistency(Unknown
Source)
W/System.err(  364):    at
org.orekit.propagation.SpacecraftState.<init>(Unknown Source)
W/System.err(  364):    at
org.orekit.forces.maneuvers.ImpulseManeuver.resetState(Unknown Source)
W/System.err(  364):    at
org.orekit.propagation.events.EventState.reset(Unknown Source)
W/System.err(  364):    at
org.orekit.propagation.AbstractPropagator.acceptStep(Unknown Source)
W/System.err(  364):    at
org.orekit.propagation.AbstractPropagator.propagate(Unknown Source)
W/System.err(  364):    at
org.orekit.propagation.AbstractPropagator.propagate(Unknown Source)
W/System.err(  364):    at
org.orekit.android.maneuver.ManeuverComputeActivity$BackgroundTask.doInBackground(ManeuverComputeActivity.java:157)

The only track of EME2000 I found was on Orekit's
ImpulseManeuver.java, in resetState(). Also, if I understood
correctly, this exception would be raised when the SpacecraftState's
attitude is expressed in a different frame than the orbit but I didn't
managed to get further than that.

Am I doing things wrong ? (by the way, I'm using the latest git
version of Orekit)

Thanks :)

Alexis