goGPS-Project/goGPS_Java

A graphical user interface for goGPS Java

Closed this issue ยท 18 comments

Wouldn't it be nice to have a fully fledged GUI for goGPS Java?
I don't have a full license for goGPS Matlab and its GUI doesn't work well on Matlab for Linux and doesn't work at all on Octave.

Now, desktop applications is difficult, something crossplatform desktop/mobile would be nice.
But Java doesn't run in a browser and browser apps are second rate citizens on mobile.
I'm not aware of any proposed development in this area.

One thing I'm playing with today is JavaFX. I've used Swing in the past, and hated it.
I hate it because of the lack of closures in Java (before 8), the lack of data binding, it's generally awkward. JavaFX + Java 8 could be a bit better. One another option would be to run a WebView: http://www.java2s.com/Code/Java/JavaFX/UsingWebViewtodisplayHTML.htm
In order to make it crossplatform (to mobiles) there's no much choice. Perhaps NativeScript could be the answer sometimes in the future: http://www.telerik.com/nativescript
So one could write the UI in JavaScript and keep the core of the app in Java, to run on Android and Desktop.
Or one could translate Java into native Windows using ikvm.net (http://www.ikvm.net/). It works really well. But what about iOS? http://robovm.com/ perhaps
I don't have an iPhone myself but a lot of people do, as a matter of fact.
No easy solution.

I don't have the slightest idea about how to make a good GUI in Java... can't help you there :(
But if anyone starts making a goGPS Java GUI, I could help with the design (which parameters and choices to show, etc)

I am also not expert on that.

I agree this point.

So one could write the UI in JavaScript and keep the core of the app in Java, to run on Android and Desktop.

I have prepared a simple WebUI long time ago to load dataset, process and show the output result on Web map. And I would like to improve the WebUI for simple use.

2015-03-27 11 23 16

Good old Open Layers ๐Ÿ‘
Actually I was going to ask you guys about that Zoo Project as I don't know much about it.
I use Open Layers 2 on our web site too, for the future I was planning on using Cesium. But World Wind could be an option too.
Yesterday I saw this blog post about running JavaFX on Android: http://jperedadnr.blogspot.com.es/2015/03/javafx-on-mobile-dream-come-true.html
I don't know how easy it is but in order to reproduce some functionality like the GUI for goGPS Matlab, I don't think we should discard JavaFX in principle.
It can be deployed as a self contained app (http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm) and it supports WebView which we could use for displaying the final result as a map.
I just think from the user perspective, launching a local web server could be tricky.
Or were you thinking @nro2dai of offering a fully hosted goGPS Web solution?

ZOO is one of Web Processing Service(WPS) platforms to standardize web
geo-processings and to allow WPS client to execute the processing service.
(However, there are not many WPS-compliant software yet )

I use Open Layers 2 on our web site too, for the future I was planning on
using Cesium.

Interesting :)

Or were you thinking @nro2dai https://github.com/nro2dai of offering a
fully hosted goGPS Web solution?

Yes.
Or preparing easy deploy solutions using VM or containers such as Docker,
https://registry.hub.docker.com/u/nro2dai/zoo/

2015-03-27 11:35 GMT+09:00 Emanuele Ziglioli notifications@github.com:

Good old Open Layers [image: ๐Ÿ‘]
Actually I was going to ask you guys about that Zoo Project as I don't
know much about it.
I use Open Layers 2 on our web site too, for the future I was planning on
using Cesium. But Wold Wind could be an option too.
Yesterday I saw this blog post about running JavaFX on Android:
http://jperedadnr.blogspot.com.es/2015/03/javafx-on-mobile-dream-come-true.html
I don't know how easy it. I think in order to reproduce some functionality
like the GUI for goGPS Matlab, we shouldn't discard JavaFX in principle.
It can be deployed as a self contained app (
http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm)
and it supports WebView which we could use for displaying the final result
as a map.
I just think from the user perspective, launching a local web server could
be tricky.
Or were you thinking @nro2dai https://github.com/nro2dai of offering a
fully hosted goGPS Web solution?

โ€”
Reply to this email directly or view it on GitHub
#5 (comment).

Thanks @nro2dai,
I had never heard about WPS before reading about goGPS. It sounds like as a spec it's been around for a while. It doesn't look like it's gaining much traction though, is it?
Docker instead is all the rage these days, I can see from your example why, it's so easy to try!

I suppose we need to define what needs a graphical user interface wants to address. For post-processing a web interface it's probably ok. What about real time? that's where goGPS Java shines.

Question for @ege010 : at the goGPS workshop for the next FOSS4G-E in July, are all attendees supposed to have an active Matlab license?
So, that would be another case where a working standalone Java GUI could help outsiders like me.
I wonder if any of the GUI code in goGPS Matlab can be reused at all, I'll have a look.

JavaFX links (reminder to my future self)
Scene Builder pages:
http://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-info-2157684.html
http://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-1x-archive-2199384.html
http://stackoverflow.com/questions/12622837/can-java-scene-builder-integrate-into-eclipse-like-it-does-in-netbeans
https://docs.oracle.com/javase/8/scene-builder-2/installation-guide/jfxsb-installation_2_0.htm
http://code.makery.ch/library/javafx-8-tutorial/part1/

@ZiglioNZ, if I understood correctly, at FOSS4G-E the workshops will be
carried out in Polimi's computer rooms, so the MATLAB platforms will be
made available to attendees, just for the purpose of the workshop.

2015-03-29 0:22 GMT+01:00 Emanuele Ziglioli notifications@github.com:

Thanks @nro2dai https://github.com/nro2dai,
I had never heard about WPS before reading about goGPS. It sounds like as
a spec it's been around for a while. It doesn't look like it's gaining much
traction though, is it?
Docker instead is all the rage these days, I can see from your example
why, it's so easy to try!

I suppose we need to define what needs a graphical user interface needs to
address. For post-processing a web interface it's probably ok. What about
real time? that's where goGPS Java shines.

Question for @ege010 https://github.com/ege010 : at the goGPS workshop
for the next FOSS4G-E in July, are all attendees supposed to have an active
Matlab license?
So, that would be another case where a working standalone Java GUI could
help outsiders like me.
I wonder if any of the GUI code in goGPS Matlab can be reused at all, I'll
have a look.

Reply to this email directly or view it on GitHub
#5 (comment).

Wow, great work! @ZiglioNZ

2015-06-17 21:57 GMT+09:00 Emanuele Ziglioli notifications@github.com:

I'm pleased to announce
https://github.com/goGPS-Project/goGPS_FX/releases/tag/0.1
[image: gogps_fx_0 1]
https://cloud.githubusercontent.com/assets/1219039/8207335/e8686332-1554-11e5-903a-4f7969ecd60c.jpg

โ€”
Reply to this email directly or view it on GitHub
#5 (comment).

Thank you @nro2dai ! If you guys have a chance to try it, I'd appreciate your feedback.
I'm experiencing some exceptions due to empty lines, but not all the time.
The front-end is pure html/js/css and binds to the java backend model with knockoutjs (thanks to DukeScript). I was familiar with KnockoutJs, having used it on our website for a few years.
It's the first time though I use Bootstrap, a responsive (resizeable) framework for CSS, so the layout could definitely improve.
I've managed to build it on Linux too. Unfortunately one has to build for each platform when running on that platform, so VMs or partitions running Windows 64, Windows 32, Linux 32, Linux 64 (haven't tried on ARM at all).
Dukescript should work on Android too. Of course the part that deals with Serial Ports has to change in order to use Android's native APIs, rather than SerialIO.

Great!
A couple of hints:

  • both Code Double Difference and Kalman filter modes in goGPS Java need a
    master observation file;
  • the dynamic model is used only by the Kalman filter mode.

2015-06-18 13:28 GMT+02:00 Emanuele Ziglioli notifications@github.com:

New build https://github.com/goGPS-Project/goGPS_FX/releases/tag/0.2

โ€”
Reply to this email directly or view it on GitHub
#5 (comment).

Where is the root directory in case of Windows OS?
I should prepare "data" and "out" directories, right?

2015-06-18 22:02 GMT+09:00 Eugenio Realini notifications@github.com:

Great!
A couple of hints:

  • both Code Double Difference and Kalman filter modes in goGPS Java need a
    master observation file;
  • the dynamic model is used only by the Kalman filter mode.

2015-06-18 13:28 GMT+02:00 Emanuele Ziglioli notifications@github.com:

New build https://github.com/goGPS-Project/goGPS_FX/releases/tag/0.2

โ€”
Reply to this email directly or view it on GitHub
<#5 (comment)
.

โ€”
Reply to this email directly or view it on GitHub
#5 (comment).

@nro2dai the default install folder with the javafx packager seems to be under
C:\Users{you}\AppData\Local\goGPS_FX\app\

Now I'd like to change that so that it installs it under C:\Program Files.
It's good though that the app itself defaults its "workspace" to a user folder as writing to Program Files triggers all sorts of warnings.

The default dir for Linux is under \opt. I still need to update the ant build script for Linux.
Maybe the one for Windows also works on Linux, I must try.
There were some warnings being triggered due to a 'lack of license' of some sort, something else to look into.
An interesting thing would be to try and build for Mac @ege010

@ege010 oh, I hoped one could use Kalman in standalone mode too. What about the Matlab code?
In that case I think I should move the mode and model selection to the bottom and change it to use radio buttons, so it's obvious when they're enabled or disabled based on rover, navigation and eventually master base selection

Update, bug fix: https://github.com/goGPS-Project/goGPS_FX/releases/tag/0.3b

Added Master input selection (observation file or com port).
That input is shown only in the code dd and kalman case.

Also added a list of satellites being processed with their SNR.

Firebug Lite starts minimized, and you can click on the icon to maximize it. Sometimes it also needs to be dragged up. By the way, Firebug is now cached in the web app folder.

The app now creates an "out" folder at startup if it doesn't exist.
Now bundling JRE 1.8.045.

Build 0.4, if I have time I'll build it for Linux too
https://github.com/goGPS-Project/goGPS_FX/releases/tag/0.4

Fixed Refresh Port List
Added Snapshot Code Stand-alone mode
Display serial port "friendly name" on Windows using JNA

image

image

Carrying onto this project for a standlone GUI: https://github.com/goGPS-Project/goGPS_FX
Or there https://hub.docker.com/r/nro2dai/zoo/ for a web service