Algo avec les stratgies des capteurs simples ajoutes

master
Paul SQUIZZATO 2 years ago
parent 4bb6281855
commit f42f02ceca

@ -7,6 +7,7 @@ import javafx.scene.Scene;
import javafx.stage.Stage;
import model.Capteur;
import model.CapteurSimple;
import model.StratGenerationAleatoire;
import view.FXMLwindow;
import view.VueCapteur;
import view.VueCapteurSimple;
@ -14,7 +15,7 @@ import view.VueCapteurSimple;
public class Launch extends Application {
@Override
public void start(Stage stage) throws Exception {
Capteur capti = new CapteurSimple("id5","capteur1");
Capteur capti = new CapteurSimple("id5","capteur1", new StratGenerationAleatoire());
FXMLwindow fenetre = new VueCapteurSimple(capti);
}

@ -7,7 +7,7 @@ import javafx.beans.property.Property;
import javafx.beans.property.StringProperty;
import javafx.scene.control.SpinnerValueFactory;
public abstract class Capteur {
public abstract class Capteur implements Runnable{
protected StringProperty id;
public String getId() {
return id.get();
@ -50,8 +50,24 @@ public abstract class Capteur {
public void setTpsGen(int t) {
this.tpsGen.setValue(t);
}
public boolean generer = false;
protected abstract int genererTemperature();
abstract void start();
abstract void stop();
public void start(){
generer=true;
}
public void stop(){
generer=false;
}
public void run(){
try {
Thread.sleep(getTpsGen()*1000);
if (generer){
setValeur(genererTemperature());
}
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}

@ -10,7 +10,8 @@ public class CapteurCompose extends Capteur{
private void ajoutCapteur(Capteur c, int poids){
zone.put(c,poids);
}
private int genererTemperature(){
@Override
protected int genererTemperature() {
AtomicInteger temp= new AtomicInteger();
AtomicInteger poidsT= new AtomicInteger();
zone.forEach((capt,poids)->{
@ -19,14 +20,5 @@ public class CapteurCompose extends Capteur{
});
return temp.get()/poidsT.get();
}
@Override
void start() {
}
@Override
void stop() {
}
}

@ -14,7 +14,8 @@ public class CapteurSimple extends Capteur{
private void setStrategie(StratGeneration s){
strategie=s;
}
public CapteurSimple(String i, String n){
public CapteurSimple(String i, String n,StratGeneration s){
setStrategie(s);
id=new SimpleStringProperty();
nom=new SimpleStringProperty();
setId(i);
@ -26,14 +27,9 @@ public class CapteurSimple extends Capteur{
/*
strategie=new StratGenerationCPU();*/
}
@Override
void start() {
//tant que pas stop, attendre tps gen
//puis faire valeur=strategie.generer()
}
@Override
void stop() {
protected int genererTemperature() {
return strategie.generer();
}
}

@ -1,4 +1,10 @@
package model;
public class StratGenerationAleatoire {
import java.util.Random;
public class StratGenerationAleatoire extends StratGeneration{
@Override
int generer() {
Random random = new Random();
return -5+random.nextInt(40);
}
}

@ -4,7 +4,7 @@ import java.util.Random;
public class StratGenerationSeuil extends StratGeneration{
private DegreKelvin min=new DegreKelvin(0);
private DegreKelvin max;
private DegreKelvin max=new DegreKelvin(40);
@Override
int generer() {

@ -8,8 +8,12 @@ import java.io.IOException;
public abstract class VueCapteur extends FXMLwindow implements Initializable{
private Capteur capt;
private Thread thread;
public VueCapteur(Capteur capteur,String url) throws IOException {
super(url, capteur.getNom());
capt=capteur;
capt.start();
thread=new Thread(capteur);
thread.start();
}
}

@ -29,11 +29,11 @@ public class VueCapteurSimple extends VueCapteur{
idCapteur.textProperty().bindBidirectional(capteur.idProperty());
nomCapteur.textProperty().bindBidirectional(capteur.nomProperty());
/*
valeurCapteur.textProperty().bindBidirectional(capteur.valeurProperty());
*/
spinTps.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0,10,capteur.getTpsGen(),1));
capteur.tpsGenProperty().bind(spinTps.valueProperty());
//capteur.tpsGenProperty().bind(spinTps.valueProperty());
}

Loading…
Cancel
Save