std: Add std_session_send_df_trigger().

This commit is contained in:
Uwe Hermann 2020-04-08 23:02:04 +02:00
parent 148cf8bea1
commit 10cf811385
2 changed files with 36 additions and 0 deletions

View File

@ -1030,6 +1030,7 @@ SR_PRIV int std_serial_dev_acquisition_stop(struct sr_dev_inst *sdi);
#endif
SR_PRIV int std_session_send_df_header(const struct sr_dev_inst *sdi);
SR_PRIV int std_session_send_df_end(const struct sr_dev_inst *sdi);
SR_PRIV int std_session_send_df_trigger(const struct sr_dev_inst *sdi);
SR_PRIV int std_session_send_frame_begin(const struct sr_dev_inst *sdi);
SR_PRIV int std_session_send_frame_end(const struct sr_dev_inst *sdi);
SR_PRIV int std_dev_clear_with_callback(const struct sr_dev_driver *driver,

View File

@ -231,6 +231,41 @@ SR_PRIV int std_session_send_df_end(const struct sr_dev_inst *sdi)
return SR_OK;
}
/**
* Standard API helper for sending an SR_DF_TRIGGER packet.
*
* This function can be used to simplify most drivers' trigger handling.
*
* @param[in] sdi The device instance to use. Must not be NULL.
*
* @retval SR_OK Success.
* @retval SR_ERR_ARG Invalid argument.
* @retval other Other error.
*/
SR_PRIV int std_session_send_df_trigger(const struct sr_dev_inst *sdi)
{
const char *prefix;
int ret;
struct sr_datafeed_packet packet;
if (!sdi) {
sr_err("%s: Invalid argument.", __func__);
return SR_ERR_ARG;
}
prefix = (sdi->driver) ? sdi->driver->name : "unknown";
packet.type = SR_DF_TRIGGER;
packet.payload = NULL;
if ((ret = sr_session_send(sdi, &packet)) < 0) {
sr_err("%s: Failed to send SR_DF_TRIGGER packet: %d.", prefix, ret);
return ret;
}
return SR_OK;
}
/**
* Standard API helper for sending an SR_DF_FRAME_BEGIN packet.
*