DESCRIPTION: This module tests the control and reporting of the actual update state of the workstation with respect to requested state, as expressed by the CSS, workstation tables, and posting. SEMANTIC REQUIREMENTS: *** *** *** Direct access to workstation state *** *** ***#F 7 221 261
SR1. The valid deferral-modes are ASAP, ASTI, BNIL, BNIG, and WAIT.
#F 7 221 261
SR2. The valid modification-modes are NIVE, UWOR, or UQUM.
#F 7
SR3. <Set display update state> sets the current deferral-mode as ASAP, ASTI, BNIL, BNIG, or WAIT and modification-mode as NIVE, UWOR, or UQUM for the workstation.
#F 221
SR4. <Inquire display update state> reports the current deferral mode, modification mode, display surface empty, and state of visual representation for the workstation.
#F 261
SR5. <Inquire default display update state> reports the default deferral mode and modification mode for the workstation type.
#F 260
SR6. <Inquire dynamics of workstation attributes> reports the modification severity for the 12 kinds of workstation changes as IMM, IRG, or CBS.
#F 286
SR7. <Inquire dynamics of structures> reports the modification severity for the 5 kinds of structure changes as IMM, IRG, or CBS.
*** *** *** *** *** Initialization *** *** *** *** ***#F 3 7
SR8. After <open workstation> and before <set display update state>, the current deferral mode and modification mode = the default deferral mode and modification mode.
#F 3
SR9. Immediately after <open workstation>, the display surface = EMPTY and the state of visual representation = CORRECT.
*** *** *** *** *** Display surface *** *** *** *** ***#F 132 83-85 87-90
SR10. A primitive is logically visible on a workstation if its name set is not eligible for invisibility, some part of it lies inside the workstation window after undergoing the most recently requested viewing transformations, and it is contained within a structure network posted to the workstation.
#F 221
SR11. If the state of visual representation is CORRECT and there are logically visible primitives on a workstation, then the display surface of that workstation is NOTEMPTY.
#F 221
SR12. If the state of visual representation is CORRECT and there are no logically visible primitives on a workstation, then the display surface of that workstation is EMPTY.
*** *** *** *** State of visual representation *** *** *** ***#F 221
SR13. The state of visual representation of a workstation is CORRECT if and only if there are no deferred visual changes for that workstation.
#F 221
SR14. The state of visual representation of a workstation is SIMULATED if and only if there are deferred visual changes for that workstation, but they have all been simulated.
#F 221
SR15. The state of visual representation of a workstation is DEFERRED if and only if there are deferred visual changes for that workstation, and some have not been simulated.
*** *** *** *** *** Explicit updating *** *** *** *** ***#F 5
SR16. <Redraw all structures> causes the state of visual representation to be CORRECT.
#F 6
SR17. <Update workstation> with regeneration flag = PERFORM causes the state of visual representation to be CORRECT.
#F 6
SR18. <Update workstation> with regeneration flag = POSTPONE performs all deferred visual changes which do not require implicit regeneration.
*** *** *** *** *** Visual changes *** *** *** *** ***#F 260 286 9-71 73-85 87-90 113 116 118 122-134 142-144 150
SR19. A picture change of category IRG may require regeneration of the display image of the workstation.
#F 260 286 9-71 73-85 87-90 113 116 118 122-134 142-144 150
SR20. A picture change of category CBS may require regeneration of the display image of the workstation for the image to be correct, but if so, there must exist a quick update method by which the image can be simulated.
#F 260 286 9-71 73-85 87-90 113 116 118 122-134 142-144 150
SR21. A picture change of category IMM can be done immediately.
*** *** *** *** *** Display update state *** *** *** *** *** *** *** Deferral mode = ASAP *** ***#F 7 221
SR22. If deferral mode = ASAP, then the state of visual representation is CORRECT.
*** *** Deferral mode = WAIT *** ***#F 7 221
SR23. Any visual change with deferral mode = WAIT and modification mode = NIVE causes the state of visual representation to be DEFERRED.
#F 7 221 260 286
SR24. If a visual change requires regeneration and cannot be simulated and deferral mode = WAIT, then the state of visual representation is DEFERRED.
#F 7 221 260 286
SR25. If a visual change can be simulated and deferral mode = WAIT and modification mode = UWOR, then the state of visual representation is DEFERRED.
#F 7 221 260 286
SR26. If a visual change can be done immediately and deferral mode = WAIT and modification mode = UWOR or UQUM, then the state of visual representation is unchanged.
#F 7 221 260 286
SR27. If a visual change can be simulated, the old state of visual representation is DEFERRED, deferral mode = WAIT, and modification mode = UQUM, then the state of visual representation is DEFERRED.
#F 7 221 260 286
SR28. If a visual change can be simulated, the old state of visual representation is not DEFERRED, deferral mode = WAIT, and modification mode = UQUM, then the state of visual representation is SIMULATED.
*** Truth-table for deferral-mode = WAIT, modification-mode = *** UWOR or UQUM (SR 24-28): *** immed = can be done immediately *** regen = requires regeneration, no simulation available *** simul = requires regeneration, simulation available *** note that: *** IRG => immed OR simul OR regen *** CBS => immed OR simul *** IMM => immed *** mod visual old | new *** SR mode change svr | svr *** --------------------------+------- *** 24 UWOR regen DEF | DEF *** 24 UWOR regen SIM | DEF *** 24 UWOR regen COR | DEF *** 24 UQUM regen DEF | DEF *** 24 UQUM regen SIM | DEF *** 24 UQUM regen COR | DEF *** 25 UWOR simul DEF | DEF *** 25 UWOR simul SIM | DEF *** 25 UWOR simul COR | DEF *** 27 UQUM simul DEF | DEF *** 28 UQUM simul SIM | SIM *** 28 UQUM simul COR | SIM *** 26 UWOR immed DEF | DEF *** 26 UWOR immed SIM | SIM *** 26 UWOR immed COR | COR *** 26 UQUM immed DEF | DEF *** 26 UQUM immed SIM | SIM *** 26 UQUM immed COR | COR *** *** Deferral mode = ASTI *** ***#F 7 221 260 286
SR29. Deferral mode = ASTI causes the same behavior as WAIT, except that the system may choose at any time to make the state of visual representation CORRECT.
*** *** Input and deferral mode = BNIL or BNIG *** ***#F 164-177
SR30. Input is underway at a workstation if one of its input devices has a REQUEST pending or is in SAMPLE or EVENT mode.
#F 7 221 260 286
SR31. Deferral mode = BNIL causes the same behavior as ASTI, except that the state of visual representation for the workstation must be CORRECT if input is underway on that workstation.
#F 7 221 260 286
SR32. Deferral mode = BNIG causes the same behavior as ASTI, except that the state of visual representation for the workstation must be CORRECT if input is underway on any workstation.
LOCAL DICTIONARY:
Functions --- 003: popwk <open workstation> 005: prst <redraw all structures> 006: puwk <update workstation> 007: psdus <set display update state> 009: ppl3 <polyline 3> 010: ppl <polyline> 011: ppm3 <polymarker 3> 012: ppm <polymarker> 013: ptx3 <text 3> 014: ptx <text> 015: patr3 <annotation text relative 3> 016: patr <annotation text relative> 017: pfa3 <fill area 3> 018: pfa <fill area> 019: pfas3 <fill area set 3> 020: pfas <fill area set> 021: pca3 <cell array 3> 022: pca <cell array> 023: pgdp3 <generalized drawing primitive 3> 024: pgdp <generalized drawing primitive> 025: pspli <set polyline index> 026: pspmi <set polymarker index> 027: pstxi <set text index> 028: psii <set interior index> 029: psedi <set edge index> 030: psln <set linetype> 031: pslwsc <set linewidth scale factor> 032: psplci <set polyline colour index> 033: psmk <set marker type> 034: psmksc <set marker size scale factor> 035: pspmci <set polymarker colour index> 036: pstxfn <set text font> 037: pstxpr <set text precision> 038: pschxp <set character expansion factor> 039: pschsp <set character spacing> 040: pstxci <set text colour index> 041: pschh <set character height> 042: pschup <set character up vector> 043: pstxp <set text path> 044: pstxal <set text alignment> 045: psatch <set annotation text character height> 046: psatcu <set annotation text character up vector> 047: psatp <set annotation text path> 048: psatal <set annotation text alignment> 049: psans <set annotation style> 050: psis <set interior style> 051: psisi <set interior style index> 052: psici <set interior colour index> 053: psedfg <set edge flag> 054: psedt <set edgetype> 055: psewsc <set edgewidth scale factor> 056: psedci <set edge colour index> 057: pspa <set pattern size> 058: psprpv <set pattern reference point and vectors> 059: psparf <set pattern reference point> 060: pads <add names to set> 061: pres <remove names from set> 062: psiasf <set individual asf> 063: psplr <set polyline representation> 064: pspmr <set polymarker representation> 065: pstxr <set text representation> 066: psir <set interior representation> 067: psedr <set edge representation> 068: pspar <set pattern representation> 069: pscr <set colour representation> 070: pshlft <set highlighting filter> 071: psivft <set invisibility filter> 073: pshrid <set hlhsr identifier> 074: pshrm <set hlhsr mode> 075: pslmt3 <set local transformation 3> 076: pslmt <set local transformation> 077: psgmt3 <set global transformation 3> 078: psgmt <set global transformation> 079: psmcv3 <set modelling clipping volume 3> 080: psmcv <set modelling clipping volume> 081: psmcli <set modelling clipping indicator> 082: prmcv <restore modelling clipping volume> 083: psvwi <set view index> 084: psvwr3 <set view representation 3> 085: psvwr <set view representation> 087: pswkw3 <set workstation window 3> 088: pswkw <set workstation window> 089: pswkv3 <set workstation viewport 3> 090: pswkv <set workstation viewport> 113: pexst <execute structure> 116: pgse <generalized structure element> 118: pcelst <copy all elements from structure> 122: pdel <delete element> 123: pdelra <delete element range> 124: pdellb <delete elements between labels> 125: pemst <empty structure> 126: pdst <delete structure> 127: pdsn <delete structure network> 128: pdas <delete all structures> 129: pcstid <change structure identifier> 130: pcstrf <change structure references> 131: pcstir <change structure identifier and references> 132: ppost <post structure> 133: pupost <unpost structure> 134: pupast <unpost all structures> 142: prest <retrieve structures> 143: presn <retrieve structure networks> 144: prast <retrieve all structures> 150: pspkid <set pick identifier> 164: pslcm <set locator mode> 165: psskm <set stroke mode> 166: psvlm <set valuator mode> 167: pschm <set choice mode> 168: pspkm <set pick mode> 169: psstm <set string mode> 170: prqlc3 <request locator 3> 171: prqlc <request locator> 172: prqsk3 <request stroke 3> 173: prqsk <request stroke> 174: prqvl <request valuator> 175: prqch <request choice> 176: prqpk <request pick> 177: prqst <request string> 221: pqdus <inquire display update state> 260: pqdswa <inquire dynamics of workstation attributes> 261: pqddus <inquire default display update state> 286: pqdstr <inquire dynamics of structures> Data Structures --- 5 ... workstation_state_list 5.4 ... view_table 5.6 ... workstation_transformation_entry 5.7 ... list_of_posted_structures 5.8 ... update_status 5.8.1 ... deferral_mode 5.8.2 ... modification_mode 5.8.3 ... display_surface_empty 5.8.4 ... state_of_visual_representation 5.18 ... input_device_status 5.18.1 ... locator_entry 5.18.1.2 ... operating_mode 5.18.2 ... stroke_entry 5.18.2.2 ... operating_mode 5.18.3 ... valuator_entry 5.18.3.2 ... operating_mode 5.18.4 ... choice_entry 5.18.4.2 ... operating_mode 5.18.5 ... pick_entry 5.18.5.2 ... operating_mode 5.18.6 ... string_entry 5.18.6.2 ... operating_mode 6 ... workstation_description_table 6.8 ... dynamic_modification_accepted_for 6.8.1 ... view_representation 6.8.2 ... polyline_bundle_representation 6.8.3 ... polymarker_bundle_representation 6.8.4 ... text_bundle_representation 6.8.5 ... interior_bundle_representation 6.8.6 ... edge_bundle_representation 6.8.7 ... pattern_representation 6.8.8 ... colour_representation 6.8.9 ... workstation_transformation_representation 6.8.10 ... highlighting_filter 6.8.11 ... invisibility_filter 6.8.12 ... hlhsr_mode 6.9 ... default_value_for_deferral_state 6.9.1 ... deferral_mode 6.9.2 ... modification_mode 6.22 ... dynamic_modification_accepted_for 6.22.1 ... structure_content_modification 6.22.2 ... post_structure 6.22.3 ... unpost_structure 6.22.4 ... delete_structure 6.22.5 ... reference_modification SEMANTIC CROSS-REFERENCES: 04.03.03/SR06 04.03.03/SR07 06.02.02/SR27 06.02.02/SR28 06.03/SR18 06.03/SR19 LOCAL SUBROUTINES: SETPCL (pcctab): loads the pcctab table with the names of the picture change categories. SETSVR (wkid, reqsvr): attempts to set the SVR of the specified workstation to requested state. There is no error report; the caller must determine success. EXSVRS (sevrty, defmod, modmd, oldsvr, svrlst, explbl): subroutine which computes expected value(s) for SVR, based on severity, deferral and modification mode, and old SVR. SURFOK (wkid, expsur): logical function, true iff display surface flag equals expected value. SVROK (wkid, expvls): logical function, true iff current SVR is one of the expected values, encoded by character: c-correct, s-simulated, d-deferred. E.g. expvls = 'cd' means SVR must be either CORRECT or DEFERRED. PICENV (wkid): sets up an environment of posted structures to the specified workstation, so that PICCHG can be perform requested changes. PICCHG (wkid, severity-list, pcc-list, actual-sev, actual-pcc) - attempts to perform a visual change according to the preferred order of the requested severity-list and of the specified categories (a subset of the 17 kinds of picture change). It then returns the actual severity and actual picture change category performed, or indicates that nothing in the severity-list / pcc-list combination could be done. Input parameters are integer-lists, represented as strings, e.g. "1,2,3". DOIMOD (wkid, inclas, inmode): on the workstation (wkid), sets device #1 of the specified input class (inclas) to the requested mode (inmode).
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.