# MMC : RAPID PROGRAMMING RULES (HIRULE) FOR CLASS PGMBTN
MMC:CFG_1.0::
# $Revision: 1.1 $

MMC_REAL_ROUTINE:
# -name	        Name of RAPID/ReaL routine eg. movel    (MAN)			
# -default_     Default parameter struct(15)		(OPT)
#  struct       Array position -> PGM's fix (max) parameter no
#               0   -> Optional parameter not present
#               1   -> Required/Optional parameter present
#               1-4 -> Optional alternative parameter present
#               eg. 0,1,1,0,1,0,1,0 for movel
# -last_struct  Last used parameter struct(15)		(OPT)
#               (cfg-file -> Not used
#                HIRULE   -> Update)
# ************* Translation to local language ************************
#     		-> None


MMC_REAL_PARAM:
# -name	        Name of RAPID/ReaL routine_parameter	(MAN)
#               eg. movel_topoint
# -name_rule    Parameter name rule			(MAN)
#       NONE -> No rule means unexpanded placeholders
#       SEQ  -> Use sequence name rule as defined by       *)
#               - method hirule_robtarget
#       CUR  -> Use current name as defined by      
#               - method hirule_tooldata
#               - method hirule_wobjdata
#       LAST -> Use last programmed name or value          *)
#               Attribute -def_name -> Default name or value
#       DEF  -> Use default name or value as defined by
#               attribute -def_name
# -method       Reference to predefined method		(OPT)
#               -method hirule_robtarget
#               -method hirule_tooldata
#               -method hirule_wobjdata
# -def_name     The name or value for the rule LAST/DEF	(OPT)
#               *) HIRULE update
# ************* Below attributes not supported yet *******************
# -max_value    Max. value for data type num		(OPT)
#               (or alias of num)
# -min_value    Min. value for data type num		(OPT)
# -measure      Measurement unit for non-composite	(OPT)
#               data type eg. mm, s
# ************* Translation to local language ************************
#     		-> -def_name xxxx (if applicable)

# Definition of common naming rules for all interrupts
-name common_interrupt	-name_rule LAST


MMC_COMMON_PARAM:
#               Common naming rules for all interrupts
# -name	        Name of RAPID/ReaL routine_parameter	(MAN)
#               eg. isleep_interrupt
# -common_space_name					(MAN)
#               common_interrupt                     

-name iwatch_interrupt 	-common_space_name common_interrupt
-name isleep_interrupt	-common_space_name common_interrupt


MMC_REAL_DATATYPE:
# -name	        Name of RAPID/ReaL data type		(MAN)
#               eg. robtarget
# -def_name     Default base data name eg. tool		(MAN)
# -value_rule   Value rule for new data			(MAN)
#   NONE     -> "Clear" value (0, "", FALSE)
#               No initialize value for non-value data type
#   CUR      -> Use current value as defined by
#               - method hirule_robtarget
#   DEF      -> Use default value defined by attribute
#               -use_value
# -method       Reference to predefined method          (OPT)
#               - method hirule_robtarget
# -use_value    The default value for the rule DEF	(OPT)
# -object_type  Default data object type		(MAN)
#   CONST    -> Constant
#   VAR      -> Variable
#   PERS     -> Persistent variable
#   REC_COMP -> Record component (not supported yet)
# ************* Below attributes not supported yet ******************
# -max_value    Max. value for data type num		(OPT)
#               (or alias of num)
# -min_value    Min. value for data type num		(OPT)
# -measure      Measurement unit for non-composite	(OPT)
#               data type eg. mm, s
# ************* Translation to local language ************************
#     		-> -def_name xxxx (if applicable)


-name num         -def_name reg          -value_rule DEF \
   -use_value 0 \
   -object_type VAR
-name bool        -def_name flag         -value_rule DEF \
   -use_value FALSE \
   -object_type VAR
-name string      -def_name string       -value_rule DEF \
   -use_value """""" \
   -object_type CONST

-name pos         -def_name pos          -value_rule DEF \
   -use_value [0,0,0] \
   -object_type VAR
-name orient      -def_name orient       -value_rule DEF \
   -use_value [1,0,0,0] \
   -object_type VAR \
   -validate_hook hirule_validate_orient
-name pose        -def_name pose         -value_rule DEF \
   -use_value [[0,0,0],[1,0,0,0]] \
   -object_type PERS \
   -validate_hook hirule_validate_pose
-name errnum      -def_name errno        -value_rule DEF \
   -use_value 0 \
   -object_type VAR
-name intnum      -def_name intno        -value_rule NONE \
   -object_type VAR


