Virtual Captor Display Working (button not assigned yet)
continuous-integration/drone/push Build encountered an error Details

master
dohodin 2 years ago
parent 472005cad5
commit b21fcab8f2

@ -32,18 +32,6 @@ public class CapteurVirtuel extends Sujet implements Runnable {
return this.tempMoyenne.get(); return this.tempMoyenne.get();
} }
public boolean isNegative(){
return (this.getTempMoyenne()<0);
}
public boolean isHot(){
return (this.getTempMoyenne()>30);
}
@Override
public String toString(){
return Double.toString(this.getTempMoyenne());
}
public void addToLesCapteurs(Captor c){ public void addToLesCapteurs(Captor c){
lesCapteurs.put((rand.nextInt()%10),c); lesCapteurs.put((rand.nextInt()%10),c);
@ -68,7 +56,7 @@ public class CapteurVirtuel extends Sujet implements Runnable {
while (true){ while (true){
Platform.runLater(this::updateData); Platform.runLater(this::updateData);
try{ try{
Thread.sleep(1); Thread.sleep(1000);
} }
catch (InterruptedException e){ catch (InterruptedException e){
break; break;

@ -9,27 +9,21 @@ import javafx.scene.image.Image;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.layout.*; import javafx.scene.layout.*;
import javafx.scene.text.Font; import javafx.scene.text.Font;
import javafx.util.Callback;
import model.*; import model.*;
import java.io.IOException;
public class MainPage { public class MainPage {
@FXML private Button FirstButton; @FXML private Button FirstButton;
@FXML private Button SecondButton; @FXML private Button SecondButton;
@FXML private VBox vb1; @FXML private VBox vb1;
@FXML private VBox vb2; @FXML private VBox vb2;
@FXML private ImageView open; @FXML private ImageView open;
CPUTemp cpuTemp = new CPUTemp("CPU Captor"); CPUTemp cpuTemp = new CPUTemp("CPU Captor");
CapteurVirtuel cV1 = new CapteurVirtuel("CaptVirt1"); CapteurVirtuel cV1 = new CapteurVirtuel("CaptVirt1");
Captor c1 = new Captor("c1"); Captor c1 = new Captor("c1");
Captor c2 = new Captor("c2"); Captor c2 = new Captor("c2");
@FXML @FXML
public void initialize() { public void initialize() {
@ -37,82 +31,18 @@ public class MainPage {
SecondButton.textProperty().set(cV1.getName()); SecondButton.textProperty().set(cV1.getName());
open.setFitWidth(18);
ListView<CapteurVirtuel> listview = new ListView<>(); open.setFitHeight(18);
ObservableList<CapteurVirtuel> captors = FXCollections.observableArrayList(
captor->new ObservableValue[]{
captor.getTempMoyenneProperty()
}
);
captors.addListener((ListChangeListener.Change<? extends CapteurVirtuel> c) ->{
while (c.next()){
if (c.wasUpdated()){
listview.refresh();
}
}
});
c1.startThread();
c2.startThread();
cV1.addToLesCapteurs(c1);
cV1.addToLesCapteurs(c2);
cV1.startThread();
captors.add(cV1);
listview.setCellFactory(new Callback<>() {
@Override
public ListCell<CapteurVirtuel> call(ListView<CapteurVirtuel> captorListView) {
return new ListCell<>() {
@Override
protected void updateItem(CapteurVirtuel value, boolean empty) {
String text = "";
super.updateItem(value, empty);
if (value != null) {
text = value.getTempMoyenne().toString();
}
setText(text);
String style = null;
if (!empty) {
assert value != null;
if (value.isNegative()) {
style = "-fx-text-fill : blue";
}
}
if (!empty && value.isHot()) {
style = "-fx-text-fill : red";
}
setStyle(style);
}
};
}
});
listview.setItems(captors);
FirstButton.setOnAction(e -> { FirstButton.setOnAction(e -> {
vb1.getChildren().clear(); vb1.getChildren().clear();
try { vb1.getChildren().add(setVboxCPUCaptor());
vb1.getChildren().add(setVboxCPUCaptor());
} catch (IOException ex) {
throw new RuntimeException(ex);
}
});
open.setFitWidth(18); });
open.setFitHeight(18);
SecondButton.setOnAction(e -> { SecondButton.setOnAction(e -> {
if (!vb2.getChildren().isEmpty()){ if (!vb2.getChildren().isEmpty()){
open.setImage(new Image("https://www.citypng.com/public/uploads/preview/download-black-right-triangle-png-31629764954y0662peplm.png")); open.setImage(new Image("https://www.citypng.com/public/uploads/preview/download-black-right-triangle-png-31629764954y0662peplm.png"));
@ -120,14 +50,17 @@ public class MainPage {
}else{ }else{
vb1.getChildren().clear();
vb1.getChildren().add(setDisplayVirtualCaptor());
open.setImage(new Image("https://cdn-icons-png.flaticon.com/512/0/159.png")); open.setImage(new Image("https://cdn-icons-png.flaticon.com/512/0/159.png"));
vb2.getChildren().add(setHBoxFirstCaptor()); vb2.getChildren().add(setHBoxFirstCaptor());
vb2.getChildren().add(setHBoxSecondCaptor()); vb2.getChildren().add(setHBoxSecondCaptor());
} }
}); });
} }
private VBox setVboxCPUCaptor() throws IOException { private VBox setVboxCPUCaptor() {
VBox FirstCaptorCPU = new VBox(); VBox FirstCaptorCPU = new VBox();
@ -135,16 +68,24 @@ public class MainPage {
ImageView FirstCaptorCPUImage = new ImageView(new Image("https://media.istockphoto.com/id/1204740322/fr/photo/cpu.jpg?s=612x612&w=0&k=20&c=cF154ASgimXysleBPyYsFMI9_GKkkTpDQ0kZTJnm_K0=")); ImageView FirstCaptorCPUImage = new ImageView(new Image("https://media.istockphoto.com/id/1204740322/fr/photo/cpu.jpg?s=612x612&w=0&k=20&c=cF154ASgimXysleBPyYsFMI9_GKkkTpDQ0kZTJnm_K0="));
FirstCaptorCPUImage.setFitWidth(570);
Label FirstCaptorCPULabel = new Label("Temperature"); Label FirstCaptorCPULabel = new Label("Temperature");
FirstCaptorCPULabel.setFont(new Font("Arial", 30)); FirstCaptorCPULabel.setFont(new Font("Arial", 30));
FirstCaptorCPULabel.setMaxWidth(Double.MAX_VALUE); FirstCaptorCPULabel.setMaxWidth(Double.MAX_VALUE);
FirstCaptorCPULabel.setAlignment(Pos.CENTER); FirstCaptorCPULabel.setAlignment(Pos.CENTER);
FirstCaptorCPULabel.setWrapText(true); FirstCaptorCPULabel.setWrapText(true);
if (cpuTemp.getTemperature()==0.0){ if (cpuTemp.getTemperature()==0.0){
FirstCaptorCPULabel.setFont(new Font("Arial", 15)); FirstCaptorCPULabel.setFont(new Font("Arial", 15));
FirstCaptorCPULabel.textProperty().set("Impossible de récupérer la temperature du CPU, possiblement car le fichier qui contient cette temperature n'existe pas ou n'est pas au même endroit que celui utilisé lors du développement."); FirstCaptorCPULabel.textProperty().set("Impossible de récupérer la temperature du CPU, possiblement car le fichier qui contient cette temperature n'existe pas ou n'est pas au même endroit que celui utilisé lors du développement.");
}else{ }else{
FirstCaptorCPULabel.textProperty().set("Temperature du CPU : " + cpuTemp.getTemperature() + "°C"); FirstCaptorCPULabel.textProperty().set("Temperature du CPU : " + cpuTemp.getTemperature() + "°C");
} }
@ -152,21 +93,27 @@ public class MainPage {
FirstCaptorCPU.getChildren().add(FirstCaptorCPULabel); FirstCaptorCPU.getChildren().add(FirstCaptorCPULabel);
ObservableList<CPUTemp> CPUTemperature = FXCollections.observableArrayList( ObservableList<CPUTemp> CPUTemperature = FXCollections.observableArrayList(
captor-> new ObservableValue[]{
captor.getTemperatureProperty() captorCPU-> new ObservableValue[]{
captorCPU.getTemperatureProperty()
} }
); );
CPUTemperature.addListener((ListChangeListener.Change<? extends CPUTemp> c) ->{ CPUTemperature.addListener((ListChangeListener.Change<? extends CPUTemp> c) ->{
while (c.next()){ while (c.next()){
if (c.wasUpdated()){ if (c.wasUpdated()){
FirstCaptorCPULabel.textProperty().set("Temperature du CPU : " + cpuTemp.getTemperature() + "°C"); FirstCaptorCPULabel.textProperty().set("Temperature du CPU : " + cpuTemp.getTemperature() + "°C");
} }
} }
}); });
cpuTemp.startThread(); cpuTemp.startThread();
CPUTemperature.add(cpuTemp);
return FirstCaptorCPU; return FirstCaptorCPU;
} }
@ -211,4 +158,69 @@ public class MainPage {
} }
private VBox setDisplayVirtualCaptor(){
VBox CaptorVirtual = new VBox();
Label ViewTempVirtualCaptor = new Label("Temperature moyenne des sous-capteurs du capteur virtuel : " + cV1.getTempMoyenne() + "°C");
ViewTempVirtualCaptor.setFont(new Font("Arial",20));
ViewTempVirtualCaptor.setMaxWidth(Double.MAX_VALUE);
ViewTempVirtualCaptor.setAlignment(Pos.CENTER);
ViewTempVirtualCaptor.setWrapText(true);
ImageView VirtualCaptorImage = new ImageView(new Image("https://static.thenounproject.com/png/56610-200.png"));
VirtualCaptorImage.setFitWidth(500);
VirtualCaptorImage.setFitHeight(300);
CaptorVirtual.getChildren().add(VirtualCaptorImage);
CaptorVirtual.getChildren().add(ViewTempVirtualCaptor);
c1.startThread();
c2.startThread();
cV1.addToLesCapteurs(c1);
cV1.addToLesCapteurs(c2);
cV1.startThread();
ObservableList<CapteurVirtuel> VirtualCaptor = FXCollections.observableArrayList(
VirtCaptor->new ObservableValue[]{
VirtCaptor.getTempMoyenneProperty()
}
);
VirtualCaptor.addListener((ListChangeListener.Change<? extends CapteurVirtuel> c) ->{
while (c.next()){
if (c.wasUpdated()){
Double temp = cV1.getTempMoyenne();
if (temp < 0){
ViewTempVirtualCaptor.setStyle("-fx-text-fill : blue");
} else if (temp > 30) {
ViewTempVirtualCaptor.setStyle("-fx-text-fill : red");
}else {
ViewTempVirtualCaptor.setStyle("-fx-text-fill : black");
}
ViewTempVirtualCaptor.textProperty().set("Temperature moyenne des sous-capteurs du capteur virtuel : " + Math.round(cV1.getTempMoyenne()*10.0)/10.0 + "°C");
}
}
});
VirtualCaptor.add(cV1);
return CaptorVirtual;
}
} }

Loading…
Cancel
Save