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 javafx.stage.Stage;
import model.Capteur; import model.Capteur;
import model.CapteurSimple; import model.CapteurSimple;
import model.StratGenerationAleatoire;
import view.FXMLwindow; import view.FXMLwindow;
import view.VueCapteur; import view.VueCapteur;
import view.VueCapteurSimple; import view.VueCapteurSimple;
@ -14,7 +15,7 @@ import view.VueCapteurSimple;
public class Launch extends Application { public class Launch extends Application {
@Override @Override
public void start(Stage stage) throws Exception { 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); FXMLwindow fenetre = new VueCapteurSimple(capti);
} }

@ -7,7 +7,7 @@ import javafx.beans.property.Property;
import javafx.beans.property.StringProperty; import javafx.beans.property.StringProperty;
import javafx.scene.control.SpinnerValueFactory; import javafx.scene.control.SpinnerValueFactory;
public abstract class Capteur { public abstract class Capteur implements Runnable{
protected StringProperty id; protected StringProperty id;
public String getId() { public String getId() {
return id.get(); return id.get();
@ -50,8 +50,24 @@ public abstract class Capteur {
public void setTpsGen(int t) { public void setTpsGen(int t) {
this.tpsGen.setValue(t); this.tpsGen.setValue(t);
} }
public boolean generer = false;
protected abstract int genererTemperature();
abstract void start(); public void start(){
abstract void stop(); 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){ private void ajoutCapteur(Capteur c, int poids){
zone.put(c,poids); zone.put(c,poids);
} }
private int genererTemperature(){ @Override
protected int genererTemperature() {
AtomicInteger temp= new AtomicInteger(); AtomicInteger temp= new AtomicInteger();
AtomicInteger poidsT= new AtomicInteger(); AtomicInteger poidsT= new AtomicInteger();
zone.forEach((capt,poids)->{ zone.forEach((capt,poids)->{
@ -19,14 +20,5 @@ public class CapteurCompose extends Capteur{
}); });
return temp.get()/poidsT.get(); 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){ private void setStrategie(StratGeneration s){
strategie=s; strategie=s;
} }
public CapteurSimple(String i, String n){ public CapteurSimple(String i, String n,StratGeneration s){
setStrategie(s);
id=new SimpleStringProperty(); id=new SimpleStringProperty();
nom=new SimpleStringProperty(); nom=new SimpleStringProperty();
setId(i); setId(i);
@ -26,14 +27,9 @@ public class CapteurSimple extends Capteur{
/* /*
strategie=new StratGenerationCPU();*/ strategie=new StratGenerationCPU();*/
} }
@Override
void start() {
//tant que pas stop, attendre tps gen
//puis faire valeur=strategie.generer()
}
@Override @Override
void stop() { protected int genererTemperature() {
return strategie.generer();
} }
} }

@ -1,4 +1,10 @@
package model; 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{ public class StratGenerationSeuil extends StratGeneration{
private DegreKelvin min=new DegreKelvin(0); private DegreKelvin min=new DegreKelvin(0);
private DegreKelvin max; private DegreKelvin max=new DegreKelvin(40);
@Override @Override
int generer() { int generer() {

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

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

Loading…
Cancel
Save