/* Hominoid State Model ---04/09/02 */ /* State Transition Table */ StateModel SM /* The State model. */ { SMid StateModelId c8 1 /* the primary key */ Abbrev AbbreviatedName c4 0 /* the short version of the name */ Name StateModelName t80 0 /* it's name */ } ActiveClass AC /* The Active Class. */ { ACid ActiveClassId c8 1 /* the primary key */ SMid ActiveClassesStateModel c8 1 /* the state model for this class */ Name ActiveClassName t80 0 /* the name of the Active Class */ } /* */ /* The States themselves */ /* */ /* The state has an C pointer to an action routine. As long as the */ /* image for the simulator doesn't change, the function pointer can */ /* be stored in the schema database. However, any relink will invalidate */ /* these pointers requiring that they be reloaded. */ /* */ State ST /* states */ { STid StateId c8 1 /* the primary key */ SMid StateAStateOfThisStateMachine c8 1 /* The state machine */ /* containing the state */ ActName StatesActionRoutineName t32 0 /* Action Routine Name */ ActFunc StatesActionRoutinePointer i4 0 /* C pointer to function */ Name StatesName t80 0 /* The name of the state */ } /* */ /* The Active Instance. A member of an Active Classs */ /* */ ActiveInstance AI /* Active Instance */ { AIid ActiveInstanceId c8 1 /* the primary key */ ACid ActiveInstanceInThisClass c8 1 /* the active class of which */ /* we are a member */ State ActiveInstancesCurrentState t80 0 /* key of current state */ Name ActiveInstanceName t80 0 /* probably boring like Pump1 */ /* useful for debugging */ } Transition TR /* Transition */ { TRid TransitionId c8 1 /* The primary key */ STid1 TransitionFromThisState c8 1 /* Transition from this state */ STid2 TransitionToThisState c8 1 /* Transition to this state */ } EventType ET /* EventType */ { ETid EventTypeId c8 1 /* the primary key */ SMid EventTypesReceiver c8 1 /* the state machine which */ /* receives this event */ Label EventTypesLabel t8 0 /* the label for the event */ Descrip EventTypesDescription t80 0 /* a fuller description */ } Enable EN /* Enable */ { ENid EnableId c8 1 /* The primary key */ ETid EnableWithThisEventType c8 1 /* Event type enabling transition */ TRid EnableThisTransition c8 1 /* The transition enabled */ } EventInstance EI /* An EventInstance */ { EIid EventInstanceId c8 1 /* the primary key */ AIid1 EventInstanceGenerater c8 1 /* the active instance which */ /* generated this event */ AIid2 EventInstanceReceiver c8 1 /* the active instance which */ /* will receive this event */ ETid EventInstancesType c8 1 /* the type of this event */ Int1 EventInstanceDataInt1 i4 0 /* the first piece of int data */ Int2 EventInstanceDataInt2 i4 0 /* the second piece of int data */ Flt1 EventInstanceDataDbl1 f8 0 /* the first piece of float data */ Flt2 EventInstanceDataDbl2 f8 0 /* the second piece of float data */ Text EventInstanceDataText t80 0 /* textual data */ } /*Here below is the BDE schema that can be usedfor our Hominoid Application*/ fontoption FO /* FO - font option table for lookup of X, BDE and PS fonts */ { FOid fontid c8 1 /* Unique internal font ID */ xfont xfont c50 0 /* X Window font - includes size */ psfontname psfontname c50 0 /* Postscript font - name only */ psfontsize psfontsize c2 0 /* PS font size for psfontname */ bdefont bdefont c15 0 /* BDE font - includes size */ } graphdefaults GD /* GD contains default style attributes for HN,HL,HI */ /* Thru 95sbde, this table contains only one row and will be read only */ /* f95TBD: Add one row per diagram type * class type (HG, HN, HL, GX, HA, HI) */ /* 95f523 Diagram types to be supported: DSD, STD, OCD (Ref: S&M: OLC) */ /* Link (segment) direction is not included pending alternate drawing styles*/ /* Meanwhile, this table row may be text-edited to change the defaults. */ { GDid graphdefaultid c8 1 /* unique key for this table */ shape nodeshape c10 0 /* circ;rect;rndrect;input;output;buffer;file */ width nodewidth f4 0 /* width (major axis) of rectangle (ellipse) */ height nodeheight f4 0 /* height (minor axis) of rectangle (ellipse) */ hsegpattern linepattern c4 0 /* default link pattern (S=solid, D=dashed) */ /* WARNING: Currently (94s) used as arrow direction indicator: fwd/bkwd/none -RJL */ /* change txtfont size from 50 to 25 - phsia */ txtfont fontname c25 0 /* text font name (including size) */ location gcloc c10 0 /* location of graph (top, bottom) */ justify gcjustify c10 0 /* graph caption justification (left, right, center of window at top or bottom) */ gcwidth gc_width f4 0 /* graph caption width */ gcheight gc_height f4 0 /* graph caption height */ } horzgraph HG /* DFD: a single dataflow diagram with multiple internal nodes (added 91/3/12-RJL) */ /* A HG is the expansion of a single parent node on the next upper level of DFDs */ /* FSid is redundantly contained in the corresponding HN node of the parent flow diagram */ { HGid dfdid c8 1 /* unique internal id for this table row */ FSid funcspecid c8 0 /* fkey of function spec associated with this diagram */ HNid horznnodeid c8 0 /* optional HNid of node which expands into this diagram */ HGauthor personname c12 0 /* the username of the editor of this diagram */ HGcreated datetime c12 0 /* date-time when first created */ HGlastmod datetime c12 0 /* date-time when last modified */ HGtitle title t60 0 /* title for this diagram */ } horznode HN /* HN - node label and geometry for Data Flow Diagram */ { HNid horznodeid c8 1 /* unique internally generated ID */ HGid dfdid c8 1 /* unique fkey of horzgraph container of this node */ FSid funcspecid c8 0 /* unique fkey of function spec corresp to this node */ /* NOTE: FS<-->HN relation is not necessarily 1 to 1) */ /* NOTE: FSId is also in the child HG or AT table entry (iff this node has a DFD or an ALG text block) */ shape nodeshape c1 0 /* C = circle, R = rectangle, O = rounded rectangle */ centerx coordinate f4 0 /* x coordinate of node center */ centery coordinate f4 0 /* y coordinate of node center */ width nodewidth f4 0 /* width(radius) of rectangleor circle */ height nodeheight f4 0 /* height(radius) of rectangle or circle */ /* change txtfont size from 50 to 25 - phsia */ txtfont fontname c25 0 /* label text font selector (when available) */ txtoffsetx xoffset f4 0 /* where text begins relative to HN center */ txtoffsety yoffset f4 0 /* where text begins relative to HN center */ txtwidth txtwidth i2 0 /* text x-extent */ txtheight txtheight i2 0 /* text y-extent */ nodename nodetext t20 0 /* multi-line text (verb + object) label within DFD node */ } horzattribute HA /* HA - Node attribute (e.g., field names in DSD table type */ { HAid hattribid c8 1 /* unique internally generated ID of link label */ HNid node_id c8 1 /* unique ID of link to which label is attached */ DAid dataitemid c8 0 /* Unique ID of named data item flowing on this link */ /* the x, y offset in first entry of HA table are rel. to coordinate of nodename in HN */ txtoffsetx xoffset f4 0 /* x-offset of label text rel. to previous text */ txtoffsety yoffset f4 0 /* y-offset of label text rel. to previous text */ HAorigin reldistance f4 0 /* HA's offset to the last */ txtwidth xwidth i2 0 /* x-extent of label text */ txtheight yheight i2 0 /* y-extent of label text */ /*change txtfont from 50 to 25 and hlabel from 20 to 40 - phsia*/ txtfont fontname c25 0 /* text font name (including size) */ hlabel symbol_name t60 0 /* node attrib text - Rev 96/7/1-RJL*/ } horzlink HL /* HL - link information for Data Flow Diagram nodes */ /* changed bend-point count from 4 to 6; size from i2 to i4 - 89/3/8 RJL */ { HLid horzlinkid c8 1 /* unique internally generated ID */ HNid1 sourcenodeid c8 1 /* source node ID */ HNid2 destnodeid c8 1 /* destination node ID */ HPcount pointcount i2 0 /* bend point count (>=2) for link */ allvisible boolean i2 0 /* all link segments visible */ /* (visibility for bendpoint[1..6] was moved to HP table on 90/1/8) */ /* Interpret drawing outline as border shape of parent node on opposite hemisphere of the globe */ /* External source and dest. links have corresp. HNid = parent node id (identified in parent HG entry */ } horzbendpt HP /* HP - HL segmt endpoint with visibility/pattern option for polyline dwg */ { HPid linksegid c8 1 /* uinique table row symbol_name */ HLid vertlinkid c8 1 /* unique parent link row id */ HPx xcoord f4 0 /* x coordinate of bendpoint */ HPy ycoord f4 0 /* y coordinate of bendpoint */ is_visible boolean i2 0 /* nonzero ==> segment from THIS HP to NEXT HP is visible*/ hsegpattern linepattern c4 0 /* optional drawing patern for this segment*/ /* First/last segments are inside source/dest nodes and invisible, so last-HP.is_visible = FALSE */ /* Interpret drawing outline as border shape of parent node on opposite hemisphere of the globe */ } horzident HI /* HI - horiz. link ident. label for Data Flow Diagram link */ { HIid horzidentid c8 1 /* unique internally generated ID of link label */ HLid uniontype c8 1 /* unique ID of link to which label is attached */ /* HLid might become a TU (HPorHLid) if labels are attached to specific segment */ DIid dataitemid c8 0 /* Unique ID of named data item flowing on this link */ /* a HN pair can have two (oppositely directed) links for 2-way flows; SCs have one-way calls only */ /* VI table entries have a flow direction attribute; HI table entries do not */ HIorigin reldistance f4 0 /* fractional distance along HL to HI origin */ tbeginx yoffset f4 0 /* x-offset of label text rel. to HI origin */ tbeginy voffset f4 0 /* y-offset of label text rel. to HI origin */ txtwidth xwidth i2 0 /* x-extent of label text */ txtheight yheight i2 0 /* y-extent of label text */ /*change txtfont from 50 to 25 and hlabel from 20 to 40 - phsia*/ txtfont fontname c25 0 /* text font name (including size) */ hlabel symbol_name t40 0 /* name of dataflow item (link label text string) */ } graphcap CG /* CG - graph caption (e.g., text for entire graph) */ { CGid grphcapid c8 1 /* unique internally generated ID */ HGid dfdid c8 1 /* unique fkey of horzgraph container of this node */ CGcenterx coordinate f4 0 /* x coordinate of graph caption center */ CGcentery coordinate f4 0 /* y coordinate of graph caption center */ CGwidth cgwidth f4 0 /* width of graph caption area */ CGheight cgheight f4 0 /* height of graph caption area */ } graphtxt GX /* GX - graph text */ { GXid grphtexid c8 1 /* unique internally generated ID */ CGid grphcapid c8 1 /* unique fkey of graphcap container of this node */ DAid dataitemid c8 0 /* Unique ID of named data item flowing on this link */ GXorigin reldistance f4 0 /* GX's offset to the last */ /*change txtfont size from 50 to 25 - phsia*/ txtfont fontname c25 0 /* text font name (including size)*/ txtoffsetx xoffset f4 0 /* x-offset of relative to 0 */ txtoffsety yoffset f4 0 /* y-offset of relative to 0 */ txtwidth xwidth i2 0 /* x-extent of label text */ txtheight yheight i2 0 /* y-extent of label text */ grphcaption grphtext t128 0 /* multi-line text label(text string) */ } HominoidDirection HD /*Hominoid with Direction in it as an SM*/ { HDid hominoid_id c8 1 /*pkey of the hominoid*/ AIid activeinstance_id c8 s /*fkey reference to the activeinstance*/ } HominoidLocation LH /*Homoinoid Location asa separate SM*/ { LHid location_id c8 1 /*pkey field*/ AIid aciveinstance_id c8 s /*fkey reference to class instance*/ HDid hominoid_id c8 1 /*fkey reference to the parent hominoid state*/ } Grid GR /*represents the Grid*/ { GRid Grid_id c8 1 /*pkey of the Grid table*/ HDid Hominoid_id c8 1 /*fkey reference to the hominoid*/ } Squares SQ /*represents the squares in the grid*/ { SQid Path_id c8 1 /*pkey of the cell path*/ HNid HorzNode c8 1 /*fkey reference to the HN representation for a cell*/ x row i4 0 /*row representing one of the cells*/ y column i4 0 /*column representing one of the cells*/ }