diff --git a/ApplicationAmicalsat/README.md b/ApplicationAmicalsat/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..8f7e7186d46cb5e3e801caebcd85abe45457d4fb
--- /dev/null
+++ b/ApplicationAmicalsat/README.md
@@ -0,0 +1,37 @@
+
+# Application Amicalsat
+
+ **Amicalsat Decoder** helps to decode data from **Amicalsat** Satellite and send them to databases (SatNogs & AMSAT-F).
+
+
+This application is written in java with javaFx library. The application can be executed on all operating system supporting Java.
+
+The input data for **Amicalsat decoder** come from demodulator thanks to TCP KISS protocol.
+
+
+
+
+## Context
+
+This software has been developed for ham radio community in order to gather data from **Amicalsat** satellite and send receive data to Satnogs & Amsat-F database.
+
+
+## Amicalsat decoder
+
+ [Manuel Utilisateur en Français](ApplicationAmicalsat/src/site/markdown/ManuelUtilisateur.md)
+
+ [User Manual in English](ApplicationAmicalsat/src/site/markdown//UserManual.md)
+
+![MMI]( ApplicationAmicalsat/src/site/images/AmicalsatDecoder-.jpg)
+
+
+
+## Contributing
+
+Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
+Please make sure to update tests as appropriate.
+
+A dedicated folder on AMSAT-Francophone forum is set : [Rubrique AmicalsatDecoder](http://forum.amsat-f.org/forumdisplay.php?fid=36)
+
+## License
+[GNU Lesser General Public License v2.1](http://choosealicense.com/licenses/lgpl-2.1/)
diff --git a/ApplicationAmicalsat/pom.xml b/ApplicationAmicalsat/pom.xml
index 32a1a2e452c449a3c6f4d43fd169784cf5eaa8f1..3d10ffe860ef250f0e1af1cb3712e6082f2f1c18 100644
--- a/ApplicationAmicalsat/pom.xml
+++ b/ApplicationAmicalsat/pom.xml
@@ -5,22 +5,24 @@
org.josast
JOSAST-parent
- 0.0.2-SNAPSHOT
+ 0.0.2
4.0.0
ApplicationAmicalsat
- 0.0.1-SNAPSHOT
+
UTF-8
11
11
-
-
- 0.0.2-SNAPSHOT
- 0.2
- 1.0-SNAPSHOT
+
+
+ ${josast.version}
+ ${josast.version}
+ ${josast.version}
+ ${josast.version}
+ 13
@@ -30,25 +32,44 @@
org.openjfx
javafx-controls
- 13
+ ${JavaFx.version}
+
+
+ org.openjfx
+ javafx-graphics
+ ${JavaFx.version}
+
+
+ org.openjfx
+ javafx-base
+ ${JavaFx.version}
org.openjfx
javafx-fxml
- 13
+ ${JavaFx.version}
+
+
+ org.openjfx
+ javafx-web
+ ${JavaFx.version}
+
+
+ org.openjfx
+ javafx-media
+ ${JavaFx.version}
-
org.openjfx
javafx-swing
- 11-ea+24
+ ${JavaFx.version}
-
+
org.josast
ModuleSIDS
- 0.0.1-SNAPSHOT
+ ${ModuleSIDS.version}
org.josast
@@ -68,14 +89,7 @@
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.8.0
-
- 11
-
-
+
org.openjfx
javafx-maven-plugin
@@ -84,6 +98,42 @@
org.josast.ApplicationAmicalsat.App
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
+ org.josast.ApplicationAmicalsat.App
+
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/AmicalSatMessage.txt b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/AmicalSatMessage.txt
new file mode 100644
index 0000000000000000000000000000000000000000..aa09ce66d4e38eec343164d93865ecd8c4fae8bb
--- /dev/null
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/AmicalSatMessage.txt
@@ -0,0 +1,3 @@
+AmicalsatVersion=1.0
+Message= version de test
+NoradID=99836
\ No newline at end of file
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Amicalsat.fxml b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Amicalsat.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..5954582ba8b1776c7d9bc05efa4f5931a8c665a3
--- /dev/null
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Amicalsat.fxml
@@ -0,0 +1,605 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Amicalsat.jpg b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Amicalsat.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4b628ab7ded842b209fa87b7841c933c882c9c71
Binary files /dev/null and b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Amicalsat.jpg differ
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/App.java b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/App.java
index 7ddecd24b05ea1e1297f768a3c82d24047af9956..dcf929ed142b6498e1096606b5b06fd6513b43c2 100644
--- a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/App.java
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/App.java
@@ -9,10 +9,9 @@ import javafx.stage.Stage;
import java.io.File;
import java.io.IOException;
import java.util.logging.FileHandler;
+import java.util.logging.Handler;
import java.util.logging.Logger;
-
-
/**
* JavaFX App
*/
@@ -20,42 +19,18 @@ public class App extends Application {
private static Scene scene;
private static FXMLLoader fxmlLoader;
- Logger logger = Logger.getLogger("EntrySatLogger");
+ private static Logger logger = Logger.getLogger("AmsatLogger");
@Override
public void start(Stage stage) throws IOException {
- try {
- String path = System.getProperty("user.dir")+"/log";
- File apath = new File(path);
-
- if (!apath.exists())
- {
- if (apath.mkdir() == false)
- {
- System.err.println("fail to create "+ path);
- }
- }
- FileHandler fh=new FileHandler(path+"/"+"EntrySatLog.txt");
-
- logger.addHandler(fh);
-
- } catch (SecurityException e) {
-
- e.printStackTrace();
-
- } catch (IOException e) {
-
- e.printStackTrace();
-
- }
+
System.setProperty("glass.accessible.force", "false");
- scene = new Scene(loadFXML("Amicalsat"), 640, 480);
+ scene = new Scene(loadFXML("Amicalsat"), 800, 600);
stage.setScene(scene);
-
+
Controler ctrl = fxmlLoader.getController();
ctrl.setPrimaryStage(stage);
- scene.getStylesheets().add("/BasicApplication.css");
- // stage.setScene(scene);
+ scene.getStylesheets().add(this.getClass().getResource("boot.css").toExternalForm());
stage.setTitle("Amicalsat Decoder");
ctrl.initMMI();
stage.show();
@@ -66,14 +41,38 @@ public class App extends Application {
}
private static Parent loadFXML(String fxml) throws IOException {
- fxmlLoader = new FXMLLoader(App.class.getResource(fxml + ".fxml"));
-
-
-
+ fxmlLoader = new FXMLLoader(App.class.getResource(fxml + ".fxml"));
return fxmlLoader.load();
}
public static void main(String[] args) {
+ // initialisation du systéme de log en premier
+ try {
+ String path = System.getProperty("user.dir") + "/log";
+ File apath = new File(path);
+
+ if (!apath.exists()) {
+ if (apath.mkdir() == false) {
+ System.err.println("fail to create " + path);
+ }
+ }
+ FileHandler fh = new FileHandler(path + "/" + "AmicalsatLog.log");
+ logger.setUseParentHandlers(false);
+ Handler[] handlers = logger.getHandlers();
+ for (Handler handler : handlers) {
+ logger.removeHandler(handler);
+ }
+ logger.addHandler(fh);
+
+ } catch (SecurityException e) {
+
+ e.printStackTrace();
+
+ } catch (IOException e) {
+
+ e.printStackTrace();
+
+ }
launch();
}
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Configuration.java b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Configuration.java
index bf4dd257f24149ebb65adb8b64e74d5f924931fd..e53a3d2a570aa125d2685ff57c75e9d7fcda15b3 100644
--- a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Configuration.java
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Configuration.java
@@ -25,15 +25,15 @@ public class Configuration {
private String soundModemIP="127.0.0.1";
private String soundModemPort="8100";
- private String SIDSEntrySatSource="Anonymous";
- private String SIDSEntryUrl="https://amsat.electrolab.fr/SIDS";
+ private String SIDSAMSATSource="Anonymous";
+ private String SIDSAMSATUrl="https://amsat.electrolab.fr/SIDS";
private String SIDSSatnogsSource="Anonymous";
private String SIDSSatnogsURL="https://db.satnogs.org/api/telemetry/";
private String SIDSSatnogs="0";
- private String SIDSEntrySat="1";
- private int Norad=99990; // default value - equivalent to satnogs
+ private String SIDSAMSAT="1";
+ private int Norad=99836; // default value - equivalent to satnogs
private boolean SISD_SatNogs = false;
- private boolean SIDS_EntrySat = true;
+ private boolean SIDS_AMSAT = true;
private CONFIG conf = CONFIG.getInstance();
@@ -48,9 +48,7 @@ public class Configuration {
return SISD_SatNogs;
}
- public boolean isSIDS_EntrySat() {
- return SIDS_EntrySat;
- }
+
private Configuration()
{
@@ -60,12 +58,12 @@ public class Configuration {
latitude = conf.GetProperty("Latitude");
longitude = conf.GetProperty("Longitude");
- SIDSEntrySatSource=conf.GetProperty("SIDSEntrySatSource");
- SIDSEntryUrl=conf.GetProperty("SIDSEntryUrl");
+ SIDSAMSATSource=conf.GetProperty("SIDSAMSATSource");
+ SIDSAMSATUrl=conf.GetProperty("SIDSAMSATUrl");
SIDSSatnogsSource=conf.GetProperty("SIDSSatnogsSource");
SIDSSatnogsURL=conf.GetProperty("SIDSSatnogsURL");
SIDSSatnogs=conf.GetProperty("SIDSSatnogs");
- SIDSEntrySat=conf.GetProperty("SIDSEntrySat");
+ SIDSAMSAT=conf.GetProperty("SIDSAMSAT");
soundModemIP = conf.GetProperty("soundModemIP");
soundModemPort = conf.GetProperty("soundModemPort");
Norad = Integer.parseUnsignedInt(conf.GetProperty("NoradID").trim());
@@ -76,12 +74,12 @@ public class Configuration {
{
SISD_SatNogs=false;
}
- if (SIDSEntrySat.contentEquals("1") )
+ if (SIDSAMSAT.contentEquals("1") )
{
- SIDS_EntrySat=true;
+ SIDS_AMSAT=true;
} else
{
- SIDS_EntrySat=false;
+ SIDS_AMSAT=false;
}
}
@@ -90,7 +88,6 @@ public class Configuration {
save();
}
-
}
@@ -103,6 +100,48 @@ public class Configuration {
+
+ public void setSIDSSatnogs(String sIDSSatnogs) {
+ SIDSSatnogs = sIDSSatnogs;
+ if (SIDSSatnogs.contentEquals("1") )
+ {
+ SISD_SatNogs=true;
+ } else
+ {
+ SISD_SatNogs=false;
+ }
+ }
+
+
+ public void setSIDSAMSAT(String sIDSEntrySat) {
+ SIDSAMSAT = sIDSEntrySat;
+ if (SIDSAMSAT.contentEquals("1") )
+ {
+ SIDS_AMSAT=true;
+ } else
+ {
+ SIDS_AMSAT=false;
+ }
+ }
+
+
+ public void save() {
+
+ conf.SetProperty("Callsign",callsign);
+ conf.SetProperty("Latitude",latitude);
+ conf.SetProperty("Longitude",longitude);
+ conf.SetProperty("SIDSAMSATSource",this.SIDSAMSATSource);
+ conf.SetProperty("SIDSAMSATUrl",this.SIDSAMSATUrl);
+ conf.SetProperty("SIDSSatnogsSource",this.SIDSSatnogsSource);
+ conf.SetProperty("SIDSSatnogsURL",this.SIDSSatnogsURL);
+ conf.SetProperty("SIDSSatnogs",this.SIDSSatnogs);
+ conf.SetProperty("SIDSAMSAT",this.SIDSAMSAT);
+ conf.SetProperty("soundModemPort",this.soundModemPort);
+ conf.SetProperty("soundModemIP",this.soundModemIP);
+ conf.SetProperty("NoradID",""+this.Norad);
+ System.out.println("conf Norad" + this.Norad);
+ }
+
public String getCallsign() {
return callsign;
}
@@ -127,20 +166,36 @@ public class Configuration {
this.latitude = latitude;
}
- public String getSIDSEntrySatSource() {
- return SIDSEntrySatSource;
+ public String getSoundModemIP() {
+ return soundModemIP;
+ }
+
+ public void setSoundModemIP(String soundModemIP) {
+ this.soundModemIP = soundModemIP;
+ }
+
+ public String getSoundModemPort() {
+ return soundModemPort;
+ }
+
+ public void setSoundModemPort(String soundModemPort) {
+ this.soundModemPort = soundModemPort;
+ }
+
+ public String getSIDSAMSATSource() {
+ return SIDSAMSATSource;
}
- public void setSIDSEntrySatSource(String sIDSEntrySatSource) {
- SIDSEntrySatSource = sIDSEntrySatSource;
+ public void setSIDSAMSATSource(String sIDSAMSATSource) {
+ SIDSAMSATSource = sIDSAMSATSource;
}
- public String getSIDSEntryUrl() {
- return SIDSEntryUrl;
+ public String getSIDSAMSATUrl() {
+ return SIDSAMSATUrl;
}
- public void setSIDSEntryUrl(String sIDSEntryUrl) {
- SIDSEntryUrl = sIDSEntryUrl;
+ public void setSIDSAMSATUrl(String sIDSAMSATUrl) {
+ SIDSAMSATUrl = sIDSAMSATUrl;
}
public String getSIDSSatnogsSource() {
@@ -159,77 +214,32 @@ public class Configuration {
SIDSSatnogsURL = sIDSSatnogsURL;
}
- public String getSIDSSatnogs() {
- return SIDSSatnogs;
- }
-
- public void setSIDSSatnogs(String sIDSSatnogs) {
- SIDSSatnogs = sIDSSatnogs;
- if (SIDSSatnogs.contentEquals("1") )
- {
- SISD_SatNogs=true;
- } else
- {
- SISD_SatNogs=false;
- }
- }
-
- public String getSIDSEntrySat() {
- return SIDSEntrySat;
- }
-
- public void setSIDSEntrySat(String sIDSEntrySat) {
- SIDSEntrySat = sIDSEntrySat;
- if (SIDSEntrySat.contentEquals("1") )
- {
- SIDS_EntrySat=true;
- } else
- {
- SIDS_EntrySat=false;
- }
+ public int getNorad() {
+ return Norad;
}
- public String getSoundModemIP() {
- return soundModemIP;
+ public void setNorad(int norad) {
+ Norad = norad;
}
- public void setSoundModemIP(String soundModemIP) {
- this.soundModemIP = soundModemIP;
+ public boolean isSIDS_AMSAT() {
+ return SIDS_AMSAT;
}
- public String getSoundModemPort() {
- return soundModemPort;
- }
- public void setSoundModemPort(String soundModemPort) {
- this.soundModemPort = soundModemPort;
- }
- public void save() {
-
- conf.SetProperty("Callsign",callsign);
- conf.SetProperty("Latitude",latitude);
- conf.SetProperty("Longitude",longitude);
-
- conf.SetProperty("SIDSEntrySatSource",this.SIDSEntrySatSource);
- conf.SetProperty("SIDSEntryUrl",this.SIDSEntryUrl);
- conf.SetProperty("SIDSSatnogsSource",this.SIDSSatnogsSource);
- conf.SetProperty("SIDSSatnogsURL",this.SIDSSatnogsURL);
- conf.SetProperty("SIDSSatnogs",this.SIDSSatnogs);
- conf.SetProperty("SIDSEntrySat",this.SIDSEntrySat);
- conf.SetProperty("soundModemPort",this.soundModemPort);
- conf.SetProperty("soundModemIP",this.soundModemIP);
- conf.SetProperty("NoradID",""+this.Norad);
+ public CONFIG getConf() {
+ return conf;
}
- public int getNorad() {
-
- return Norad;
+ public void setConf(CONFIG conf) {
+ this.conf = conf;
}
- public void setNorad(int norad) {
-
- Norad=norad;
+ public void setSISD_SatNogs(boolean sISD_SatNogs) {
+ SISD_SatNogs = sISD_SatNogs;
}
+
+
}
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Controler.java b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Controler.java
index 8a9450ccf3dfc17a4ef2c06e5eb51a770e689574..0c0b7630545b3b79d79253025706ee1870712fee 100644
--- a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Controler.java
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/Controler.java
@@ -16,7 +16,20 @@ import javax.imageio.ImageIO;
import org.josast.ApplicationAmicalsat.util.LogFile;
import org.josast.ModuleSoundModem.SoundModemConfiguration;
import org.josast.SIDS.Station;
+import org.josast.amicalsat.A1FlagTypeFrame;
+import org.josast.amicalsat.A1GyroTypeFrame;
+import org.josast.amicalsat.A1MagTypeFrame;
+import org.josast.amicalsat.A1PositionTypeFrame;
+import org.josast.amicalsat.CuLogTypeFrame;
+import org.josast.amicalsat.EmLogTypeFrame;
+import org.josast.amicalsat.EmmnTypeFrame;
+import org.josast.amicalsat.FlagsTypeFrame;
import org.josast.amicalsat.Frame;
+import org.josast.amicalsat.M1LogTypeFrame;
+import org.josast.amicalsat.U2MsTypeFrame;
+import org.josast.amicalsat.U2RlTypeFrame;
+import org.josast.amicalsat.V1MsTypeFrame;
+import org.josast.amicalsat.V1RlTypeFrame;
import org.josast.javafx.AlertHelper;
import org.josast.propertyHttp.ConfigHttp;
@@ -42,15 +55,16 @@ import javafx.stage.Window;
import javafx.embed.swing.SwingFXUtils;
public class Controler {
-
+
private static final String LINE_SEPARATOR = "\r\n";
private static final int STATE_INIT = 0;
private static final int STATE_START = 1;
protected static final int STATE_STOP = 2;
private static final int STATE_SAVE = 3;
+
+ private static Logger appLogger = Logger.getLogger("AmsatLogger");
- private Logger appLogger = Logger.getLogger("AmicalSatLogger");
- private String version = "0.1";
+ private String version = "1.0";
@FXML
private Button ButtonStart;
@@ -130,9 +144,194 @@ public class Controler {
private Button ButtonSaveConfiguration;
@FXML
- TextField TextFieldSIDSEntrysat;
+ private TextField TextFieldSIDSEntrysat;
+ @FXML
+ private TextField TextFieldSIDSSatnogs;
+
+ @FXML
+ private TextField tfEMVin;
+ @FXML
+ private TextField tfERVin;
+
+ @FXML
+ private TextField tfM1Bootnumber;
+ @FXML
+ private TextField tfM1CPUvoltage;
+ @FXML
+ private TextField tfM1Uptime;
+ @FXML
+ private TextField tfM1CPUtemperature;
+ @FXML
+ private TextField tfM1HexFlag;
+
+ @FXML
+ private TextField tfMNEMtimestamps;
+ @FXML
+ private TextField tfMNERtimestamps;
+ @FXML
+ private TextField tfMNEMVin;
+ @FXML
+ private TextField tfMNERVin;
+ @FXML
+ private TextField tfMNEMIin;
+ @FXML
+ private TextField tfMNERIin;
+ @FXML
+ private TextField tfMNEMPin;
+ @FXML
+ private TextField tfMREMPin;
+ @FXML
+ private TextField tfMNEMPpeak;
+ @FXML
+ private TextField tfMNERPpeak;
+ @FXML
+ private TextField tfMNEMVsolar;
+ @FXML
+ private TextField tfMNERVsolar;
+ @FXML
+ private TextField tfMNEMTcpu;
+ @FXML
+ private TextField tfMNERTcpu;
+ @FXML
+ private TextField tfMNEMVcpu;
+ @FXML
+ private TextField tfMNERVcpu;
+
+ @FXML
+ private TextField tfDateCurrent;
+
+ @FXML
+ private TextField tfTypeCurrent;
+
+ @FXML
+ private TextField tfAreaCurrent;
+ @FXML
+ private TextField tfM1Logdate;
+ @FXML
+ private TextField tfM1Flagsdate;
+
+ @FXML
+ private TextField tfLOGEMtimestamps;
+ @FXML
+ private TextField tfLOGERtimestamps;
+ @FXML
+ private TextField tfLogEMBootnumber;
+ @FXML
+ private TextField tfLogEMInputvoltage;
+ @FXML
+ private TextField tfLogEMInputpower;
+ @FXML
+ private TextField tfLogEMPeakPower;
+ @FXML
+ private TextField tfLogERBootnumber;
+ @FXML
+ private TextField tfLogERInputvoltage;
+ @FXML
+ private TextField tfLogERInputpower;
+ @FXML
+ private TextField tfLogERPeakPower;
+ @FXML
+ private TextField tfLogEMSolarpanelvoltage;
+ @FXML
+ private TextField tfLogERSolarpanelvoltage;
+
+ @FXML
+ private TextField tfRLV1timeStamps;
+ @FXML
+ private TextField tfRLU2timeStamps;
+ @FXML
+ private TextField tfRLV1CPUvoltage;
+ @FXML
+ private TextField tfRLU2CPUvoltage;
+ @FXML
+ private TextField tfRLV1Batteryvoltage;
+ @FXML
+ private TextField tfRLU2Batteryvoltage;
+ @FXML
+ private TextField tfRLV1CPUtemperature;
+ @FXML
+ private TextField tfRLU2CPUtemperature;
+ @FXML
+ private TextField tfRLV1Amplifiertemperature;
+ @FXML
+ private TextField tfRLU2Amplifiertemperature;
+ @FXML
+ private TextField tfRLV1Flags;
+ @FXML
+ private TextField tfRLU2Flags;
+
+ @FXML
+ private TextField tfMSV1Currentrssi;
+ @FXML
+ private TextField tfMSU2Currentrssi;
+ @FXML
+ private TextField tfMSV1timeStamps;
+ @FXML
+ private TextField tfMSU2timeStamps;
+ @FXML
+ private TextField tfMSV1Latchrssi;
+ @FXML
+ private TextField tfMSU2Latchrssi;
+ @FXML
+ private TextField tfMSV1AFCoffset;
+ @FXML
+ private TextField tfMSU2AFCoffset;
+ @FXML
+ private TextField tfA1FLAGStimeSpamps;
+ @FXML
+ private TextField tfA1FLAGmode;
+ @FXML
+ private TextField tfA1FLAGflags;
+ @FXML
+ private TextField tfA1FLAGfaults;
+ @FXML
+ private TextField tfA1MAGStimeSpamps;
+ @FXML
+ private TextField tfA1MAGMagX;
+ @FXML
+ private TextField tfA1MAGMagY;
+ @FXML
+ private TextField tfA1MAGMagZ;
+ @FXML
+ private TextField tfA1GIROStimeSpamps;
+ @FXML
+ private TextField tfA1GIROGyroX;
+ @FXML
+ private TextField tfA1GIROGyroY;
+ @FXML
+ private TextField tfA1GIROGyroZ;
+ @FXML
+ private TextField tfA1POSITIONStimeSpamps;
+ @FXML
+ private TextField tfA1POSITIONLatitude;
@FXML
- TextField TextFieldSIDSSatnogs;
+ private TextField tfA1POSITIONLongitude;
+ @FXML
+ private TextField tfCURLOGtimeStamps;
+ @FXML
+ private TextField tfCURLOGCPUvoltage;
+ @FXML
+ private TextField tfCURLOGCPUtemperature;
+ @FXML
+ private TextField tfCURLOGflags;
+ @FXML
+ private TextField tfCULROGtimeStamps;
+ @FXML
+ private TextField tfCULLOGCPUvoltage;
+ @FXML
+ private TextField tfCULLOGCPUtemperature;
+ @FXML
+ private TextField tfCULLOGflags;
+ @FXML
+ private TextField tfCURONYXtimeStamps;
+ @FXML
+ private TextField tfCULONYXtimeStamps;
+ @FXML
+ private TextField tfCURONYXReturnvalue;
+ @FXML
+ private TextField tfCULONYXReturnvalue;
+ @FXML
+ private TextField tfMNERPin;
Stage primaryStage = null;
@@ -146,18 +345,15 @@ public class Controler {
private TaskSoundmodemTCP task;
private SendSIDS SendSIDSSatnogs;
- private SendSIDS SendSIDSEntrysat;
- private PrintWriter pw;
- private LogFile logfile=null;
-
+ private SendSIDS SendSIDSMVPAmsat;
+ private LogFile logfile = null;
@FXML
private void HandleSaveConfiguration(ActionEvent event) {
-
+
String erreurmsg = null;
String Callsign = null;
-
-
+
if (TextFieldCallsign.getText().isEmpty()) {
erreurmsg += "please enter a CallSign \r\n";
} else {
@@ -176,7 +372,8 @@ public class Controler {
}
if (erreurmsg != null) {
Window owner = ButtonSaveConfiguration.getScene().getWindow();
- AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Form Error!", erreurmsg);
+ AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Form Error!",
+ erreurmsg);
return;
}
@@ -188,84 +385,95 @@ public class Controler {
conf.setLatitude(Latitude);
conf.setLongitude(Longitude);
- conf.setSIDSEntrySatSource(TextFieldSIDSEntrysat.getText());
+ conf.setSIDSAMSATSource(TextFieldSIDSEntrysat.getText());
conf.setSIDSSatnogsSource(TextFieldSIDSSatnogs.getText());
conf.setSoundModemIP(FieldIP.getText());
conf.setSoundModemPort(FieldPort.getText());
- Station StationSatnogs = new Station(conf.getSIDSSatnogsSource(), station.getLongitude(),
- station.getLatitude());
- Station StationEntry = new Station(conf.getSIDSEntrySatSource(), station.getLongitude(), station.getLatitude());
+ Station StationSatnogs = new Station(conf.getSIDSSatnogsSource(),
+ station.getLongitude(), station.getLatitude());
+ Station StationEntry = new Station(conf.getSIDSAMSATSource(),
+ station.getLongitude(), station.getLatitude());
if (CheckbBoxAmicalSat.isSelected() == true) {
- conf.setSIDSEntrySat("1");
- SendSIDSEntrysat = new SendSIDS(StationEntry, conf.getNorad(), conf.getSIDSEntryUrl());
+ conf.setSIDSAMSAT("1");
+ SendSIDSMVPAmsat = new SendSIDS(StationEntry, conf.getNorad(),
+ conf.getSIDSAMSATUrl());
} else {
- conf.setSIDSEntrySat("0");
+ conf.setSIDSAMSAT("0");
}
if (CheckBoxSatNogs.isSelected() == true) {
conf.setSIDSSatnogs("1");
- SendSIDSSatnogs = new SendSIDS(StationSatnogs, conf.getNorad(), conf.getSIDSSatnogsURL());
+ SendSIDSSatnogs = new SendSIDS(StationSatnogs, conf.getNorad(),
+ conf.getSIDSSatnogsURL());
} else {
conf.setSIDSSatnogs("0");
}
conf.save();
- manageStatusinformation("Configuration Saved","Configuration Saved");
-
+ manageStatusinformation("Configuration Saved", "Configuration Saved");
+
}
@FXML
private void handleStart(ActionEvent event) {
-
- manageStatusinformation("Connected to modem","Connection to modem");
+ manageStatusinformation("Connected to modem", "Connection to modem");
manageStateMMI(STATE_START);
-
- // TODO : to improve
+
+ // TODO : to improve
SoundModemConfiguration smc = new SoundModemConfiguration("default");
smc.setSmIPadress(FieldIP.getText());
smc.setSmPort(Integer.parseInt(FieldPort.getText()));
-
-
+
if (task == null) {
- receivedFrame.addPropertyChangeListener(new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- final Frame decodedData = receivedFrame.getLastDecodedData();
- if (conf.isSIDS_EntrySat()) {
- // Generation SIDS
- }
- Platform.runLater(new Runnable() {
+ receivedFrame
+ .addPropertyChangeListener(new PropertyChangeListener() {
@Override
- public void run() {
- try {
-
- if (decodedData != null) {
- displayLog(decodedData.toStringHeader());
- displayLog(decodedData.toString());
- updateFrame(receivedFrame.getNumberFrame());
-
- } else {
- displayLog("received frame : null");
+ public void propertyChange(PropertyChangeEvent evt) {
+ final Frame decodedData = receivedFrame
+ .getLastDecodedData();
+ Platform.runLater(new Runnable() {
+ @Override
+ public void run() {
+ try {
+
+ if (decodedData != null) {
+ displayLog(decodedData
+ .toStringHeader());
+ displayLog(decodedData.toString());
+ displayLog(decodedData
+ .toStringDecoded());
+ DecodedData.appendText(decodedData
+ .toStringDecoded()
+ + "\r\n");
+ updateFrame(receivedFrame
+ .getNumberFrame());
+ UpdateDecodedData(decodedData);
+ SendSids(receivedFrame.getLastReceivedData());
+
+ } else {
+ displayLog(
+ "received frame : null");
+ }
+
+ } catch (Exception e) {
+ displayLog("Run - error");
+ displayLog(e.toString());
+ e.printStackTrace();
+ }
+
}
- } catch (Exception e) {
- displayLog("Run - error");
- displayLog(e.toString());
- e.printStackTrace();
- }
+ });
}
- });
- }
-
- }
+ }
- );
+ );
}
task = new TaskSoundmodemTCP(smc, receivedFrame);
@@ -275,10 +483,11 @@ public class Controler {
@Override
public void handle(WorkerStateEvent event) {
// La tache s'est correctement terminee.
- manageStatusinformation("KISS TCP CONNECTION FAILED","KISS TCP DISCONNECTED");
+ manageStatusinformation("KISS TCP CONNECTION FAILED",
+ "KISS TCP DISCONNECTED");
manageStateMMI(STATE_STOP);
- }
+ }
});
@@ -287,7 +496,8 @@ public class Controler {
@Override
public void handle(WorkerStateEvent event) {
// La tache s'est correctement terminee.
- manageStatusinformation("KISS TCP CONNECTION FAILED","KISS TCP DISCONNECTED - Connection failed");
+ manageStatusinformation("KISS TCP CONNECTION FAILED",
+ "KISS TCP DISCONNECTED - Connection failed");
displayLog(event.toString());
displayLog(event.getSource().toString());
manageStateMMI(STATE_STOP);
@@ -306,21 +516,19 @@ public class Controler {
manageStateMMI(STATE_STOP);
task.arreter();
- manageStatusinformation("Stop received data","Stop task to receive telemetrie");
+ manageStatusinformation("Stop received data",
+ "Stop task to receive telemetrie");
}
@FXML
private void handleSave(ActionEvent event) {
-
manageStateMMI(STATE_SAVE);
- manageStatusinformation("save data","save Telemetry in file");
+ manageStatusinformation("save data", "save Telemetry in file");
saveDataFile();
- manageStatusinformation("Data Saved","Telemetry Data saved in file");
+ manageStatusinformation("Data Saved", "Telemetry Data saved in file");
}
-
-
@FXML
private void HandleIP(ActionEvent event) {
}
@@ -329,16 +537,14 @@ public class Controler {
private void HandlePort(ActionEvent event) {
}
-
-
public void initMMI() {
-
logfile = new LogFile();
// initialise le log
- // initdisplayLogFile();
+ // initdisplayLogFile();
- manageStatusinformation("Initialised","ENTRY SAT - LOG \r\n Initialise application") ;
+ manageStatusinformation("Initialised",
+ "AMICALSAT DECODER - LOG \r\n Initialise application");
appLogger.warning("Initialise ");
primaryStage.setTitle("AmicalSat Decoder - " + version);
@@ -350,11 +556,10 @@ public class Controler {
TextFieldLatitude.setText(station.getLatitude());
TextFieldLongitude.setText(station.getLongitude());
- TextFieldSIDSEntrysat.setText(conf.getSIDSEntrySatSource());
+ TextFieldSIDSEntrysat.setText(conf.getSIDSAMSATSource());
TextFieldSIDSSatnogs.setText(conf.getSIDSSatnogsSource());
-
- if (conf.isSIDS_EntrySat()) {
+ if (conf.isSIDS_AMSAT()) {
CheckbBoxAmicalSat.setSelected(true);
}
if (conf.isSISD_SatNogs()) {
@@ -362,17 +567,17 @@ public class Controler {
}
displayLog(conf.getSIDSSatnogsURL());
- displayLog(conf.getSIDSEntryUrl());
+ displayLog(conf.getSIDSAMSATUrl());
displayLog("Initialisation with Properties File Done ");
BufferedImage bufferedImage1 = null;
BufferedImage bufferedImage2 = null;
try {
-
-
+
bufferedImage1 = ImageIO.read(getClass().getResource((imgAmsat)));
- bufferedImage2 = ImageIO.read(getClass().getResource((imgAmicalsat)));
+ bufferedImage2 = ImageIO
+ .read(getClass().getResource((imgAmicalsat)));
} catch (IOException e) {
appLogger.severe("Error loading Image resources");
@@ -381,47 +586,51 @@ public class Controler {
Image imageamsat = SwingFXUtils.toFXImage(bufferedImage1, null);
ImageViewAMSAT.setImage(imageamsat);
Image imgQB = SwingFXUtils.toFXImage(bufferedImage2, null);
- imageViewEntrysat.setImage(imgQB);
+ imageViewEntrysat.setImage(imgQB);
-
- ConfigHttp c = new ConfigHttp("http://site.amsat-f.org/download/117168/");
+ ConfigHttp c = new ConfigHttp(
+ "http://site.amsat-f.org/download/117168/");
String ver;
String message;
- int NoradIdConf=conf.getNorad();
- if(c.isConnected())
- {
- ver = c.GetProperty("AmicalsatVersion");
- message = c.GetProperty("Message");
- NoradIdConf= Integer.parseUnsignedInt(c.GetProperty("NoradID").trim());
- }
- else
- {
+ int NoradIdConf = conf.getNorad();
+ if (c.isConnected()) {
+ ver = c.GetProperty("AmicalsatVersion");
+ message = c.GetProperty("Message");
+ NoradIdConf = Integer
+ .parseUnsignedInt(c.GetProperty("NoradID").trim());
+ } else {
ver = version;
message = "not connected to internet";
}
- if (NoradIdConf!=conf.getNorad())
+ if (NoradIdConf != 0)
{
- conf.setNorad(NoradIdConf);
- conf.save();
- displayLog("Norad ID updated ");
+ // ID norad attribué - mise à jours du logiciel
+ if (NoradIdConf != conf.getNorad()) {
+ conf.setNorad(NoradIdConf);
+ conf.save();
+ displayLog("Norad ID updated ");
+ }
}
-
+
manageStateMMI(STATE_INIT);
- manageStatusinformation("Application Ready","Application initialised") ;
+ manageStatusinformation("Application Ready", "Application initialised");
this.LabelInformation.setText("");
// initialise SIDS
- Station StationSatnogs = new Station(conf.getSIDSSatnogsSource(), station.getLongitude(),
- station.getLatitude());
- Station StationEntry = new Station(conf.getSIDSEntrySatSource(), station.getLongitude(), station.getLatitude());
+ Station StationSatnogs = new Station(conf.getSIDSSatnogsSource(),
+ station.getLongitude(), station.getLatitude());
+ Station StationEntry = new Station(conf.getSIDSAMSATSource(),
+ station.getLongitude(), station.getLatitude());
if (conf.isSISD_SatNogs() == true) {
- SendSIDSSatnogs = new SendSIDS(StationSatnogs, conf.getNorad(), conf.getSIDSSatnogsURL());
+ SendSIDSSatnogs = new SendSIDS(StationSatnogs, conf.getNorad(),
+ conf.getSIDSSatnogsURL());
}
- if (conf.isSIDS_EntrySat() == true) {
- SendSIDSEntrysat = new SendSIDS(StationEntry, conf.getNorad(), conf.getSIDSEntryUrl());
+ if (conf.isSIDS_AMSAT() == true) {
+ SendSIDSMVPAmsat = new SendSIDS(StationEntry, conf.getNorad(),
+ conf.getSIDSAMSATUrl());
}
String erreurmsg = message;
@@ -438,16 +647,16 @@ public class Controler {
this.primaryStage = primaryStage;
}
-
-
+
/**
- * Save telemetry data received in text file. The file is stored in data folder.
+ * Save telemetry data received in text file. The file is stored in data
+ * folder.
*/
public void saveDataFile() {
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd-HHmmss");
Date aujourdhui = new Date();
- //
+ //
String path = System.getProperty("user.dir") + "/data";
File apath = new File(path);
@@ -463,9 +672,10 @@ public class Controler {
long NbFrame = receivedFrame.getNumberFrame();
try {
- pw = new PrintWriter(new FileWriter(path + "/" + formater.format(aujourdhui) + "-tlm-Hexa.txt"));
+ pw = new PrintWriter(new FileWriter(path + "/"
+ + formater.format(aujourdhui) + "-tlm-Hexa.txt"));
for (int i = 0; i < NbFrame; i++) {
- // pw.write(receivedFrame.getFrame(i));
+ pw.write(receivedFrame.getRawFrame(i));
pw.write(LINE_SEPARATOR);
}
@@ -482,48 +692,326 @@ public class Controler {
}
-
private void displayLog(String log) {
-
+ appLogger.info(log);
logfile.displayLog(log);
TexAreaLog.appendText(log);
TexAreaLog.appendText("\r\n");
}
-
-
- private void manageStateMMI(int state)
- {
+ private void manageStateMMI(int state) {
switch (state) {
- case STATE_INIT :
- ButtonStop.setDisable(true);
- ButtonStart.setDisable(false);
- ButtonSave.setDisable(true);
- break;
- case STATE_START :
- ButtonStop.setDisable(false);
- ButtonStart.setDisable(true);
- ButtonSave.setDisable(false);
- break;
- case STATE_STOP :
- ButtonStop.setDisable(true);
- ButtonStart.setDisable(false);
- ButtonSave.setDisable(false);
- break;
- case STATE_SAVE :
- ButtonStop.setDisable(true);
- ButtonStart.setDisable(false);
- ButtonSave.setDisable(true);
- break;
-
-
+ case STATE_INIT:
+ ButtonStop.setDisable(true);
+ ButtonStart.setDisable(false);
+ ButtonSave.setDisable(true);
+ break;
+ case STATE_START:
+ ButtonStop.setDisable(false);
+ ButtonStart.setDisable(true);
+ ButtonSave.setDisable(false);
+ break;
+ case STATE_STOP:
+ ButtonStop.setDisable(true);
+ ButtonStart.setDisable(false);
+ ButtonSave.setDisable(false);
+ break;
+ case STATE_SAVE:
+ ButtonStop.setDisable(true);
+ ButtonStart.setDisable(false);
+ ButtonSave.setDisable(true);
+ break;
+ default :
+ ButtonStop.setDisable(true);
+ ButtonStart.setDisable(false);
+ ButtonSave.setDisable(false);
+ break;
}
}
-
- private void manageStatusinformation(String statusMessage, String logMessage) {
+
+ private void manageStatusinformation(String statusMessage,
+ String logMessage) {
labelStatus.setText(statusMessage);
displayLog(logMessage);
+
+ }
+
+ private void UpdateDecodedData(Frame decodedData) {
+
+ String tlmArea = decodedData.getTlmArea();
+ String typeFrame = decodedData.getTypeFrame();
+
+ tfDateCurrent.setText(decodedData.getTimseStampsGregorian());
+ tfTypeCurrent.setText(typeFrame);
+ tfAreaCurrent.setText(tlmArea);
+
+ if (tlmArea.compareTo("M1") == 0) {
+
+ if (typeFrame.compareTo("LOG") == 0) {
+
+ M1LogTypeFrame m1LogTypeFrame = (M1LogTypeFrame) decodedData;
+ tfM1Logdate
+ .setText("" + m1LogTypeFrame.getTimseStampsGregorian());
+ tfM1Bootnumber
+ .setText("" + m1LogTypeFrame.getBootNumberValue());
+ tfM1CPUvoltage.setText("" + m1LogTypeFrame.getCpuVoltageVolt());
+ tfM1Uptime.setText("" + m1LogTypeFrame.getUpTimeSec());
+ tfM1CPUtemperature
+ .setText("" + m1LogTypeFrame.getCpuTemperatureDegree());
+
+ }
+
+ if (typeFrame.compareTo("FLAGS") == 0) {
+
+ FlagsTypeFrame m1FlagsTypeFrame = (FlagsTypeFrame) decodedData;
+ tfM1Flagsdate.setText(""+ m1FlagsTypeFrame.getTimseStampsGregorian());
+ tfM1HexFlag.setText(m1FlagsTypeFrame.getHexFlags());
+// frame = new FlagsTypeFrame();
+
+ }
+ }
+
+ if (tlmArea.compareTo("A1") == 0) {
+
+ if (typeFrame.compareTo("FLAGS") == 0) {
+
+ A1FlagTypeFrame a1FlagTypeFrame = (A1FlagTypeFrame) decodedData;
+ tfA1FLAGStimeSpamps
+ .setText(a1FlagTypeFrame.getTimseStampsGregorian());
+ ;
+ tfA1FLAGmode.setText(a1FlagTypeFrame.getMode());
+ tfA1FLAGflags.setText(a1FlagTypeFrame.getA1Flags());
+ tfA1FLAGfaults.setText("" + a1FlagTypeFrame.getFaultsValue());
+// frame = new A1FlagTypeFrame();
+ }
+
+ if (typeFrame.compareTo("MAG") == 0) {
+// frame = new A1MagTypeFrame();
+
+ A1MagTypeFrame a1MagTypeFrame = (A1MagTypeFrame) decodedData;
+ tfA1MAGStimeSpamps
+ .setText(a1MagTypeFrame.getTimseStampsGregorian());
+ tfA1MAGMagX.setText("" + a1MagTypeFrame.getMagXValue());
+ tfA1MAGMagY.setText("" + a1MagTypeFrame.getMagYValue());
+ tfA1MAGMagZ.setText("" + a1MagTypeFrame.getMagZValue());
+
+ }
+
+ if (typeFrame.compareTo("GYRO") == 0) {
+
+ A1GyroTypeFrame a1GyroTypeFrame = (A1GyroTypeFrame) decodedData;
+ tfA1GIROStimeSpamps
+ .setText(a1GyroTypeFrame.getTimseStampsGregorian());
+ tfA1GIROGyroX.setText("" + a1GyroTypeFrame.getGyroXValue());
+ tfA1GIROGyroY.setText("" + a1GyroTypeFrame.getGyroYValue());
+ tfA1GIROGyroZ.setText("" + a1GyroTypeFrame.getGyroZValue());
+
+ }
+ // # #A1;POSITION;[Current timestamp];[Latitude];[Longitude]
+ if (typeFrame.compareTo("POSITION") == 0) {
+
+ A1PositionTypeFrame a1PositionTypeFrame = (A1PositionTypeFrame) decodedData;
+ tfA1POSITIONStimeSpamps
+ .setText(a1PositionTypeFrame.getTimseStampsGregorian());
+ tfA1POSITIONLatitude.setText(a1PositionTypeFrame.getLatitude());
+
+ tfA1POSITIONLongitude
+ .setText(a1PositionTypeFrame.getLongitude());
+
+ }
+ }
+ if (tlmArea.compareTo("EM") == 0) {
+
+ if (typeFrame.compareTo("MN") == 0) {
+
+ EmmnTypeFrame emmnTypeFrame = (EmmnTypeFrame) decodedData;
+ tfMNEMtimestamps
+ .setText(emmnTypeFrame.getTimseStampsGregorian());
+ tfMNEMVin.setText("" + emmnTypeFrame.getvInVolt());
+ tfMNEMIin.setText("" + emmnTypeFrame.getiInMa());
+ tfMNEMPin.setText("" + emmnTypeFrame.getpInMw());
+ tfMNEMPpeak.setText("" + emmnTypeFrame.getpPeakMw());
+ tfMNEMVsolar.setText("" + emmnTypeFrame.getvSolarVolt());
+ tfMNEMTcpu.setText("" + emmnTypeFrame.gettCpuDegree());
+ tfMNEMVcpu.setText("" + emmnTypeFrame.getvCpuVolt());
+
+ }
+
+ if (typeFrame.compareTo("LOG") == 0) {
+ EmLogTypeFrame emLogTypeFrame = (EmLogTypeFrame) decodedData;
+
+ tfLOGEMtimestamps
+ .setText(emLogTypeFrame.getTimseStampsGregorian());
+ tfLogEMBootnumber
+ .setText("" + emLogTypeFrame.getBootNumberInt());
+ tfLogEMInputvoltage
+ .setText("" + emLogTypeFrame.getInputVoltageVolt());
+ tfLogEMInputpower
+ .setText("" + emLogTypeFrame.getInputPowerMw());
+ tfLogEMPeakPower.setText("" + emLogTypeFrame.getPeakPowerMw());
+ tfLogEMSolarpanelvoltage.setText(
+ "" + emLogTypeFrame.getSolarPanelVoltageVolt());
+
+ }
+
+ }
+
+ if (tlmArea.compareTo("CU_R") == 0) {
+
+ if (typeFrame.compareTo("LOG") == 0) {
+ CuLogTypeFrame cuLogTypeFrame = (CuLogTypeFrame) decodedData;
+
+ tfCURLOGtimeStamps
+ .setText(cuLogTypeFrame.getTimseStampsGregorian());
+ tfCURLOGCPUvoltage
+ .setText("" + cuLogTypeFrame.getCpuVoltageVolt());
+ tfCURLOGCPUtemperature
+ .setText("" + cuLogTypeFrame.getCpuTemperatureDegree());
+ tfCURLOGflags.setText(cuLogTypeFrame.getFlags());
+
+ }
+ }
+
+ if (tlmArea.compareTo("CU_L") == 0) {
+
+ if (typeFrame.compareTo("LOG") == 0) {
+
+ CuLogTypeFrame cuLogTypeFrame = (CuLogTypeFrame) decodedData;
+
+ tfCULROGtimeStamps
+ .setText(cuLogTypeFrame.getTimseStampsGregorian());
+ tfCULLOGCPUvoltage
+ .setText("" + cuLogTypeFrame.getCpuVoltageVolt());
+ tfCULLOGCPUtemperature
+ .setText("" + cuLogTypeFrame.getCpuTemperatureDegree());
+ tfCULLOGflags.setText(cuLogTypeFrame.getFlags());
+
+ }
+ }
+
+ if (tlmArea.compareTo("V1") == 0) {
+
+ // #[V1/U2];MS;[Timestamp];[Current rssi];[Latch rssi];[AFC offset ]
+
+ if (typeFrame.compareTo("MS") == 0) {
+
+ V1MsTypeFrame v1MsTypeFrame = (V1MsTypeFrame) decodedData;
+
+ tfMSV1timeStamps
+ .setText(v1MsTypeFrame.getTimseStampsGregorian());
+ tfMSV1Currentrssi
+ .setText("" + v1MsTypeFrame.getCurrentRssiMa());
+
+ tfMSV1Latchrssi.setText("" + v1MsTypeFrame.getLatchRssiValue());
+ tfMSV1AFCoffset.setText("" + v1MsTypeFrame.getaFCOffsetValue());
+
+ }
+
+ if (typeFrame.compareTo("RL") == 0) {
+// frame = new V1RlTypeFrame();
+ V1RlTypeFrame v1RlTypeFrame = (V1RlTypeFrame) decodedData;
+
+ tfRLV1timeStamps
+ .setText(v1RlTypeFrame.getTimseStampsGregorian());
+ tfRLV1CPUvoltage
+ .setText("" + v1RlTypeFrame.getCpuVoltageVolt());
+ tfRLV1Batteryvoltage
+ .setText("" + v1RlTypeFrame.getBatteryVoltageVolt());
+ tfRLV1CPUtemperature
+ .setText("" + v1RlTypeFrame.getCpuTemperatureDegree());
+ tfRLV1Amplifiertemperature.setText(
+ "" + v1RlTypeFrame.getAmplifierTemperatureDegree());
+ tfRLV1Flags.setText("" + v1RlTypeFrame.getFlagsHexa());
+
+ }
+ }
+
+ if (tlmArea.compareTo("U2") == 0) {
+
+ // #[V1/U2];MS;[Timestamp];[Current rssi];[Latch rssi];[AFC offset ]
+ if (typeFrame.compareTo("MS") == 0) {
+ // frame = new U2MsTypeFrame();
+
+ U2MsTypeFrame u2MsTypeFrame = (U2MsTypeFrame) decodedData;
+ tfMSU2timeStamps
+ .setText(u2MsTypeFrame.getTimseStampsGregorian());
+ tfMSU2Currentrssi
+ .setText("" + u2MsTypeFrame.getCurrentRssiMa());
+ tfMSU2Latchrssi.setText("" + u2MsTypeFrame.getLatchRssiValue());
+ tfMSU2AFCoffset.setText("" + u2MsTypeFrame.getaFCOffsetValue());
+
+ }
+ // #[U2];RL;[Timestamp],[CPU voltage];[Battery voltage];[CPU
+ // temperature];[Amplifier temperature];[Flags]
+ if (typeFrame.compareTo("RL") == 0) {
+
+ U2RlTypeFrame u2RlTypeFrame = (U2RlTypeFrame) decodedData;
+
+ tfRLU2timeStamps
+ .setText(u2RlTypeFrame.getTimseStampsGregorian());
+ tfRLU2CPUvoltage
+ .setText("" + u2RlTypeFrame.getCpuVoltageVolt());
+ tfRLU2Batteryvoltage
+ .setText("" + u2RlTypeFrame.getBatteryVoltageVolt());
+ tfRLU2CPUtemperature
+ .setText("" + u2RlTypeFrame.getCpuTemperatureDegree());
+ tfRLU2Amplifiertemperature.setText(
+ "" + u2RlTypeFrame.getAmplifierTemperatureDegree());
+ tfRLU2Flags.setText("" + u2RlTypeFrame.getFlagsHexa());
+
+ }
+
+ }
+
+ if (tlmArea.compareTo("ER") == 0) {
+
+ // #[V1/U2];MS;[Timestamp];[Current rssi];[Latch rssi];[AFC offset ]
+ if (typeFrame.compareTo("LOG") == 0) {
+ EmLogTypeFrame emLogTypeFrame = (EmLogTypeFrame) decodedData;
+
+ tfLOGERtimestamps
+ .setText(emLogTypeFrame.getTimseStampsGregorian());
+ tfLogERBootnumber
+ .setText("" + emLogTypeFrame.getBootNumberInt());
+ tfLogERInputvoltage
+ .setText("" + emLogTypeFrame.getInputVoltageVolt());
+ tfLogERInputpower
+ .setText("" + emLogTypeFrame.getInputPowerMw());
+ tfLogERPeakPower.setText("" + emLogTypeFrame.getPeakPowerMw());
+ tfLogERSolarpanelvoltage.setText(
+ "" + emLogTypeFrame.getSolarPanelVoltageVolt());
+
+ }
+ if (typeFrame.compareTo("MN") == 0) {
+
+ EmmnTypeFrame emmnTypeFrame = (EmmnTypeFrame) decodedData;
+ tfMNERtimestamps
+ .setText(emmnTypeFrame.getTimseStampsGregorian());
+ tfMNERVin.setText("" + emmnTypeFrame.getvInVolt());
+ tfMNERIin.setText("" + emmnTypeFrame.getiInMa());
+ tfMNERPin.setText("" + emmnTypeFrame.getpInMw());
+ tfMNERPpeak.setText("" + emmnTypeFrame.getpPeakMw());
+ tfMNERVsolar.setText("" + emmnTypeFrame.getvSolarVolt());
+ tfMNERTcpu.setText("" + emmnTypeFrame.gettCpuDegree());
+ tfMNERVcpu.setText("" + emmnTypeFrame.getvCpuVolt());
+
+ }
+ }
+
+ }
+
+ private void SendSids(ReceivedData receivedData) {
+ if (conf.isSIDS_AMSAT() == true) {
+ int results = SendSIDSMVPAmsat.Send(receivedData);
+ displayLog("Send SIDS AMSAT-F Database ; "+results);
+ }
+
+ if (conf.isSISD_SatNogs() == true) {
+ int results = SendSIDSSatnogs.Send(receivedData);
+ displayLog("Send SIDS SatNogs Database : "+results );
+ }
}
+
}
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/ModelReceivedData.java b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/ModelReceivedData.java
index 79ee371740e2ccf37ff39500d1aebf9e69963ed3..c47b6069a807f934302608845e4779ff935d0e1b 100644
--- a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/ModelReceivedData.java
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/ModelReceivedData.java
@@ -51,27 +51,6 @@ public class ModelReceivedData {
- @Deprecated
- public void addFrame(int size, byte[] data) {
-// long oldNumberFrame = numberFrame;
-// numberFrame++;
-// try {
-// // try to decode
-// FrameTlmEntrySat frame = new FrameTlmEntrySat(new ByteBufferKaitaiStream (cbuf) );
-// Ax25Frame ax = frame.frameTlmEntrySat();
-// // System.out.println(ax.ax25Header().srcCallsignRaw().srcCallsignRor().srcCallsign());
-// vect.addElement(frame);
-// EntryFrame EntryFrame = new EntryFrame(new Date(), new KissData(cbuf, nb));
-// vecKiss.addElement(EntryFrame);
-//
-//
-// } catch (Exception e)
-// {
-// e.printStackTrace();
-// }
-
- }
-
public void addFrame(byte[] received) {
long oldNumberFrame = numberFrame;
numberFrame++;
@@ -82,6 +61,11 @@ public class ModelReceivedData {
}
+ public String getRawFrame(int i) {
+
+ return vecRawData.get(i).toString();
+ }
+
}
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/ReceivedData.java b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/ReceivedData.java
index c7b81fc93ddb5444c2244e65c5a6a959303290d2..4ccb059f28fb8a4a2149d4e0c397494b216ac6a4 100644
--- a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/ReceivedData.java
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/ReceivedData.java
@@ -23,6 +23,14 @@ public class ReceivedData {
}
+ public byte[] getData() {
+ return data;
+ }
+
+ public void setData(byte[] data) {
+ this.data = data;
+ }
+
@Override
public String toString() {
return "Frame [time=" + time + "][ Frame=" + new String(data) + "]";
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/SendSIDS.java b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/SendSIDS.java
index e17264069974109ea4db6c8d2520c8d041dca991..a2171159ad796cd9c014d74c111dfe8af6d66c53 100644
--- a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/SendSIDS.java
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/SendSIDS.java
@@ -1,5 +1,8 @@
package org.josast.ApplicationAmicalsat;
+import java.math.BigInteger;
+import java.util.logging.Logger;
+
import org.josast.SIDS.HttpPostSIDS;
import org.josast.SIDS.SIDSData;
import org.josast.SIDS.Station;
@@ -10,7 +13,8 @@ import org.josast.SIDS.Station;
*
*/
public class SendSIDS {
-
+
+ private static Logger appLogger = Logger.getLogger("AmsatLogger");
SIDSData sids = new SIDSData();
HttpPostSIDS client;
@@ -27,8 +31,10 @@ public class SendSIDS {
{
//BasicConfigurator.configure();
-// sids.setTelemetryData(data.getTime(),data.getFrame().toString());
- System.out.println(sids.toStringBasic());
+ // transforme en hexa String
+ String hexaString = new BigInteger(1, data.getData()).toString(16);
+ sids.setTelemetryData(data.getTime(),hexaString);
+ appLogger.info(sids.toStringBasic());
int result = client.SendSIDSBasic(sids);
return result;
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/TaskSoundmodemTCP.java b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/TaskSoundmodemTCP.java
index 66af40fbbe6d55de67a2306c449110e3da7f8f49..1330ccd9c53f2b803874d13337252e1b550da82c 100644
--- a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/TaskSoundmodemTCP.java
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/TaskSoundmodemTCP.java
@@ -10,7 +10,7 @@ import javafx.concurrent.Task;
public class TaskSoundmodemTCP extends Task {
- private Logger log = Logger.getLogger("AmicalSatLogger");
+ private Logger log = Logger.getLogger("AmsatLogger");
private volatile boolean running = true;
@@ -51,10 +51,16 @@ public class TaskSoundmodemTCP extends Task {
try {
while (running == true) {
- byte[] temp = smc.receivedRawData();
- receivedFrame.addFrame(temp);
- this.updateValue(receivedFrame.toString());
-
+ if(smc.isOpen())
+ {
+ byte[] temp = smc.receivedRawData();
+ receivedFrame.addFrame(temp);
+ this.updateValue(receivedFrame.toString());
+ } else
+ {
+ this.running=false;
+ log.severe("Erreur SoundModem closed");
+ }
}
} catch (Exception e) {
log.severe("Erreur SoundModem not available");
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/boot.css b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/boot.css
new file mode 100644
index 0000000000000000000000000000000000000000..25a15c646a78bfa1ab291098d973fa45137683ae
--- /dev/null
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/boot.css
@@ -0,0 +1,930 @@
+.root {
+ -fx-body-color : #F5F5F5;
+ -fx-outer-border : #cecece;
+}
+.button:focused, .toggle-button:focused,
+.split-menu-button:focused, .menu-button:focused,
+.number-button:focused,
+.combo-box:focused .text-field, .choice-box:focused, .color-picker:focused, .date-picker:focused .text-field
+{
+ -fx-effect: dropshadow(gaussian, #b4d1f3, 3, 3, 0, 0);
+}
+.combo-box:focused * {
+ -fx-effect: none;
+}
+
+.button,.menu-button,.toggle-button,.split-menu-button {
+ -fx-font-size: 14;
+ -fx-background-radius: 4;
+ -fx-border-radius: 4;
+ -fx-pref-height: 30;
+ -fx-min-width: 30;
+}
+.button,.menu-button,.split-menu-button,.toggle-button,.number-button {
+ -fx-background-insets: 0, 0, -1, 0;
+}
+
+.split-menu-button > .label {
+ -fx-border-radius: 4 0 0 4;
+ -fx-background-radius: 3 0 0 3;
+}
+
+.split-menu-button > .arrow-button {
+ -fx-border-radius: 0 4 4 0;
+ -fx-background-radius: 0 3 3 0;
+}
+
+.lg {
+ -fx-min-height: 46;
+ -fx-max-height: 46;
+ -fx-font-size: 18;
+}
+
+.sm {
+ -fx-min-height: 30;
+ -fx-max-height: 30;
+}
+
+.xs {
+ -fx-min-height: 22;
+ -fx-max-height: 22;
+ -fx-font-size: 10;
+}
+
+.primary .arrow,
+.success .arrow,
+.info .arrow,
+.warning .arrow,
+.danger .arrow {
+ -fx-background-color: transparent, white;
+}
+
+.primary > .label,
+.success > .label,
+.info > .label,
+.warning > .label,
+.danger > .label {
+ -fx-text-fill: white;
+}
+
+.action-btn {
+ -fx-min-width: 80;
+}
+
+/*positions*/
+/*first*/
+.button.first, .menu-button.first, .toggle-button.first, .text-field.first, .text-area.first {
+ -fx-border-radius: 4 0 0 4;
+ -fx-background-radius: 4 0 0 4;
+}
+
+.split-menu-button.first > .arrow-button, .split-menu-button.middle > .arrow-button {
+ -fx-border-radius: 0;
+ -fx-background-radius: 0;
+}
+
+VBox > .button.first,
+VBox > .menu-button.first,
+VBox > .toggle-button.first,
+VBox > .split-menu-button.first,
+VBox > .text-field.first,
+VBox > .text-area.first {
+ -fx-border-radius: 4 4 0 0;
+ -fx-background-radius: 4 4 0 0;
+}
+
+VBox > .split-menu-button.first > .label {
+ -fx-border-radius: 4 0 0 0;
+ -fx-background-radius: 3 0 0 0;
+}
+VBox > .split-menu-button.first > .arrow-button {
+ -fx-border-radius: 0 4 0 0;
+ -fx-background-radius: 0 3 0 0;
+}
+/*middle*/
+.middle {
+ -fx-border-radius: 0;
+ -fx-background-radius: 0;
+}
+
+/*last*/
+.split-menu-button.middle > .label, .split-menu-button.last > .label {
+ -fx-border-radius: 0;
+ -fx-background-radius: 0;
+}
+
+.split-menu-button.last {
+ -fx-border-radius: 0 4 4 0;
+ -fx-background-radius: 0 4 4 0;
+}
+
+.button.middle, .text-field.middle, .text-area.middle, .split-menu-button.middle, .toggle-button.middle {
+ -fx-border-radius: 0;
+ -fx-background-radius: 0;
+}
+
+.button.last, .text-field.last, .text-area.last, .split-menu-button.last, .toggle-button.last, .menu-button.last {
+ -fx-border-radius: 0 4 4 0;
+ -fx-background-radius: 0 4 4 0;
+}
+VBox > .button.last,
+VBox > .menu-button.last,
+VBox > .toggle-button.last,
+VBox > .split-menu-button.last,
+VBox > .text-field.last,
+VBox > .text-area.last {
+ -fx-border-radius: 0 0 4 4;
+ -fx-background-radius: 0 0 4 4;
+}
+
+VBox > .split-menu-button.last > .label {
+ -fx-border-radius: 0 0 0 4;
+ -fx-background-radius: 0 0 0 3;
+}
+VBox > .split-menu-button.last > .arrow-button {
+ -fx-border-radius: 0 0 4 0;
+ -fx-background-radius: 0 0 3 0;
+}
+
+/*button styles*/
+
+/*default button settings*/
+
+/*bgcolor setting*/
+.color-picker,.date-picker > .arrow-button,
+.number-button,.left-arrow-button,.right-arrow-button,
+.button,.split-menu-button,.toggle-button,.menu-button,
+.font-menu-button, .split-menu-button > .label, .split-menu-button > .arrow-button {
+ -fx-background-color: white;
+}
+
+.color-picker,.date-picker > .arrow-button,
+.button,.menu-button,.toggle-button,.number-button,.left-arrow-button,.right-arrow-button,
+.font-menu-button,
+.split-menu-button > .label,.split-menu-button > .arrow-button {
+ -fx-border-color: #cccccc;
+ -fx-text-fill: #333333;
+}
+ /*just for the special split menu button*/
+.split-menu-button > .label {
+ -fx-border-width: 1 0 1 1;
+}
+ /*for date picker arrow button*/
+.date-picker > .arrow-button {
+ -fx-border-radius: 0 4 4 0;
+}
+.combo-box > .arrow-button, .choice-box > .arrow-button {
+ -fx-border-width: 0;
+}
+ /*hover state*/
+.color-picker:hover,
+.date-picker:hover > .arrow-button,
+.combo-box:hover,.choice-box:hover,
+.number-button:hover,.left-arrow-button:hover,.right-arrow-button:hover,
+.button:hover,.menu-button:hover,.toggle-button:hover,
+.font-menu-button:hover,
+.split-menu-button > .label:hover, .split-menu-button > .arrow-button:hover {
+ -fx-background-color: #e6e6e6;
+ -fx-border-color: #acacac;
+}
+ /*pressed selected*/
+.color-picker:pressed,.color-picker:selected,
+.number-button:pressed,.number-button:selected,
+.date-picker:pressed > .arrow-button,
+.combo-box:pressed > .arrow-button,.combo-box:selected > .arrow-button,
+.choice-box:pressed > .arrow-button,.choice-box:selected > .arrow-button,
+.font-menu-button:pressed,.font-menu-button:selected,
+.left-arrow-button:pressed,.left-arrow-button:selected,
+.right-arrow-button:pressed,.right-arrow-button:selected,
+.button:pressed, .button:selected,.menu-button:pressed,.menu-button:selected
+,.toggle-button:pressed,.toggle-button:selected,
+.split-menu-button:pressed > .label, .split-menu-button > .arrow-button:pressed {
+ -fx-background-color: #e6e6e6;
+ -fx-border-color: #acacac;
+ -fx-effect: innershadow(gaussian, #adadad, 10, 0, 0, 3);
+}
+
+ /*primary*/
+
+.button.primary,.split-menu-button.primary,.toggle-button.primary,.menu-button.primary,
+.split-menu-button.primary > .label, .split-menu-button.primary > .arrow-button {
+ -fx-background-color: #337ab7;
+}
+
+.button.primary,.menu-button.primary,.toggle-button.primary,
+.split-menu-button.primary > .label,.split-menu-button.primary > .arrow-button {
+ -fx-border-color: #2e6da4;
+ -fx-text-fill: white;
+}
+/*hover state*/
+.button.primary:hover,.menu-button.primary:hover,.toggle-button.primary:hover,
+.split-menu-button.primary > .label:hover, .split-menu-button.primary > .arrow-button:hover {
+ -fx-border-color: #204d74;
+ -fx-background-color: #286090;
+}
+/*pressed selected*/
+.button.primary:pressed, .button.primary:selected,
+.menu-button.primary:pressed,.menu-button.primary:selected
+,.toggle-button.primary:pressed,.toggle-button.primary:selected,
+.split-menu-button.primary:pressed > .label, .split-menu-button.primary > .arrow-button:pressed {
+ -fx-background-color: #286090;
+ -fx-border-color: #204d74;
+ -fx-effect: innershadow(gaussian, #204d74, 10, 0, 0, 3);
+}
+
+/*success*/
+
+.button.success,.split-menu-button.success,.toggle-button.success,.menu-button.success,
+.split-menu-button.success > .label, .split-menu-button.success > .arrow-button {
+ -fx-background-color: #5cb85c;
+}
+
+.button.success,.menu-button.success,.toggle-button.success,
+.split-menu-button.success > .label,.split-menu-button.success > .arrow-button {
+ -fx-border-color: #4cae4c;
+ -fx-text-fill: white;
+}
+/*hover state*/
+.button.success:hover,.menu-button.success:hover,.toggle-button.success:hover,
+.split-menu-button.success > .label:hover, .split-menu-button.success > .arrow-button:hover {
+ -fx-border-color: #398439;
+ -fx-background-color: #449d44;
+}
+/*pressed selected*/
+.button.success:pressed, .button.success:selected,
+.menu-button.success:pressed,.menu-button.success:selected
+,.toggle-button.success:pressed,.toggle-button.success:selected,
+.split-menu-button.success:pressed > .label, .split-menu-button.success > .arrow-button:pressed {
+ -fx-background-color: #449d44;
+ -fx-border-color: #398439;
+ -fx-effect: innershadow(gaussian, #398439, 10, 0, 0, 3);
+}
+
+/*info*/
+
+.button.info,.split-menu-button.info,.toggle-button.info,.menu-button.info,
+.split-menu-button.info > .label, .split-menu-button.info > .arrow-button {
+ -fx-background-color: #5bc0de;
+}
+
+.button.info,.menu-button.info,.toggle-button.info,
+.split-menu-button.info > .label,.split-menu-button.info > .arrow-button {
+ -fx-border-color: #46b8da;
+ -fx-text-fill: white;
+}
+/*hover state*/
+.button.info:hover,.menu-button.info:hover,.toggle-button.info:hover,
+.split-menu-button.info > .label:hover, .split-menu-button.info > .arrow-button:hover {
+ -fx-border-color: #269abc;
+ -fx-background-color: #31b0d5;
+}
+/*pressed selected*/
+.button.info:pressed, .button.info:selected,
+.menu-button.info:pressed,.menu-button.info:selected
+,.toggle-button.info:pressed,.toggle-button.info:selected,
+.split-menu-button.info:pressed > .label, .split-menu-button.info > .arrow-button:pressed {
+ -fx-background-color: #31b0d5;
+ -fx-border-color: #269abc;
+ -fx-effect: innershadow(gaussian, #269abc, 10, 0, 0, 3);
+}
+
+/*warning*/
+
+.button.warning,.split-menu-button.warning,.toggle-button.warning,.menu-button.warning,
+.split-menu-button.warning > .label, .split-menu-button.warning > .arrow-button {
+ -fx-background-color: #f0ad4e;
+}
+
+.button.warning,.menu-button.warning,.toggle-button.warning,
+.split-menu-button.warning > .label,.split-menu-button.warning > .arrow-button {
+ -fx-border-color: #eea236;
+ -fx-text-fill: white;
+}
+/*hover state*/
+.button.warning:hover,.menu-button.warning:hover,.toggle-button.warning:hover,
+.split-menu-button.warning > .label:hover, .split-menu-button.warning > .arrow-button:hover {
+ -fx-border-color: #d58512;
+ -fx-background-color: #ec971f;
+}
+/*pressed selected*/
+.button.warning:pressed, .button.warning:selected,
+.menu-button.warning:pressed,.menu-button.warning:selected
+,.toggle-button.warning:pressed,.toggle-button.warning:selected,
+.split-menu-button.warning:pressed > .label, .split-menu-button.warning > .arrow-button:pressed {
+ -fx-background-color: #ec971f;
+ -fx-border-color: #d58512;
+ -fx-effect: innershadow(gaussian, #d58512, 10, 0, 0, 3);
+}
+
+/*danger*/
+
+.button.danger,.split-menu-button.danger,.toggle-button.danger,.menu-button.danger,
+.split-menu-button.danger > .label, .split-menu-button.danger > .arrow-button {
+ -fx-background-color: #d9534f;
+}
+
+.button.danger,.menu-button.danger,.toggle-button.danger,
+.split-menu-button.danger > .label,.split-menu-button.danger > .arrow-button {
+ -fx-border-color: #d43f3a;
+ -fx-text-fill: white;
+}
+/*hover state*/
+.button.danger:hover,.menu-button.danger:hover,.toggle-button.danger:hover,
+.split-menu-button.danger > .label:hover, .split-menu-button.danger > .arrow-button:hover {
+ -fx-border-color: #ac2925;
+ -fx-background-color: #c9302c;
+}
+/*pressed selected*/
+.button.danger:pressed, .button.danger:selected,
+.menu-button.danger:pressed,.menu-button.danger:selected
+,.toggle-button.danger:pressed,.toggle-button.danger:selected,
+.split-menu-button.danger:pressed > .label, .split-menu-button.danger > .arrow-button:pressed {
+ -fx-border-color: #ac2925;
+ -fx-background-color: #c9302c;
+ -fx-effect: innershadow(gaussian, #ac2925, 10, 0, 0, 3);
+}
+
+.menu-item {
+ -fx-min-width: 200;
+}
+
+.menu-item:focused {
+ -fx-background-color: #f5f5f5;
+}
+
+.menu-item:focused > * {
+ -fx-text-fill: #262626;
+}
+.menu-item:focused .arrow {
+ -fx-background-color: #333333;
+}
+
+.check-menu-item:checked:hover > .left-container > .check,
+.check-menu-item:checked:focused > .left-container > .check,
+.radio-menu-item:checked:hover > .left-container > .radio,
+.radio-menu-item:checked:focused > .left-container > .radio {
+ -fx-background-color: #333333;
+}
+
+.context-menu {
+ -fx-border-radius: 4;
+ -fx-background-radius: 4;
+ -fx-border-color: #bebec0;
+}
+
+.context-menu > * {
+ -fx-padding: 5 0 5 0;
+}
+
+.separator {
+ -fx-padding: 5 0 5 0;
+}
+
+.text-field {
+ -fx-pref-height: 30;
+}
+
+.combo-box, .choice-box {
+ -fx-background-insets: 0;
+ -fx-border-color: #cecece;
+ -fx-padding: -1;
+ -fx-border-width: 1;
+}
+.combo-box, .choice-box, .color-picker, .date-picker {
+ -fx-border-radius: 4;
+ -fx-background-radius: 4;
+ -fx-pref-height: 30;
+}
+
+.combo-box:editable > .arrow-button {
+ -fx-background-color: white;
+}
+
+.combo-box:editable > .arrow-button:hover {
+ -fx-background-color: #e6e6e6;
+}
+
+.combo-box:editable > .arrow-button:pressed {
+ -fx-effect: innershadow(gaussian, #adadad, 10, 0, 0, 3);
+}
+
+.combo-box > .text-input, .date-picker > .text-input {
+ -fx-background-radius: 4 0 0 4;
+ -fx-border-width: 0;
+}
+
+.text-field, .text-area {
+ -fx-border-color: #cccccc;
+ -fx-background-color: white;
+ -fx-border-radius: 4;
+ -fx-background-radius: 4;
+ -fx-effect: innershadow(gaussian, transparent, 0, 0, 0, 0);
+}
+
+.text-field:focused, .text-area:focused {
+ -fx-border-color: #66afe9;
+ -fx-effect: dropshadow(gaussian, #66afe9, 10, 0, 0, 0);
+}
+
+.text-area .scroll-pane, .text-area .scroll-pane .content {
+ -fx-background-color: white;
+ -fx-background-radius: 4;
+}
+
+.tab-pane .tab-header-background {
+ -fx-background-color: #f4f4f4;
+}
+.tab-pane.plain .tab-header-background {
+ -fx-background-color: transparent;
+}
+
+.tab-pane .tab-header-area .tab {
+ -fx-border-radius: 4 4 0 0;
+ -fx-background-radius: 5 5 0 0;
+ -fx-background-color: transparent;
+ -fx-border-color: transparent;
+ -fx-padding: 3 10 5 10;
+ -fx-background-insets: 0;
+}
+
+.tab-pane .tab-header-area .tab .tab-label {
+ -fx-text-fill: #337ab7;
+}
+
+.tab-pane .tab-header-area .tab:hover {
+ -fx-background-color: #eeeeee;
+}
+.tab-pane .tab-header-area .tab:disabled:hover {
+ -fx-background-color: transparent;
+}
+
+.tab-pane .tab-header-area .tab:selected {
+ -fx-focus-color: transparent;
+ -fx-border-color: #dddddd #dddddd white #dddddd;
+ -fx-background-color: white;
+}
+.tab-pane .tab-header-area .tab:selected .tab-label {
+ -fx-text-fill: #333333;
+}
+.tab-pane > .tab-content-area {
+ -fx-background-color: white;
+}
+
+.tab-pane .tab-header-area .tab .tab-label {
+ -fx-focus-color: transparent;
+}
+
+.tab-pane:focused > .tab-header-area > .headers-region > .tab:selected .focus-indicator {
+ -fx-border-color: transparent;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button {
+ -fx-background-color: #337ab7;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:selected > .tab-container > .tab-close-button {
+ -fx-background-color: #333333;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button:hover {
+ -fx-background-color: red;
+ -fx-cursor: hand;
+}
+
+.scroll-bar {
+ -fx-background-color: #fafafa;
+ -fx-background-radius: 0;
+ -fx-block-increment: 50;
+}
+
+.corner {
+ -fx-background-color: transparent;
+}
+
+.scroll-bar .decrement-button, .scroll-bar .decrement-arrow {
+ visibility: hidden;
+ -fx-pref-height: 1;
+ -fx-pref-width: 1;
+}
+
+.scroll-bar .increment-button, .scroll-bar .increment-arrow {
+ visibility: hidden;
+ -fx-pref-height: 1;
+ -fx-pref-width: 1;
+}
+
+.scroll-bar:vertical {
+ -fx-pref-width: 10;
+}
+
+.scroll-bar:horizontal {
+ -fx-pref-height: 10;
+}
+
+.scroll-bar:horizontal .track,
+.scroll-bar:vertical .track {
+ -fx-background-color: transparent;
+ -fx-border-color: transparent;
+ -fx-background-radius: 5;
+}
+
+.scroll-bar:vertical .track-background,
+.scroll-bar:horizontal .track-background {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 5;
+}
+
+.scroll-bar:horizontal .thumb {
+ -fx-background-color: #c9c9c9;
+ -fx-background-insets: 2 0 2 0;
+ -fx-background-radius: 5;
+}
+
+.scroll-bar:vertical .thumb {
+ -fx-background-color: #c9c9c9;
+ -fx-background-insets: 0 2 0 2;
+ -fx-background-radius: 5;
+}
+
+.scroll-bar:horizontal .thumb:hover,
+.scroll-bar:vertical .thumb:hover {
+ -fx-background-color: #b5b5b5;
+}
+
+.scroll-bar:horizontal .thumb:pressed,
+.scroll-bar:vertical .thumb:pressed {
+ -fx-background-color: #a0a0a0;
+}
+
+.scroll-bar:vertical .increment-button, .scroll-bar:vertical .decrement-button {
+ -fx-background-color: transparent;
+ -fx-background-radius: 5;
+ -fx-padding: 5;
+}
+
+.scroll-bar:horizontal .increment-button, .scroll-bar:horizontal .decrement-button {
+ -fx-background-color: transparent;
+ -fx-background-radius: 5;
+ -fx-padding: 5;
+}
+
+.scroll-bar:vertical:focused,
+.scroll-bar:horizontal:focused {
+ -fx-background-color: transparent, rgb(96, 96, 96), rgb(96, 96, 96);
+}
+
+.menu-bar {
+ -fx-background-color: white;
+}
+.menu-bar > .container > .menu-button {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-border-width: 0;
+ -fx-border-radius: 0;
+}
+.menu-bar > .container > .menu-button:hover,
+.menu-bar > .container > .menu-button:showing {
+ -fx-background-color: #56c0e0;
+}
+
+.color-palette {
+ -fx-background-color: white;
+}
+
+.pagination > .pagination-control > .control-box {
+ -fx-spacing: -1;
+}
+.pagination > .pagination-control > .control-box > .left-arrow-button {
+ -fx-border-radius: 3 0 0 3;
+ -fx-border-insets: 0 0 0 7;
+ -fx-background-insets: 0 0 0 7, 0 0 0 5, 1 1 1 6, 2 2 2 7;
+}
+.pagination > .pagination-control > .control-box > .right-arrow-button {
+ -fx-border-radius: 0 3 3 0;
+ -fx-border-insets: 0 7 0 0;
+ -fx-background-insets: 0 7 -1 0, 0 5 0 0, 1 6 1 1, 2 7 2 2;
+}
+.pagination > .pagination-control > .control-box > .number-button {
+ -fx-background-radius: 0;
+ -fx-border-radius: 0;
+}
+
+.progress-bar > .track {
+ -fx-pref-height: 10;
+ -fx-background-radius: 3;
+ -fx-effect: innershadow(gaussian, #e4e4e4, 4, 0, 0, 1);
+ -fx-background-color: #f5f5f5;
+}
+
+.progress-bar > .bar {
+ -fx-background-insets: 0;
+ -fx-background-color: #337ab7;
+}
+
+.progress-bar.success > .bar {
+ -fx-background-insets: 0;
+ -fx-background-color: #5cb85c;
+}
+
+.progress-bar.info > .bar {
+ -fx-background-insets: 0;
+ -fx-background-color: #5bc0de;
+}
+
+.progress-bar.warning > .bar {
+ -fx-background-insets: 0;
+ -fx-background-color: #f0ad4e
+}
+
+.progress-bar.danger > .bar {
+ -fx-background-insets: 0;
+ -fx-background-color: #d9534f;
+}
+
+.tooltip {
+ -fx-background: white;
+ -fx-text-fill: #333333;
+ -fx-background-color: white;
+ -fx-background-radius: 4px;
+ -fx-border-radius: 4px;
+ -fx-border-color: #C0C0C0;
+ -fx-background-insets: 0;
+ -fx-padding: 0.667em 0.75em 0.667em 0.75em; /* 10px */
+ -fx-effect: dropshadow(three-pass-box, rgba(0, 0, 0, 0.5), 10, 0.0, 0, 3);
+ -fx-font-size: 0.85em;
+}
+
+.tooltip.success {
+ -fx-background: #dff0d8;
+ -fx-background-color: #dff0d8;
+ -fx-text-fill: #99bb96;
+ -fx-border-color: #d6e9c6;
+}
+
+.tooltip.info {
+ -fx-background: #d8ecf6;
+ -fx-background-color: #d8ecf6;
+ -fx-text-fill: #31708f;
+ -fx-border-color: #bce8f1;
+}
+
+.tooltip.warning {
+ -fx-background: #fcf8e3;
+ -fx-background-color: #fcf8e3;
+ -fx-text-fill: #8a6e3c;
+ -fx-border-color: #faebcc;
+}
+
+.tooltip.danger {
+ -fx-background: #f2dede;
+ -fx-background-color: #f2dede;
+ -fx-text-fill: #a94442;
+ -fx-border-color: #ebccd1;
+}
+
+.titled-pane > .title {
+ -fx-background-color: #f5f5f5;
+ -fx-border-color: #dddddd;
+ /*-fx-background-insets: 5, 1, 5;*/
+ -fx-background-radius: 3 3 0 0, 2 2 0 0, 1 1 0 0;
+ -fx-border-radius: 3 3 0 0, 2 2 0 0, 1 1 0 0;
+ -fx-padding: 11
+}
+
+.titled-pane > .content {
+ -fx-background-color: white;
+ -fx-background-radius: 0 0 4 4;
+ -fx-border-radius: 0 0 4 4;
+ -fx-border-color: #dddddd;
+ /*-fx-padding: -11;*/
+}
+
+.titled-pane.primary {
+ -fx-text-fill: white;
+}
+
+.titled-pane.primary > .title {
+ -fx-background-color: #337ab7;
+ -fx-border-color: #337ab7;
+}
+
+.titled-pane.primary > .content {
+ -fx-border-color: #337ab7;
+}
+
+.titled-pane.success .arrow,
+.titled-pane.info .arrow,
+.titled-pane.warning .arrow,
+.titled-pane.danger .arrow {
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+}
+
+.titled-pane.success {
+ -fx-text-fill: #3c763d;
+}
+
+.titled-pane.success > .title {
+ -fx-background-color: #dff0d8;
+ -fx-border-color: #d6e9c6;
+}
+
+.titled-pane.success > .content {
+ -fx-border-color: #d6e9c6;
+}
+
+.titled-pane.info {
+ -fx-text-fill: #31708f;
+}
+
+.titled-pane.info > .title {
+ -fx-background-color: #d9edf7;
+ -fx-border-color: #bce8f1;
+}
+
+.titled-pane.info > .content {
+ -fx-border-color: #bce8f1;
+}
+
+.titled-pane.warning {
+ -fx-text-fill: #8a6d3b;
+}
+
+.titled-pane.warning > .title {
+ -fx-background-color: #fcf8e3;
+ -fx-border-color: #faebcc;
+}
+
+.titled-pane.warning > .content {
+ -fx-border-color: #faebcc;
+}
+
+.titled-pane.danger {
+ -fx-text-fill: #a94442;
+}
+
+.titled-pane.danger > .title {
+ -fx-background-color: #f2dede;
+ -fx-border-color: #eacbd0;
+}
+
+.titled-pane.danger > .content {
+ -fx-border-color: #eacbd0;
+}
+
+.accordion > .titled-pane > .title,
+.accordion > .titled-pane > .content {
+ -fx-background-radius: 0;
+ -fx-border-radius: 0;
+}
+
+.tool-bar:vertical { /* left */
+ -fx-border-color: transparent #dddddd transparent transparent;
+}
+
+.tool-bar { /* top */
+ -fx-background-color: white;
+ -fx-border-color: transparent transparent #dddddd transparent;
+}
+
+.tool-bar:vertical {
+ -fx-background-insets: 0, 0 1 0 0;
+}
+
+/*table view columns*/
+.filler,.column-header,.show-hide-columns-button {
+ -fx-background-color: #dddddd, white, white;
+}
+.show-hide-columns-button {
+ -fx-border-width: 0;
+ -fx-background-insets: 0 0 1 1;
+}
+.column-header:hover,.show-hide-columns-button:hover {
+ -fx-background-color: #dddddd, white, #f8f8f8;
+}
+.column-header-background > .filler {
+ -fx-border-color: transparent #dddddd transparent transparent;
+ -fx-border-insets: 0 1 0 0;
+}
+.column-drag-header {
+ -fx-background-color: #2fb254;
+}
+
+/*split pane*/
+.split-pane > .split-pane-divider {
+ -fx-background-color: white;
+ -fx-border-color: #eeeeee;
+ -fx-pref-width: 8;
+}
+.split-pane:horizontal > .split-pane-divider {
+ -fx-background-insets: 0, 0 1 0 1;
+ -fx-border-width: 0 1 0 1;
+}
+/* vertical the two nodes are placed on top of each other. */
+.split-pane:vertical > .split-pane-divider {
+ -fx-background-insets: 0, 1 0 1 0;
+ -fx-border-width: 1 0 1 0;
+}
+.split-pane > .split-pane-divider:hover {
+ -fx-background-color: #E0E0E0;
+}
+
+/*******************************************************************************
+ * *
+ * CheckBox *
+ * *
+ ******************************************************************************/
+.check-box > .box {
+ -fx-background-radius: 3;
+ /*-fx-padding: 0.166667em 0.166667em 0.25em 0.25em; !* 2 2 3 3 *!*/
+ -fx-padding:0;
+ -fx-border-color: #56c0e0;
+ -fx-border-radius: 3;
+ -fx-background-color: white;
+}
+.check-box > .box > .mark {
+ -fx-background-color: null;
+ -fx-padding: 0.416667em 0.416667em 0.5em 0.5em; /* 5 5 6 6 */
+ -fx-shape: "M927.936 272.992l-68.288-68.288c-12.608-12.576-32.96-12.576-45.536 0l-409.44 409.44-194.752-196.16c-12.576-12.576-32.928-12.576-45.536 0l-68.288 68.288c-12.576 12.608-12.576 32.96 0 45.536l285.568 287.488c12.576 12.576 32.96 12.576 45.536 0l500.736-500.768c12.576-12.544 12.576-32.96 0-45.536z";
+ -fx-background-insets: -3 -3 1 0;
+}
+.check-box {
+ -fx-label-padding: 0.2em 0.0em 0.3em 0.416667em; /* 0 0 0 5 */
+ -fx-text-fill: -fx-text-background-color;
+ -fx-padding: 0 0 2 0;
+}
+.check-box:indeterminate > .box {
+ -fx-padding: 0;
+}
+.check-box:selected > .box > .mark {
+ -fx-background-color: linear-gradient(to bottom, #56c0e0, #40b8dc);
+}
+
+/*******************************************************************************
+ * *
+ * RadioButton *
+ * *
+ ******************************************************************************/
+
+.radio-button {
+ -fx-label-padding: 0.0em 0.0em 0.1em 0.416667em; /* 0 0 0 5 */
+ -fx-text-fill: -fx-text-background-color;
+ -fx-padding: 0 0 .5 0;
+}
+.radio-button > .radio,
+.radio-button:focused > .radio {
+ -fx-border-color: #56c0e0;
+ -fx-border-radius: 1em;
+ -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
+ -fx-padding: 1 2 3 2;
+ -fx-background-color: white;
+}
+.radio-button > .radio > .dot {
+ -fx-background-color: transparent;
+ -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
+ -fx-padding: 0.333333em; /* 4 -- radius of the inner black dot when selected */
+ -fx-background-insets: 3 2 1 2;
+}
+.radio-button:selected > .radio,.radio-button:hover > .radio {
+ -fx-fill-color: #56c0e0;
+}
+.radio-button:pressed > .radio {
+ -fx-background-color: #50c0e2;
+}
+.radio-button:selected > .radio > .dot {
+ -fx-background-color: #56c0e0;
+}
+
+/*common things*/
+.check-box:hover > .box,
+.check-box:selected > .box,
+.radio-button:hover > .radio,
+.radio-button:selected > .radio {
+ -fx-background-color: linear-gradient(to bottom, white, #efefef);
+}
+
+.check-box:pressed > .box,
+.radio-button:pressed > .radio {
+ -fx-background-color: #50c0e2;
+}
+
+/*******************************************************************************
+ * *
+ * Slider *
+ * *
+ ******************************************************************************/
+
+.slider .thumb {
+ -fx-background-color: #dad9da, white, #3fbadf;
+ -fx-background-insets: 0, 1, 5;
+ -fx-effect: dropshadow(two-pass-box , rgba(0, 0, 0, 0.2), 5, 0.0 , 0, 0);
+}
+.slider .thumb:hover {
+ -fx-effect: dropshadow(two-pass-box , rgba(0, 0, 0, 0.4), 5, 0.0 , 0, 0);
+}
+.slider .track {
+ -fx-background-color: #dad9da, white;
+ -fx-background-insets: -1, 0, 1;
+ -fx-pref-height: 5;
+}
+.slider:vertical .track {
+ -fx-pref-width: 5;
+}
\ No newline at end of file
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/logoAmsat.png b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/logoAmsat.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d040fba4b8e99ac74424b8e65bf4a9b05995fde
Binary files /dev/null and b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/logoAmsat.png differ
diff --git a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/util/LogFile.java b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/util/LogFile.java
index d3ae5b5d97752d3c0df65fac9feba317a653d070..176c7273263e236e843b40340ff5922b6ca01c66 100644
--- a/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/util/LogFile.java
+++ b/ApplicationAmicalsat/src/main/java/org/josast/ApplicationAmicalsat/util/LogFile.java
@@ -17,7 +17,7 @@ import java.util.logging.Logger;
*/
public class LogFile {
- private Logger appLogger = Logger.getLogger("AmicalSatLogger");
+ private static Logger appLogger = Logger.getLogger("AmsatLogger");
private PrintWriter pw;
/**
diff --git a/ApplicationAmicalsat/src/main/resources/org/josast/ApplicationAmicalsat/AmicalSatMessage.txt b/ApplicationAmicalsat/src/main/resources/org/josast/ApplicationAmicalsat/AmicalSatMessage.txt
deleted file mode 100644
index 536b6e2c4819bb055cfc3a0b018646a2546702f9..0000000000000000000000000000000000000000
--- a/ApplicationAmicalsat/src/main/resources/org/josast/ApplicationAmicalsat/AmicalSatMessage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-AmicalsatVersion=0.1
-Message= version de test
-NoradID=0
\ No newline at end of file
diff --git a/ApplicationAmicalsat/src/main/resources/org/josast/ApplicationAmicalsat/Amicalsat.fxml b/ApplicationAmicalsat/src/main/resources/org/josast/ApplicationAmicalsat/Amicalsat.fxml
index 2d24f26066e50e122d73d25959c3fb06173b1753..5954582ba8b1776c7d9bc05efa4f5931a8c665a3 100644
--- a/ApplicationAmicalsat/src/main/resources/org/josast/ApplicationAmicalsat/Amicalsat.fxml
+++ b/ApplicationAmicalsat/src/main/resources/org/josast/ApplicationAmicalsat/Amicalsat.fxml
@@ -18,7 +18,7 @@
-
+
@@ -49,7 +49,7 @@
-