93 lines
3.6 KiB
C

#ifndef BABYLINSDF_H
#define BABYLINSDF_H
#include "BabyLINReturncodes.h"
// ! @brief represents a connection to a BabyLIN-device ( for old BabyLINs ) or
// one of the channels on new BabyLIN-devices
typedef void* BL_HANDLE;
typedef const char* CPCHAR;
#if defined(__cplusplus)
extern "C" {
#endif
/** @addtogroup l_sdf_functions
* @brief List of legacy SDF functions
*
* The following structures are used to retrieve data from a SDF loaded to a BabyLIN. As these
* functions requeire a loaded SDF onto a BabyLIN, a existing connection to a BabyLIN is mendatory.
* Please see the new SDF API in @ref sdf_functions on how to handle SDFs without a BabyLIN
* connection.
* @{
*/
// ! Get the SDF's number for node by name.
/**
* @param handle Handle representing the connection; returned previously by BL_open().
* @param name Name of the node.
* @return Returns the node's number or -1 if there's no signal with specified name. Even
* smaller numbers designate error codes as defined in BabyLIN.h.
*/
int BL_DLLIMPORT BL_SDF_getNodeNr(BL_HANDLE handle, const char* name);
// ! Get the SDF's number for signal by name.
/**
* @param handle Handle representing the connection; returned previously by BL_open().
* @param name Name of the signal.
* @return Returns the signal's number or -1 if there's no signal with specified name. Even
* smaller numbers designate error codes as defined in BabyLIN.h.
*/
int BL_DLLIMPORT BL_SDF_getSignalNr(BL_HANDLE handle, const char* name);
// ! Get the SDF's number for frame by name.
/**
* @param handle Handle representing the connection; returned previously by BL_open().
* @param name Name of the frame.
* @return Returns the frame's number or -1 if there's no frame with specified name. Even
* smaller numbers designate error codes as defined in BabyLIN.h.
*/
int BL_DLLIMPORT BL_SDF_getFrameNr(BL_HANDLE handle, const char* name);
// ! Get the SDF's number for schedule by name.
/**
* @param handle Handle representing the connection; returned previously by BL_open().
* @param name Name of the schedule.
* @return Returns the schedule's number or -1 if there's no schedule with specified name.
* Even smaller numbers designate error codes as defined in BabyLIN.h.
*/
int BL_DLLIMPORT BL_SDF_getScheduleNr(BL_HANDLE handle, const char* name);
// ! Get the number of schedule tables in the SDF.
/**
* @param handle Handle representing the connection; returned previously by BL_open().
* @return Returns the number of schedule tablesname or 0 if there's no schedule defined.
*/
int BL_DLLIMPORT BL_SDF_getNumSchedules(BL_HANDLE handle);
// ! Get the SDF's name of schedule by number.
/**
* @param handle Handle representing the connection; returned previously by BL_open().
* @param schedule_nr Index of the schedule.
* @return Returns the schedule's name or empty string if there's no schedule with
* specified index.
*/
CPCHAR BL_DLLIMPORT BL_SDF_getScheduleName(BL_HANDLE handle, int schedule_nr);
// ! Get the SDF's number for macro by name.
/**
* @param handle Handle representing the connection; returned previously by BL_open().
* @param name Name of the macro.
* @return Returns the macro's number or -1 if there's no macro with specified name. Even
* smaller numbers designate error codes as defined in BabyLIN.h.
*/
int BL_DLLIMPORT BL_SDF_getMacroNr(BL_HANDLE handle, const char* name);
/** @} */
#if defined(__cplusplus)
} // extern "C"
#endif
#endif // BABYLINSDF_H