home *** CD-ROM | disk | FTP | other *** search
- 10 ! ********************************************************
- 20 ! Example: Environmental Chamber
- 30 !
- 40 ! This program shows how a user can build a custom display
- 50 ! panel. This program uses a strip chart, labels, menus,
- 60 ! dialog box, buttons, string input, and meters to simulate
- 70 ! a temperature/humidity chamber that can be programmed for
- 80 ! different temperature/humidity profiles.
- 90 !
- 100 ! *********************************************************
- 110 !
- 120 REAL Points(0:1)
- 130 DIM Buf$[100]
- 140 DIM Btn$(1:1,1:3)[80]
- 150 DIM Time(50),Temp(50),Humid(50),Ramp(50)
- 160 Btn$(1,1)="Options, Temperature"
- 170 Btn$(1,2)="Options, Humidity"
- 180 Btn$(1,3)="Options, Profile Manager"
- 190 Logimage: IMAGE #,K,K,K,K,K,DDDD.D,K,DDD.D
- 200 Logimage2: IMAGE #,K,DDDD,K,DDDD.D,K,DDD.D,K,DDD
- 210 !
- 220 ASSIGN @Main TO WIDGET "PANEL";SET ("X":0,"Y":0,"WIDTH":600,"HEIGHT":425,"TITLE":" Example: Environmental Chamber","SIZE CONTROL":"RESIZE CHILDREN")
- 230 CONTROL @Main;SET ("SYSTEM MENU":"Quit")
- 240 ON EVENT @Main,"SYSTEM MENU" GOTO Finis
- 250 !
- 260 ASSIGN @Pulldown1 TO WIDGET "PULLDOWN MENU";PARENT @Main,SET ("LABEL":"Chart","SENSITIVE":0)
- 270 ASSIGN @Pd_btn1 TO WIDGET "MENU BUTTON";PARENT @Pulldown1,SET ("LABEL":"Temperature")
- 280 ASSIGN @Pd_btn2 TO WIDGET "MENU BUTTON";PARENT @Pulldown1,SET ("LABEL":"Humidity")
- 290 ASSIGN @Pd_btn3 TO WIDGET "MENU BUTTON";PARENT @Pulldown1,SET ("LABEL":"Profile Manager")
- 300 ASSIGN @Pulldown2 TO WIDGET "PULLDOWN MENU";PARENT @Main,SET ("LABEL":"Operation","SENSITIVE":0)
- 310 ASSIGN @Pd_btn4 TO WIDGET "MENU BUTTON";PARENT @Pulldown2,SET ("LABEL":"Manual")
- 320 ASSIGN @Pd_cscd TO WIDGET "CASCADE MENU";PARENT @Pulldown2,SET ("LABEL":"Automatic")
- 330 ASSIGN @Pd_btn5 TO WIDGET "MENU BUTTON";PARENT @Pd_cscd,SET ("LABEL":"(Re)start")
- 340 ASSIGN @Pd_btn6 TO WIDGET "MENU BUTTON";PARENT @Pd_cscd,SET ("LABEL":"Continue")
- 350 !
- 360 ON EVENT @Pd_btn1,"ACTIVATED" GOSUB Btn1
- 370 ON EVENT @Pd_btn2,"ACTIVATED" GOSUB Btn2
- 380 ON EVENT @Pd_btn3,"ACTIVATED" GOSUB Btn3
- 390 ON EVENT @Pd_btn4,"ACTIVATED" GOSUB Btn4
- 400 ON EVENT @Pd_btn5,"ACTIVATED" GOSUB Btn5
- 410 ON EVENT @Pd_btn6,"ACTIVATED" GOSUB Btn6
- 420 !
- 430 ! Create the widgets for the temperature profile.
- 440 !
- 450 ASSIGN @Main1 TO WIDGET "PANEL";PARENT @Main,SET ("X":0,"Y":0,"WIDTH":600,"HEIGHT":279,"BORDER":0,"VISIBLE":0,"SIZE CONTROL":"RESIZE CHILDREN")
- 460 ASSIGN @Strip TO WIDGET "STRIPCHART";PARENT @Main1,SET ("X":5,"Y":5,"WIDTH":350,"HEIGHT":250,"SHOW NUMBERING":0)
- 470 ASSIGN @Lbl0 TO WIDGET "LABEL";PARENT @Main1,SET ("X":5,"Y":260,"WIDTH":350,"HEIGHT":20,"BORDER":0,"VALUE":"Event History -- Temperature")
- 480 ASSIGN @Lbl1 TO WIDGET "LABEL";PARENT @Main1,SET ("X":365,"Y":15,"WIDTH":120,"HEIGHT":20,"BORDER":0,"VALUE":"Curr Temp")
- 490 ASSIGN @Disp1 TO WIDGET "METER";PARENT @Main1,SET ("X":365,"Y":35,"WIDTH":120,"HEIGHT":150,"MINIMUM":-75,"MAXIMUM":+75)
- 500 ASSIGN @Lbl2 TO WIDGET "LABEL";PARENT @Main1,SET ("X":365,"Y":200,"WIDTH":120,"HEIGHT":20,"BORDER":0,"VALUE":"Set Point")
- 510 ASSIGN @Disp2 TO WIDGET "LABEL";PARENT @Main1,SET ("X":365,"Y":220,"WIDTH":120,"HEIGHT":25)
- 520 ASSIGN @Slider TO WIDGET "SLIDER";PARENT @Main1,SET ("X":505,"Y":5,"HEIGHT":250,"WIDTH":60,"MINIMUM":-50,"MAXIMUM":50)
- 530 !
- 540 ! Set up the strip chart
- 550 !
- 560 CONTROL @Strip;SET ("CURRENT AXIS":"Y","TICK SPACING":10,"ORIGIN":-50,"RANGE":100)
- 570 CONTROL @Strip;SET ("CURRENT AXIS":"X","RANGE":20)
- 580 CONTROL @Disp1;SET ("LOW LIMIT":-45,"HIGH LIMIT":+45,"ALARM RANGES":"LOW,HIGH")
- 590 STATUS @Disp1;RETURN ("LOW PEN":Low_pen,"HIGH PEN":High_pen)
- 600 CONTROL @Disp1;SET ("LOW PEN":High_pen,"MIDDLE PEN":Low_pen)
- 610 !
- 620 ! Create the widgets for the humidity profile
- 630 !
- 640 ASSIGN @Main2 TO WIDGET "PANEL";PARENT @Main,SET ("X":0,"Y":0,"WIDTH":600,"HEIGHT":279,"VISIBLE":0,"SIZE CONTROL":"RESIZE CHILDREN")
- 650 ASSIGN @Strip2 TO WIDGET "STRIPCHART";PARENT @Main2,SET ("X":5,"Y":5,"WIDTH":350,"HEIGHT":250,"SHOW NUMBERING":0)
- 660 ASSIGN @Lbl02 TO WIDGET "LABEL";PARENT @Main2,SET ("X":5,"Y":260,"WIDTH":350,"HEIGHT":20,"BORDER":0,"VALUE":"Event History -- Humidity")
- 670 ASSIGN @Lbl12 TO WIDGET "LABEL";PARENT @Main2,SET ("X":365,"Y":15,"WIDTH":120,"HEIGHT":20,"BORDER":0,"VALUE":"Curr Humidity")
- 680 ASSIGN @Disp12 TO WIDGET "METER";PARENT @Main2,SET ("X":365,"Y":35,"WIDTH":120,"HEIGHT":150,"MINIMUM":0)
- 690 ASSIGN @Lbl22 TO WIDGET "LABEL";PARENT @Main2,SET ("X":365,"Y":200,"WIDTH":120,"HEIGHT":20,"BORDER":0,"VALUE":"Set Point")
- 700 ASSIGN @Disp22 TO WIDGET "LABEL";PARENT @Main2,SET ("X":365,"Y":220,"WIDTH":120,"HEIGHT":25)
- 710 ASSIGN @Slider2 TO WIDGET "SLIDER";PARENT @Main2,SET ("X":505,"Y":5,"HEIGHT":250,"WIDTH":60)
- 720 !
- 730 ! Set up the strip chart
- 740 !
- 750 CONTROL @Strip2;SET ("CURRENT AXIS":"Y","TICK SPACING":10,"ORIGIN":0,"RANGE":100)
- 760 CONTROL @Strip2;SET ("CURRENT AXIS":"X","RANGE":20)
- 770 CONTROL @Disp12;SET ("LOW LIMIT":5,"HIGH LIMIT":95,"ALARM RANGES":"LOW,HIGH")
- 780 STATUS @Disp12;RETURN ("LOW PEN":Low_pen,"HIGH PEN":High_pen)
- 790 CONTROL @Disp12;SET ("LOW PEN":High_pen,"MIDDLE PEN":Low_pen)
- 800 !
- 810 ! Create widgets for profile manager
- 820 !
- 830 ASSIGN @Main3 TO WIDGET "PANEL";PARENT @Main,SET ("X":0,"Y":0,"WIDTH":600,"HEIGHT":279,"BORDER":0,"VISIBLE":0,"SIZE CONTROL":"RESIZE CHILDREN")
- 840 ASSIGN @Lbl3 TO WIDGET "LABEL";PARENT @Main3,SET ("X":255,"Y":200,"WIDTH":90,"HEIGHT":20,"BORDER":0,"VALUE":"Low Limit")
- 850 ASSIGN @Lbl4 TO WIDGET "LABEL";PARENT @Main3,SET ("X":255,"Y":230,"WIDTH":90,"HEIGHT":20,"BORDER":0,"VALUE":"High Limit")
- 860 ASSIGN @Meter1 TO WIDGET "METER";PARENT @Main3,SET ("X":345,"Y":35,"WIDTH":120,"HEIGHT":150,"MINIMUM":-75,"MAXIMUM":+75)
- 870 ASSIGN @Meter2 TO WIDGET "METER";PARENT @Main3,SET ("X":465,"Y":35,"WIDTH":120,"HEIGHT":150,"MINIMUM":0)
- 880 ASSIGN @Lmeter1 TO WIDGET "LABEL";PARENT @Main3,SET ("X":345,"Y":15,"WIDTH":120,"HEIGHT":20,"BORDER":0,"VALUE":"Curr Temp")
- 890 ASSIGN @Lmeter2 TO WIDGET "LABEL";PARENT @Main3,SET ("X":465,"Y":15,"WIDTH":120,"HEIGHT":20,"BORDER":0,"VALUE":"Curr Humidity")
- 900 ASSIGN @Temp_low TO WIDGET "NUMBER";PARENT @Main3,SET ("X":345,"Y":200,"WIDTH":120,"HEIGHT":20,"REAL NOTATION":"FIXED","REAL RESOLUTION":1)
- 910 ASSIGN @Temp_high TO WIDGET "NUMBER";PARENT @Main3,SET ("X":345,"Y":230,"WIDTH":120,"HEIGHT":20,"REAL NOTATION":"FIXED","REAL RESOLUTION":1)
- 920 ASSIGN @Humid_low TO WIDGET "NUMBER";PARENT @Main3,SET ("X":465,"Y":200,"WIDTH":120,"HEIGHT":20,"REAL NOTATION":"FIXED","REAL RESOLUTION":1)
- 930 ASSIGN @Humid_high TO WIDGET "NUMBER";PARENT @Main3,SET ("X":465,"Y":230,"WIDTH":120,"HEIGHT":20,"REAL NOTATION":"FIXED","REAL RESOLUTION":1)
- 940 ASSIGN @Time TO WIDGET "NUMBER";PARENT @Main3,SET ("X":10,"Y":50,"WIDTH":75,"HEIGHT":20,"REAL NOTATION":"FIXED","REAL RESOLUTION":1)
- 950 ASSIGN @Temp TO WIDGET "NUMBER";PARENT @Main3,SET ("X":95,"Y":50,"WIDTH":50,"HEIGHT":20,"REAL NOTATION":"FIXED","REAL RESOLUTION":1)
- 960 ASSIGN @Humid TO WIDGET "NUMBER";PARENT @Main3,SET ("X":155,"Y":50,"WIDTH":50,"HEIGHT":20,"REAL NOTATION":"FIXED","REAL RESOLUTION":1)
- 970 ASSIGN @Slope TO WIDGET "NUMBER";PARENT @Main3,SET ("X":215,"Y":50,"WIDTH":50,"HEIGHT":20,"REAL NOTATION":"FIXED","REAL RESOLUTION":1)
- 980 ASSIGN @Save_me TO WIDGET "PUSHBUTTON";PARENT @Main3,SET ("X":275,"Y":50,"WIDTH":60,"HEIGHT":24,"LABEL":"Set","BORDER":0)
- 990 ASSIGN @Kill_me TO WIDGET "PUSHBUTTON";PARENT @Main3,SET ("X":275,"Y":80,"WIDTH":60,"HEIGHT":24,"LABEL":"Clear","BORDER":0)
- 1000 ASSIGN @Time_disp TO WIDGET "LABEL";PARENT @Main3,SET ("X":10,"Y":30,"WIDTH":75,"HEIGHT":20,"VALUE":"Time")
- 1010 ASSIGN @Temp_disp TO WIDGET "LABEL";PARENT @Main3,SET ("X":95,"Y":30,"WIDTH":50,"HEIGHT":20,"VALUE":"Temp")
- 1020 ASSIGN @Humid_disp TO WIDGET "LABEL";PARENT @Main3,SET ("X":155,"Y":30,"WIDTH":50,"HEIGHT":20,"VALUE":"Humid")
- 1030 ASSIGN @Ramp_disp TO WIDGET "LABEL";PARENT @Main3,SET ("X":215,"Y":30,"WIDTH":50,"HEIGHT":20,"VALUE":"Ramp")
- 1040 ASSIGN @Save_disp TO WIDGET "LABEL";PARENT @Main3,SET ("X":275,"Y":30,"WIDTH":60,"HEIGHT":20,"VALUE":"Config")
- 1050 ASSIGN @Text2 TO WIDGET "PRINTER";PARENT @Main3,SET ("X":5,"Y":80,"WIDTH":250,"HEIGHT":200)
- 1060 CONTROL @Meter1;SET ("LOW LIMIT":-45,"HIGH LIMIT":+45,"ALARM RANGES":"LOW,HIGH")
- 1070 STATUS @Meter1;RETURN ("LOW PEN":Low_pen,"HIGH PEN":High_pen)
- 1080 CONTROL @Meter1;SET ("LOW PEN":High_pen,"MIDDLE PEN":Low_pen)
- 1090 CONTROL @Meter2;SET ("LOW LIMIT":5,"HIGH LIMIT":95,"ALARM RANGES":"LOW,HIGH")
- 1100 STATUS @Meter2;RETURN ("LOW PEN":Low_pen,"HIGH PEN":High_pen)
- 1110 CONTROL @Meter2;SET ("LOW PEN":High_pen,"MIDDLE PEN":Low_pen)
- 1120 GOSUB Setup_profile
- 1130 !
- 1140 ! Printer Widget appears in all subpanels.
- 1150 !
- 1160 ASSIGN @Text TO WIDGET "PRINTER";PARENT @Main,SET ("X":5,"Y":280,"WIDTH":580,"HEIGHT":80)
- 1170 !
- 1180 ! From here to "Afteron" represents: ON EVENT @Btn1 GOSUB Servicebtn
- 1190 !
- 1200 ON EVENT @Slider,"CHANGED" GOSUB Changesetpt
- 1210 ON EVENT @Slider,"DONE" GOSUB Changesetpt
- 1220 ON EVENT @Slider2,"CHANGED" GOSUB Changesetpt
- 1230 ON EVENT @Slider2,"DONE" GOSUB Changesetpt
- 1240 ON EVENT @Temp_low,"DONE" GOSUB Change_tlow
- 1250 ON EVENT @Temp_high,"DONE" GOSUB Change_thigh
- 1260 ON EVENT @Humid_low,"DONE" GOSUB Change_hlow
- 1270 ON EVENT @Humid_high,"DONE" GOSUB Change_hhigh
- 1280 ON EVENT @Save_me,"ACTIVATED" GOSUB Modify_profile
- 1290 ON EVENT @Kill_me,"ACTIVATED" GOSUB Clear_profile
- 1300 Afteron:!
- 1310 !
- 1320 ! Get down to work
- 1330 !
- 1340 Setpt=23
- 1350 Setpt2=30
- 1360 Curtemp=0
- 1370 Curhumid=10
- 1380 Siz=2
- 1390 Index=1
- 1400 CONTROL @Slider;SET ("VALUE":Setpt)
- 1410 CONTROL @Slider2;SET ("VALUE":Setpt2)
- 1420 CONTROL @Time;SET ("VALUE":0)
- 1430 CONTROL @Temp;SET ("VALUE":Setpt)
- 1440 CONTROL @Humid;SET ("VALUE":Setpt2)
- 1450 CONTROL @Slope;SET ("VALUE":0)
- 1460 CONTROL @Main1;SET ("VISIBLE":1)
- 1470 CONTROL @Pulldown1;SET ("SENSITIVE":1)
- 1480 CONTROL @Pulldown2;SET ("SENSITIVE":1)
- 1490 !
- 1500 Gotnewsetpt:!
- 1510 Reloop=0
- 1520 CONTROL @Disp2;SET ("VALUE":Setpt)
- 1530 CONTROL @Disp22;SET ("VALUE":Setpt2)
- 1540 Evt=Evt+1
- 1550 OUTPUT Buf$ USING Logimage;"#";Evt;": Time = ";TIME$(TIMEDATE);" Setpoint changed to ";Setpt;" Deg. C, ";Setpt2;" % Hum."
- 1560 CONTROL @Text;SET ("APPEND TEXT":Buf$)
- 1570 LOOP
- 1580 !
- 1590 IF Auto=1 THEN GOSUB Get_next_setpt
- 1600 Diff=Setpt-Curtemp
- 1610 Diff2=Setpt2-Curhumid
- 1620 Noise=Siz*(RND-.5)*2
- 1630 Delta=Diff/20+Noise
- 1640 Delta2=Diff2/20+Noise
- 1650 Curtemp=Curtemp+Delta
- 1660 Curhumid=Curhumid+Delta2
- 1670 !
- 1680 CONTROL @Strip;SET ("POINT LOCATION":I)
- 1690 CONTROL @Strip2;SET ("POINT LOCATION":I)
- 1700 Points(0)=Curtemp
- 1710 Points(1)=Setpt
- 1720 I=I+1
- 1730 CONTROL @Strip;SET ("VALUES":Points(*))
- 1740 CONTROL @Disp1;SET ("VALUE":Curtemp)
- 1750 CONTROL @Meter1;SET ("VALUE":Curtemp)
- 1760 Points(0)=Curhumid
- 1770 Points(1)=Setpt2
- 1780 CONTROL @Strip2;SET ("VALUES":Points(*))
- 1790 CONTROL @Disp12;SET ("VALUE":Curhumid)
- 1800 CONTROL @Meter2;SET ("VALUE":Curhumid)
- 1810 !
- 1820 EXIT IF Reloop
- 1830 END LOOP
- 1840 GOTO Gotnewsetpt
- 1850 !
- 1860 Servicebtn:!
- 1870 STATUS @Str1;RETURN ("VALUE":Buf$)
- 1880 Setpt=VAL(Buf$)
- 1890 Reloop=1
- 1900 RETURN
- 1910 STOP
- 1920 Btn1:! Temperature
- 1930 GOSUB Turn_off_setup
- 1940 GOSUB Turn_off_humid
- 1950 GOSUB Turn_on_temp
- 1960 RETURN
- 1970 Btn2:! Humidity
- 1980 GOSUB Turn_off_setup
- 1990 GOSUB Turn_off_temp
- 2000 GOSUB Turn_on_humid
- 2010 RETURN
- 2020 Btn3:!
- 2030 GOSUB Turn_off_humid
- 2040 GOSUB Turn_off_temp
- 2050 GOSUB Turn_on_setup
- 2060 RETURN
- 2070 Btn4:! Manual
- 2080 Auto=0
- 2090 STATUS @Strip;RETURN ("VISIBLE":Temp_vis)
- 2100 STATUS @Strip2;RETURN ("VISIBLE":Humid_vis)
- 2110 CONTROL @Slider2;SET ("VALUE":Setpt2)
- 2120 CONTROL @Slider;SET ("VALUE":Setpt)
- 2130 IF Temp_vis THEN CONTROL @Slider;SET ("VISIBLE":1)
- 2140 IF Humid_vis THEN CONTROL @Slider2;SET ("VISIBLE":1)
- 2150 RETURN
- 2160 Btn5:!
- 2170 Auto=1
- 2180 CONTROL @Slider;SET ("VISIBLE":0)
- 2190 CONTROL @Slider2;SET ("VISIBLE":0)
- 2200 Index=1
- 2210 Time_start=TIMEDATE
- 2220 RETURN
- 2230 Btn6:!
- 2240 Auto=1
- 2250 CONTROL @Slider;SET ("VISIBLE":0)
- 2260 CONTROL @Slider2;SET ("VISIBLE":0)
- 2270 RETURN
- 2280 !
- 2290 Turn_off_temp:!
- 2300 CONTROL @Main1;SET ("VISIBLE":0)
- 2310 RETURN
- 2320 Turn_off_humid:!
- 2330 CONTROL @Main2;SET ("VISIBLE":0)
- 2340 RETURN
- 2350 Turn_on_temp:!
- 2360 CONTROL @Main1;SET ("VISIBLE":1)
- 2370 IF (Auto=0) THEN CONTROL @Slider;SET ("VISIBLE":1)
- 2380 RETURN
- 2390 Turn_on_humid:!
- 2400 CONTROL @Main2;SET ("VISIBLE":1)
- 2410 IF (Auto=0) THEN CONTROL @Slider2;SET ("VISIBLE":1)
- 2420 RETURN
- 2430 Turn_off_setup:!
- 2440 CONTROL @Main3;SET ("VISIBLE":0)
- 2450 RETURN
- 2460 Turn_on_setup:!
- 2470 CONTROL @Main3;SET ("VISIBLE":1)
- 2480 STATUS @Meter1;RETURN ("LOW LIMIT":Low_lim,"HIGH LIMIT":High_lim)
- 2490 CONTROL @Temp_low;SET ("VALUE":Low_lim)
- 2500 CONTROL @Temp_high;SET ("VALUE":High_lim)
- 2510 STATUS @Meter2;RETURN ("LOW LIMIT":Low_lim,"HIGH LIMIT":High_lim)
- 2520 CONTROL @Humid_high;SET ("VALUE":High_lim)
- 2530 CONTROL @Humid_low;SET ("VALUE":Low_lim)
- 2540 RETURN
- 2550 Changesetpt:!
- 2560 IF Auto=0 THEN
- 2570 STATUS @Slider;RETURN ("VALUE":Setpt)
- 2580 STATUS @Slider2;RETURN ("VALUE":Setpt2)
- 2590 CONTROL @Disp2;SET ("VALUE":Setpt)
- 2600 CONTROL @Disp22;SET ("VALUE":Setpt2)
- 2610 Evt=Evt+1
- 2620 OUTPUT Buf$ USING Logimage;"#";Evt;": Time = ";TIME$(TIMEDATE);" Setpoint changed to ";Setpt;" Deg. C, ";Setpt2;" % Hum."
- 2630 CONTROL @Text;SET ("APPEND TEXT":Buf$)
- 2640 END IF
- 2650 RETURN
- 2660 Change_tlow:!
- 2670 STATUS @Temp_low;RETURN ("VALUE":Low_tlim)
- 2680 CONTROL @Disp1;SET ("LOW LIMIT":Low_tlim)
- 2690 CONTROL @Meter1;SET ("LOW LIMIT":Low_tlim)
- 2700 RETURN
- 2710 Change_thigh:!
- 2720 STATUS @Temp_high;RETURN ("VALUE":High_tlim)
- 2730 CONTROL @Disp1;SET ("HIGH LIMIT":High_tlim)
- 2740 CONTROL @Meter1;SET ("HIGH LIMIT":High_tlim)
- 2750 RETURN
- 2760 Change_hlow:!
- 2770 STATUS @Humid_low;RETURN ("VALUE":Low_hlim)
- 2780 CONTROL @Disp12;SET ("LOW LIMIT":Low_hlim)
- 2790 CONTROL @Meter2;SET ("LOW LIMIT":Low_hlim)
- 2800 RETURN
- 2810 Change_hhigh:!
- 2820 STATUS @Humid_high;RETURN ("VALUE":High_hlim)
- 2830 CONTROL @Disp12;SET ("HIGH LIMIT":High_hlim)
- 2840 CONTROL @Meter2;SET ("HIGH LIMIT":High_hlim)
- 2850 RETURN
- 2860 Modify_profile:!
- 2870 STATUS @Time;RETURN ("VALUE":Time(Next))
- 2880 STATUS @Temp;RETURN ("VALUE":Temp(Next))
- 2890 STATUS @Humid;RETURN ("VALUE":Humid(Next))
- 2900 STATUS @Slope;RETURN ("VALUE":Ramp(Next))
- 2910 OUTPUT Buf$ USING Logimage2;"Time = ";Time(Next);" Temp=";Temp(Next);" Deg. C, Humid=";Humid(Next);" % Ramp=";Ramp(Next)
- 2920 CONTROL @Text2;SET ("APPEND TEXT":Buf$)
- 2930 Next=Next+1
- 2940 RETURN
- 2950 Clear_profile:!
- 2960 Next=1
- 2970 CONTROL @Text2;SET ("TEXT":"")
- 2980 RETURN
- 2990 Setup_profile:!
- 3000 DATA 0,15,35,55,75
- 3010 DATA 10,50,0,-30,23
- 3020 DATA 10,90,10,15,20
- 3030 DATA 2, 5, 7, 5, 10
- 3040 READ Time(1),Time(2),Time(3),Time(4),Time(5)
- 3050 READ Temp(1),Temp(2),Temp(3),Temp(4),Temp(5)
- 3060 READ Humid(1),Humid(2),Humid(3),Humid(4),Humid(5)
- 3070 READ Ramp(1),Ramp(2),Ramp(3),Ramp(4),Ramp(5)
- 3080 FOR I=1 TO 5
- 3090 OUTPUT Buf$ USING Logimage2;"Time = ";Time(I);" Temp=";Temp(I);" Deg. C, Humid=";Humid(I);" % Ramp=";Ramp(I)
- 3100 CONTROL @Text2;SET ("APPEND TEXT":Buf$)
- 3110 NEXT I
- 3120 Next=6
- 3130 RETURN
- 3140 Get_next_setpt:!
- 3150 Delta_time=TIMEDATE-Time_start
- 3160 Time(Next)=Time(Next-1)+Ramp(Index)+10
- 3170 WHILE (Delta_time>Time(Index+1) AND Index<>Next)
- 3180 Index=Index+1
- 3190 END WHILE
- 3200 IF Index=Next THEN
- 3210 Auto=0
- 3220 DIALOG "INFORMATION","The Temperature/Humidity profile has completed!";SET ("X":200,"Y":300)
- 3230 GOTO Btn4
- 3240 END IF
- 3250 IF (Delta_time<Time(Index)+Ramp(Index) AND Delta_time>Time(Index)) THEN
- 3260 IF (Index=1) THEN STATUS @Disp2;RETURN ("VALUE":Foo)
- 3270 IF (Index=1) THEN Temp(0)=Foo! Cannot put Temp(0) in place of Foo
- 3280 IF (Index=1) THEN STATUS @Disp22;RETURN ("VALUE":Foo)
- 3290 IF (Index=1) THEN Humid(0)=Foo
- 3300 Mult=(Delta_time-Time(Index))/Ramp(Index)
- 3310 Setpt=Temp(Index-1)+(Temp(Index)-Temp(Index-1))*Mult
- 3320 Setpt2=Humid(Index-1)+(Humid(Index)-Humid(Index-1))*Mult
- 3330 ELSE
- 3340 Setpt=Temp(Index)
- 3350 Setpt2=Humid(Index)
- 3360 END IF
- 3370 CONTROL @Disp22;SET ("VALUE":Setpt2)
- 3380 CONTROL @Disp2;SET ("VALUE":Setpt)
- 3390 IF (Setpt<>Prevst) OR (Setpt2<>Prevst2) THEN
- 3400 Evt=Evt+1
- 3410 OUTPUT Buf$ USING Logimage;"#";Evt;": Time = ";TIME$(TIMEDATE);" Setpoint changed to ";Setpt;" Deg. C, ";Setpt2;" % Hum."
- 3420 CONTROL @Text;SET ("APPEND TEXT":Buf$)
- 3430 END IF
- 3440 Prevst=Setpt
- 3450 Prevst2=Setpt2
- 3460 RETURN
- 3470 Finis: END
-