master/slave_config.c
changeset 1392 8fcc1d0987c1
parent 1363 11c0b2caa253
child 1412 8f7bbbd3b7ac
equal deleted inserted replaced
1391:9a547310f8d8 1392:8fcc1d0987c1
    59         )
    59         )
    60 {
    60 {
    61     unsigned int i;
    61     unsigned int i;
    62 
    62 
    63     sc->master = master;
    63     sc->master = master;
       
    64 
    64     sc->alias = alias;
    65     sc->alias = alias;
    65     sc->position = position;
    66     sc->position = position;
    66     sc->vendor_id = vendor_id;
    67     sc->vendor_id = vendor_id;
    67     sc->product_code = product_code;
    68     sc->product_code = product_code;
       
    69 
    68     sc->slave = NULL;
    70     sc->slave = NULL;
    69 
    71 
    70     for (i = 0; i < EC_MAX_SYNC_MANAGERS; i++)
    72     for (i = 0; i < EC_MAX_SYNC_MANAGERS; i++)
    71         ec_sync_config_init(&sc->sync_configs[i]);
    73         ec_sync_config_init(&sc->sync_configs[i]);
       
    74 
       
    75     sc->used_fmmus = 0;
       
    76 
       
    77 	sc->dc_assign_activate = 0x0000;
       
    78 	sc->dc_sync_cycle_times[0] = 0x00000000;
       
    79 	sc->dc_sync_cycle_times[1] = 0x00000000;
    72 
    80 
    73     INIT_LIST_HEAD(&sc->sdo_configs);
    81     INIT_LIST_HEAD(&sc->sdo_configs);
    74     INIT_LIST_HEAD(&sc->sdo_requests);
    82     INIT_LIST_HEAD(&sc->sdo_requests);
    75     INIT_LIST_HEAD(&sc->voe_handlers);
    83     INIT_LIST_HEAD(&sc->voe_handlers);
    76 
       
    77     sc->used_fmmus = 0;
       
    78 }
    84 }
    79 
    85 
    80 /*****************************************************************************/
    86 /*****************************************************************************/
    81 
    87 
    82 /** Slave configuration destructor.
    88 /** Slave configuration destructor.
   397 
   403 
   398     return NULL;
   404     return NULL;
   399 }
   405 }
   400 
   406 
   401 /******************************************************************************
   407 /******************************************************************************
   402  *  Realtime interface
   408  *  Application interface
   403  *****************************************************************************/
   409  *****************************************************************************/
   404 
   410 
   405 int ecrt_slave_config_sync_manager(ec_slave_config_t *sc, uint8_t sync_index,
   411 int ecrt_slave_config_sync_manager(ec_slave_config_t *sc, uint8_t sync_index,
   406         ec_direction_t dir)
   412         ec_direction_t dir)
   407 {
   413 {
   663     EC_ERR("PDO entry 0x%04X:%02X is not mapped in slave config %u:%u.\n",
   669     EC_ERR("PDO entry 0x%04X:%02X is not mapped in slave config %u:%u.\n",
   664            index, subindex, sc->alias, sc->position);
   670            index, subindex, sc->alias, sc->position);
   665     return -ENOENT;
   671     return -ENOENT;
   666 }
   672 }
   667 
   673 
       
   674 /*****************************************************************************/
       
   675 
       
   676 void ecrt_slave_config_dc_assign_activate(ec_slave_config_t *sc,
       
   677         uint16_t assign_activate)
       
   678 {
       
   679 	sc->dc_assign_activate = assign_activate;
       
   680 }
       
   681 
       
   682 /*****************************************************************************/
       
   683 
       
   684 void ecrt_slave_config_dc_sync_cycle_times(ec_slave_config_t *sc,
       
   685         uint32_t sync0_cycle_time, uint32_t sync1_cycle_time)
       
   686 {
       
   687 	sc->dc_sync_cycle_times[0] = sync0_cycle_time;
       
   688 	sc->dc_sync_cycle_times[1] = sync1_cycle_time;
       
   689 }
   668 
   690 
   669 /*****************************************************************************/
   691 /*****************************************************************************/
   670 
   692 
   671 int ecrt_slave_config_sdo(ec_slave_config_t *sc, uint16_t index,
   693 int ecrt_slave_config_sdo(ec_slave_config_t *sc, uint16_t index,
   672         uint8_t subindex, const uint8_t *data, size_t size)
   694         uint8_t subindex, const uint8_t *data, size_t size)
   878 EXPORT_SYMBOL(ecrt_slave_config_pdo_assign_clear);
   900 EXPORT_SYMBOL(ecrt_slave_config_pdo_assign_clear);
   879 EXPORT_SYMBOL(ecrt_slave_config_pdo_mapping_add);
   901 EXPORT_SYMBOL(ecrt_slave_config_pdo_mapping_add);
   880 EXPORT_SYMBOL(ecrt_slave_config_pdo_mapping_clear);
   902 EXPORT_SYMBOL(ecrt_slave_config_pdo_mapping_clear);
   881 EXPORT_SYMBOL(ecrt_slave_config_pdos);
   903 EXPORT_SYMBOL(ecrt_slave_config_pdos);
   882 EXPORT_SYMBOL(ecrt_slave_config_reg_pdo_entry);
   904 EXPORT_SYMBOL(ecrt_slave_config_reg_pdo_entry);
       
   905 EXPORT_SYMBOL(ecrt_slave_config_dc_assign_activate);
       
   906 EXPORT_SYMBOL(ecrt_slave_config_dc_sync_cycle_times);
   883 EXPORT_SYMBOL(ecrt_slave_config_sdo);
   907 EXPORT_SYMBOL(ecrt_slave_config_sdo);
   884 EXPORT_SYMBOL(ecrt_slave_config_sdo8);
   908 EXPORT_SYMBOL(ecrt_slave_config_sdo8);
   885 EXPORT_SYMBOL(ecrt_slave_config_sdo16);
   909 EXPORT_SYMBOL(ecrt_slave_config_sdo16);
   886 EXPORT_SYMBOL(ecrt_slave_config_sdo32);
   910 EXPORT_SYMBOL(ecrt_slave_config_sdo32);
   887 EXPORT_SYMBOL(ecrt_slave_config_create_sdo_request);
   911 EXPORT_SYMBOL(ecrt_slave_config_create_sdo_request);