parent
885b8717e1
commit
8c30331e6e
|
|
@ -2078,6 +2078,9 @@ ec_request_state_t ecrt_sdo_request_state(
|
||||||
*
|
*
|
||||||
* \ingroup ApplicationInterfaceRT
|
* \ingroup ApplicationInterfaceRT
|
||||||
* \return 0 on success, otherwise negative error code.
|
* \return 0 on success, otherwise negative error code.
|
||||||
|
* \retval -EINVAL Invalid input data, e.g. data size == 0.
|
||||||
|
* \retval -ENOMEM Reserved memory in ecrt_slave_config_create_sdo_request()
|
||||||
|
* too small.
|
||||||
*/
|
*/
|
||||||
EC_PUBLIC_API int ecrt_sdo_request_write(
|
EC_PUBLIC_API int ecrt_sdo_request_write(
|
||||||
ec_sdo_request_t *req /**< SDO request. */
|
ec_sdo_request_t *req /**< SDO request. */
|
||||||
|
|
@ -2117,8 +2120,9 @@ EC_PUBLIC_API int ecrt_sdo_request_read(
|
||||||
* set via ecrt_slave_config_create_soe_request().
|
* set via ecrt_slave_config_create_soe_request().
|
||||||
*
|
*
|
||||||
* \ingroup ApplicationInterfaceRT
|
* \ingroup ApplicationInterfaceRT
|
||||||
|
* \return 0 on success, otherwise negative error code.
|
||||||
*/
|
*/
|
||||||
EC_PUBLIC_API void ecrt_soe_request_idn(
|
EC_PUBLIC_API int ecrt_soe_request_idn(
|
||||||
ec_soe_request_t *req, /**< IDN request. */
|
ec_soe_request_t *req, /**< IDN request. */
|
||||||
uint8_t drive_no, /**< SDO index. */
|
uint8_t drive_no, /**< SDO index. */
|
||||||
uint16_t idn /**< SoE IDN. */
|
uint16_t idn /**< SoE IDN. */
|
||||||
|
|
@ -2134,8 +2138,9 @@ EC_PUBLIC_API void ecrt_soe_request_idn(
|
||||||
*
|
*
|
||||||
* The timeout should be defined in non-realtime context, but can also be
|
* The timeout should be defined in non-realtime context, but can also be
|
||||||
* changed afterwards.
|
* changed afterwards.
|
||||||
|
* \return 0 on success, otherwise negative error code.
|
||||||
*/
|
*/
|
||||||
EC_PUBLIC_API void ecrt_soe_request_timeout(
|
EC_PUBLIC_API int ecrt_soe_request_timeout(
|
||||||
ec_soe_request_t *req, /**< SoE request. */
|
ec_soe_request_t *req, /**< SoE request. */
|
||||||
uint32_t timeout /**< Timeout in milliseconds. Zero means no
|
uint32_t timeout /**< Timeout in milliseconds. Zero means no
|
||||||
timeout. */
|
timeout. */
|
||||||
|
|
@ -2213,8 +2218,12 @@ EC_PUBLIC_API ec_request_state_t ecrt_soe_request_state(
|
||||||
* activation).
|
* activation).
|
||||||
*
|
*
|
||||||
* \ingroup ApplicationInterfaceRT
|
* \ingroup ApplicationInterfaceRT
|
||||||
|
* \return 0 on success, otherwise negative error code.
|
||||||
|
* \retval -EINVAL Invalid input data, e.g. data size == 0.
|
||||||
|
* \retval -ENOMEM Reserved memory in ecrt_slave_config_create_soe_request()
|
||||||
|
* too small.
|
||||||
*/
|
*/
|
||||||
EC_PUBLIC_API void ecrt_soe_request_write(
|
EC_PUBLIC_API int ecrt_soe_request_write(
|
||||||
ec_soe_request_t *req /**< SoE request. */
|
ec_soe_request_t *req /**< SoE request. */
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -2231,8 +2240,9 @@ EC_PUBLIC_API void ecrt_soe_request_write(
|
||||||
* activation).
|
* activation).
|
||||||
*
|
*
|
||||||
* \ingroup ApplicationInterfaceRT
|
* \ingroup ApplicationInterfaceRT
|
||||||
|
* \return 0 on success, otherwise negative error code.
|
||||||
*/
|
*/
|
||||||
EC_PUBLIC_API void ecrt_soe_request_read(
|
EC_PUBLIC_API int ecrt_soe_request_read(
|
||||||
ec_soe_request_t *req /**< SoE request. */
|
ec_soe_request_t *req /**< SoE request. */
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ void ec_soe_request_clear(ec_soe_request_t *req)
|
||||||
* Application interface.
|
* Application interface.
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void ecrt_soe_request_idn(ec_soe_request_t *req, uint8_t drive_no,
|
int ecrt_soe_request_idn(ec_soe_request_t *req, uint8_t drive_no,
|
||||||
uint16_t idn)
|
uint16_t idn)
|
||||||
{
|
{
|
||||||
ec_ioctl_soe_request_t data;
|
ec_ioctl_soe_request_t data;
|
||||||
|
|
@ -61,14 +61,14 @@ void ecrt_soe_request_idn(ec_soe_request_t *req, uint8_t drive_no,
|
||||||
|
|
||||||
ret = ioctl(req->config->master->fd, EC_IOCTL_SOE_REQUEST_IDN, &data);
|
ret = ioctl(req->config->master->fd, EC_IOCTL_SOE_REQUEST_IDN, &data);
|
||||||
if (EC_IOCTL_IS_ERROR(ret)) {
|
if (EC_IOCTL_IS_ERROR(ret)) {
|
||||||
fprintf(stderr, "Failed to set SoE request IDN: %s\n",
|
return -EC_IOCTL_ERRNO(ret);
|
||||||
strerror(EC_IOCTL_ERRNO(ret)));
|
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
void ecrt_soe_request_timeout(ec_soe_request_t *req, uint32_t timeout)
|
int ecrt_soe_request_timeout(ec_soe_request_t *req, uint32_t timeout)
|
||||||
{
|
{
|
||||||
ec_ioctl_soe_request_t data;
|
ec_ioctl_soe_request_t data;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -79,9 +79,9 @@ void ecrt_soe_request_timeout(ec_soe_request_t *req, uint32_t timeout)
|
||||||
|
|
||||||
ret = ioctl(req->config->master->fd, EC_IOCTL_SOE_REQUEST_TIMEOUT, &data);
|
ret = ioctl(req->config->master->fd, EC_IOCTL_SOE_REQUEST_TIMEOUT, &data);
|
||||||
if (EC_IOCTL_IS_ERROR(ret)) {
|
if (EC_IOCTL_IS_ERROR(ret)) {
|
||||||
fprintf(stderr, "Failed to set SoE request timeout: %s\n",
|
return -EC_IOCTL_ERRNO(ret);
|
||||||
strerror(EC_IOCTL_ERRNO(ret)));
|
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
@ -139,7 +139,7 @@ ec_request_state_t ecrt_soe_request_state(ec_soe_request_t *req)
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
void ecrt_soe_request_read(ec_soe_request_t *req)
|
int ecrt_soe_request_read(ec_soe_request_t *req)
|
||||||
{
|
{
|
||||||
ec_ioctl_soe_request_t data;
|
ec_ioctl_soe_request_t data;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -149,14 +149,14 @@ void ecrt_soe_request_read(ec_soe_request_t *req)
|
||||||
|
|
||||||
ret = ioctl(req->config->master->fd, EC_IOCTL_SOE_REQUEST_READ, &data);
|
ret = ioctl(req->config->master->fd, EC_IOCTL_SOE_REQUEST_READ, &data);
|
||||||
if (EC_IOCTL_IS_ERROR(ret)) {
|
if (EC_IOCTL_IS_ERROR(ret)) {
|
||||||
fprintf(stderr, "Failed to command an SoE read operation : %s\n",
|
return -EC_IOCTL_ERRNO(ret);
|
||||||
strerror(EC_IOCTL_ERRNO(ret)));
|
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
void ecrt_soe_request_write(ec_soe_request_t *req)
|
int ecrt_soe_request_write(ec_soe_request_t *req)
|
||||||
{
|
{
|
||||||
ec_ioctl_soe_request_t data;
|
ec_ioctl_soe_request_t data;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -168,9 +168,9 @@ void ecrt_soe_request_write(ec_soe_request_t *req)
|
||||||
|
|
||||||
ret = ioctl(req->config->master->fd, EC_IOCTL_SOE_REQUEST_WRITE, &data);
|
ret = ioctl(req->config->master->fd, EC_IOCTL_SOE_REQUEST_WRITE, &data);
|
||||||
if (EC_IOCTL_IS_ERROR(ret)) {
|
if (EC_IOCTL_IS_ERROR(ret)) {
|
||||||
fprintf(stderr, "Failed to command an SDO write operation : %s\n",
|
return -EC_IOCTL_ERRNO(ret);
|
||||||
strerror(EC_IOCTL_ERRNO(ret)));
|
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
|
||||||
|
|
@ -3703,8 +3703,7 @@ static ATTRIBUTES int ec_ioctl_soe_request_index(
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
ecrt_soe_request_idn(req, data.drive_no, data.idn);
|
return ecrt_soe_request_idn(req, data.drive_no, data.idn);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
@ -3740,8 +3739,7 @@ static ATTRIBUTES int ec_ioctl_soe_request_timeout(
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
ecrt_soe_request_timeout(req, data.timeout);
|
return ecrt_soe_request_timeout(req, data.timeout);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
@ -3824,8 +3822,7 @@ static ATTRIBUTES int ec_ioctl_soe_request_read(
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
ecrt_soe_request_read(req);
|
return ecrt_soe_request_read(req);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
@ -3874,8 +3871,7 @@ static ATTRIBUTES int ec_ioctl_soe_request_write(
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
req->data_size = data.size;
|
req->data_size = data.size;
|
||||||
ecrt_soe_request_write(req);
|
return ecrt_soe_request_write(req);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
|
||||||
|
|
@ -223,7 +223,7 @@ int ec_soe_request_append_data(
|
||||||
|
|
||||||
/** Request a read operation.
|
/** Request a read operation.
|
||||||
*/
|
*/
|
||||||
void ec_soe_request_read(
|
int ec_soe_request_read(
|
||||||
ec_soe_request_t *req /**< SoE request. */
|
ec_soe_request_t *req /**< SoE request. */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
@ -231,13 +231,14 @@ void ec_soe_request_read(
|
||||||
req->state = EC_INT_REQUEST_QUEUED;
|
req->state = EC_INT_REQUEST_QUEUED;
|
||||||
req->error_code = 0x0000;
|
req->error_code = 0x0000;
|
||||||
req->jiffies_start = jiffies;
|
req->jiffies_start = jiffies;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/** Request a write operation.
|
/** Request a write operation.
|
||||||
*/
|
*/
|
||||||
void ec_soe_request_write(
|
int ec_soe_request_write(
|
||||||
ec_soe_request_t *req /**< SoE request. */
|
ec_soe_request_t *req /**< SoE request. */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
@ -245,6 +246,7 @@ void ec_soe_request_write(
|
||||||
req->state = EC_INT_REQUEST_QUEUED;
|
req->state = EC_INT_REQUEST_QUEUED;
|
||||||
req->error_code = 0x0000;
|
req->error_code = 0x0000;
|
||||||
req->jiffies_start = jiffies;
|
req->jiffies_start = jiffies;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
@ -263,18 +265,20 @@ int ec_soe_request_timed_out(const ec_soe_request_t *req /**< SDO request. */)
|
||||||
* Application interface.
|
* Application interface.
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void ecrt_soe_request_idn(ec_soe_request_t *req, uint8_t drive_no,
|
int ecrt_soe_request_idn(ec_soe_request_t *req, uint8_t drive_no,
|
||||||
uint16_t idn)
|
uint16_t idn)
|
||||||
{
|
{
|
||||||
req->drive_no = drive_no;
|
req->drive_no = drive_no;
|
||||||
req->idn = idn;
|
req->idn = idn;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
void ecrt_soe_request_timeout(ec_soe_request_t *req, uint32_t timeout)
|
int ecrt_soe_request_timeout(ec_soe_request_t *req, uint32_t timeout)
|
||||||
{
|
{
|
||||||
req->issue_timeout = timeout;
|
req->issue_timeout = timeout;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
@ -300,16 +304,16 @@ ec_request_state_t ecrt_soe_request_state(const ec_soe_request_t *req)
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
void ecrt_soe_request_read(ec_soe_request_t *req)
|
int ecrt_soe_request_read(ec_soe_request_t *req)
|
||||||
{
|
{
|
||||||
ec_soe_request_read(req);
|
return ec_soe_request_read(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
void ecrt_soe_request_write(ec_soe_request_t *req)
|
int ecrt_soe_request_write(ec_soe_request_t *req)
|
||||||
{
|
{
|
||||||
ec_soe_request_write(req);
|
return ec_soe_request_write(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
|
||||||
|
|
@ -67,8 +67,8 @@ void ec_soe_request_set_idn(ec_soe_request_t *, uint16_t);
|
||||||
int ec_soe_request_alloc(ec_soe_request_t *, size_t);
|
int ec_soe_request_alloc(ec_soe_request_t *, size_t);
|
||||||
int ec_soe_request_copy_data(ec_soe_request_t *, const uint8_t *, size_t);
|
int ec_soe_request_copy_data(ec_soe_request_t *, const uint8_t *, size_t);
|
||||||
int ec_soe_request_append_data(ec_soe_request_t *, const uint8_t *, size_t);
|
int ec_soe_request_append_data(ec_soe_request_t *, const uint8_t *, size_t);
|
||||||
void ec_soe_request_read(ec_soe_request_t *);
|
int ec_soe_request_read(ec_soe_request_t *);
|
||||||
void ec_soe_request_write(ec_soe_request_t *);
|
int ec_soe_request_write(ec_soe_request_t *);
|
||||||
int ec_soe_request_timed_out(const ec_soe_request_t *);
|
int ec_soe_request_timed_out(const ec_soe_request_t *);
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue