etherlab/plc_etherlab.c
changeset 2079 49242019a9ca
parent 2076 22e9993348f6
child 2081 b1801bf4365c
equal deleted inserted replaced
2078:7d0ebbff1d08 2079:49242019a9ca
    19 extern unsigned long long common_ticktime__;
    19 extern unsigned long long common_ticktime__;
    20 
    20 
    21 // declaration of interface variables
    21 // declaration of interface variables
    22 %(located_variables_declaration)s
    22 %(located_variables_declaration)s
    23 
    23 
    24 // Optional features
       
    25 #define CONFIGURE_PDOS  %(configure_pdos)d
       
    26 
       
    27 // process data
    24 // process data
    28 uint8_t *domain1_pd = NULL;
    25 uint8_t *domain1_pd = NULL;
    29 %(used_pdo_entry_offset_variables_declaration)s
    26 %(used_pdo_entry_offset_variables_declaration)s
    30 
    27 
    31 const static ec_pdo_entry_reg_t domain1_regs[] = {
    28 const static ec_pdo_entry_reg_t domain1_regs[] = {
    32 %(used_pdo_entry_configuration)s
    29 %(used_pdo_entry_configuration)s
    33     {}
    30     {}
    34 };
    31 };
    35 /*****************************************************************************/
    32 /*****************************************************************************/
    36 
    33 
    37 #if CONFIGURE_PDOS
       
    38 %(pdos_configuration_declaration)s
    34 %(pdos_configuration_declaration)s
    39 #endif
       
    40 
    35 
    41 int rt_fd = -1;
    36 int rt_fd = -1;
    42 CstructMstrAttach MstrAttach;
    37 CstructMstrAttach MstrAttach;
    43 char rt_dev_file[64];
    38 char rt_dev_file[64];
    44 long long wait_period_ns = 100000LL;
    39 long long wait_period_ns = 100000LL;
    62 	if (!master) return -1;
    57 	if (!master) return -1;
    63 
    58 
    64 	domain1 = ecrt_master_create_domain(master);
    59 	domain1 = ecrt_master_create_domain(master);
    65 	if (!domain1) return -1;
    60 	if (!domain1) return -1;
    66 
    61 
    67 #if CONFIGURE_PDOS
    62     // slaves PDO configuration
    68     fprintf(stdout, "Configure PDOs...\n");
    63 %(slaves_configuration)s
    69 	%(slaves_configuration)s
       
    70 #endif
       
    71 
    64 
    72     if (ecrt_domain_reg_pdo_entry_list(domain1, domain1_regs)) {
    65     if (ecrt_domain_reg_pdo_entry_list(domain1, domain1_regs)) {
    73         fprintf(stderr, "PDO entry registration failed!\n");
    66         fprintf(stderr, "PDO entry registration failed!\n");
    74         return -1;
    67         return -1;
    75     }
    68     }
    76 
    69 
    77 	ecrt_master_set_send_interval(master, common_ticktime__);
    70 	ecrt_master_set_send_interval(master, common_ticktime__);
    78 
    71 
       
    72     // slaves initialization
    79 %(slaves_initialization)s
    73 %(slaves_initialization)s
    80 
    74 
       
    75     // extracting default value for not mapped entry in output PDOs
    81 %(slaves_output_pdos_default_values_extraction)s
    76 %(slaves_output_pdos_default_values_extraction)s
    82 
    77 
    83     sprintf(&rt_dev_file[0],"%%s%%u",EC_RTDM_DEV_FILE_NAME,0);
    78     sprintf(&rt_dev_file[0],"%%s%%u",EC_RTDM_DEV_FILE_NAME,0);
    84     rt_fd = rt_dev_open( &rt_dev_file[0], 0);
    79     rt_fd = rt_dev_open( &rt_dev_file[0], 0);
    85     if (rt_fd < 0) {
    80     if (rt_fd < 0) {