etherlab/etherlab.py
changeset 2094 72b74099b873
parent 2093 3fdf9d56d803
child 2096 c9b0340ea0f5
equal deleted inserted replaced
2093:3fdf9d56d803 2094:72b74099b873
   207              "publish": None}
   207              "publish": None}
   208             ])
   208             ])
   209     ]
   209     ]
   210     EXTRA_NODE_VARIABLES_DICT = dict([("Enable" + name, value) for name, value in EXTRA_NODE_VARIABLES])
   210     EXTRA_NODE_VARIABLES_DICT = dict([("Enable" + name, value) for name, value in EXTRA_NODE_VARIABLES])
   211 
   211 
   212     BLOCK_INPUT_TEMPLATE = "    __SET_VAR(%(blockname)s.,%(input_name)s, %(input_value)s);"
   212     BLOCK_INPUT_TEMPLATE = "    __SET_VAR(%(blockname)s->,%(input_name)s, %(input_value)s);"
   213     BLOCK_OUTPUT_TEMPLATE = "    __SET_VAR(data__->,%(output_name)s, __GET_VAR(%(blockname)s.%(output_name)s));"
   213     BLOCK_OUTPUT_TEMPLATE = "    __SET_VAR(data__->,%(output_name)s, __GET_VAR(%(blockname)s->%(output_name)s));"
   214     
   214     
   215     BLOCK_FUNCTION_TEMPLATE = """
   215     BLOCK_FUNCTION_TEMPLATE = """
   216 extern void ETHERLAB%(ucase_blocktype)s_body__(ETHERLAB%(ucase_blocktype)s* data__);
   216 extern void ETHERLAB%(ucase_blocktype)s_body__(ETHERLAB%(ucase_blocktype)s* data__);
   217 void __%(blocktype)s_%(location)s(MC_%(ucase_blocktype)s *data__) {
   217 void __%(blocktype)s_%(location)s(MC_%(ucase_blocktype)s *data__) {
   218     extern ETHERLAB%(ucase_blocktype)s %(blockname)s;
   218     __DECLARE_GLOBAL_PROTOTYPE(ETHERLAB%(ucase_blocktype)s, %(blockname)s);
       
   219     ETHERLAB%(ucase_blocktype)s* %(blockname)s = __GET_GLOBAL_%(blockname)s();
   219 %(extract_inputs)s
   220 %(extract_inputs)s
   220     ETHERLAB%(ucase_blocktype)s_body__(&%(blockname)s);
   221     ETHERLAB%(ucase_blocktype)s_body__(%(blockname)s);
   221 %(return_outputs)s
   222 %(return_outputs)s
   222 }
   223 }
   223 """
   224 """
   224     
   225     
   225     BLOCK_FUNTION_DEFINITION_TEMPLATE = "    __CIA402Node_%(location)s.axis->__mcl_func_MC_%(blocktype)s = &(__%(blocktype)s_%(location)s);"
   226     BLOCK_FUNTION_DEFINITION_TEMPLATE = """    if (!__CIA402Node_%(location)s.axis->__mcl_func_MC_%(blocktype)s)
       
   227     __CIA402Node_%(location)s.axis->__mcl_func_MC_%(blocktype)s = __%(blocktype)s_%(location)s;"""
   226     
   228     
   227     GLOBAL_INSTANCES = [
   229     GLOBAL_INSTANCES = [
   228         {"blocktype": "GetTorqueLimit", 
   230         {"blocktype": "GetTorqueLimit", 
   229          "inputs": [],
   231          "inputs": [],
   230          "outputs": [{"name": "TorqueLimitPos", "type": "UINT"},
   232          "outputs": [{"name": "TorqueLimitPos", "type": "UINT"},