This commit is contained in:
Martin Troxler
2009-11-19 14:44:57 +01:00
41 changed files with 9139 additions and 229 deletions
+35
View File
@@ -336,6 +336,16 @@ int ecrt_master_activate(ec_master_t *master)
/*****************************************************************************/
void ecrt_master_deactivate(ec_master_t *master)
{
if (ioctl(master->fd, EC_IOCTL_DEACTIVATE, NULL) == -1) {
fprintf(stderr, "Failed to deactivate master: %s\n", strerror(errno));
return;
}
}
/*****************************************************************************/
void ecrt_master_send(ec_master_t *master)
{
if (ioctl(master->fd, EC_IOCTL_SEND, NULL) == -1) {
@@ -395,3 +405,28 @@ void ecrt_master_sync_slave_clocks(ec_master_t *master)
}
/*****************************************************************************/
void ecrt_master_sync_monitor_queue(ec_master_t *master)
{
if (ioctl(master->fd, EC_IOCTL_SYNC_MON_QUEUE, NULL) == -1) {
fprintf(stderr, "Failed to queue sync monitor datagram: %s\n",
strerror(errno));
}
}
/*****************************************************************************/
uint32_t ecrt_master_sync_monitor_process(ec_master_t *master)
{
uint32_t time_diff;
if (ioctl(master->fd, EC_IOCTL_SYNC_MON_PROCESS, &time_diff) == -1) {
time_diff = 0xffffffff;
fprintf(stderr, "Failed to process sync monitor datagram: %s\n",
strerror(errno));
}
return time_diff;
}
/*****************************************************************************/
+23
View File
@@ -294,6 +294,29 @@ int ecrt_slave_config_sdo(ec_slave_config_t *sc, uint16_t index,
data.subindex = subindex;
data.data = sdo_data;
data.size = size;
data.complete_access = 0;
if (ioctl(sc->master->fd, EC_IOCTL_SC_SDO, &data) == -1) {
fprintf(stderr, "Failed to configure SDO.\n");
return -1; // FIXME
}
return 0;
}
/*****************************************************************************/
int ecrt_slave_config_complete_sdo(ec_slave_config_t *sc, uint16_t index,
const uint8_t *sdo_data, size_t size)
{
ec_ioctl_sc_sdo_t data;
data.config_index = sc->index;
data.index = index;
data.subindex = 0;
data.data = sdo_data;
data.size = size;
data.complete_access = 1;
if (ioctl(sc->master->fd, EC_IOCTL_SC_SDO, &data) == -1) {
fprintf(stderr, "Failed to configure SDO.\n");