Skip to content
GitLab
Explore
Sign in
xtof
JOSAST
Compare revisions
32ae315ea7c820e0be1baf98869f7c9c0f51761f to 484df05c8ad92f404295661b57e95fe93fa30b42
Commits on Source (3)
feat : add info tab, add update external configuration,
· ab43a879
xtof
authored
Feb 12, 2021
ab43a879
Merge branch '21-ecr-uvsqsat' of
https://code.electrolab.fr/xtof/josast.git
into 21-ecr-uvsqsat
· b5f77e80
xtof
authored
Feb 12, 2021
b5f77e80
refactore
· 484df05c
xtof
authored
Feb 12, 2021
484df05c
Hide whitespace changes
Inline
Side-by-side
ApplicationDatabaseSynchronisation/src/main/java/org/josast/databaseSync/GetDataFromAmsatDatabase.java
View file @
484df05c
...
...
@@ -9,7 +9,7 @@ import org.json.JSONObject;
public
class
GetDataFromAmsatDatabase
implements
Commande
{
private
String
urlDatabase
=
null
;
final
private
SimpleDateFormat
ISO8601DATEFORMAT
=
new
SimpleDateFormat
(
"yyyy-MM-dd'T'HH:mm:ss'Z'"
);
...
...
ApplicationUVSQsatDecoder/UVSQsatDecoder.txt
View file @
484df05c
UVSQSatDecoder=0.5
Message= UVSQsat
launch 23/01/21 14H24 UTC
Message= UVSQsat
- Temporary Norad ID 47438
NoradID=99749
Comment=0
\ No newline at end of file
ApplicationUVSQsatDecoder/src/main/java/org/josast/UVSQsatDecoder/App.java
View file @
484df05c
package
org.josast.UVSQsatDecoder
;
import
javafx.application.Application
;
import
javafx.application.Platform
;
import
javafx.event.EventHandler
;
import
javafx.fxml.FXMLLoader
;
import
javafx.scene.Parent
;
import
javafx.scene.Scene
;
import
javafx.scene.image.Image
;
import
javafx.stage.Stage
;
import
javafx.stage.WindowEvent
;
import
java.io.File
;
import
java.io.IOException
;
...
...
@@ -27,11 +31,18 @@ public class App extends Application {
System
.
setProperty
(
"glass.accessible.force"
,
"false"
);
scene
=
new
Scene
(
loadFXML
(
"UVSQsat"
),
800
,
600
);
stage
.
setScene
(
scene
);
stage
.
setOnCloseRequest
(
new
EventHandler
<
WindowEvent
>()
{
@Override
public
void
handle
(
WindowEvent
event
)
{
Platform
.
exit
();
System
.
exit
(
0
);
}
});
Controler
ctrl
=
fxmlLoader
.
getController
();
ctrl
.
setPrimaryStage
(
stage
);
scene
.
getStylesheets
().
add
(
this
.
getClass
().
getResource
(
"boot.css"
).
toExternalForm
());
stage
.
setTitle
(
"UVSQsat Decoder - "
+
ctrl
.
getversion
());
stage
.
getIcons
().
add
(
new
Image
(
App
.
class
.
getResourceAsStream
(
"OIP.jpg"
)));
ctrl
.
initMMI
();
stage
.
show
();
}
...
...
@@ -45,6 +56,7 @@ public class App extends Application {
logger
.
info
(
"class "
+
App
.
class
.
getResource
(
fxml
+
".fxml"
).
getFile
().
toString
());
return
fxmlLoader
.
load
();
}
public
static
void
main
(
String
[]
args
)
{
// initialisation du systéme de log en premier
...
...
ApplicationUVSQsatDecoder/src/main/java/org/josast/UVSQsatDecoder/Controler.java
View file @
484df05c
...
...
@@ -8,6 +8,8 @@ import java.io.File;
import
java.io.FileWriter
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.concurrent.Executors
;
...
...
@@ -49,10 +51,14 @@ import javafx.scene.control.Alert;
import
javafx.scene.control.Button
;
import
javafx.scene.control.CheckBox
;
import
javafx.scene.control.Label
;
import
javafx.scene.control.Tab
;
import
javafx.scene.control.TextArea
;
import
javafx.scene.control.TextField
;
import
javafx.scene.image.Image
;
import
javafx.scene.image.ImageView
;
import
javafx.scene.layout.VBox
;
import
javafx.scene.web.WebEngine
;
import
javafx.scene.web.WebView
;
import
javafx.stage.Stage
;
import
javafx.stage.Window
;
...
...
@@ -60,6 +66,7 @@ import javafx.stage.Window;
public
class
Controler
{
private
static
Logger
appLogger
=
Logger
.
getLogger
(
"AmsatLogger"
);
private
int
delayRefresh
=
6
;
// toute les 6 heures
private
LogFile
logfile
=
null
;
private
static
final
String
LINE_SEPARATOR
=
"\r\n"
;
...
...
@@ -129,6 +136,12 @@ public class Controler {
@FXML
private
ImageView
imageViewSatellite
;
@FXML
private
WebView
WebViewInfo
;
@FXML
private
VBox
VboxInfo
;
//
@FXML
private
TextField
tfDateCurrent
;
...
...
@@ -658,11 +671,61 @@ private TextField tftrxvuTxUptimeRaw;
@FXML
private
TextField
tftrxvuTxStateRaw
;
@FXML
private
Tab
TabDataSream
;
@FXML
private
Tab
infoTab
;
ScheduledExecutorService
ses
=
Executors
.
newScheduledThreadPool
(
1
);
private
ScheduledFuture
<?>
scheduledFuture
=
null
;
private
void
setupDataStream
()
{
ReceivedData
decodedData
=
receivedFrame
.
getLastReceivedData
();
if
(
decodedData
!=
null
)
{
DecodedData
.
clear
();
ax25display
.
setdata
(
decodedData
);
if
(
ax25display
.
GetCallsignFrom
().
contains
(
"LATMOS"
))
{
displayUVSQsat
.
setData
(
decodedData
);
Frame
frame
=
displayUVSQsat
.
getFrame
();
if
(
frame
!=
null
)
{
DecodedData
.
appendText
(
displayUVSQsat
.
getData
());
}
else
{
DecodedData
.
appendText
(
ax25display
.
getDisplay
());
}
// release memory
frame
=
null
;
}
else
{
DecodedData
.
appendText
(
ax25display
.
getDisplay
());
}
}
else
{
DecodedData
.
setText
(
"No Value to display"
);
}
}
@FXML
private
void
HandleTabDataSreamChange
()
{
Platform
.
runLater
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
TabDataSream
.
isSelected
())
setupDataStream
();
}});
}
@FXML
private
void
HandleIP
(
ActionEvent
event
)
...
...
@@ -707,7 +770,7 @@ ScheduledExecutorService ses = Executors.newScheduledThreadPool(1);
if
(
decodedData
!=
null
)
{
updateFrame
(
receivedFrame
.
getNumberFrame
());
//
ax25display
.
setdata
(
decodedData
);
if
(
ax25display
.
GetCallsignFrom
().
contains
(
"LATMOS"
))
{
...
...
@@ -720,8 +783,10 @@ ScheduledExecutorService ses = Executors.newScheduledThreadPool(1);
tfDateCurrent
.
setText
(
date
);
int
sid
=
displayUVSQsat
.
getFrame
().
getSid
();
tfFrameSid
.
setText
(
""
+
sid
);
if
(
TabDataSream
.
isSelected
())
// append le texte uniquement si visible
{
DecodedData
.
appendText
(
displayUVSQsat
.
getData
());
}
displayUvsqsat
(
sid
,(
UiFrame
)
displayUVSQsat
.
getFrame
().
getUiFrame
());
//release memory
...
...
@@ -733,6 +798,7 @@ ScheduledExecutorService ses = Executors.newScheduledThreadPool(1);
displayLog
(
"Frame not reconized"
);
ax25display
.
setdata
(
decodedData
);
displayLog
(
decodedData
.
toString
());
DecodedData
.
appendText
(
ax25display
.
getDisplay
());
}
...
...
@@ -742,7 +808,7 @@ ScheduledExecutorService ses = Executors.newScheduledThreadPool(1);
{
ax25display
.
setdata
(
decodedData
);
displayLog
(
decodedData
.
toString
());
DecodedData
.
appendText
(
ax25display
.
getDisplay
());
//
DecodedData.appendText(ax25display.getDisplay());
}
...
...
@@ -927,30 +993,73 @@ ScheduledExecutorService ses = Executors.newScheduledThreadPool(1);
displayLog
(
"Norad ID updated "
);
}
}
String
erreurmsg
=
message
;
final
String
erreurmsg
;
if
(
ver
.
equals
(
version
)
==
false
)
{
erreurmsg
+
=
" New version "
+
ver
+
" available ! "
;
erreurmsg
=
message
+
" New version "
+
ver
+
" available ! "
;
}
this
.
LabelInformation
.
setText
(
erreurmsg
);
else
{
erreurmsg
=
message
;
}
Platform
.
runLater
(
new
Runnable
()
{
@Override
public
void
run
()
{
LabelInformation
.
setText
(
erreurmsg
);
displayLog
(
"information updated from internet"
);
}
});
}
public
void
setPrimaryStage
(
Stage
stage
)
{
this
.
primaryStage
=
primaryStage
;
}
@FXML
private
void
HandleInfoTabChange
()
{
Platform
.
runLater
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
infoTab
.
isSelected
())
setupInfoTab
();
}});
}
private
void
setupInfoTab
()
{
File
f
=
new
File
(
"./UVSQsatDecoderWithJREHelp.html"
);
WebEngine
engine
=
WebViewInfo
.
getEngine
();
if
(
f
.
exists
())
{
File
file
=
new
File
(
f
.
getAbsolutePath
());
URL
url
=
null
;
try
{
url
=
file
.
toURI
().
toURL
();
}
catch
(
MalformedURLException
e
)
{
appLogger
.
severe
(
"Error to acces to "
+
f
.
getName
());
//e.printStackTrace();
}
engine
.
load
(
url
.
toString
());
}
else
{
appLogger
.
severe
(
f
.
getName
()
+
"Not Found"
);
}
}
public
void
initMMI
()
{
setupInfoTab
();
Runnable
task1
=
()
->
{
System
.
out
.
println
(
"update Distant
"
);
appLogger
.
info
(
"Distant Information update
"
);
updateDistantconfiguration
();
};
// init Delay = 5, repeat the task every 1 second
ScheduledFuture
<?>
scheduledFuture
=
ses
.
scheduleAtFixedRate
(
task1
,
12
,
12
,
TimeUnit
.
HOURS
);
scheduledFuture
=
ses
.
scheduleAtFixedRate
(
task1
,
delayRefresh
,
delayRefresh
,
TimeUnit
.
HOURS
);
logfile
=
new
LogFile
();
// initialise le log
...
...
ApplicationUVSQsatDecoder/src/main/java/org/josast/UVSQsatDecoder/ModelReceivedData.java
View file @
484df05c
...
...
@@ -40,7 +40,15 @@ public class ModelReceivedData {
}
public
ReceivedData
getLastReceivedData
()
{
return
vecRawData
.
lastElement
();
if
(
vecRawData
.
isEmpty
())
{
return
null
;
}
else
{
return
vecRawData
.
lastElement
();
}
}
...
...