From 2f8ea6f351dccf347f8537baf3536130f87cc662 Mon Sep 17 00:00:00 2001 From: dohodin Date: Wed, 18 Jan 2023 12:24:23 +0100 Subject: [PATCH] First Commit --- .idea/.gitignore | 8 ++ .idea/ProjetJavaFX.iml | 9 ++ .idea/misc.xml | 6 + .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 + StationMeteo.iml | 13 +++ .../StationMeteo/console/LView$1$1.class | Bin 0 -> 1667 bytes .../StationMeteo/console/LView$1.class | Bin 0 -> 1296 bytes .../StationMeteo/console/LView.class | Bin 0 -> 3927 bytes .../StationMeteo/fxml/FenetrePrincipale.fxml | 5 + out/production/StationMeteo/model/Alea.class | Bin 0 -> 710 bytes .../StationMeteo/model/CPUTemp.class | Bin 0 -> 950 bytes .../StationMeteo/model/CapteurVirtuel.class | Bin 0 -> 4636 bytes .../StationMeteo/model/Captor.class | Bin 0 -> 2910 bytes .../model/GenererTemperature.class | Bin 0 -> 206 bytes .../StationMeteo/model/Observateur.class | Bin 0 -> 132 bytes out/production/StationMeteo/model/Reel.class | Bin 0 -> 698 bytes out/production/StationMeteo/model/Sujet.class | Bin 0 -> 937 bytes out/production/StationMeteo/view/Image.class | Bin 0 -> 437 bytes .../StationMeteo/view/Spinner.class | Bin 0 -> 443 bytes resource/fxml/FenetrePrincipale.fxml | 5 + src/console/LView.java | 108 ++++++++++++++++++ src/model/Alea.java | 23 ++++ src/model/CPUTemp.java | 18 +++ src/model/CapteurVirtuel.java | 82 +++++++++++++ src/model/Captor.java | 64 +++++++++++ src/model/GenererTemperature.java | 10 ++ src/model/Observateur.java | 5 + src/model/Reel.java | 21 ++++ src/model/Sujet.java | 18 +++ src/view/Image.java | 22 ++++ src/view/Spinner.java | 22 ++++ 32 files changed, 453 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/ProjetJavaFX.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 StationMeteo.iml create mode 100644 out/production/StationMeteo/console/LView$1$1.class create mode 100644 out/production/StationMeteo/console/LView$1.class create mode 100644 out/production/StationMeteo/console/LView.class create mode 100644 out/production/StationMeteo/fxml/FenetrePrincipale.fxml create mode 100644 out/production/StationMeteo/model/Alea.class create mode 100644 out/production/StationMeteo/model/CPUTemp.class create mode 100644 out/production/StationMeteo/model/CapteurVirtuel.class create mode 100644 out/production/StationMeteo/model/Captor.class create mode 100644 out/production/StationMeteo/model/GenererTemperature.class create mode 100644 out/production/StationMeteo/model/Observateur.class create mode 100644 out/production/StationMeteo/model/Reel.class create mode 100644 out/production/StationMeteo/model/Sujet.class create mode 100644 out/production/StationMeteo/view/Image.class create mode 100644 out/production/StationMeteo/view/Spinner.class create mode 100644 resource/fxml/FenetrePrincipale.fxml create mode 100644 src/console/LView.java create mode 100644 src/model/Alea.java create mode 100644 src/model/CPUTemp.java create mode 100644 src/model/CapteurVirtuel.java create mode 100644 src/model/Captor.java create mode 100644 src/model/GenererTemperature.java create mode 100644 src/model/Observateur.java create mode 100644 src/model/Reel.java create mode 100644 src/model/Sujet.java create mode 100644 src/view/Image.java create mode 100644 src/view/Spinner.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/ProjetJavaFX.iml b/.idea/ProjetJavaFX.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/ProjetJavaFX.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..639900d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..3334d69 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/StationMeteo.iml b/StationMeteo.iml new file mode 100644 index 0000000..6f39f75 --- /dev/null +++ b/StationMeteo.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/StationMeteo/console/LView$1$1.class b/out/production/StationMeteo/console/LView$1$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b9f8657d7ffec88c50b03fbdd9fcf9028b4b50cc GIT binary patch literal 1667 zcmZ`(ZBtuC7(GjFxZ!dMA-qTtEVih5kwz575=1Icp(d#{X)NfMOR~^gFS*RU8-$-C zf56Y`OqkIb^^?x@*YpQ;9M2|cDHxgIZg!t%&z^JkdG_f)zy1#3Q+#Wo4-pfFjVSsB zW}Z05&i+X*tjUJV)%=DEd@omUL$xkFPoRIrZMbSxAd*T~V~7brBUm;DVGCHzqq?Ky zwvvYe6RCnm%Xv=YAa{T7iL9yoZn|nAj$soC8zV>xj2-%Q>E+g)BPE+b)eTfr@}T&E zR26x6RP;|}qam4>O1}cP;Wzg@nYS>8aT60ZUc;n7;^Mqcft0s0)y;4iIA2#+$eyFgoXip$wEu zm<=~{NU|;igpO+>UW@7PEoO&{H`Bo7?r9#c83-i;wk0rUGO z^NLL7_g&AMU7p?Zno@6@w{c5vi@M>KuVQ$QM6TurvaYqhZ{q_kG)7Tnb?R~d6h73~ z_mRL=2?8z_)0_%+9?I)SU_-9Xd}E+4}ekY290APN?0ZClpotuIL=KX_+WpD#I7G7h9=$-Od>( zy9W*W5ODKS8~K0xZKXHCRcf%xelw`ayRPP7wX5}(W=Z=t8#T`lS@K1x9{Y6@w08K4 z-!>j$hXQFUn{BOA*FAaYKFD`kuV-Ap3*-|k$xvoa*|0&o24sj?)>j|j8j+aP zEy7<0|D#xi;QIsI=BVS*%sIqQ{LzOse*3u$Y~l{T6P*NnhIP*L<_$*3URP}w<{2Vf z2P#Rkl*vw?V<7t%2D2>;wJ=)B%(rk&EF05jnEe^o&oG?*8-u^$=FU0Z`h!_-{{Spz|gfe#8N)|gDUn;5KE*o5&I3EfM`5RTg+=0>*Rw)D@p&hF>e5 z*w9aISN$UMBh0cg**_7VZeg*vlR96&*c~ThWUPJG*Ra@*03*qz7H*%xG=78;`32Yi s3#92p(Pyu*38+`!*aPa-V;L2W29>)?}H`N*b1!lr?_5c6? literal 0 HcmV?d00001 diff --git a/out/production/StationMeteo/console/LView$1.class b/out/production/StationMeteo/console/LView$1.class new file mode 100644 index 0000000000000000000000000000000000000000..89019de093f27ef5cd5fceac029d7d64f5353ce0 GIT binary patch literal 1296 zcmaizTW`}a6vzMWEo;cuu7i%-*nl$H4wg+kAk=CwRYM?!?V+d=k7;JQ3@@n?hs!tN zW55eYAR(UlP>AESg{C80rN;K(KEHGE@vqZdyH;zpHK6wsmOG72*QJ#kw`K-%@t-3@Zx$ z`n?%C+~X!4l7TNw%MGRC=qRDAVbMSZOAMtM2t&@Xgmb4uSi&^M;`^6Fh}ZjywJ#r-&@qH}#oQgT8{;75h>m!%b{WreNgv9VM&M+ZPa!y=md!qio3g0d{Lu9VFStDN4>dFy<`a!z;2!QX&$qJe1G;kPaEoJ&y++VTU0Pu|}^b1L|*j-dXzRQKi)~%^uO1 zQA+bG*k_t#aGAaZl7U@Zp>K6`09SF1R?7G~R%o9(9ZR&QFb9NHnBsS6uLxEAM2qYc zYHtcv{EI5$2385QMyHL~rBZIv>=r2*+%E5ulNzm+lLw^4PMRA(VSK@Ya&kJ}31}2= hevG<<_4xE%)M?D2femcNN&_a16(W^rR6lJr`~jpSNwoj~ literal 0 HcmV?d00001 diff --git a/out/production/StationMeteo/console/LView.class b/out/production/StationMeteo/console/LView.class new file mode 100644 index 0000000000000000000000000000000000000000..8d7e77dba526f897ac680262ea72346298396522 GIT binary patch literal 3927 zcma)9S#%p$8UC&WON>=$f$&K)XL=(7jXk|- z4H1EkB|9sv#JG|7WWh!YQ9gy-2!)& z;&C%FCleVv=Q*~ONSUseHs#eQy3p9pL>$o3je7(_8N;#!cK7u9UNR8{&s4El)|`=9 zOh)lK^l0eS(T9G4yGznc|&0~Ly5lAL4=gJ2Pk=s1dF z0{iL&S?iKO%*bZfYfX$5L-vRrI)y*DLJBT+eX4nFU80Sp}J49Z8%NXruBO zJ0;x`#9V>xJ*jGZ5JAf65uJ!0B{V6p0cq#vuCPGK-isRU7uZH1xV9w|DTRV=;%W@1 z6hPl3(B6}(*`;m;lQ-))gR=syuJp#GWt}!Mp6#p%#LL0fLM0G;Kt~D_0uhRx_2d$L zzqc$)uzSJGdJAmDo>RT)@Mz(mWu_}S78O%7b9qLZ z^9!C5UDA<*9fO<W&u0x!62)D3kB;{$gPJ2RJJMay@IHb4B};SC;E}Ox zSOuA=ARw*QssrAy;{*7hKqu=uBbV|M_KM8q0`)SFbUsn8`?vl$?w~m zv{x$5wDT~}JLZz%tdua&QASf09}}5L4>H!O&aT`iNq>8Y{a3YZJNz86h`wdEu|QW@ zZ{5?L%vy%Gld4WY|d%B;AG@!Q^7pyAOD9` zFY@f1l&&`+RTsD#e#ASbrdzrPRhHWBCmvkSG4d1ATd=e4wlIDY#ZU2!hG%vB49}H% zJ9yuixn+Biw~U`_N*I^dZ;jYe_3E!d@@s?w180m}){<^_%C;8^`Jf0jZzn(KI)XFA zST%del|bv3n}Nx#WrL?gjal_Znl?R|Y{M_gmt4THe)(4UTKdHFtw!-7Jg?(B_->o} zTN4;8W3d|Bo1>;TO+7CtJum9`I=;aJ=PZv&XWTMeSF)PF=4JSQo$W+QaJp;wZAqpk z$a+Q5@cYucd2?3k4JwFz^s>Rf(n5U4@y*Tg!(1mg3(ie_s}RqUXuwA}s%`L%^ihs_ zz<`h8<6H@R0-xka;RY8WwDMEe8noH==2gTde5#eyZH|x|Ep#GuOZeJRjn2PkkRp9F2&08Loqt zX=QHsA02IUGpYkst)t_6%$(AA)93y^e!w|QxiS0@KPIjGc$)G*XI5_c)NT9{xA80P a?Wf!rXZ7=#zn4SJlnQ>o!SC<~#Qz5r&@dwa literal 0 HcmV?d00001 diff --git a/out/production/StationMeteo/fxml/FenetrePrincipale.fxml b/out/production/StationMeteo/fxml/FenetrePrincipale.fxml new file mode 100644 index 0000000..2e8219a --- /dev/null +++ b/out/production/StationMeteo/fxml/FenetrePrincipale.fxml @@ -0,0 +1,5 @@ + + + + + diff --git a/out/production/StationMeteo/model/Alea.class b/out/production/StationMeteo/model/Alea.class new file mode 100644 index 0000000000000000000000000000000000000000..3eb0ca28fa04a0ae3f0f0f7893b403984895b6d8 GIT binary patch literal 710 zcmZuv+iuf96r4>=ow(aul9o`){gyaTb9)1U5K&Nt1rnf2JZ{oeapemb2lWg193&)? zN+9t8d=z4i)2Mwwmc81ub7pqt_|M;;zX3eOLk|^HT{s$Nu%NJdV7{0jHtBxwdU#+* zg~Gz)D2<9I3e`?`*Fz0;7oNrQkN1K~soZGT#P-oM! z#tK#y7K_uTYT%+VR~;8o9K12eOA!nNobFF(VUJMURWl7 zDg&N*Z?kbevV%xm*Cpj`LD5i+V^ip&%9XitmKDjOTxqvlm5h|A9(SMM5CL@kBPidW z!ku907uMb%p&9zUDOwY>{ht2=?J2e}c&o(2qjm zfd&zY58$H^v$oT;q7S>P+1Z(MX3zQa_t$R#TX?D=hPVnv$2m+fWDm@NY1pRIF?N~< zyyY`YZCZ}yKVyiO%5@D1BvoiSrlB*Wx^A1>#`e39A9%ONkneDZ3oc~Dh3WSN59+E( zs!Qw0Aj>fApUkqViadiJ09&q6wQQciEQ4WqUp=GE2Ud%F#=sJO-?R;XpNsC~{B-C# zeBF>8HRLca$2iY0SE@}0+4Y6xbT-O$6&D!h$3V~fdwayS{hpg`E>tWK{c%o`2=6r% zaY=T)%#e$^Ml7kLh5{C4c8OtTk_}6v{52idvCNPV1XQye`jOdE`G0;IZla{3tfPVz zhRkGus_mL2gw`{K$D`oP39HJBLqNqELm^b=)fsvy+awwRNG@;t-6qLpHf_4e*W8wA z*G*x`IJ#8)ean-tPf5K&bY6aG@t$wFj;CUs<{y9F>z(5agCeD2NQd)|e~uy66h!j) z_OuwX`>xv;EiQ#1b3_JPlMq-UFU7!cix#A%XqPb=m`)?`wTyvOWe8TO96|ko)c4@o zZQ9d_)1HI^4bsSWDAL0M+{HbL?$c7}<^e4-dertaLCDJG5ps?E%n)<65ekhFij9>a zE)H?!&FT@Z{=|*^s`HH=#xQ|P6Ih1Klnvk(!$uLDh6OytBLXWD++#eU%99i}f?k{d E08m}fO8@`> literal 0 HcmV?d00001 diff --git a/out/production/StationMeteo/model/CapteurVirtuel.class b/out/production/StationMeteo/model/CapteurVirtuel.class new file mode 100644 index 0000000000000000000000000000000000000000..b795070e22d2b4f858dbfb47c653f3e8ffe5106f GIT binary patch literal 4636 zcma)A`CA*;6+I6G17a+&i~-weoI1o2qK;fUX&s9=jsY9l7~=?&khWhkz!=6zGpaNq zrfa%7Y1+EGlQd1&)Lqie4Fa4tP4_lUy6^kG{s;Xb?RhgJG$SCf`7F)6x%b?A&t2Xd zJ^9SV#{t}k|AbM4S_L5$b*L9;%370pCXp_l(rtnI9>X;3eFC+yuF)_W(5N7+q6w-% zJtd(HFMI+x;N2S*I-Z}*@y_56||^WkElSaYpGYu*?KWQYUJ&r zo)M@qCIwombrrM<#3kU#(}{6iGYg4a-pc8DdoGbSvbl`jXBEdY`mnbc#s;*>klF=8 zvA(WRX?&B4&Dg>iZ9SViYR&1UsS9j(Y^{V10wxtaPhfo|qyeokeN@YZaT#hQ_!TOi zk8Px^U={Nd#BKJ)K*3}fow!QDb`@76CUAup%!HN6=o7YKF{FdH_Ezo$)>-2PJwK~4 zE&>Sbj#WXr6w`G-$T7c?Lwa0AH(tQFGkU?JyCATw9QWGF3a)t$*3)+0FsCZ4@4!yU z`U?d%dd_Avb1LDACEYaaR&gz^V@;V>c5V8D$Yk%u*rVWj6?#J~!bk-lgK*QnH=}c0`|(?7mmU`(!E_4AXYXN6Ou&;(jUDKsjeI%zVFJ z#e@Fpl(7`^x-8s>RD4iA3Kw&enyvR~w$_Lb<0A?_s^VjKxSVOXgXTCDILvA-nU#%h z3JfbT%;{*e8g(t3Y`}R64D^qM@kxA2!KYO`A_t`#SWuXhNpVz%F0; zk%b;#uFFN@8){ZQxi2Zu??_b*n!s$jG@MW`j|OsIGfaJ`m>t*iBXVn!O<_%FnNclo z$a`-wWKSDxw>FA!mUh;qZEa$PoO@uHyw&~jS7efnh9!?38yKSYsr}>%XLqtLKBwGu_jU^i=&Oyl5D|^s4bX`xm-CR zdxEv&cF?6|Ud?FP@ky=I)bH%vDX{a>wysWh$8=)cv04o>p5Ufh)?jYZ&ME4kA?s^H z@QiqkoCIvY1D0hM?7Wscs@v1nWTCkpKMCWf_?d#AtM~l0_aihul@1F9HR8Pq@Fu-}w6IAD*Wz7_GNnh`IW$9Z9D2^}*e(_6x=$d?X zUH^3VkbAXECe6v5Y{Apbb@+{(XTMeP6rSe3mg1>5-<#121-+o)4}qD^jIi{a*{a~r z0^O3os>!id))f4;ayapyDOV_PSi5;w@DG8jR^(_kx)uCO;PPh|C9azrp2Q=3tpQJ> zQTejLtEfD4I^TQ+;CBmUwn5-Cysp7#`J6}O<@?V;gJ04$vh%Z8! z$GZ4q*f17Zz{YuW@cOc`1zbLlt?~Gy*t&=-=h4O09b?@KNX%mwS34plyoldj@ry_T zOSrKHUvSLJ&+TaBXDdQ+?SETH9o^lhFca_lp1ddcgTo zT83D{MGwMnzoT0DYM*k&J`ak^_G@?rNc$Zn99_h4HAJ@$qGJCs-0MLcB9js#8ZTkA zgxezbJqRUq9--PtxLWHl?~;-5Aw|7NzC;~0@y zYY;Z-z-m6a%i+4dF5>p;aQFDoD&anklgz7>y_SB;aKo~|mcT8g8sP>XLfG@it^Ti2 z^9g*FpHgR-2o@DG@+?TMsZUtcBI3wH_Z4Q&c7;mv~Qv_5(DR_WE*y>(kQ)h*$j^2RRV zJ$LlP0{3U+-8uPmx`YRq=$VPs`Ts3$xgU+O$him55Rt_b+j7S8iYVly-fg#j`gV{x zJ%l(0_-2{ntH)v7jw3KI$aDRW6IYxPaqPl3@J$v4efJ`);aT%r_%9iyF`1E z&t+e^^53JpETv|Ip5ZST{GH{@e{r}m)KVjdu}cZk9^vh>*jZQ~U=W-X7x1Cz$4mG` zh3^OjC9C`;gCk(GkMs6r&fCfP_X%8!A5gXiKg5qbkABRxU*XsM|2wX1=G|HR9)GNF T#GmjN{4LaozvG|yH#YqrWLLfI literal 0 HcmV?d00001 diff --git a/out/production/StationMeteo/model/Captor.class b/out/production/StationMeteo/model/Captor.class new file mode 100644 index 0000000000000000000000000000000000000000..2f6d75828e243172cf0e2f9c74fd4339181a9718 GIT binary patch literal 2910 zcma)8=~ok16#u;d88Qru0l}>*iW-77TDRJusKgd*a0^ngJ++VI0V9){bTXmPeXrg3 zz5VRh+E(D`IX(T{(|@M_K->FfCdmvgEji@ny}9>yx8J>Q{`mXWZvckyqlyR`6f|mR zLX@H7Dxc>mgPSv{vr|_^-eHIi>Za}-V`xb9PpD`{Oo6JQ1sX$}D_(JQBX#lOXof+x zxmmD^-X@;t&xQrkF|?swL5GGlh%;zKt00WjFfTcl%@ENGh5Jp#U7*-?3HHr-P26iHF zazx?OLSB@lCld0U~PzWRG!pu z8BdakY(9o~pn)#9?U;@pANQPBaRtvP;2Nfoue$E`uO~?zY>EY^S}94{O!WAHs&X4< zG|bAnw2^D$b^5Bfia7;_h9bz>z!=FbmWk#JYw{J_7N#?<7sZ%v7<$>I%W3IRNk*Pk zK*^8S^Hfbe1vX4$f}uUDo8nBRI3?_HSz#HfmFLC;w{^Mq4;!6X3Emc_NG&hHQ9xOw z#u%lfDYTw(CqcML{F%YfO#*>{s}0VO@SEz+*%9uJG`SSUSly65{TUe1l~H(G1Hs?$KElTeKGEd>z=yd!&78#PT~4;#E(7G(wBGVHh`Nq37^!S|sN z5(>gk4c*jUa?nc_BVc$Ijfl&OmfANiZ##FTtB2Nga%9k|k{sQX^j)UiEd7qq+Lv4g zORhkqu-k*+n2HVCVFp>Tm%k%cas*-Mb=vBwO}owb<+jcgNpmi z#lt+Fqa7iW9}8rSVG){dHRbMsrsS_^{fUG;*eD%?oR%eAYQ~vK19%d?`q}k0p+^=m+?x?zDzYB?e{L>!4*8T8e&%fqHdqY zs1I=h4fFwG5@Od99|s=z)v-B0I->B&KQg*rr4JW?~-NwTlu zbRi*$?Q=g z>@hMsR5M4azL6MF^ewy%))A3Cjltu8&@V*pfAJv1(zfWbCctt#3`V6=`4cx@II{)?*lsf9AD7?*K{Hq L=^K29AF%#kZ)K@E literal 0 HcmV?d00001 diff --git a/out/production/StationMeteo/model/GenererTemperature.class b/out/production/StationMeteo/model/GenererTemperature.class new file mode 100644 index 0000000000000000000000000000000000000000..e86559c1ff7d38877967873ea8d67a1f8b7a2197 GIT binary patch literal 206 zcmZWjF%E)25S&Hi6fKMv`UGvfCs>KGqRjW`Mxb%5 P3~V4413QppV&DJ(c1Ipv literal 0 HcmV?d00001 diff --git a/out/production/StationMeteo/model/Reel.class b/out/production/StationMeteo/model/Reel.class new file mode 100644 index 0000000000000000000000000000000000000000..9744b9b21ffa71221a0541b6b1449731951c1b6f GIT binary patch literal 698 zcmZWnU279T6g`uy*=94f?Y6bm)Yew*$EuCbRP3YS(u6sgR!(7d6h~f)vd$i}!_aN#i1x73!%y zF4}QssFf1i(tk-~RlpjBOG6@u|s#BWP`kG+mX!G z#iVVqhN>HU5QPmmltUwVR>YVx(t|Q`w=ybuG+hBfC literal 0 HcmV?d00001 diff --git a/out/production/StationMeteo/model/Sujet.class b/out/production/StationMeteo/model/Sujet.class new file mode 100644 index 0000000000000000000000000000000000000000..4f7903a3810792eda112d509b853c41ba1f1600f GIT binary patch literal 937 zcmZuvU2hUW6g|Tt3(I1GwrIsKYEeFF*Y6h^jGCC3Y}*G6#=Z@(mO;APEVD#^iod{T z6KzvXjL-fN|AR5=on=dj@-lnp?z!ijd*^=t{rM|^hj?Hh22DrY#2F+QvI9Qm){wh< z)=p>ObR|P#Q@BDl8MI2Zts}{>7=i*RhSnqB=WlH>k_L2WDWqZQ$e1{b1%~v#*K>we zD;PM$llD3z#~*X)1U|#EJ%^;BSaK%vSR^^#>k+Op0nS)zRCg6_*+c>77?MIdK9?Sm z7An;l+GkO|k;V!x=qQ@Fh)WFlQ{@u~gWl((ZRZX7q&9a|#T64*QDTU@VS4F=d)A4L zYYe$bn>(lNrLl^#iR)^jiQu3|Ju{?QV$bC=@F}j%*qn}V)BcaB(QJ@`Cp1Qe1zWhz zcCg=Z{O7zgq)guSx_sE?zEJll8JB%AV#q{f;qZwh$))7oz7tMqj!?DDz&v`}Isd5I z^`v+uRCT6BJg>L-L8NE2yuj}|Pla-1gmN2d!0{3-LyVS;c-1=4d4p~-RG?8z+eT-V zGR^P~WNSxYwJ*?L9wGG!#)lAHqf_lDs3K0UUZ=>UO2T6uH|fi;0W0EqOh|<_Y9C?L z50QQGFN*=Sq>805K}IY} zhWCGdC@BrfaGtD!nl4h?B{I5(+*Gnin@ZbmdQDRS6 zR7CJFMR)bobk)3nyuJar#6biHZU`@ikAN^-h)$%XsORZzzL13>1Y=bzb3t&Aj;A3u z2vMixV|rbQxeO5zlB$`>k_9WNJ7Hw230p>1OR0rvwItAl;9c=8!XQ(%ylJak>U)uw z%eggO>FQ8{89PBXKvBd#n+}A#aNVsFWU*glgXYRK!`61*# RT?_aA7mofE?(-f8qfeL@MLYli literal 0 HcmV?d00001 diff --git a/out/production/StationMeteo/view/Spinner.class b/out/production/StationMeteo/view/Spinner.class new file mode 100644 index 0000000000000000000000000000000000000000..58e2bda46af0ee98fcf6908e5b66565d9a22dc8c GIT binary patch literal 443 zcmah_%SyyR5UkEqW8B@S>)o3VFdyKe2VqY^4=a10WCxukFJ>nZ{3}m_2S31%5<4Nt zB7%o0x~r$AtLF3T{R6-ajssY*eK;Xpc!bGXv?9($`551)Ynd5>H&dlD*980YZ0Tc% z5VlG_$BSB(rPMwGLR3^MnX_agbt{Z)G-1!kqLx~iMoR+C3C=CwB8(GN%DbjWrG5}; z&dfnlWg=e+t-5|79rL6%gi*4+?TQd|c9h7~3oE^*UhzI=7geJ(Ial3#;o$AEOM?^m z9FnlhhixI`6GYsx + + + + diff --git a/src/console/LView.java b/src/console/LView.java new file mode 100644 index 0000000..30e1e3f --- /dev/null +++ b/src/console/LView.java @@ -0,0 +1,108 @@ +package console; + +import model.*; +import javafx.application.Application; +import javafx.collections.ObservableList; +import javafx.scene.Scene; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.stage.Stage; +import javafx.util.Callback; +import javafx.beans.value.ObservableValue; +import javafx.collections.FXCollections; +import javafx.collections.ListChangeListener; +import javafx.scene.layout.StackPane; + +public class LView extends Application { + + @Override + public void start(Stage primaryStage) { + CapteurVirtuel cV1 = new CapteurVirtuel("CaVirt1"); + CapteurVirtuel cV2 = new CapteurVirtuel("CaVirt2"); + + Captor c1 = new Captor("c1"); + Captor c2 = new Captor("c2"); + Captor c3 = new Captor("c3"); + Captor c4 = new Captor("c4"); + Captor c5 = new Captor("c5"); + Captor c6 = new Captor("c6"); + + + ListView listview = new ListView<>(); + + + ObservableList captors = FXCollections.observableArrayList( + captor->new ObservableValue[]{ + captor.getTempMoyenneProperty() + } + ); + + captors.addListener((ListChangeListener.Change c) ->{ + while (c.next()){ + if (c.wasUpdated()){ + listview.refresh(); + } + } + }); + + c1.startThread(); + c2.startThread(); + c3.startThread(); + c4.startThread(); + c5.startThread(); + c6.startThread(); + + cV1.addToLesCapteurs(c1); + cV1.addToLesCapteurs(c2); + cV1.addToLesCapteurs(c3); + cV2.addToLesCapteurs(c4); + cV2.addToLesCapteurs(c5); + cV2.addToLesCapteurs(c6); + + captors.add(cV1); + captors.add(cV2); + + listview.setCellFactory(new Callback<>() { + + @Override + public ListCell call(ListView 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); + + final StackPane root = new StackPane(); + root.getChildren().add(listview); + final Scene scene = new Scene(root); + primaryStage.setTitle("ListView"); + primaryStage.setWidth(300); + primaryStage.setHeight(350); + primaryStage.setScene(scene); + primaryStage.show(); + + + } + +} \ No newline at end of file diff --git a/src/model/Alea.java b/src/model/Alea.java new file mode 100644 index 0000000..c2fefd7 --- /dev/null +++ b/src/model/Alea.java @@ -0,0 +1,23 @@ +package model; + +import java.util.Random; + +public class Alea implements GenererTemperature{ + + private float temperature; + private double min; + private double max; + + public Alea(){ + this.temperature = genererTemperature(); + Random rand = new Random(); + min= rand.nextDouble(); + max= rand.nextDouble(min); + } + @Override + public float genererTemperature() { + + Random rand = new Random(); + return rand.nextFloat()+rand.nextInt(); + } +} diff --git a/src/model/CPUTemp.java b/src/model/CPUTemp.java new file mode 100644 index 0000000..083a59c --- /dev/null +++ b/src/model/CPUTemp.java @@ -0,0 +1,18 @@ +package model; + +import java.io.*; + +public class CPUTemp implements GenererTemperature{ + + float temperature ; + + public CPUTemp() throws IOException { + this.temperature = genererTemperature(); + } + @Override + public float genererTemperature() throws IOException { + File temp = new File("/sys/devices/virtual/thermal/thermal_zone6/temp"); + BufferedReader br = new BufferedReader(new FileReader(temp)); + return Float.parseFloat(br.readLine())/1000; + } +} diff --git a/src/model/CapteurVirtuel.java b/src/model/CapteurVirtuel.java new file mode 100644 index 0000000..8515ad0 --- /dev/null +++ b/src/model/CapteurVirtuel.java @@ -0,0 +1,82 @@ +package model; + + +import javafx.beans.property.DoubleProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.property.StringProperty; +import javafx.collections.*; +import java.util.*; +import static model.Captor.rand; + +public class CapteurVirtuel extends Sujet{ + + private final UUID id= UUID.randomUUID(); + private final StringProperty nom; + private final DoubleProperty tempMoyenne = new SimpleDoubleProperty(0); + + final Map source = new HashMap<>(); + private final ObservableMap lesCapteurs = FXCollections.observableMap(source); + public CapteurVirtuel(String nom){ + this.nom= new SimpleStringProperty(nom); + this.tempMoyenne.set(0.0); + lesCapteurs.addListener((MapChangeListener) c -> { + this.tempMoyenne.set(this.updateData()); + System.out.println("HEY"); + }); + } + + public UUID getId() + { + return this.id; + } + + public String getName(){ + return this.nom.get(); + } + + public DoubleProperty getTempMoyenneProperty(){ + return this.tempMoyenne; + } + + public Double getTempMoyenne(){ + 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 Collection getLesCapteurs(){ + return lesCapteurs.values(); + } + + public void addToLesCapteurs(Captor c){ + lesCapteurs.put((rand.nextInt()%10),c); + } + + private Double updateData() { + int coef = 0; + double valeurs =0; + for (Map.Entry entry : lesCapteurs.entrySet()){ + coef += entry.getKey(); + valeurs += entry.getKey() * entry.getValue().getTemperature(); + } + if (coef==0 || valeurs==0){ + return 0.0; + }else { + return valeurs / coef; + } + } + +} diff --git a/src/model/Captor.java b/src/model/Captor.java new file mode 100644 index 0000000..790c844 --- /dev/null +++ b/src/model/Captor.java @@ -0,0 +1,64 @@ +package model; + +import javafx.application.Platform; +import javafx.beans.property.DoubleProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.property.StringProperty; +import java.util.Random; +import java.util.UUID; + +public class Captor implements Runnable{ + + private final UUID id= UUID.randomUUID(); + private final StringProperty name; + + private final DoubleProperty temperature; + + static final Random rand=new Random(System.currentTimeMillis()); + + public Captor(String name){ + this.name=new SimpleStringProperty(name); + this.temperature=new SimpleDoubleProperty(1.0); + } + + public UUID getId() + { + return this.id; + } + + public String getName(){ + return this.name.get(); + } + + public DoubleProperty getTemperatureProperty(){ + return this.temperature; + } + + public Double getTemperature(){ + return this.temperature.get(); + } + + public void setTemperature(double temperature){ + this.temperature.set(temperature); + } + + @Override + public void run(){ + while (true){ + Platform.runLater(()->setTemperature(rand.nextDouble(80.)-20.)); + try{ + Thread.sleep(5000); + } + catch (InterruptedException e){ + break; + } + } + } + + public void startThread(){ + Thread threadCaptor = new Thread(this); + threadCaptor.setDaemon(true); + threadCaptor.start(); + } +} diff --git a/src/model/GenererTemperature.java b/src/model/GenererTemperature.java new file mode 100644 index 0000000..96364c5 --- /dev/null +++ b/src/model/GenererTemperature.java @@ -0,0 +1,10 @@ +package model; + +import java.io.FileNotFoundException; +import java.io.IOException; + +public interface GenererTemperature { + + abstract float genererTemperature() throws IOException; + +} diff --git a/src/model/Observateur.java b/src/model/Observateur.java new file mode 100644 index 0000000..58aed6d --- /dev/null +++ b/src/model/Observateur.java @@ -0,0 +1,5 @@ +package model; + +public interface Observateur { + void update(); +} diff --git a/src/model/Reel.java b/src/model/Reel.java new file mode 100644 index 0000000..c8ccf3f --- /dev/null +++ b/src/model/Reel.java @@ -0,0 +1,21 @@ +package model; + +import java.util.Random; + +public class Reel implements GenererTemperature{ + + Random rand = new Random(); + private float min = -30; + private double max = 60; + private float temperature = (float) (min + rand.nextFloat() * (max - min)); + + public Reel(){ + this.temperature = genererTemperature(); + + } + @Override + public float genererTemperature() { + this.temperature=this.temperature + (-2 + rand.nextFloat() * (2-(-2))); + return this.temperature; + } +} diff --git a/src/model/Sujet.java b/src/model/Sujet.java new file mode 100644 index 0000000..9afbf05 --- /dev/null +++ b/src/model/Sujet.java @@ -0,0 +1,18 @@ +package model; + +import java.util.ArrayList; + +public abstract class Sujet { + + public ArrayList observateur = new ArrayList(); + + public void attacher(Observateur o){ + this.observateur.add(o); + } + + public void notifier(){ + for (Observateur o : observateur) { + o.update(); + } + } +} diff --git a/src/view/Image.java b/src/view/Image.java new file mode 100644 index 0000000..94bae0a --- /dev/null +++ b/src/view/Image.java @@ -0,0 +1,22 @@ +package view; + +import model.CapteurVirtuel; +import model.Observateur; + +public class Image implements Observateur { + + public float temperature; + + /* + public void __construct(float temperature){ + this.temperature = new Capteur("Test").getTemperature(); + } + */ + public void initialize(){ + + } + + public void update() { + + } +} diff --git a/src/view/Spinner.java b/src/view/Spinner.java new file mode 100644 index 0000000..fbc7fd2 --- /dev/null +++ b/src/view/Spinner.java @@ -0,0 +1,22 @@ +package view; + +import model.CapteurVirtuel; +import model.Observateur; + +public class Spinner implements Observateur { + + public float temperature ; + + /* + public void __construct(float temperature){ + this.temperature = new Capteur("Test").getTemperature(); + } + */ + public void initialize(){ + + } + + public void update() { + + } +}