home *** CD-ROM | disk | FTP | other *** search
- 10 ! *********************************************************
- 20 ! Example: Engine Monitor - Child PANEL
- 30 !
- 40 ! This program creates a simulated engine monitor display
- 50 ! that shows Torque, Pressure, Dwell, Timing, and RPM for
- 60 ! a theoretical engine. A status log for updated values is
- 70 ! also included.
- 80 !
- 90 ! *********************************************************
- 100 !
- 110 DIM Buf$[200]
- 120 !
- 130 ! Create the main panel widget
- 140 !
- 150 ASSIGN @Panel TO WIDGET "PANEL";SET ("X":100,"Y":30,"WIDTH":400,"HEIGHT":320,"TITLE":" Example: Engine Monitor - Child PANEL","MAXIMIZABLE":1)
- 160 CONTROL @Panel;SET ("SYSTEM MENU":"Quit")
- 170 ON EVENT @Panel,"SYSTEM MENU" GOTO Finis
- 180 !
- 190 ASSIGN @M1lbl TO WIDGET "LABEL";SET ("X":5,"Y":5,"WIDTH":90,"HEIGHT":20,"VALUE":"Torque","BORDER":0),PARENT @Panel
- 200 ASSIGN @Meter1 TO WIDGET "METER";SET ("X":5,"Y":25,"WIDTH":90,"HEIGHT":160,"ARC WIDTH":3,"ORIENTATION":"RIGHT","SHOW LIMITS":0),PARENT @Panel
- 210 !
- 220 ASSIGN @B2lbl TO WIDGET "LABEL";SET ("X":125,"Y":5,"WIDTH":80,"HEIGHT":20,"VALUE":"Pressure","BORDER":0),PARENT @Panel
- 230 ASSIGN @Bar2 TO WIDGET "BAR";SET ("X":130,"Y":25,"WIDTH":60,"HEIGHT":100),PARENT @Panel
- 240 ASSIGN @B2dsp TO WIDGET "LABEL";SET ("X":130,"Y":125,"WIDTH":60,"HEIGHT":20,"BORDER":0),PARENT @Panel
- 250 !
- 260 ! Create a child PANEL that contains a bank of engine measurements
- 270 !
- 280 ASSIGN @Subpanel TO WIDGET "PANEL";PARENT @Panel,SET ("X":260,"Y":5,"WIDTH":95,"HEIGHT":145)
- 290 !
- 300 ASSIGN @Lbl1 TO WIDGET "LABEL";PARENT @Subpanel,SET ("X":10,"Y":0,"WIDTH":75,"HEIGHT":20,"BORDER":0,"VALUE":"Dwell")
- 310 ASSIGN @Disp1 TO WIDGET "LABEL";PARENT @Subpanel,SET ("X":10,"Y":20,"WIDTH":75,"HEIGHT":20)
- 320 !
- 330 ASSIGN @Label2 TO WIDGET "LABEL";PARENT @Subpanel,SET ("X":10,"Y":50,"WIDTH":75,"HEIGHT":20,"BORDER":0,"VALUE":"Timing")
- 340 ASSIGN @Disp2 TO WIDGET "LABEL";PARENT @Subpanel,SET ("X":10,"Y":70,"WIDTH":75,"HEIGHT":20)
- 350 !
- 360 ASSIGN @Label3 TO WIDGET "LABEL";PARENT @Subpanel,SET ("X":10,"Y":100,"WIDTH":75,"HEIGHT":20,"BORDER":0,"VALUE":"RPM")
- 370 ASSIGN @Disp3 TO WIDGET "LABEL";PARENT @Subpanel,SET ("X":10,"Y":120,"WIDTH":75,"HEIGHT":20)
- 380 !
- 390 ASSIGN @Lbl TO WIDGET "LABEL";SET ("X":130,"Y":150,"WIDTH":240,"HEIGHT":20,"VALUE":"Status Log","BORDER":0),PARENT @Panel
- 400 ASSIGN @Text TO WIDGET "PRINTER";SET ("X":130,"Y":170,"WIDTH":240,"HEIGHT":100),PARENT @Panel
- 410 !
- 420 Value=50
- 430 Siz=15
- 440 Loop_val:!
- 450 FOR I=1 TO 10000
- 460 IF Value<25 OR Value>=85 THEN Value=50
- 470 Torq=INT(Value+Siz*RND)
- 480 Pres=INT(Value+Siz*RND)
- 490 Dwell=INT(Value+Siz*RND)
- 500 Timing=INT(Value+Siz*RND)
- 510 Rpm=INT(Value+Siz*RND)
- 520 Value=INT(Value+Siz*(RND-.5))
- 530 !
- 540 CONTROL @Meter1;SET ("VALUE":Torq)
- 550 CONTROL @Bar2;SET ("VALUE":Pres)
- 560 CONTROL @B2dsp;SET ("VALUE":Pres)
- 570 CONTROL @Disp1;SET ("VALUE":Dwell)
- 580 CONTROL @Disp2;SET ("VALUE":Timing)
- 590 CONTROL @Disp3;SET ("VALUE":Rpm)
- 600 !
- 610 OUTPUT Buf$ USING "#,K,DDDD,3X,DDD,DDD,DDD";"Update #";I,Torq,Pres,Dwell
- 620 CONTROL @Text;SET ("APPEND TEXT":Buf$)
- 630 NEXT I
- 640 GOTO Loop_val
- 650 STOP
- 660 Finis: END
-