From ad529043e3f98511021b2f91585ca10844701651 Mon Sep 17 00:00:00 2001 From: David Paquette Date: Fri, 13 Feb 2015 14:00:26 -0500 Subject: [PATCH] Added two more test cases and model goon UML --- ModelGoon_UML.mgc | 113 +++++++++++++++++++++++ bin/.gitignore | 2 + bin/main/Main.class | Bin 365 -> 365 bytes bin/networking/networking.class | Bin 3148 -> 2386 bytes bin/server/server.class | Bin 257 -> 257 bytes bin/testing/JUnit_Test_Example.class | Bin 540 -> 540 bytes bin/testing/Networking_Test.class | Bin 508 -> 508 bytes bin/testing/ThermostatTest.class | Bin 2011 -> 3031 bytes bin/thermostat/Actuatorable.class | Bin 285 -> 285 bytes bin/thermostat/DataObject.class | Bin 815 -> 815 bytes bin/thermostat/Deviceable.class | Bin 169 -> 169 bytes bin/thermostat/Sensorable.class | Bin 257 -> 257 bytes bin/thermostat/TemperatureActuator.class | Bin 2072 -> 1595 bytes bin/thermostat/TemperatureSensor.class | Bin 1136 -> 1136 bytes bin/thermostat/ThermostatDevice.class | Bin 1356 -> 1356 bytes bin/user_interface/user_interface.class | Bin 297 -> 297 bytes src/testing/ThermostatTest.java | 31 ++++++- src/thermostat/TemperatureActuator.java | 27 ++++-- 18 files changed, 163 insertions(+), 10 deletions(-) create mode 100644 ModelGoon_UML.mgc create mode 100644 bin/.gitignore diff --git a/ModelGoon_UML.mgc b/ModelGoon_UML.mgc new file mode 100644 index 0000000..ce9bc06 --- /dev/null +++ b/ModelGoon_UML.mgc @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..3ad2340 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,2 @@ +/testing/ +/thermostat/ diff --git a/bin/main/Main.class b/bin/main/Main.class index 430c2bae76e31408043ade7266b865524a05314c..680d2265af394dc00e8dff8e3d1cb79c7c036efe 100644 GIT binary patch delta 17 ZcmaFM^p=U^)W2Q(7#J9gH*%yh0suu%26+Gg delta 17 ZcmaFM^p=U^)W2Q(7#J8#Hgcpg0suu+26_Mh diff --git a/bin/networking/networking.class b/bin/networking/networking.class index 89d986a89a3ac46b793829682502a24e2e8e10ba..f44955293e4b2c0572619d4685b5b13be79e2de5 100644 GIT binary patch literal 2386 zcmdT`+fEcg5Uu967lGv>AfnLTa6yF_UyKl60FzCKY}l2^WA97>jXl$op58@2#BVXt zMBn`=WA!-e4m+Co=8{aN=Tvo7o$5=~eE;$JD*!x$%>oQDmEjlsl@4r41qdn8mFhXIz}GMJ4q z^mEg@es(dI2K}xdXLFp|^r=Xi#@>~&r#oos+E_AJ7R1yA`7I|xPTpcrjM31{TAjhn zelMGbHI(iagK>L?CeTFMx;e#dPsvc)mkfrhYex)5cC?QLxWS;(v)(gCn=gUz?^P!B%YE3>kJrVFS|BfYqTy|O9UW~Pb^HsKiU zl{pFR$QL%-Y5s9(%dh~q#^E+BGZ@=W>-k(YU;kZ&uk6bZU$=u6nx>$l?HYylggO#N zI@}fJ3o3*1-g^%tSMlQl+@}VW=@DHG`Rlf=UaO<9eFcO%Yqjgth#O^NP5z^fw$%C9^6&{i`rO@3vWd>%blPMlyZ7F6&w0*so^$f&-@pC=U=UALgcP)! z!dbWMRl{5!D8H%*D`m~0JyQ@hz=3%MZFym)UokKG85eoO7U`lNc_-=LsXF4WAA8)$r>r$$&ses@ z3tc*q${?kE0+RcS3hML1re$nKLF;5Wo48{$-C+fqvm)%QMbM74sUJyY4AXEfDyZq{ zol_7Vv(iGv{t7O<+Y#(Tr-lP)S5PQl%AQ>Z9}e$o3ApfAadnVO5_}ays9`#3d%W@PE;IY72N~YZy@ew9Jf-d!ik_8 zy%J*|Q|XEI&dH7A8cyIOLF*~$n@)RrJ#O6V?!{phr&w&)sbLLVE-WnxmT6Y#X<@54 zqoAXB7Bh1Nhm;6C>m5fZt#c~QGV?Mh*Q*JQIzFR@&#a6sffZn8Ls zc@?*d>LG)Hh#Hc(Lowte2s#;gO;QU1uihXS_5)S=VyHpf)o@StL~SZ#<%Ja7U9y%j zNPsD97Ta@HEmfAdF7K*@R{dh6z0KDagF3Goac(IBocZdKS{#HWwVIPAuUfD} zRgfdE&5PvTwhc$v@~)$yfHekW2Td28Qsc??C|4wS!je41BN_6sg3fY#RM^~+$R6TT z4WG$Lp}Jbgn6e@qtFmZSV)YP_ayRq9pk@(#sw#@ml(jfjE!&$-a?-Z>J5+jL{_f5T zr@~uHA(z&j;J*!LV%#d&DRI@1qqM2~mvvIMY#slJz~PU2bf6Y>T&Y}z+;v0MIuckn z(q5}t?+UDU^SmjrZswYUp1wQenCG*BG4`OH5%+R+o-yU8eGB`No9Orj2TN~VKk*=h zD1RfaStp+d@s_(Q9lcFAAspd4On2`{hst3Fuj9_b7P^xy2j(}?Gtsw!{>d#2B)4!n z*}s8zH*tOwBU8sWF!~&07k@^qbvpbzYLYdFp5s=010UXg25l%z+l7ws3;B4q{o7D2 z9evbM`+`B6ahYGB5wrY)Tt@kOmAQfd8`;jy=*52Y;V_>^a2)+OiE|vn!+eh76i3r( zT*nzq@HtKJvp9Wr}@Fsu44|kB_-(<{cf2O!EjSNFhxO{p3+F*%~a-q8s6t zXjIX?O(!8fRd#}+V!3`>)`J`FinJL!)5cP~8Ep^#JK8QV-Ahb#oU~mbZR1S!8k3AM zpBtntMhYglJ4xE6_%=z}MoHTYX}d+*X8&i}GRRh|4L`C-wX#@S7)l_1D`zG{%a`AEh#3JP$N=VVox+(ZtEqvdyh?WA6;1Bsm| z#J*mE{i_moISAey``4vmA(@aLr92qq}>utVE*mS=0B9o K6@2Hy`u-nfAgEpd diff --git a/bin/server/server.class b/bin/server/server.class index 581270c89054f92ed4dd482385f1590cbf07984d..2cfaababec0c3bf63a17d0424315b98ec70caee4 100644 GIT binary patch delta 16 XcmZo5cc1_lP>i5x!xGGYc4 delta 16 XcmZo5cc1_lO`i5x!xGG+!9 diff --git a/bin/testing/JUnit_Test_Example.class b/bin/testing/JUnit_Test_Example.class index 83428ddc25633395db46570e98eb91d4b8ced55d..fb8834f4dac3aba1d58127f95b37994f8973f75c 100644 GIT binary patch delta 17 ZcmbQkGKYoZ)W2Q(7#J9gH*$zD0RTG61&aUx delta 17 ZcmbQkGKYoZ)W2Q(7#J8#HgbqC0RTGB1&jay diff --git a/bin/testing/Networking_Test.class b/bin/testing/Networking_Test.class index 536b4d66db6da295397857bddd2082c15578ea56..1a6c010dbf0cc16c57000e0c70471e9387d1e1cb 100644 GIT binary patch delta 17 Zcmeyv{D+z2)W2Q(7#J9gH*$Po1OP~D2Pgml delta 17 Zcmeyv{D+z2)W2Q(7#J8#HgbGn1OP~I2Ppsm diff --git a/bin/testing/ThermostatTest.class b/bin/testing/ThermostatTest.class index 1c1ab69bd4c031b7a2027645651076a994ce5c24..b625c771a638540031e1233da0c8639ad6070d58 100644 GIT binary patch literal 3031 zcmcguSyxk66#gy*Zj4t!Mn%Lp)dbX_I0sQ=P}+cKC@tFQ0>>E5KyPlacAn>X#>cL% z)u%qRt0rA#t**Yd@BIb+9d-5F_g+E*So_puo?M-HqcAtjoP< zZy-CX0;oovf%PzSY|^mxUl0aRkGgfx&}5(nwK`ffw3pkj1Q|dxHjD2q8rnkT_*}~7 zbV^0Tlj3r#0UdrF+emzEmrFbXXm?Qr4Xi^Tz{NWa?1G`8RWfqP%*-p_27TU4<<*6&)LQ6r zIJU}+KALgFz)>6{<%CO84VyQVkoHufVM{1nk#W;DT~TuV2}E_A)X-d(>cNtMfnJ=_ z;7=%fQlKzt^tFt`bED&Q1&a|THKCa7KJ*(nivhYwW|mw~awC2W(U(^i6?7{V6x33o za|X_1gk3aeaoL2FQswd~o9PUN%EHHO&L^T}BVPU}C9j9Z&0J2+YG_=;h-tM-67jO- z(QLg(!nmZe*0<)C>b-C6CB0>Vy}U&G*nu13wmEZS)SPqVqT>>UwVc@DRMxa>Pyf~9 zd;++LN$H+P*s7ty@TAmjN(L^oa^)HE3L+Nmc+9}#c!CX=Q>EQuJbP1FWAhUiKrwws4v&=yg}n z?VeWC+ox6`sgWI&?mF+ENGCl`8vjGqmo(8Atv&twf_!fKkuAaVdfS1w4o@SegL`P% z1|GkavsK!FjXd|uY@U00vs=_;HZm>>r4E&uW+UBX8!i{omFL-fGBv9#KW=HL5iJJ; zn8$Ncz2{d{&(pJHejYCxcnL3at2XE6RE84XUtZ`X(=v5cgp2y|D!cAvaJ)Yr9~u;g zuN!y+Z*tJix~40;+4C8|+jv*UJ8T+DN)jkL8ktstjo-M24SPJE%~Q+6N!f-QCrW3kxZTUjfH|Ltg=B>JNR3*0R^JZ{YVirVWE# zMGOlTpM#~%;k}vsw-C)%#%)J85go&J2Sd<}<6)@bKb!~gkb|NNF^m$`7=5|8WaI)z z#yPSc+TZBb5z)CHRmrL9LI0BheKhEIpfBRY)FLiUH6dQa!$mwgN;2Dt{EFNQcyesN zLn>0h^z9OdtCbwweC{NNU1-H_BHx3({2oS#!8>t=OeCM3Zr~D^UXM#FXRbM1_M#0* zK2oQwQUut~QcW*l$B&p>#QaplGetbxRlo}kukcd9YX!XZ9XeLc zzF(RZC0091Y#})y$`0&hhn!*!`$$V_2e>Ni_bSJ*_z)iviadQxJ-V9np=wVX|L%Q) qPd%7Nco!>u5n2(SEw^BROMn4tanK1MrIY6W9AEIR;Y(ht@YO%LvDMiC literal 2011 zcmaJ>ZBrXn6n<_9-H>j|OL!An8o;&*&_dsAZIB8DDjHrSF$%Tn5^lpnvYXj#nCVaH zSH~GY`9a4fj?6fI_CM+P-0T7y8vU?$ch7z9InQ~{x#zEce*Xi&15`AG1O{DMbxo@{ zn>&zB*{-^Vo1;ZTSfJ<7I5uWW26s324rRd=h$^@T6}Xmh&khC7FUw=IAk#iLE3K;S z2#mFWWw|09!>u{e+b8#&y0!lf@WmcAzb7r_e9Vd+WLhErri z#@k@nds(~Y6y&O@#zQ=JHbj-qcT{+c(@O`(bche98CR$g#5K$v&O@%3`S-H<4@^!q zpiiCP%1#44Z_&%o_|DX?=xt!&Erz)}@-yKfT;n=Om*DX*baW$zF|HHn;TyCFu9LWq z1m7Vw?fg(bk&vSFxZ^jBXXtylj$7+9bxi+>yLH^}x%UHx0>2yIBNA>x`yNd<@S%zy zZpI&JCKM-&enua}G=?yT5j?_ZlS9Ib<8$c5eSCxkvWOA+6d#k-B7G^Qo@I%aXS7^~ z_#1N?CNvJNkQx#`^*0Qxs4tS<@*9l*f=^DcvD3HJ!1i<5cc1_lP>i5x!xGGYc4 delta 16 XcmZo5cc1_lO`i5x!xGG+!9 diff --git a/bin/thermostat/TemperatureActuator.class b/bin/thermostat/TemperatureActuator.class index c876a2a6af4599443979e9151a32293ec816224d..5b524dd77dac72b890c1aaec75de961dedda9f16 100644 GIT binary patch literal 1595 zcmZ`&+fEZv6kVs34vfRqQYZ+5qPFEy1h0S~7aJcyNFYu0?NAS;SUO~wVtnxreD=*( zUo}xMni!w`3ctj-&UB!I43o_5oW0jtd+mLG|NZ_Gz!Y)@A_4>Mj&kEk~=5RkV@wTqD%HmWugIX z7B0au&>_$jN^9aWx(vhxI?f?mNT6H5IF#k8TH6*#q+X;$1ejs|50`XMP6Tf5w zX;xZy)I%|m!ia@Yj0u?A8rO$l({i!-Kb%8eCcV0CVG>WPdg83DZ}v~D&4gPLR<%G2$F}flRqp$JX%D#V$=7;kEezqBK%+M* zteo~NotgS1T?!pQHgNo+y`ZA{wCg@BT3FKK)B(^hEOAOxq(gKE`hz7d~6Kl0%eVKsO=*@W zG)sbdfgW@s$?sl1`?%iku_bCqJ{vJ{&#US_Giplo$^+_n=;1|@y8h{Nn%0S{Xui)`7;%7xaB1NyH=3)&s)< z`xq6s3B%D{4Z)cp&SVIVz_O?M F$v?SuQG5UZ literal 2072 zcmZ`)T~`}b6x}xo8IlYw1)A{D@*%B+RGL;1KY~<*2GP*O2C3h5h+`NWX0j$XboIr5 z;InVO`fOKQ#Rr$q{tADI%Y7#anZS^&+&lNoy?dXt&p9{${P*Wy0G6?@AtEp>4@~dK zZAwGtcg>@Q=^3)+nd>##GNkKihzSfI8plT7Hk^9Cynkrcq=vXaCUCO5-PpHHfmpp^ zxdL;gntPOQSj&fb%grlWev89~>qyVFZPP0#`X1+o>)M@{T|9w>aFB}SY+7|o8g{uQ z8!dST>O<3z=b+-NmSf2^foOJdk6v!L-=@fVNfHEWa;zC4B;1%4^FdxQ8j4D%a>bQwlsZ6Q-NMI_I%imW>A&Z=bMS+=f z&i7|m$1S`@&W7h6TTRRDPZ)^>>})7gq0}q5s`M7|_R)(nUK4G*~x5aRamby*HLu%-@N&x2QMwGt+jw9-3p~w+c z;Qq|gL+(3zGC}`&Ve3N{TIp9$T6m88VM!g5T?y^4ZdDqz)S~QAUNVpYU|s6J>cw zOV!7VOen>6&-qj#j`As=>-4lE*&=d6%DZ#rsfq8~{BOvBzhc2S}BOH=QZAfCDgy)*z)wN diff --git a/bin/thermostat/TemperatureSensor.class b/bin/thermostat/TemperatureSensor.class index 3eb29fdebe611a76b8496a033f0add210e3277f1..2dd087762d95eda26a54c4e1a218e10598feb729 100644 GIT binary patch delta 17 Zcmeys@qvTm)W2Q(7#J9gH*#dK002g829W>& delta 17 Zcmeys@qvTm)W2Q(7#J8#HgaUJ002gD29f{( diff --git a/bin/thermostat/ThermostatDevice.class b/bin/thermostat/ThermostatDevice.class index ef5be945aed8e4e27506a6f88a05a6cb4b0ad586..c68e518cdbc675ef13addf600608c1fb815840d5 100644 GIT binary patch delta 17 ZcmX@Zb%u-M)W2Q(7#J9gH*&bJ0sukb1}Xpm delta 17 ZcmX@Zb%u-M)W2Q(7#J8#HgdSI0sukg1}gvn diff --git a/bin/user_interface/user_interface.class b/bin/user_interface/user_interface.class index f29c83347dc90c85a0b523b94489231692e7baae..d785b01338dcdaa787c9f1ddbe49a5de7a4a9bfa 100644 GIT binary patch delta 17 ZcmZ3 50 && randomTemperatureValue.getValue()<78){ testPassed = true; } - this.printTestResults("Generate Random Temp", testPassed); } + private void testEnterCoolingMode(){ + Boolean testPassed = false; + DataObject actuatorPowerPercentage = new DataObject(new Float(.60)); + this.testActuator.setActuatorPowerPercentage(actuatorPowerPercentage); + DataObject state = this.testActuator.getCurrentState(); + + if(state.getValue() == false){ + testPassed = true; + } + this.printTestResults("Enter Cooling Mode", testPassed); + } + + private void testEnterHeatingMode(){ + Boolean testPassed = false; + DataObject actuatorPowerPercentage = new DataObject(new Float(.20)); + this.testActuator.setActuatorPowerPercentage(actuatorPowerPercentage); + DataObject state = this.testActuator.getCurrentState(); + + if(state.getValue() == true){ + testPassed = true; + } + + this.printTestResults("Enter Heating Mode", testPassed); + } + private void printTestResults(String testName, Boolean testResult) { if(testResult){ System.out.println("Test "+testName+": PASSED"); diff --git a/src/thermostat/TemperatureActuator.java b/src/thermostat/TemperatureActuator.java index f28a694..624723f 100644 --- a/src/thermostat/TemperatureActuator.java +++ b/src/thermostat/TemperatureActuator.java @@ -1,21 +1,23 @@ package thermostat; -import com.pi4j.io.gpio.GpioController; +/*import com.pi4j.io.gpio.GpioController; import com.pi4j.io.gpio.GpioFactory; import com.pi4j.io.gpio.GpioPinDigitalOutput; import com.pi4j.io.gpio.PinState; import com.pi4j.io.gpio.RaspiPin; - +*/ public class TemperatureActuator implements Actuatorable { - private final GpioController gpio = GpioFactory.getInstance(); + /*private final GpioController gpio = GpioFactory.getInstance(); private GpioPinDigitalOutput temperatureCoolControlActuator; private GpioPinDigitalOutput temperatureHeatControlActuator; + */private DataObject currentState; public TemperatureActuator() { - this.temperatureCoolControlActuator = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, "TemperatureCoolControlActuator", PinState.LOW); - this.temperatureHeatControlActuator = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, "TemperatureHeatControlActuator", PinState.LOW); + //this.temperatureCoolControlActuator = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, "TemperatureCoolControlActuator", PinState.LOW); + //this.temperatureHeatControlActuator = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, "TemperatureHeatControlActuator", PinState.LOW); + this.currentState = new DataObject(true); } public void setActuatorPowerPercentage(DataObject percentage) { @@ -30,14 +32,21 @@ public void setActuatorValue(DataObject value) { this.setActuatorPowerPercentage(value); //do this for use with LED demo unit } + public DataObject getCurrentState(){ + return this.currentState; + } + private void enterCoolingMode(){ - this.temperatureCoolControlActuator.high(); - this.temperatureHeatControlActuator.low(); + //this.temperatureCoolControlActuator.high(); + //this.temperatureHeatControlActuator.low(); + this.currentState.setValue(false); } private void enterHeatingMode(){ - this.temperatureCoolControlActuator.low(); - this.temperatureHeatControlActuator.high(); + //this.temperatureCoolControlActuator.low(); + //this.temperatureHeatControlActuator.high(); + this.currentState.setValue(true); + } }