2352 lines
130 KiB
C++
2352 lines
130 KiB
C++
#ifndef BABYLIN_H
|
|
#define BABYLIN_H
|
|
|
|
#include "BabyLINCAN_types.h"
|
|
|
|
#if defined(__cplusplus)
|
|
#include <cstddef> // get "size_t", used by function BL_encodeSignal())
|
|
#include <cstdint>
|
|
extern "C" {
|
|
#else
|
|
#include <stddef.h> // get "size_t", used by function BL_encodeSignal())
|
|
#include <stdint.h>
|
|
#endif
|
|
|
|
/** @brief Registers a callback function, which is called on every reception of a (monitored) jumbo
|
|
* frame.
|
|
*
|
|
* @deprecated Use @ref BLC_registerUserDataJumboFrameCallback instead
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called from another
|
|
* thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel id which the frame occurred
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_jumboframe_callback_func.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerJumboFrameCallback(BL_HANDLE handle,
|
|
BLC_jumboframe_callback_func* callback);
|
|
|
|
/** @brief Registers a callback function, which is called on every reception of a (monitored) frame.
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel id which the frame occurred
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_frame_callback_func.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerFrameCallback(BL_HANDLE handle, BLC_frame_callback_func* callback);
|
|
|
|
/** @brief Registers a callback function, which is called on every reception of a monitored signal.
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel on which the signal occurred;
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_signal_callback_func.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerSignalCallback(BL_HANDLE handle, BLC_signal_callback_func* callback);
|
|
|
|
/** @brief Registers a callback function, which is called on every reception of an error message
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_error_callback_func.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerErrorCallback(BL_HANDLE handle, BLC_error_callback_func* callback);
|
|
|
|
/** @brief Registers a callback function, which is called whenever the execution
|
|
* state of a macro changes
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_macrostate_callback_func.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerMacroStateCallback(BL_HANDLE handle,
|
|
BLC_macrostate_callback_func* callback);
|
|
|
|
/** @brief Registers a callback function, which is called whenever a debug message from a
|
|
* BabyLIN-Device is received
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_debug_callback_func.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerDebugCallback(BL_HANDLE handle, BLC_debug_callback_func* callback);
|
|
|
|
/** @brief Registers a callback function, which is called whenever dtl request is received
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref
|
|
* BLC_dtl_request_callback_func.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerDTLRequestCallback(BL_HANDLE handle,
|
|
BLC_dtl_request_callback_func* callback);
|
|
|
|
/** @brief Registers a callback function, which is called whenever dtl response is received
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref
|
|
* BLC_dtl_response_callback_func.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise.
|
|
* See standard return values for error, or for textual representation (for
|
|
* return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerDTLResponseCallback(BL_HANDLE handle,
|
|
BLC_dtl_response_callback_func* callback);
|
|
|
|
/** @brief Registers a callback function, which is called on every reception of
|
|
* a (monitored) jumbo frame.
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel id which the frame occurred
|
|
* @param[in] callback Pointer to a function call-compatible to @ref
|
|
* BLC_jumboframe_callback_func_ptr.
|
|
* @param[in] userdata Pointer to custom user data to pass to @ref
|
|
* BLC_jumboframe_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataJumboFrameCallback(BL_HANDLE handle,
|
|
BLC_jumboframe_callback_func_ptr* callback,
|
|
void* userdata);
|
|
|
|
/** @brief Registers a callback function, which is called on every reception of
|
|
* a (monitored) frame.
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel id which the frame occurred
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_frame_callback_func_ptr.
|
|
* @param[in] userdata Pointer to custom user data to pass to @ref BLC_frame_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataFrameCallback(BL_HANDLE handle,
|
|
BLC_frame_callback_func_ptr* callback,
|
|
void* userdata);
|
|
|
|
/** @brief Registers a callback function, which is called on every reception of an event report.
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel id which the event occurred
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_event_callback_func_ptr.
|
|
* @param[in] userdata Pointer to custom user data to pass to @ref BLC_event_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataEvent(BL_HANDLE handle,
|
|
BLC_event_callback_func_ptr* callback,
|
|
void* userdata);
|
|
|
|
/** @brief Alias for BLC_registerUserDataEvent
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataEventCallback(BL_HANDLE handle,
|
|
BLC_event_callback_func_ptr* callback,
|
|
void* userdata);
|
|
|
|
/** @brief Alias for BLC_registerUserDataEvent without user data
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerEventCallback(BL_HANDLE handle, BLC_event_callback_func* callback);
|
|
|
|
/** @brief Registers a callback function, which is called on every reception of a monitored signal.
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel on which the signal occurred;
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_signal_callback_func_ptr.
|
|
* @param[in] userdata Pointer to custom user data to pass to @ref BLC_signal_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataSignalCallback(BL_HANDLE handle,
|
|
BLC_signal_callback_func_ptr* callback,
|
|
void* userdata);
|
|
|
|
/** @brief Registers a callback function, which is called on every reception of an error message
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_error_callback_func_ptr.
|
|
* @param[in] userdata Pointer to custom user data to pass to @ref BLC_error_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataErrorCallback(BL_HANDLE handle,
|
|
BLC_error_callback_func_ptr* callback,
|
|
void* userdata);
|
|
/** @brief Registers a callback function, which is called whenever the execution state of a macro
|
|
* changes
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref
|
|
* BLC_macrostate_callback_func_ptr.
|
|
* @param[in] userdata Pointer to custom user data to pass to @ref BLC_error_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataMacroStateCallback(BL_HANDLE handle,
|
|
BLC_macrostate_callback_func_ptr* callback,
|
|
void* userdata);
|
|
/** @brief Registers a callback function, which is called whenever a debug message from a
|
|
* BabyLIN-Device is received
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref BLC_debug_callback_func_ptr.
|
|
* @param[in] userdata Pointer to custom user data to pass to @ref BLC_error_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataDebugCallback(BL_HANDLE handle,
|
|
BLC_debug_callback_func_ptr* callback,
|
|
void* userdata);
|
|
/** @brief Registers a callback function, which is called whenever dtl request is received
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref
|
|
* BLC_dtl_request_callback_func_ptr.
|
|
* @param[in] userdata Pointer to custom user data to pass to @ref BLC_error_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataDTLRequestCallback(BL_HANDLE handle,
|
|
BLC_dtl_request_callback_func_ptr* callback,
|
|
void* userdata);
|
|
/** @brief Registers a callback function, which is called whenever dtl response is received
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. As the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param[in] handle Handle representing the channel emitting the error; returned previously by
|
|
* @param[in] callback Pointer to a function call-compatible to @ref
|
|
* BLC_dtl_request_callback_func_ptr.
|
|
* @param[in] userdata Pointer to custom user data to pass to @ref BLC_error_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataDTLResponseCallback(BL_HANDLE handle,
|
|
BLC_dtl_response_callback_func_ptr* callback,
|
|
void* userdata);
|
|
|
|
/**
|
|
* @brief Registers a callback that will be called when the lua "print" function is called.
|
|
*
|
|
*Registers a callback that will be called when the lua "print" function is called.
|
|
*@param[in] handle The connection for the callback
|
|
*@param[in] func The function to be called as callback.
|
|
*@param[in] userdata Any user supplied data, which will be available in the callback (e.g as
|
|
* connection or channel handle)
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerLuaPrintCallback(BL_HANDLE handle,
|
|
BLC_lua_print_func_ptr* func,
|
|
void* userdata);
|
|
/**
|
|
* @brief Registers a callback that will be called on any LUA engine error. You can register this
|
|
*callback to debug your script SDFs.
|
|
*
|
|
*Registers a callback that will be called on any LUA engine error. You can register this callback
|
|
*to debug your script SDFs.
|
|
*@param[in] handle The connection for the callback
|
|
*@param[in] func The function to be called as callback.
|
|
*@param[in] userdata Any user supplied data, which will be available in the callback (e.g as
|
|
* connection or channel handle)
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerLuaErrorCallback(BL_HANDLE handle,
|
|
BLC_lua_print_func_ptr* func,
|
|
void* userdata);
|
|
|
|
/** @brief Registers a callback function, which is called whenever a log message is received
|
|
*
|
|
* Issuing a NULL-pointer de-registers the callback function. Since the function is called
|
|
* from another thread context, take care of thread-safety (i.e. using mutexes, etc.).
|
|
* @param handle Handle representing the channel the callback for logs must be registered to
|
|
* @param callback Pointer to a function call-compatible to @ref BLC_log_callback_func_ptr.
|
|
* @param userdata Pointer to custom user data to pass to @ref BLC_log_callback_func_ptr.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard return
|
|
* values for error, or for textual representation (for return values < -1000)
|
|
* BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_registerUserDataLogCallback(BL_HANDLE handle,
|
|
BLC_log_callback_func_ptr* callback,
|
|
void* userdata);
|
|
|
|
/** @}*/
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/** @}*/
|
|
|
|
/** @addtogroup connection_handling Connection Handling
|
|
* @brief List of BabyLIN connection handling and device information functions
|
|
*
|
|
* The following functions are used to setup a connection to a BabyLIN device.
|
|
* @{
|
|
*/
|
|
|
|
/** @brief Get the major and minor version number of the library
|
|
*
|
|
* @deprecated Use @ref BLC_getExtendedVersion instead
|
|
*
|
|
* This function retrieves the version in the given parameter variables of the library.
|
|
* @param[out] major Major part of version number.
|
|
* @param[out] minor Minor part of version number.
|
|
*/
|
|
void BL_DLLIMPORT BLC_getVersion(int* major, int* minor);
|
|
|
|
/** @brief Get the major, minor and patch version number of the library
|
|
*
|
|
* This function retrieves the version in the given parameter variables of the library.
|
|
* @param[out] major Major part of version number.
|
|
* @param[out] minor Minor part of version number.
|
|
* @param[out] patch Patch part of version number.
|
|
* @param[out] buildrev Build revision of version number.
|
|
*/
|
|
void BL_DLLIMPORT BLC_getExtendedVersion(int* major, int* minor, int* patch, int* buildrev);
|
|
|
|
/** @brief Get the version string of the library
|
|
*
|
|
* This function returns the version string of the library.
|
|
* @return Returns a C-string with the version information.
|
|
*/
|
|
CPCHAR BL_DLLIMPORT BLC_getVersionString(void);
|
|
|
|
/** @brief Retrieve a list of ports a BabyLIN is connected to
|
|
*
|
|
* The function doesn't try to connect to the found Ports wraps @ref BLC_getBabyLinPortsTimout with
|
|
timout value set to 0ms. This function will not find any network-devices.
|
|
*
|
|
* @param[out] portListToBeFilled Preallocated array to be filled
|
|
* @param[in,out] pFoundPortCount Input the size of the allocated array. Output the filled size of
|
|
* the array.
|
|
* @return The number of connected BabyLINs found (>=0) or < 0 on error
|
|
*
|
|
*
|
|
* example: @code{.c}
|
|
* BLC_PORTINFO ports[2];
|
|
int maxPortCount = 2;
|
|
* int foundCount = BLC_getBabyLinPorts(ports, &maxPortCount);
|
|
int foundEmpty = BLC_getBabyLinPorts(NULL, NULL);
|
|
// if there were 3 BabyLin connected to usb:
|
|
// foundCount == 2
|
|
// foundEmpty == 3
|
|
|
|
//if there is only 1 Babylin connected:
|
|
foundCount = BLC_getBabyLinPorts(ports, &maxPortCount);
|
|
foundEmpty = BLC_getBabyLinPorts(NULL, NULL);
|
|
//foundEmpty == 1;
|
|
//foundCount == 1;
|
|
@endcode
|
|
*
|
|
*/
|
|
int BL_DLLIMPORT BLC_getBabyLinPorts(BLC_PORTINFO portListToBeFilled[], int* pFoundPortCount);
|
|
|
|
/** @brief Retrieve a list of ports a BabyLIN is connected to
|
|
*
|
|
* The function doesn't try to connect to the found Ports. You can not connect to UDP network
|
|
* devices they are only listed FYI and have to be configured in SimpleMenu mode first. Network
|
|
* devices of type TCP will have the default Port configured(2048) for connection. If the Device's
|
|
* simplemenu-tcp-com-port configuration value was changed. you will have to change the
|
|
* BLC_PORTINFO.port prior to connecting via BLC_openPort(...).
|
|
* @param[out] portListToBeFilled Array to be filled
|
|
* @param[in,out] pFoundPortCount Input the size of the allocated array. Output the filled size of
|
|
* the array.
|
|
* @param timoutms A timeout value in ms to wait for replies of network devices. If
|
|
* timoutms is set to <= 0 this Function will not find/look for any
|
|
* Network devices.
|
|
* @return The number of connected BabyLINs found (>=0) or < 0 on error
|
|
*/
|
|
int BL_DLLIMPORT BLC_getBabyLinPortsTimout(BLC_PORTINFO portListToBeFilled[],
|
|
int* pFoundPortCount,
|
|
int timoutms);
|
|
|
|
/** @brief Open a connection to a BabyLIN USB-Serial device.
|
|
*
|
|
* This function tries to open the designated port and to start communication with the device.
|
|
* @param port The port, the BabyLIN is connected to. It uses Windows-style numbering, which means
|
|
* it starts with '1' for the first serial port. '0' is reserved. On linux systems, the
|
|
* port is represented by the path to the device file ("/dev/ttyUSB0" f.ex.)
|
|
* @return Returns an handle for the BabyLIN-connection or NULL if the connection could not be
|
|
* established. You may fetch the corresponding (textual) error with @ref
|
|
* BLC_getLastError.
|
|
* @deprecated use @ref BLC_openPort() together with @ref BLC_convertUrl() or @ref
|
|
* BLC_getBabyLinPorts()
|
|
*/
|
|
#if defined(_WIN32)
|
|
BL_HANDLE BL_DLLIMPORT BLC_open(unsigned int port);
|
|
#else
|
|
BL_HANDLE BL_DLLIMPORT BLC_open(const char* port);
|
|
#endif
|
|
|
|
/** @brief Open a connection to a BabyLIN device using ethernet.
|
|
*
|
|
* This function tries to open the designated ip and port and to start communication with the
|
|
* device.
|
|
* @param[in] ip The ip-address of the BabyLIN to connect to
|
|
* @param port The ip-port of the BabyLIN toconnected to
|
|
* @return Returns an handle for the BabyLIN-connection or NULL if the connection could not
|
|
* be established. You may fetch the corresponding (textual) error with @ref
|
|
* BLC_getLastError.
|
|
* @deprecated use @ref BLC_openPort() together with @ref BLC_convertUrl() or @ref
|
|
* BLC_getBabyLinPorts()
|
|
*/
|
|
BL_HANDLE BL_DLLIMPORT BLC_openNet(const char* ip, int port);
|
|
|
|
/** @brief Open a connection to a BabyLIN USB device.
|
|
*
|
|
* This function tries to open the designated port and to start communication with the device.
|
|
* @param[in] device The usb device string, the BabyLIN is connected to.
|
|
* @return Returns an handle for the BabyLIN-connection or NULL if the connection could
|
|
* not be established. You may fetch the corresponding (textual) error with @ref
|
|
* BLC_getLastError.
|
|
* @deprecated use @ref BLC_openPort() together with @ref BLC_convertUrl()
|
|
*/
|
|
BL_HANDLE BL_DLLIMPORT BLC_openUSB(const char* device);
|
|
|
|
/** @brief Open a connection to a BabyLIN device using @ref BLC_PORTINFO information.
|
|
*
|
|
* This function tries to open the BabyLIN device of the @ref BLC_PORTINFO information, i.e. works
|
|
* as a wrapper for @ref BLC_open and @ref BLC_openNet which automatically decides which connection
|
|
* to establish.
|
|
*
|
|
* @note Platform independent way of connecting to BabyLIN-devices found by @ref BLC_getBabyLinPorts
|
|
* or @ref BLC_getBabyLinPortsTimout
|
|
*
|
|
* @param portInfo The @ref BLC_PORTINFO-structure of the BabyLIN to connect to ( see @ref
|
|
* BLC_getBabyLinPorts )
|
|
* @return Returns an handle for the BabyLIN-connection or NULL if the connection could not
|
|
* be established. You may fetch the corresponding (textual) error with @ref
|
|
* BLC_getLastError.
|
|
*/
|
|
BL_HANDLE BL_DLLIMPORT BLC_openPort(BLC_PORTINFO portInfo);
|
|
|
|
/** @brief convert a device url to @ref BLC_PORTINFO to use in @ref BLC_openPort
|
|
*
|
|
* this function tries to convert a given url to a complete struct of type @ref BLC_PORTINFO.
|
|
*
|
|
* The device url defines the device and protocol:
|
|
* serial://1 Opens a USB connection on Windows using the BabyLIN library protocol.
|
|
* serial:///dev/ttyUSB1 Opens a USB connection on Linux using the BabyLIN library protocol.
|
|
* tcp://127.0.0.1:2048 Opens a network connection to a Baby-LIN-MB-II using the BabyLIN library
|
|
* protocol of the SimpleMenu mode. ascii://127.0.0.1:10003 Opens a network connection to a
|
|
* Baby-LIN-MB-II using the ASCII protocol of the StandAlone mode.
|
|
*
|
|
* Note: While using only a port number does work under Linux, it is not recommended to use it.
|
|
* It will only work for old devices that are listed as "ttyUSB" devices. Newer devices
|
|
* will be listed as "ttyACM" and will require the full path to the device, as it is
|
|
* ambiguous which device is meant otherwise.
|
|
*
|
|
* @param[in] url The device url to convert might be a system path (serial:///dev/ttyUSB1) for
|
|
* unix based systems, a comport number (serial://1) as is used for windows or
|
|
* a network address (tcp://127.0.0.1:2048) to connect to a network device. The
|
|
* ASCII protocol of Baby-LIN-MB-II is supported as well
|
|
* (ascii://127.0.0.1:10003). Additionally, there exist a special shortcut for
|
|
* serial:://1 resp. serial:///dev/ttyUSB1 consisting of the single port number
|
|
* [COM]1. Thus, if an integer is given as a port number (started by an
|
|
* optional COM, e.g. COM1), then the protocol is set to BabyLIN library
|
|
* protocol (serial).
|
|
* @param[out] portInfo The @ref BLC_PORTINFO struct to fill.
|
|
* @return @ref BL_OK on success, error code otherwise (in case of error, the
|
|
* @ref BLC_PORTINFO structure is left untouched)
|
|
*/
|
|
int BL_DLLIMPORT BLC_convertUrl(const char* url, BLC_PORTINFO* portInfo);
|
|
|
|
/** @brief Close connection to Device.
|
|
*
|
|
* close an open connection, given by handle.
|
|
* @param[in] handle Handle representing the connection ( see @ref BLC_open )
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_close(BL_HANDLE handle);
|
|
|
|
/** @brief Close ALL connections to ALL Devices.
|
|
*
|
|
* Close all open connections; all handles are invalidated.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard return values
|
|
* for error, or for textual representation @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_closeAll(void);
|
|
|
|
/** @brief Reset the BabyLIN device to an consistent and deactivated state.
|
|
*
|
|
* Afterwards, the device will no longer monitor the bus, neither acting as slave nor as master.
|
|
* @param[in] handle Handle representing a channel; returned previously by @ref
|
|
* BLC_getChannelHandle().
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_flush(BL_HANDLE handle);
|
|
|
|
/** @brief Requests the information about the target
|
|
*
|
|
* @param[in] handle Handle representing the connection (see @ref BLC_open )
|
|
* @param[out] targetID Pointer to pre-allocated @ref BLC_TARGETID structure to hold the
|
|
* information after the successful call
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getTargetID(BL_HANDLE handle, BLC_TARGETID* targetID);
|
|
|
|
/** @brief Returns the unique hardware type identifier for a device
|
|
*
|
|
* @param[in] handle Handle representing the connection ( see @ref BLC_open ) The hardware type
|
|
* or BabyLIN-error return code. See (@ref BLC_TARGETID.type) for hardware types. See standard
|
|
* return values for error, or for textual representation (for return values < -1000) @ref
|
|
* BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getHWType(BL_HANDLE handle);
|
|
|
|
/** @brief number of channels provided by the BabyLIN-Device
|
|
*
|
|
* @param[in] handle Handle representing the connection (see @ref BLC_open)
|
|
* @return Number of channels >= 0 or < 0 on error. See standard return values for error,
|
|
* or for textual representation (for return values < -1000) @ref
|
|
* BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getChannelCount(BL_HANDLE handle);
|
|
|
|
/** @brief Retrieve a handle to the specified channel
|
|
*
|
|
* This function returns a channel-handle for the specified channelId. A channel-handle is used to
|
|
* control a LIN- or CAN-BUS on the BabyLIN-device.
|
|
*
|
|
* @param[in] handle Handle representing the Device connection ( see @ref BLC_open )
|
|
* @param channelId Identifier for the channel to get the handle of. Ranges from 0 to the number
|
|
* of channels supported by the device (see @ref BLC_getChannelCount)
|
|
* @return Handle to the channel, 0 on error. You may fetch the corresponding (textual)
|
|
* with @ref BLC_getLastError.
|
|
*/
|
|
BL_HANDLE BL_DLLIMPORT BLC_getChannelHandle(BL_HANDLE handle, int channelId);
|
|
|
|
/** @brief Retrieve informations about the Channel
|
|
*
|
|
* @param[in] handle Channelhandle representing the Channel. (see @ref BLC_getChannelHandle)
|
|
* @param[out] pinfo Pointer to pre-allocated @ref BLC_CHANNELINFO structure to hold the
|
|
* information after the successful call
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise.
|
|
* See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getChannelInfo(BL_HANDLE handle, BLC_CHANNELINFO* pinfo);
|
|
|
|
/** @brief Returns a C-string with the textual representation of the last error.
|
|
*
|
|
* Get a textual error message for Errorcodes < -1000.
|
|
*
|
|
* @deprecated use @ref BLC_getDetailedErrorString() instead
|
|
*
|
|
* @param[in] handle Handle to the erroneous connection or channel.
|
|
* @param[out] pErrorBuffer Pointer to allocated memory buffer to store error message
|
|
* @param bufferLength Allocated length of pErrorBuffer
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See
|
|
* standard return values for error, or for textual representation (for
|
|
* return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getLastError(BL_HANDLE handle, char* pErrorBuffer, int bufferLength);
|
|
|
|
/** @brief Returns a C-string with the textual representation of an error code
|
|
*
|
|
* Get a textual error message for an error code.
|
|
*
|
|
* @deprecated use @ref BLC_getDetailedErrorString() instead
|
|
*/
|
|
CPCHAR BL_DLLIMPORT BLC_getErrorString(int error_code);
|
|
|
|
/**
|
|
* @brief Returns a C-string with the detailed textual representation of all possible error codes.
|
|
* Get a detailed textual error message for an error code.
|
|
* @param errorCode The error code.
|
|
* @param reportParameter If the error code comes from an event or error report, pass the
|
|
* additional data/status value. Otherwise just pass 0.
|
|
* @param[out] pErrorBuffer A buffer with enough space.
|
|
* @param bufferLength The length of the passed buffer
|
|
* @return BL_BUFFER_TOO_SMALL If the buffer is too small, otherwise the number of sources.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getDetailedErrorString(int errorCode,
|
|
int reportParameter,
|
|
char* pErrorBuffer,
|
|
int bufferLength);
|
|
|
|
/** @brief Resets the BabyLIN device to an consistent and deactivated state.
|
|
*
|
|
* Afterwards, the device will no longer monitor the bus, neither acting as slave nor as master.
|
|
* @param[in] handle Handle representing the connection. (see @ref BLC_open )
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_Reset(BL_HANDLE handle);
|
|
|
|
/** @}*/
|
|
|
|
/** @addtogroup sdf_handling
|
|
* @brief List of functions to get information about the loaded SDF
|
|
*
|
|
* The following functions are used to retrieve information about the elements in a loaded
|
|
* SDF-file.
|
|
* @{
|
|
*/
|
|
|
|
/** @brief Loads the specified SDF-file into library and optionally the BabyLIN device.
|
|
*
|
|
* The SDF is generated by LINWorks/SessionConf from a LDF file.
|
|
* @attention This resets the device upon download
|
|
*
|
|
* @param[in] handle Handle representing the connection. (see @ref BLC_open )
|
|
* @param[in] filename C-string with the (fully qualified) filename (i.e. "mybus.sdf", if in the
|
|
* same directory, or "c:/data/mybus.sdf").
|
|
* @param download Boolean value, determines if the SDF profile gets downloaded into the
|
|
* BabyLIN device (!=0) or only used in the library (=0).
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_loadSDF(BL_HANDLE handle, const char* filename, int download);
|
|
|
|
/** @brief Loads the specified LDFile into library and optionally the BabyLIN device.
|
|
*
|
|
* Loads a given LDF, converts the LDF to a SDF ( without SDF specific features ) and optionally
|
|
* downloads the generated SDF to the device. To actually use the LDF, you almost always need to set
|
|
* the emulated node too. You can do this by using the "setnodesimu" command using @ref
|
|
* BLC_sendCommand.
|
|
* @attention This resets the device upon download
|
|
*
|
|
* @param[in] handle Handle representing the connection. (see @ref BLC_open )
|
|
* @param[in] filename C-string with the (fully qualified) filename (i.e. "mybus.ldf", if in the
|
|
* same directory, or "c:/data/mybus.ldf").
|
|
* @param download Boolean value, determines if the generated SDF profile gets downloaded into
|
|
* the BabyLIN device (!=0) or only used in the library (=0).
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_loadLDF(BL_HANDLE handle, const char* filename, int download);
|
|
|
|
/** @brief Loads the previously loaded SDF-file into the BabyLIN device.
|
|
*
|
|
* The SDF could be generated by LINWorks/SessionConf from a LDF file and must
|
|
* have been loaded previously by an BL_loadSDF() command.
|
|
* WARNING: this resets the device!
|
|
* @param[in] handle Handle representing the connection. (see @ref BLC_open )
|
|
* @param mode The mode to load the SDF. 0= don't load ; 1= download without check ; 2=
|
|
* download only if the CRC of the loaded SDF is different
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise.
|
|
* See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_downloadSDF(BL_HANDLE handle, int mode);
|
|
|
|
/** @brief Checks whether the given file is already loaded on a device.
|
|
*
|
|
* If the device already has an SDF loaded, this method checks if the SDF at the given path and the
|
|
* SDF on the device are the same. Important: This method only works with SDFv3 devices.
|
|
*
|
|
* @param[in] handle Handle representing the device. (see @ref BLC_open )
|
|
* @param[in] filename The path of the SDF to compare.
|
|
* @return BL_OK = SDFs match
|
|
* BL_SDF_INCOMPATIBLE = SDFs do not match
|
|
* BL_NO_SDF = no SDF loaded on device
|
|
* BL_SDF_INSUFFICIENT_FIRMWARE = the device does not support this feature.
|
|
* e.g. a SDFv2 device. See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_isSDFOnDevice(BL_HANDLE handle, const char* filename);
|
|
|
|
/** @brief Retrieve further Information about a loaded SDF
|
|
*
|
|
* Need a loaded SDF (see @ref BLC_loadSDF or @ref BLC_loadLDF )
|
|
* @param[in] handle handle to a valid connection
|
|
* @param[out] pSDFInfo Points to a pre-allocated @ref BLC_SDFINFO to be filled with information
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
* */
|
|
int BL_DLLIMPORT BLC_getSDFInfo(BL_HANDLE handle, BLC_SDFINFO* pSDFInfo);
|
|
|
|
/** @brief Retrieve informations about a SDF-Section from a loaded SDF
|
|
*
|
|
* @param[in] handle Handle of a valid connection
|
|
* @param infoAboutSectionNr The section number to retrieve information of. Ranges from 0 to the
|
|
* number of sections in the loaded SDF (see @ref BLC_getSDFInfo and @ref
|
|
* BLC_SDFINFO.sectionCount )
|
|
* @param[out] pSectionInfo Address of a pre-allocated @ref BLC_SECTIONINFO
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See
|
|
* standard return values for error, or for textual representation (for
|
|
* return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSectionInfo(BL_HANDLE handle,
|
|
int infoAboutSectionNr,
|
|
BLC_SECTIONINFO* pSectionInfo);
|
|
|
|
/** @brief Retrieve description string of a SDF-Section from a loaded SDF
|
|
*
|
|
* @param[in] handle Handle of the channel to get the sdf section description of
|
|
* @return
|
|
* */
|
|
CPCHAR BL_DLLIMPORT BLC_getChannelSectionDescription(BL_HANDLE handle);
|
|
|
|
/** @brief Returns the number of nodes on the BUS
|
|
*
|
|
* Number of nodes connected to the bus according to the informations in the loaded SDF.
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @return Number of nodes connected to the bus according to the informations in the
|
|
* loaded SDF. Values <0 on error. See standard return values for error, or for
|
|
* textual representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNodeCount(BL_HANDLE handle);
|
|
|
|
/** @brief Returns the name of a given node
|
|
*
|
|
* Name of a node connected to the bus according to the informations in the loaded SDF.
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param idx Zero based index of requested node entry (see @ref BLC_getNodeCount )
|
|
* @param[out] dstbuf Pointer to char array which gets filled (must hold min. 'buflen' bytes).
|
|
* @param buflen How many bytes should get returned.
|
|
* @return Status of operation; '>0' is the length of the string in "dstbuf", '<0'
|
|
* otherwise. See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNodeName(BL_HANDLE handle, int idx, char* dstbuf, int buflen);
|
|
|
|
/** @brief Returns the number of frames of the BUS description
|
|
*
|
|
* Number of frames of the bus according to the informations in the loaded SDF.
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @return Number of frames of the bus according to the informations in the loaded SDF.
|
|
* Values <0 on error. See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getFrameCount(BL_HANDLE handle);
|
|
|
|
/** @brief Returns the name of a given frame
|
|
*
|
|
* Name of a frame of the bus according to the informations in the loaded SDF.
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param idx Zero based index of requested frame entry (see @ref BLC_getFrameCount )
|
|
* @param[out] dstbuf Pointer to char array which gets filled (must hold min. 'buflen' bytes).
|
|
* @param buflen How many bytes should get returned.
|
|
* @return Status of operation; '>=0' means successful and is the length of the frame
|
|
* name, excluding the terminating '\0'. See standard return values for values
|
|
* '<0', or for textual representation (for return values < -1000) @ref
|
|
* BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getFrameName(BL_HANDLE handle, int idx, char* dstbuf, int buflen);
|
|
|
|
/** @brief Returns the number of signals
|
|
*
|
|
* Number of signals of the bus according to the informations in the loaded SDF.
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @return Number of signals of the bus according to the informations in the loaded SDF.
|
|
* Values <0 on error. See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalCount(BL_HANDLE handle);
|
|
|
|
/** @brief Returns the name of given signal
|
|
*
|
|
* Name of a signal of the bus according to the informations in the loaded SDF.
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param idx Zero based index of requested signal entry (see @ref BLC_getSignalCount )
|
|
* @param[out] dstbuf Pointer to char array which gets filled (must hold min. 'buflen' bytes).
|
|
* @param buflen How many bytes should get returned.
|
|
* @return Status of operation; '>=0' means successful and is the length of the signal
|
|
* name, excluding the terminating '\0'. See standard return values for values
|
|
* '<0', or for textual representation (for return values < -1000) @ref
|
|
* BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalName(BL_HANDLE handle, int idx, char* dstbuf, int buflen);
|
|
|
|
/** @brief Retrieve information about wheather a signal is emulated by the BabyLIN-Device or not
|
|
*
|
|
* A signal is emulated if the node to which it belongs (according to the SDF) is emulated by the
|
|
* BabyLIN-Device (see "setnodesimu" sendCommand in @ref babylin_commands_sdf to change node
|
|
* emulation at runtime )
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param idx Zero based index of requested signal entry (see @ref BLC_getSignalCount )
|
|
* @return '=0' means signal is not emulated, '=1' if emulated, '<0' denotes error.
|
|
* See standard return values for error, or for textual representation (for
|
|
* return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_isSignalEmulated(BL_HANDLE handle, int idx);
|
|
|
|
/** @brief Retrieve size of a signal
|
|
*
|
|
* Size of a signal of the bus according to the informations in the loaded SDF.
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param idx Zero based index of requested signal entry (see @ref BLC_getSignalCount )
|
|
* @return Size of the signal in bits. Values <0 on error. See standard return values for
|
|
* error, or for textual representation (for return values < -1000) @ref
|
|
* BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalSize(BL_HANDLE handle, int idx);
|
|
|
|
/** @brief Retrieve the number of signals mapped in a frame
|
|
*
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param idx Zero based index of requested frame entry (see @ref BLC_getFrameCount )
|
|
* @return Number of signals mapped in the frame Values <0 on error. See standard return
|
|
* values for error, or for textual representation (for return values < -1000)
|
|
* @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalsInFrameCount(BL_HANDLE handle, int idx);
|
|
|
|
/** @brief Retrieve the signal number of a signal mapped in a frame
|
|
*
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param frameIndex Zero based index of the frame the signal is mapped to (see @ref
|
|
* BLC_getFrameCount )
|
|
* @param signalIndex Zero based index of the signal as mapped to the frame (see @ref
|
|
* BLC_getSignalsInFrameCount )
|
|
* @return Zero based index of the signal in the SDF Values <0 on error. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalInFrame(BL_HANDLE handle, int frameIndex, int signalIndex);
|
|
|
|
/** @brief Retrieve the SDF frame number for a given BUS frame-id
|
|
*
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param frameId The BUS frameId to get the frame number. Special Bits that change the
|
|
* interpretation of frameId: Bit 32(0x80000000) : the given Id is a 29Bit ID.
|
|
* @return Zero based index of the frame in the SDF Values <0 on error. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getFrameNrForFrameId(BL_HANDLE handle, unsigned int frameId);
|
|
|
|
/** @brief Retrieve the BUS frame-id for a given SDF frame number
|
|
*
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param frameNr Zero based index of the frame (see @ref BLC_getFrameCount )
|
|
* @return BUS frameId to the given frame index Values <0 on error. See standard return
|
|
* values for error, or for textual representation (for return values < -1000)
|
|
* @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getFrameIdForFrameNr(BL_HANDLE handle, unsigned char frameNr);
|
|
|
|
/** @}*/
|
|
|
|
/** @addtogroup command_functions Command Functions
|
|
* @brief List of functions to send commands to a BabyLIN device
|
|
*
|
|
* The following functions are used to send commands to a BabyLIN device to set or retrieve
|
|
* simulation or device parameters.
|
|
* @{
|
|
*/
|
|
|
|
/** @brief Send a (raw!) command to the BabyLIN device.
|
|
*
|
|
* @attention The command must be encoded in the binary DP-Message format of BabyLIN.
|
|
*
|
|
* @param[in] handle Handle representing the connection. (see @ref BLC_open )
|
|
* @param[in] command Char*-Buffer with the designated @ref Commands
|
|
* @param[in,out] length Input length of buffer. Output set to actual sent command's length.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) BL_getLastError().
|
|
*/
|
|
int BL_DLLIMPORT BLC_sendRaw(BL_HANDLE handle, const unsigned char* command, unsigned int* length);
|
|
|
|
/** @brief Set the Diagnostic Transport Layer mode.
|
|
*
|
|
* There are different Diagnostic modes, which offer different levels of protocol functionality.
|
|
* The Baby-LIN will start with Diagnostic OFF on Power Up. If the BabyLIN acts as LIN master then
|
|
* the selection of an Diagnostic Mode happens trough the usage of the appropriate API function
|
|
* calls. So the API functions BL_sendRawMasterRequest or BL_sendRawSlaveResponse will start the
|
|
* Diagnostic RAW mode, where as the API calls BL_sendDTLRequest or BL_sendDTLResponse will start
|
|
* the Diagnostic DTL mode. If the BabyLIN acts as LIN slave then the DTL mode must be set by use of
|
|
* this function. It is not possible to use different Diagnostics modes at the same time !
|
|
*
|
|
* List of DTL modes:
|
|
* | Mode | Name | Description |
|
|
* |-----:|:-----|:------------|
|
|
* |0 | DTL_NONE | no DTL Support |
|
|
* |1 | DTL_RAW | RAW Mode DTL Support |
|
|
* |2 | DTL_COOKED | Cooked Mode DTL Support |
|
|
*
|
|
* @param[in] handle Handle representing a LIN-channel (see @ref BLC_getChannelHandle )
|
|
* @param mode DTL mode
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise.
|
|
* See standard return values for error, or for textual representation (for
|
|
* return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_setDTLMode(BL_HANDLE handle, int mode);
|
|
|
|
/** @brief Send a DTL master request to a node
|
|
*
|
|
* @param[in] handle Handle representing a LIN-channel (see @ref BLC_getChannelHandle )
|
|
* @param nad NAD of the node the request gets send to.
|
|
* @param length Length of the following data array.
|
|
* @param[out] data DTL frame data (begins with SID, followed by up to 4095 data bytes).
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_sendDTLRequest(BL_HANDLE handle,
|
|
unsigned char nad,
|
|
int length,
|
|
unsigned char* data);
|
|
|
|
/** @brief Send a DTL slave response to a node
|
|
*
|
|
* @param[in] handle Handle representing a LIN-channel (see @ref BLC_getChannelHandle )
|
|
* @param nad NAD of the node the response gets send for.
|
|
* @param length Length of the following data array.
|
|
* @param[out] data DTL frame data (begins with RSID, followed by up to 4095 data bytes).
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) BL_getLastError().
|
|
*/
|
|
int BL_DLLIMPORT BLC_sendDTLResponse(BL_HANDLE handle,
|
|
unsigned char nad,
|
|
int length,
|
|
unsigned char* data);
|
|
|
|
/** @brief Send a (non-DTL) slave response upon receive of matching master request
|
|
*
|
|
* Upon the reveive of the next master request frame, every bit of the request is compared to
|
|
* 'reqdata' if the corresponding bit of 'reqmask' is set (1). If all match, Baby-LIN starts to send
|
|
* out the data given in 'data', 8 bytes with each slave response frame.
|
|
*
|
|
* @param[in] handle Handle representing a LIN-channel (see @ref BLC_getChannelHandle )
|
|
* @param[in] reqdata Data of the expected master request (exactly 8 bytes).
|
|
* @param[in] reqmask Mask for 'reqdata' to indicate which bits must match (exactly 8 bytes).
|
|
* @param[out] data Slave response frame data (multiple of 8 bytes).
|
|
* @param length Length of data to send.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_sendRawSlaveResponse(BL_HANDLE handle,
|
|
unsigned char* reqdata,
|
|
unsigned char* reqmask,
|
|
unsigned char* data,
|
|
int length);
|
|
|
|
/** @brief Send a (non-DTL) Master request with the specified 8 bytes as data.
|
|
*
|
|
* The internal raw-SlaveResponse-buffer is being reset and the Baby-LIN device gets instructed to
|
|
* report the next 'count' slave response frames which in turn are accumulated into the
|
|
* slave response-buffer which can be queried by BL_getRawSlaveResponse().
|
|
*
|
|
* @param[in] handle Handle representing a LIN-channel (see @ref BLC_getChannelHandle )
|
|
* @param[in] data Master request frame data (exactly 8 bytes).
|
|
* @param count Number of expected slave response frames.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_sendRawMasterRequest(BL_HANDLE handle, unsigned char* data, int count);
|
|
|
|
/** @brief Returns the status of the last request-send operation.
|
|
*
|
|
* @param[in] handle Handle representing a LIN-channel (see @ref BLC_getChannelHandle )
|
|
* @return Status of last request operation if >= 0; see @ref BL_DTL_STATUS for values.
|
|
* For < 0, see standard return values for error, or for textual representation
|
|
* (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getDTLRequestStatus(BL_HANDLE handle);
|
|
|
|
/** @brief Returns the status of the last resonse-send operation.
|
|
*
|
|
* @param[in] handle Handle representing a LIN-channel (see @ref BLC_getChannelHandle )
|
|
* @return Status of last request operation if >= 0; see @ref BL_DTL_STATUS for values.
|
|
* For < 0, see standard return values for error, or for textual representation
|
|
* (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getDTLResponseStatus(BL_HANDLE handle);
|
|
|
|
/** @brief Returns the first 'length' bytes of the current slave response-buffer.
|
|
*
|
|
* The internal raw-SlaveResponse-buffer is filled continuously with the data bytes of
|
|
* reported SlaveResp-frames and is being reset upon every call of BL_sendRawMasterRequest().
|
|
*
|
|
* @param[in] handle Handle representing a LIN-channel (see @ref BLC_getChannelHandle )
|
|
* @param[out] data Pointer to char array which gets filled (must hold min. 'length' bytes).
|
|
* @param length How many bytes should get returned.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getRawSlaveResponse(BL_HANDLE handle, unsigned char* data, int length);
|
|
|
|
/**
|
|
* @brief BLC_updRawSlaveResponse resets the internal dtl buffer.
|
|
*
|
|
* @param[in] handle Handle representing a LIN-channel (see @ref BLC_getChannelHandle )
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_updRawSlaveResponse(BL_HANDLE handle);
|
|
|
|
/** @brief Returns @ref BL_OK if the last answer to a command, send to the given handle, contained
|
|
* additional data.
|
|
*
|
|
* If there is no additional data present it returns BL_NO_ANSWER_DATA.
|
|
* @param[in] handle Handle representing the Channel (see @ref BLC_getChannelHandle ).
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_lastAnswerHasData(BL_HANDLE handle);
|
|
|
|
/** @brief Get type of a parameter of the last answer data from a BabyLIN
|
|
*
|
|
* If the last answer to a command contained additional data, then this function reports the type
|
|
* and size for a specific answer data set. Data set selected by name. The following types of data
|
|
* sets are possible:
|
|
* BL_ANSWER_TYPE_INT - 32bit integer
|
|
* BL_ANSWER_TYPE_STR - zero-terminated string (variable length)
|
|
* BL_ANSWER_TYPE_BIN - binary data (variable length)
|
|
*
|
|
* @param[in] handle Handle representing the channel on which the answer data was received (see
|
|
* @ref BLC_getChannelHandle )
|
|
* @param[in] name Char*-string with the name of answer data set
|
|
* @param[out] type Type of data set is returned within
|
|
* @param[in,out] length Input the length of the allocated parameter type. Output the length of the
|
|
* returned data in parameter type.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getAnswerTypeByName(BL_HANDLE handle,
|
|
const char* name,
|
|
BL_ANSWER_TYPE* type,
|
|
size_t* length);
|
|
|
|
/** @brief Get type of a parameter of the last answer data from a BabyLIN
|
|
*
|
|
* If the last answer to a command contained additional data, then this function reports the type
|
|
* and size for a specific answer data set. Data set selected by index. The following types of data
|
|
* sets are possible:
|
|
* BL_ANSWER_TYPE_INT - 32bit integer
|
|
* BL_ANSWER_TYPE_STR - zero-terminated string (variable length)
|
|
* BL_ANSWER_TYPE_BIN - binary data (variable length)
|
|
*
|
|
* @param[in] handle Handle representing the channel on which the answer data was received (see
|
|
* @ref BLC_getChannelHandle )
|
|
* @param index Zero-based index of the answer data set
|
|
* @param[out] type Type of data set is returned within
|
|
* @param[in,out] length Input the length of the allocated parameter type. Output the length of the
|
|
* returned data in parameter type.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getAnswerTypeByIndex(BL_HANDLE handle,
|
|
const unsigned int index,
|
|
BL_ANSWER_TYPE* type,
|
|
size_t* length);
|
|
|
|
/** @brief Get name of a parameter of the last answer data from a BabyLIN
|
|
*
|
|
* @param[in] handle Handle representing the channel on which the answer data was
|
|
* received (see @ref BLC_getChannelHandle )
|
|
* @param index Zero-based index of the answer data set.
|
|
* @param[out] nameBuffer The buffer to store the name in.
|
|
* @param[in,out] nameBufferLength Input a pointer to the length of the nameBuffer. Output the
|
|
* length of the name.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See
|
|
* standard return values for error, or for textual representation
|
|
* (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getAnswerNameByIndex(BL_HANDLE handle,
|
|
int index,
|
|
char* nameBuffer,
|
|
int* nameBufferLength);
|
|
|
|
/** @brief Get the value of a parameter of the last answer data from a BabyLIN
|
|
*
|
|
* If the last answer to a command contained additional data, then this function copies the answer
|
|
* data set over into the destination buffer. Data set selected by name.
|
|
*
|
|
* @param[in] handle Handle representing the channel on which the answer data was received (see
|
|
* @ref BLC_getChannelHandle )
|
|
* @param[in] name Char*-string with the name of answer data set
|
|
* @param[out] buffer Pointer to destination buffer for the data set
|
|
* @param[in,out] length Input length of preallocated buffer. Output length of written data.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getAnswerByName(BL_HANDLE handle,
|
|
const char* name,
|
|
void* buffer,
|
|
size_t length);
|
|
|
|
/** @brief Get the value of a parameter of the last answer data from a BabyLIN
|
|
*
|
|
* If the last answer to a command contained additional data, then this function copies the answer
|
|
* data set over into the destination buffer. Data set selected by index.
|
|
*
|
|
* @param[in] handle Handle representing the channel on which the answer data was received (see
|
|
* @ref BLC_getChannelHandle )
|
|
* @param index Zero-based index of the answer data set
|
|
* @param[out] buffer Pointer to destination buffer for the data set
|
|
* @param length Length of destination buffer
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise.
|
|
* See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getAnswerByIndex(BL_HANDLE handle,
|
|
const unsigned int index,
|
|
void* buffer,
|
|
size_t length);
|
|
|
|
/** @brief Send a command to the BabyLIN device.
|
|
*
|
|
* The command must match the command syntax as specified in the BabyLIN documentation (see @ref
|
|
* babylin_commands). The trailing ';' may be omitted;
|
|
*
|
|
* @param[in] handle Handle representing the channel to send the command to (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[in] command C-string with @ref Commands (e.g. "status;")
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_sendCommand(BL_HANDLE handle, const char* command);
|
|
|
|
/**
|
|
* @brief Sends a ASCII protocol command and wait for its response.
|
|
*
|
|
* A command can be sent using the ASCII protocol. The function can be blocked, until a response was
|
|
* received.
|
|
*
|
|
* @param[in] handle A handle representing an ASCII connection
|
|
* @param[in] command The command to send.
|
|
* @param[out] buffer A buffer to receive the answer.
|
|
* @param bufferLength A buffer with enough space.
|
|
* @param timeout_ms The length of the passed buffer
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_sendASCIICommand(
|
|
BL_HANDLE handle, const char* command, char* buffer, int bufferLength, int timeout_ms);
|
|
|
|
/** @brief Shorthand for "setsig" command (see @ref babylin_commands)
|
|
*
|
|
* @param[in] handle Handle representing the channel to send the command to (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param signalNr The signal to set the value
|
|
* @param value The value to assign to the signal
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_setsig(BL_HANDLE handle, int signalNr, unsigned long long value);
|
|
|
|
/** @brief Shorthand for "mon_set" command (see @ref babylin_commands)
|
|
*
|
|
* @param[in] handle Handle representing the channel to send the command to (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param frameid The BUS-frame-id to set the framedata for
|
|
* @param[out] databytes Array of databytes to use as the framedata
|
|
* @param len The length of the data
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_mon_set(BL_HANDLE handle, int frameid, const int* databytes, int len);
|
|
|
|
/** @brief Shorthand for "mon_xmit" command (see @ref babylin_commands)
|
|
*
|
|
* @param[in] handle Handle representing the channel to send the command to (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param frameId the BUS-frame-id to transmit
|
|
* @param slottime slottime = 0 equals a single transmit, slottime > 0 equals cyclic transmission
|
|
* of frame
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_mon_xmit(BL_HANDLE handle, int frameId, int slottime);
|
|
|
|
/** @brief Shorthand for "mon_set" followed by "mon_xmit" command (see @ref babylin_commands)
|
|
*
|
|
* @param[in] handle Handle representing the channel to send the command to (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param frameId The BUS-frame-id to set and transmit
|
|
* @param[out] databytes Array of databytes to use as the framedata
|
|
* @param len The length of the data
|
|
* @param slottime Slottime = 0 equals a single transmit, slottime > 0 equals cyclic
|
|
* transmission of frame
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT
|
|
BLC_mon_set_xmit(BL_HANDLE handle, int frameId, const int* databytes, int len, int slottime);
|
|
|
|
/** @brief Convenience function for command "macro_result" handling answer data
|
|
*
|
|
* Executes "macro_result" in a loop until "macro_result" returns anything else than 150 (macro
|
|
* still running), or timeout_ms is exceeded A possible return value of "macro_result" is stored
|
|
* into return_value if the returncode was 155 (finished with error), 156 (finished with exception)
|
|
* or 0 (macro finished)
|
|
*
|
|
* @param[in] handle Handle representing the channel to send the command to (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param macro_nr The index of the macro from the section.
|
|
* @param[out] return_value The memory where to store the received macro result.
|
|
* @param timeout_ms The timeout in milliseconds for the macro to complete.
|
|
* @return BLC_macro_result returns the last return value of the "macro_result"
|
|
* command. Return values 0, 155, 156 signal success, for other values see
|
|
* standard error values @ref BabyLINReturncodes.h.
|
|
*/
|
|
int BL_DLLIMPORT BLC_macro_result(BL_HANDLE handle,
|
|
int macro_nr,
|
|
int64_t* return_value,
|
|
unsigned int timeout_ms);
|
|
|
|
/** @brief Returns the result string of given macro, if it was set within the macro.
|
|
*
|
|
* Requests the result string of a macro. If no result string was set, the function retuns
|
|
* @ref BL_NO_DATA.
|
|
*
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle
|
|
* )
|
|
* @param macro_nr The index of the macro from the section.
|
|
* @param[out] dstbuf Pointer to char array which gets filled (must hold min. 'buflen' bytes).
|
|
* @param buflen How many bytes should get returned.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getMacroResultString(BL_HANDLE handle, int macro_nr, char* dstbuf, int buflen);
|
|
|
|
/** @brief Returns the result of a "varrd" command in a convienent way.
|
|
*
|
|
* Reads a number of signal values and puts them directly into a bytearray. Performs the same
|
|
* operation as a @ref BLC_sendCommand with "varrd" but only allows 8bit signals to be read. This
|
|
* call blocks until all data is read and returned.
|
|
*
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param signal_nr The index of the first signal to read.
|
|
* @param[out] dstbuf Pointer to char array which gets filled (must hold min. 'buflen' bytes).
|
|
* @param length How many signals should be read.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_varRead(BL_HANDLE handle, int signal_nr, char* dstbuf, int length);
|
|
|
|
/** @brief Writes an array of signals to values given by a bytearray.
|
|
*
|
|
* Writes "data_len" number of signals, starting from "signal_nr" with byte values from the "data"
|
|
* array. Performs the same operation as a @ref BLC_sendCommand with "varwr" in mode 1, but only
|
|
* allows 8bit values to be set.
|
|
*
|
|
* @param[in] handle Handle representing a channel (see @ref BLC_getChannelHandle )
|
|
* @param signal_nr The index of the first signal to write.
|
|
* @param[in] data Byte array with data to write. Each byte will be written in one signal.
|
|
* @param data_len How long the data buffer is. Also defines how many signals are written.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_varWrite(BL_HANDLE handle, int signal_nr, char* data, int data_len);
|
|
|
|
/** @brief Creates a adhoc protocol struct with the default settings for the given protocol type.
|
|
*
|
|
* Creates a adhoc protocol struct with the default settings for the given protocol type.
|
|
* @param type Type of the protocol to create.
|
|
* @return A valid struct filled with default values for this protocol.
|
|
*/
|
|
BLC_ADHOC_PROTOCOL BL_DLLIMPORT BLC_AdHoc_DefaultProtocol(ADHOC_PROTOCOL_TYPE type);
|
|
|
|
/** @brief Creates a adhoc service struct with the default settings for the service and protocol
|
|
* combination.
|
|
*
|
|
* Creates a adhoc service struct with the default settings for the service and protocol
|
|
* combination.
|
|
* @param protocol A protocol description struct.
|
|
* @return A valid struct filled with default values for this service.
|
|
*/
|
|
BLC_ADHOC_SERVICE BL_DLLIMPORT BLC_AdHoc_DefaultService(const BLC_ADHOC_PROTOCOL protocol);
|
|
|
|
/** @brief Creates a adhoc execute struct with the default settings for the execution of adhoc
|
|
* protocols.
|
|
*
|
|
* Creates a adhoc execute struct with the default settings for the execution of adhoc protocols.
|
|
* @return A valid struct filled with default values for this service.
|
|
*/
|
|
BLC_ADHOC_EXECUTE BL_DLLIMPORT BLC_AdHoc_DefaultExecute();
|
|
|
|
/** @brief Creates a adhoc protocol in the device with the given settings.
|
|
*
|
|
* Creates a adhoc protocol in the device with the given settings.
|
|
* @param[in] channel A channel handle for the channel on which the protocol shall be
|
|
* created.
|
|
* @param[in] protocol A protocol definition struct containing the settings for the new
|
|
* protocol.
|
|
* @param[out] protocol_handle The pointer to a handle value to return the devices created
|
|
* protocol to that is used to identify it. It might be set to NULL in
|
|
* case an error occured.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See
|
|
* standard return values for error, or for textual representation (for
|
|
* return values < -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_CreateProtocol(BL_HANDLE channel,
|
|
BLC_ADHOC_PROTOCOL* protocol,
|
|
BL_ADHOC_HANDLE* protocol_handle);
|
|
|
|
/** @brief Creates a adhoc service in the device with the given settings for an existing protocol.
|
|
*
|
|
* Creates a adhoc service in the device with the given settings for an existing protocol.
|
|
* @param[in] channel A channel handle for the channel on which the service shall be
|
|
* created.
|
|
* @param protocol A protocol handle referencing a existing protocol in the device.
|
|
* @param[in] service A service struct containing the settings for this new service.
|
|
* @param[out] service_handle The pointer to a handle value to return the devices created service
|
|
* to that is used to identify it. It might be set to NULL in case an
|
|
* error occured.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See
|
|
* standard return values for error, or for textual representation (for
|
|
* return values < -10000) @ref BLC_getLastError.
|
|
* @see @ref BLC_AdHoc_CreateProtocol
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_CreateService(BL_HANDLE channel,
|
|
BL_ADHOC_HANDLE protocol,
|
|
BLC_ADHOC_SERVICE* service,
|
|
BL_ADHOC_HANDLE* service_handle);
|
|
|
|
/** @brief Runs a given protocol service on the device in a blocking way, the function returns after
|
|
* the protocol is completly done, or the timeout expires.
|
|
*
|
|
* Runs a given protocol service on the device in a blocking way, the function returns after the
|
|
* protocol is completly done, or the timeout expires.
|
|
* @param[in] channel A channel handle for the channel on which the protocol service
|
|
* shall be executed.
|
|
* @param protocol_handle A protocol handle referencing a existing protocol in the
|
|
* device (see @ref BLC_AdHoc_CreateProtocol).
|
|
* @param service_handle A service handle referencing a existing service in the device.
|
|
* @param[in] execute_flags A @ref BLC_ADHOC_EXECUTE struct defining some additional
|
|
* settings for the execute.
|
|
* @param[in] req_payload The payload for the specified protocol service to use.
|
|
* @param[in] req_payload_length The size of the payload buffer.
|
|
* @param[out] rsp_payload A preallocated empty buffer where the protocol service
|
|
* response will be mapped into.
|
|
* @param[in,out] rsp_payload_length Input the size of the response payload buffer. Output the
|
|
* length of the received payload.
|
|
* @param timeout The timeout when the function should return, even when the
|
|
* protocol service is not done. This value is in milliseconds
|
|
* (ms).
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise.
|
|
* See standard return values for error, or for textual
|
|
* representation (for return values < -10000) @ref
|
|
* BLC_getLastError.
|
|
* @see @ref BLC_AdHoc_CreateProtocol, @ref BLC_AdHoc_CreateService
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_Execute(BL_HANDLE channel,
|
|
BL_ADHOC_HANDLE protocol_handle,
|
|
BL_ADHOC_HANDLE service_handle,
|
|
BLC_ADHOC_EXECUTE* execute_flags,
|
|
const unsigned char* req_payload,
|
|
int req_payload_length,
|
|
unsigned char* rsp_payload,
|
|
int* rsp_payload_length,
|
|
int timeout);
|
|
|
|
/** @brief Runs a given protocol service on the device in a non-blocking way, the function returns
|
|
* directly after the protocol has be started in the device.
|
|
*
|
|
* Runs a given protocol service on the device in a non-blocking way, the function returns directly
|
|
* after the protocol has be started in the device.
|
|
* @param[in] channel A channel handle for the channel on which the protocol service
|
|
* shall be executed.
|
|
* @param protocol_handle A protocol handle referencing a existing protocol in the device.
|
|
* @param service_handle A service handle referencing a existing service in the device.
|
|
* @param[in] execute_flags A @ref BLC_ADHOC_EXECUTE struct defining some additional settings
|
|
* for the execute.
|
|
* @param[in] req_payload The payload for the specified protocol service to use.
|
|
* @param[in] req_payload_length The size of the allocated response payload buffer.
|
|
* @param[out] execute_handle A pointer to an preallocated instance of the struct. When this
|
|
* function is successful (see return values below) this handle will
|
|
* contain a reference to the running service, else it may be NULL.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See
|
|
* standard return values for error, or for textual representation
|
|
* (for return values < -10000) @ref BLC_getLastError.
|
|
* @see @ref BLC_AdHoc_CreateProtocol, @ref BLC_AdHoc_CreateService
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_ExecuteAsync(BL_HANDLE channel,
|
|
BL_ADHOC_HANDLE protocol_handle,
|
|
BL_ADHOC_HANDLE service_handle,
|
|
BLC_ADHOC_EXECUTE* execute_flags,
|
|
const unsigned char* req_payload,
|
|
int req_payload_length,
|
|
BL_ADHOC_HANDLE* execute_handle);
|
|
|
|
/** @brief Returns the current state of the given protocol service.
|
|
*
|
|
* Returns the current state of the given protocol service.
|
|
* @param[in] channel A channel handle for the channel on which the protocol service was
|
|
* executed.
|
|
* @param execute_handle The handle to the executed protocol service.
|
|
* @return Returns: 0 = Protocol service executed successfully.
|
|
* TODO: State ID codes else = An error code, see standard return values
|
|
* for error, or for textual representation (for return values < -10000)
|
|
* @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_GetState(BL_HANDLE channel, BL_ADHOC_HANDLE execute_handle);
|
|
|
|
/** @brief Returns the response payload of the given protocol service.
|
|
*
|
|
* Returns the response payload of the given protocol service.
|
|
* @param[in] channel A channel handle for the channel on which the protocol service
|
|
* was executed.
|
|
* @param execute_handle The handle to the executed protocol service.
|
|
* @param[out] rsp_payload A preallocated empty buffer where the protocol service response
|
|
* will be mapped into.
|
|
* @param[in,out] rsp_payload_size Input the size of the preallocated response buffer. Output the
|
|
* length of received payload.
|
|
* @return Returns: 0 = Response was read correctly, the buffer contains
|
|
* valid data. else = An error code, see standard return values for
|
|
* error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_GetResponse(BL_HANDLE channel,
|
|
BL_ADHOC_HANDLE execute_handle,
|
|
unsigned char* rsp_payload,
|
|
int* rsp_payload_size);
|
|
|
|
/** @brief Deletes an existing adhoc protocol in the device. This deletes all child services of the
|
|
* protocol too.
|
|
*
|
|
* Deletes an existing adhoc protocol in the device. This deletes all child services of the protocol
|
|
* too.
|
|
* @param[in] channel A channel handle for the channel on which the protocol was created.
|
|
* @param protocol A handle to the protocol to delete.
|
|
* @return 0 = Protocol was deleted successfully. else = An error code, see standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
* @see @ref BLC_AdHoc_CreateProtocol
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_DeleteProtocol(BL_HANDLE channel, BL_ADHOC_HANDLE protocol);
|
|
|
|
/** @brief Deletes an existing adhoc service for the given protocol in the device.
|
|
*
|
|
* Deletes an existing adhoc service for the given protocol in the device.
|
|
* @param[in] channel A channel handle for the channel on which the service was created.
|
|
* @param protocol A handle to the protocol of the service.
|
|
* @param service A handle to the service which shall be deleted.
|
|
* @return 0 = Service was deleted successfully. else = An error code, see standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
* @see @ref BLC_AdHoc_CreateProtocol, @ref BLC_AdHoc_CreateService
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_DeleteService(BL_HANDLE channel,
|
|
BL_ADHOC_HANDLE protocol,
|
|
BL_ADHOC_HANDLE service);
|
|
|
|
/** @brief Deletes all existing adhoc protocol for the given channel. This deletes all services too.
|
|
*
|
|
* Deletes all existing adhoc protocol for the given channel. This deletes all services too.
|
|
* @param[in] channel A channel handle for the channel where all protocols shall be deleted.
|
|
* @return 0 = Protocols were deleted successfully. else = An error code, see standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
* @see @ref BLC_AdHoc_CreateProtocol
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_DeleteAllProtocol(BL_HANDLE channel);
|
|
|
|
/** @brief Deletes all existing adhoc services for the given channel and protocol.
|
|
*
|
|
* Deletes all existing adhoc services for the given channel and protocol.
|
|
* @param[in] channel A channel handle for the channel where the protocol was created.
|
|
* @param protocol A protocol handle referencing the protocol which services shall be deleted.
|
|
* @return 0 = Services were deleted successfully. else = An error code, see standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -10000) @ref BLC_getLastError.
|
|
* @see @ref BLC_AdHoc_CreateProtocol, @ref BLC_AdHoc_CreateService
|
|
*/
|
|
int BL_DLLIMPORT BLC_AdHoc_DeleteAllService(BL_HANDLE channel, BL_ADHOC_HANDLE protocol);
|
|
|
|
/** @brief Returns the number of tables currently in the device / the loaded SDF.
|
|
*
|
|
* Returns the number of tables currently in the device / the loaded SDF.
|
|
* @param[in] handle Channel handle to the channel where the command shall be executed.
|
|
* @param[out] table_count Preallocated pointer which will be filled with a valid value when the
|
|
* return value is @ref BL_OK. Contains the number of tables.
|
|
* @return 0 = Function has run successfully. else = An error code, see standard
|
|
* return values for error, or for textual representation (for return
|
|
* values < -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getTableCount(BL_HANDLE handle, int64_t* table_count);
|
|
|
|
/** @brief Returns the number of rows currently in the given table.
|
|
*
|
|
* Returns the number of rows currently in the given table.
|
|
* @param[in] handle Channel handle to the channel where the command shall be executed.
|
|
* @param table_id The id for the table.
|
|
* @param[out] row_count Preallocated pointer which will be filled with a valid value when the
|
|
* return value is @ref BL_OK. Contains the number of rows in the table.
|
|
* @return 0 = Function has run successfully. else = An error code, see standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getTableRowCount(BL_HANDLE handle, int table_id, int64_t* row_count);
|
|
|
|
/** @brief Returns the number of columns currently in the given table.
|
|
*
|
|
* Returns the number of columns currently in the given table.
|
|
* @param[in] handle Channel handle to the channel where the command shall be executed.
|
|
* @param table_id The id for the table.
|
|
* @param[out] column_count Preallocated pointer which will be filled with a valid value when the
|
|
* return value is @ref BL_OK. Contains the number of columns in the table.
|
|
* @return 0 = Function has run successfully. else = An error code, see standard
|
|
* return values for error, or for textual representation (for return
|
|
* values < -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getTableColumnCount(BL_HANDLE handle, int table_id, int64_t* column_count);
|
|
|
|
/** @brief Returns the value of the specified table cell.
|
|
*
|
|
* Returns the value of the specified table cell.
|
|
* @param[in] handle Channel handle to the channel where the command shall be executed.
|
|
* @param table_id The id for the table.
|
|
* @param row The row of the table to read.
|
|
* @param column The column of the table to read.
|
|
* @param[out] read_value Preallocated pointer which will be filled with a valid value when the
|
|
* return value is @ref BL_OK. If the cell is a integer cell, this will be
|
|
* the cells value.
|
|
* @param[out] buf Preallocated buffer which will be filled when the return value is @ref
|
|
* BL_OK. If the cell is a string cell, this will be the cells value.
|
|
* @param[in,out] bufsz Preallocated pointer to a value of size of buf, which will be filled with
|
|
* a valid value when the return value is @ref BL_OK. If the cell is a string
|
|
* cell, this returns the length of cells data. For an integer cell this
|
|
* value is set to 0.
|
|
* @return 0 = Function has run successfully. else = An error code, see standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_tableRead(BL_HANDLE handle,
|
|
int table_id,
|
|
int row,
|
|
int column,
|
|
int64_t* read_value,
|
|
char* buf,
|
|
int* bufsz);
|
|
|
|
/** @brief Writes the given integer value into the table cell.
|
|
*
|
|
* Writes the given integer value into the table cell.
|
|
* @param[in] handle Channel handle to the channel where the command shall be executed.
|
|
* @param table_id The id for the table.
|
|
* @param row The row of the table to write.
|
|
* @param column The column of the table to write.
|
|
* @param value The integer value to write into the cell.
|
|
* @return 0 = Function has run successfully. else = An error code, see standard return
|
|
* values for error, or for textual representation (for return values < -10000)
|
|
* @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_tableWrite(BL_HANDLE handle, int table_id, int row, int column, int64_t value);
|
|
|
|
/** @brief Writes the given string value into the table cell.
|
|
*
|
|
* Writes the given string value into the table cell.
|
|
* @param[in] handle Channel handle to the channel where the command shall be executed.
|
|
* @param table_id The id for the table.
|
|
* @param row The row of the table to write.
|
|
* @param column The column of the table to write.
|
|
* @param[out] value The zero-terminated string value to write into the cell.
|
|
* @return 0 = Function has run successfully. else = An error code, see standard return
|
|
* values for error, or for textual representation (for return values < -10000)
|
|
* @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT
|
|
BLC_tableWriteText(BL_HANDLE handle, int table_id, int row, int column, const char* value);
|
|
|
|
/** @brief Writes the given values into all table cells than span from (start_row, start_column) to
|
|
* (end_row, end_column).
|
|
*
|
|
* Writes the given values into all table cells than span from (start_row, start_column) to
|
|
* (end_row, end_column).
|
|
* @param[in] handle Channel handle to the channel where the command shall be executed.
|
|
* @param table_id The id for the table.
|
|
* @param start_row The start row of the table to write.
|
|
* @param start_column The start column of the table to write.
|
|
* @param end_row The end row of the table to write.
|
|
* @param end_column The end column of the table to write.
|
|
* @param fill_value This value is used for integer cells.
|
|
* @param[out] fill_text This zero-terminated value is used for string cells.
|
|
* @return 0 = Function has run successfully. else = An error code, see standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -10000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_tableFill(BL_HANDLE handle,
|
|
int table_id,
|
|
int start_row,
|
|
int start_column,
|
|
int end_row,
|
|
int end_column,
|
|
int64_t fill_value,
|
|
const char* fill_text);
|
|
|
|
/** @}*/
|
|
|
|
/** @addtogroup pull_handling
|
|
* @brief List of functions to pull retrieved data from a connection
|
|
*
|
|
* The following functions are used to get data which has been received from a BabyLIN-device.
|
|
* This approach uses the pull method, i.e. you will not get any information pushed ( see @ref
|
|
* callback_handling "Callback Handling" ) when it's received. Instead you have to call these
|
|
* functions whenever you want to get retrieved data.
|
|
* @{
|
|
*/
|
|
|
|
/** @brief Retrieve the last framedata available for a frame
|
|
*
|
|
* @attention The Baby-LIN fills the receiver queue only if command "disframe" or "mon_on" is sent
|
|
* before ( see @ref babylin_commands )
|
|
* @param[in] handle Handle representing the channel to get the frame data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param frameNr Zero based index of requested frame entry.
|
|
* @param[out] framedata Pointer to a pre-allocated @ref BLC_FRAME structure.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getLastFrame(BL_HANDLE handle, int frameNr, BLC_FRAME* framedata);
|
|
|
|
/** @brief Fetches the next frame on Channel from the receiver queue.
|
|
*
|
|
* @attention The Device fills the receiver queue only if command "disframe" or "mon_on" is sent
|
|
* before.
|
|
* @param[in] handle Handle representing the channel to get the frame data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] framedata Pointer to a pre-allocated @ref BLC_FRAME structure.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextFrame(BL_HANDLE handle, BLC_FRAME* framedata);
|
|
|
|
/** @brief Fetches the next frames on channel from the receiver queue.
|
|
*
|
|
* @attention The device fills the receiver queue only if command "disframe" sent before.
|
|
* @param[in] handle Handle representing the channel to get the frame data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] framedata Pointer to a pre-allocated @ref BLC_FRAME (structure) array.
|
|
* @param[in,out] size Input size of the preallocated @ref BLC_FRAME array, which must be a
|
|
* positive value. On output, the actual number of retrieved @ref BLC_FRAMEs,
|
|
* which might be less than *size on input.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextFrames(BL_HANDLE handle, BLC_FRAME* framedata, int* size);
|
|
|
|
/** @brief Fetches the next frame on Channel from the receiver queue with wait-timeout
|
|
*
|
|
* Retrieves the next frame received from the BabyLIN. If no frame-data is available, the funktion
|
|
* will wait _up to_ timeout_ms milliseconds for new data before it returns with a BL_TIMEOUT
|
|
* returncode
|
|
* @attention The Device fills the receiver queue only if command "disframe" or "mon_on" is sent
|
|
* before.
|
|
* @param[in] handle Handle representing the channel to get the frame data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] framedata Pointer to a pre-allocated @ref BLC_FRAME structure.
|
|
* @param timeout_ms Timeout to wait for new framedata
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextFrameTimeout(BL_HANDLE handle, BLC_FRAME* framedata, int timeout_ms);
|
|
|
|
/** @brief Fetches the next frames on channel from the receiver queue with wait-timeout
|
|
*
|
|
* Retrieves the next frames received from the BabyLIN. If no frame-data is available, the funktion
|
|
* will wait _up to_ timeout_ms milliseconds for new data before it returns with a BL_TIMEOUT
|
|
* returncode
|
|
* @attention The Device fills the receiver queue only if command "disframe" or "mon_on" is sent
|
|
* before.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the frame data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] framedata Pointer to a pre-allocated @ref BLC_FRAME structure.
|
|
* @param timeout_ms Timeout to wait for new framedata
|
|
* @param[in,out] size Input size of the preallocated @ref BLC_FRAME array, which must be a
|
|
* positive value. On output, the actual number of retrieved @ref BLC_FRAMEs,
|
|
* which might be less than *size on input.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextFramesTimeout(BL_HANDLE handle,
|
|
BLC_FRAME* framedata,
|
|
int timeout_ms,
|
|
int* size);
|
|
|
|
/** @brief Fetches the next regular or jumbo frame on Channel from the receiver queue.
|
|
*
|
|
* @attention The Device fills the receiver queue only if command "disframe" or "mon_on" is sent
|
|
* before.
|
|
* @param[in] handle Handle representing the channel to get the jumbo frame data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] framedata Pointer to a pre-allocated @ref BLC_JUMBO_FRAME structure.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise.
|
|
* See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextJumboFrame(BL_HANDLE handle, BLC_JUMBO_FRAME* framedata);
|
|
|
|
/** @brief Fetches the next regular or jumbo frames on channel from the receiver queue.
|
|
*
|
|
* @attention The device fills the receiver queue only if command "disframe" sent before.
|
|
* @param[in] handle Handle representing the channel to get the frame data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] framedata Pointer to a pre-allocated @ref BLC_JUMBO_FRAME (structure) array.
|
|
* @param[in,out] size Input size of the preallocated @ref BLC_FRAME array, which must be a
|
|
* positive value. On output, the actual number of retrieved @ref
|
|
* BLC_JUMBO_FRAMEs, which might be less than *size on input.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextJumboFrames(BL_HANDLE handle, BLC_JUMBO_FRAME* framedata, int* size);
|
|
|
|
/** @brief Fetches the next regular or jumbo frame on Channel from the receiver queue with
|
|
* wait-timeout
|
|
*
|
|
* Retrieves the next jumbo frame received from the BabyLIN. If no frame-data is available, the
|
|
* function will wait _up to_ timeout_ms milliseconds for new data before it returns with a
|
|
* BL_TIMEOUT returncode
|
|
* @attention The Device fills the receiver queue only if command "disframe" or "mon_on" is sent
|
|
* before.
|
|
* @param[in] handle Handle representing the channel to get the jumbo frame data from (see
|
|
* @ref BLC_getChannelHandle )
|
|
* @param[out] framedata Pointer to a pre-allocated @ref BLC_JUMBO_FRAME structure.
|
|
* @param timeout_ms Timeout to wait for new framedata
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise.
|
|
* See standard return values for error, or for textual representation (for
|
|
* return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextJumboFrameTimeout(BL_HANDLE handle,
|
|
BLC_JUMBO_FRAME* framedata,
|
|
int timeout_ms);
|
|
|
|
/** @brief Fetches the next regular or jumbo frames on channel from the receiver queue with
|
|
* wait-timeout
|
|
*
|
|
* Retrieves the next jumbo frames received from the BabyLIN. If no frame-data is available, the
|
|
* function will wait _up to_ timeout_ms milliseconds for new data before it returns with a
|
|
* BL_TIMEOUT returncode
|
|
* @attention The Device fills the receiver queue only if command "disframe" or "mon_on" is sent
|
|
* before.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the jumbo frame data from (see
|
|
* @ref BLC_getChannelHandle )
|
|
* @param[out] framedata Pointer to a pre-allocated @ref BLC_JUMBO_FRAME structure.
|
|
* @param timeout_ms Timeout to wait for new framedata
|
|
* @param[in,out] size Input size of the preallocated @ref BLC_FRAME array, which must be a
|
|
* positive value. On output, the actual number of retrieved @ref
|
|
* BLC_JUMBO_FRAMEs, which might be less than *size on input.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextJumboFramesTimeout(BL_HANDLE handle,
|
|
BLC_JUMBO_FRAME* framedata,
|
|
int timeout_ms,
|
|
int* size);
|
|
|
|
/** @brief Fetches the next signal from the receiver queue.
|
|
*
|
|
* @attention The Baby-LIN fills the receiver queue only if command "dissignal" sent before.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the signal data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] signaldata Pointer to a pre-allocated @ref BLC_SIGNAL structure.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See
|
|
* standard return values for error, or for textual representation (for
|
|
* return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextSignal(BL_HANDLE handle, BLC_SIGNAL* signaldata);
|
|
|
|
/** @brief Fetches the next signals from the receiver queue.
|
|
*
|
|
* @attention The Baby-LIN fills the receiver queue only if command "dissignal" sent before.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the signal data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] signaldata Pointer to a pre-allocated @ref BLC_SIGNAL (structure) array.
|
|
* @param[in,out] size Input size of the preallocated @ref BLC_SIGNAL array, which must be a
|
|
* positive value. On output, the actual number of retrieved @ref
|
|
* BLC_SIGNALs, which might be less than *size on input.
|
|
* @return Status of operation; '=0' means successful, '!=' otherwise. See standard
|
|
* return values for error, or for textual representation (for return
|
|
* values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextSignals(BL_HANDLE handle, BLC_SIGNAL* signaldata, int* size);
|
|
|
|
/** @brief Fetches the next signals for a specific signal from the receiver queue.
|
|
*
|
|
* @attention The Baby-LIN fills the receiver queue only if command "dissignal" sent before.
|
|
* @attention This function will remove the signal values from the queue. Further signal receiving
|
|
* is no longer guaranteed to be in order.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the signal data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[in] signaldata Pointer to a pre-allocated @ref BLC_SIGNAL (structure) array.
|
|
* @param size Size of the pre-allocated @ref BLC_SIGNAL array, in units of @ref
|
|
* BLC_SIGNAL, which must be a positive value.
|
|
* @param signalNumber The signal number to get the signals for
|
|
* @return Number of signals found, '<0' on error. See standard return values for
|
|
* error, or for textual representation (for return values < -1000) @ref
|
|
* BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextSignalsForNumber(BL_HANDLE handle,
|
|
BLC_SIGNAL* signaldata,
|
|
int size,
|
|
int signalNumber);
|
|
|
|
/** @brief Fetches the next Bus error from the receiver queue.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the error data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] errordata Pointer to a pre-allocated @ref BLC_ERROR structure.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextBusError(BL_HANDLE handle, BLC_ERROR* errordata);
|
|
|
|
/** @brief Fetches the next complete DTL request from the receiver queue.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the dtl data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] frame Pointer to a pre-allocated @ref BLC_DTL structure.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextDTLRequest(BL_HANDLE handle, BLC_DTL* frame);
|
|
|
|
/** @brief Fetches the next complete DTL response from the receiver queue.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the dtl data from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] frame Pointer to a pre-allocated @ref BLC_DTL structure.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNextDTLResponse(BL_HANDLE handle, BLC_DTL* frame);
|
|
|
|
/** @brief Return the current signal value (for non-array signals).
|
|
* @attention The Baby-LIN reports the signal value only if command "dissignal" sent before.
|
|
*
|
|
* @note Special signalNr '-1' returns always 4711 in *value; signalNr '-2' returns a counter
|
|
* increased by 1 after every call.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the signal value from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param signalNr Number of the signal according to SDF.
|
|
* @param[out] value Pointer to an word-sized variable getting the value.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalValue(BL_HANDLE handle, int signalNr, unsigned long long* value);
|
|
|
|
/** @brief Return the current signal value (for non-array signals) with timestamp
|
|
* @attention The Baby-LIN reports the signal value only if command "dissignal" sent before.
|
|
*
|
|
* @note Special signalNr '-1' returns always 4711 in *value; signalNr '-2' returns a counter
|
|
* increased by 1 after every call.
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the signal value from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param signalNr Number of the signal according to SDF.
|
|
* @param[out] value Pointer to an word-sized variable getting the value.
|
|
* @param[out] timestamp Pointer to an word-sized variable getting the timestamp when the signal
|
|
* was received (PC-Timestamp (ms)).
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalValueWithTimestamp(BL_HANDLE handle,
|
|
int signalNr,
|
|
unsigned long long* value,
|
|
unsigned long long* timestamp);
|
|
|
|
/** @brief Returns the current signal value (for non-array signals).
|
|
*
|
|
* @attention The Baby-LIN reports the signal value only if command "dissignal" sent before.
|
|
* @param[in] handle Handle representing the channel to get the signal value from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[in] signalName Name of the Signal as declared in LDF.
|
|
* @param[out] value Pointer to an word-sized variable getting the value.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalValueByName(BL_HANDLE handle,
|
|
const char* signalName,
|
|
unsigned long long* value);
|
|
|
|
/** @brief Returns the current signal value (for array signals).
|
|
*
|
|
* @attention The Baby-LIN reports the signal value only if command "dissignal" sent before.
|
|
* @note
|
|
* Special signalNr '-1' returns always the hex array { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd,
|
|
* 0xef } in *array; signalNr '-2' returns a counted sequence, where the byte 0 holds the actual
|
|
* counter and the following bytes hold the 'history'; i.e.:
|
|
*
|
|
* @par
|
|
* 1st call: { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
*
|
|
* @par
|
|
* 2nd call: { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
*
|
|
* @par
|
|
* 3rd call: { 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
*
|
|
* @par
|
|
* 4th call: { 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
*
|
|
* @par
|
|
* ...etc...
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the signal value from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param signalNr Number of the signal accordng to SDF.
|
|
* @param[out] array Pointer to an 8 byte array getting the value. It must always have the size
|
|
* of 8 bytes, even for smaller array signals!
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values <
|
|
* -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalArray(BL_HANDLE handle, int signalNr, unsigned char* array);
|
|
|
|
/** @brief Returns the current signal value (for array signals) with timstamp.
|
|
*
|
|
* @attention The Baby-LIN reports the signal value only if command "dissignal" sent before.
|
|
* @note
|
|
* Special signalNr '-1' returns always the hex array { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd,
|
|
* 0xef } in *array; signalNr '-2' returns a counted sequence, where the byte 0 holds the actual
|
|
* counter and the following bytes hold the 'history'; i.e.:
|
|
*
|
|
* @par
|
|
* 1st call: { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
*
|
|
* @par
|
|
* 2nd call: { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
*
|
|
* @par
|
|
* 3rd call: { 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
*
|
|
* @par
|
|
* 4th call: { 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
*
|
|
* @par
|
|
* ...etc...
|
|
*
|
|
* @param[in] handle Handle representing the channel to get the signal value from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param signalNr Number of the signal accordng to SDF.
|
|
* @param[out] array Pointer to an 8 byte array getting the value. It must always have the size
|
|
* of 8 bytes, even for smaller array signals!
|
|
* @param[out] timestamp Pointer to an word-sized variable getting the timestamp
|
|
* when the signal was received (PC-Timestamp (ms).
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalArrayWithTimestamp(BL_HANDLE handle,
|
|
int signalNr,
|
|
unsigned char* array,
|
|
unsigned long long* timestamp);
|
|
|
|
/** @brief Returns the current signal value (for array signals).
|
|
*
|
|
* @attention The Baby-LIN reports the signal value only if command "dissignal" sent before.
|
|
* @param[in] handle Handle representing the channel to get the signal value from (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[in] signalName Name of the Signal as declared in LDF.
|
|
* @param[out] array Pointer to an 8 byte array getting the value. It must always have the size
|
|
* of 8 bytes, even for smaller array signals!
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See standard
|
|
* return values for error, or for textual representation (for return values
|
|
* < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getSignalArrayByName(BL_HANDLE handle,
|
|
const char* signalName,
|
|
unsigned char* array);
|
|
|
|
/** @brief Returns the type of a signal
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the signal belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param idx Zero based index of requested signal entry.
|
|
* @return Status of operation; Signal is Array == 1; Signal is scalar Value == 0. Values
|
|
* <0 on error. See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_isSignalArray(BL_HANDLE handle, int idx);
|
|
|
|
/** @brief Encodes the signal's value as defined in the corresponding Signal Encoding tables of
|
|
* LDF/SDF.
|
|
*
|
|
* If no SignalEncoding is specified for this signal, the value itself is written into destination
|
|
* buffer 'description'. If one of the required pointers is NULL or the buffer size is too small,
|
|
* the function returns the needed minimum buffer length in 'length'. It's possible to use two
|
|
* variants to get encoded signal: 1) pointer 'encUnit' and 'buffLen1' set to NULL: then encoded
|
|
* signal saved inclusive unit in buffer 'encSignal' 2) pointer 'encUnit' and 'buffLen1' != NULL:
|
|
* unit of signal saved separately in buffer 'encUnit'
|
|
* @param[in] handle Handle representing the channel to which the signal belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param signalNr Number (Index) of the signal accordng to SDF.
|
|
* @param value Value to be encoded
|
|
* @param[out] encSignal Points to save location of encoded signal value (inclusive 'unit', if
|
|
* 'encUnit' not used)
|
|
* @param[in,out] buffLen0 Input the allocated length of 'encSignal' buffer. Output the length of
|
|
* the written data.
|
|
* @param[out] encUnit Optional: points to save location of signal unit (if this pointer is
|
|
* NULL then 'unit' saved in 'encSignal' buffer also)
|
|
* @param[in,out] buffLen1 Optional: Input the allocated length of 'encUnit' buffer (if this
|
|
* pointer is NULL then 'unit' saved in 'encSignal' buffer also). Output
|
|
* the length of the written data.
|
|
* @return Status of operation; '=0' means successful, '!=0' otherwise. See
|
|
* standard return values for error, or for textual representation (for
|
|
* return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_encodeSignal(BL_HANDLE handle,
|
|
int signalNr,
|
|
unsigned long long value,
|
|
char* encSignal,
|
|
size_t* buffLen0,
|
|
char* encUnit,
|
|
size_t* buffLen1);
|
|
|
|
/**
|
|
* @brief BLC_decodeSignal takes an encoded Signal value and tries to compute it back to its Signal
|
|
* value. Rounding errors might occur for large signals or encoding scales and offsets.
|
|
*
|
|
* @param[in] handle The Channel handle the Signal does come from.
|
|
* @param signalNr The number of the Signal that has the encodings.
|
|
* @param[out] encSignal The encoded signal value as a c-string(zero terminated).
|
|
* @param[out] value The reverted value. rounding errors might occur.
|
|
* @return @ref BL_OK if the value could be converted, != 0 otherwise.
|
|
*/
|
|
int BL_DLLIMPORT BLC_decodeSignal(BL_HANDLE handle, int signalNr, char* encSignal, int64_t* value);
|
|
|
|
/** @brief Get values of all signals mapped to a frame
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the frame belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param frameNr Frame number (according to SDF) to get the signal data from
|
|
* @param[out] signalList Pre-allocated array of @ref BLC_SIGNAL structures to store the signal data
|
|
* to
|
|
* @param signalListLen Length of the pre-allocated array of @ref BLC_SIGNAL structures
|
|
* @return The number of signals stored to signalList. Values <0 on error. See
|
|
* standard return values for error, or for textual representation (for
|
|
* return values < -1000) @ref BLC_getLastError.
|
|
* */
|
|
int BL_DLLIMPORT BLC_getSignalsInFrame(BL_HANDLE handle,
|
|
int frameNr,
|
|
BLC_SIGNAL* signalList,
|
|
int signalListLen);
|
|
|
|
/**
|
|
* @brief Returns some details for given frame entry.
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the frame belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param idx Zero based index of requested frame entry (sdf number).
|
|
* @param[out] pbusid Pointer to int, which gets filled with BUS ID (without parity bits on
|
|
* LIN-Bus)
|
|
* @param[out] psize Pointer to int, which gets filled with size of frame in bytes
|
|
* @param[out] pnodenum Pointer to int, which gets filled with nodeindex of publishing node for
|
|
* this frame
|
|
* @param[out] pframetype Pointer to int, which gets filled with LIN version of this frame (LIN
|
|
* channel only)
|
|
*/
|
|
int BL_DLLIMPORT BLC_getFrameDetails(
|
|
BL_HANDLE handle, int idx, int* pbusid, int* psize, int* pnodenum, int* pframetype);
|
|
|
|
/**
|
|
* @brief Returns some details for given frame entry.
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the signal belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param signalNr Zero based index of the signal entry (sdf number).
|
|
* @return The number of the node the signal is published by. -1 if signal is virtual.
|
|
* Values <-1 on error. See standard return values for error, or for textual
|
|
* representation (for return values < -1000) @ref BLC_getLastError.
|
|
*/
|
|
int BL_DLLIMPORT BLC_getNodeForSignal(BL_HANDLE handle, int signalNr);
|
|
/** @}*/
|
|
|
|
/** @addtogroup direct_mode
|
|
* @brief List of functions to access the LIN-BUS directly
|
|
*
|
|
* @{
|
|
*/
|
|
|
|
/** @brief Starts direct mode on channel with given baudrate, bitwidth, stopbits and parity
|
|
* settings. If the direct mode is already active on the channel, it will be restarted. The command
|
|
* prepares the channel with @ref BLC_dmReportConfig settings of 5ms and 8 bytes
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the frame belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param baudrate The baudrate to configure while in direct mode.
|
|
* @param bitwidth This parameter is not yet used and has to be set to 0. The bitwidth will be 8.
|
|
* @param stopbits This parameter is not yet used and has to be set to 0. It will be 1 stopbit.
|
|
* @param parity This parameter is not yet used and has to be set to 0. Parity bit is
|
|
* deactivated.
|
|
* @return @ref BL_OK on success, errorcode otherwise
|
|
*/
|
|
int BL_DLLIMPORT
|
|
BLC_dmStart(BL_HANDLE handle, int baudrate, int bitwidth, int stopbits, int parity);
|
|
|
|
/** @brief Configure the reporting policy of the device in respect to a timeout and/or a block of
|
|
* bytes. The device will report any data read from the bus if the read data exceeds the given byte
|
|
* count or after [timeout] milliseconds idle time.
|
|
*
|
|
* direct mode has to be active
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the frame belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[in] timeout The time in milliseconds until the bus is determined as idle resulting in a
|
|
* report of data even thou less then [bytes] data was received.
|
|
* @param bytes The amount of data after wich a report is generated.
|
|
* @return @ref BL_OK on success, errorcode otherwise
|
|
*/
|
|
int BL_DLLIMPORT BLC_dmReportConfig(BL_HANDLE handle, int timeout, int bytes);
|
|
|
|
/** @brief Writes data in directmode to the bus
|
|
*
|
|
* direct mode has to be active
|
|
*
|
|
* if no bus power is available, the data will be queued to be sent when bus power is available
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the frame belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[in] data The buffer containing the data to send.
|
|
* @param dataSize The amount of data in the buffer. only 1023 bytes can be send to the device in
|
|
* one call.
|
|
* @return Number of bytes written, values <0 indicate error code.
|
|
*/
|
|
int BL_DLLIMPORT BLC_dmWrite(BL_HANDLE handle, const char* data, unsigned int dataSize);
|
|
|
|
/**
|
|
* @brief Read data in direct mode.
|
|
*
|
|
* reads maximum bufferSize bytes to buffer. Will wait for data for infinite amount of time. If the
|
|
* DirectMode is active this function or @ref BLC_dmReadTimeout have to be called to prevent the
|
|
* internal buffer from allocating all system memory.
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the frame belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] buffer The buffer having at least [bufferSize] space to store received data.
|
|
* @param bufferSize The amount of data to read.
|
|
* @return Number of bytes read, values <0 indicate error code
|
|
*/
|
|
int BL_DLLIMPORT BLC_dmRead(BL_HANDLE handle, char* buffer, unsigned int bufferSize);
|
|
|
|
/**
|
|
* @brief Same as @ref BLC_dmRead with waiting timeout in ms
|
|
*
|
|
* If the DirectMode is active this function or @ref BLC_dmRead have to be called to prevent the
|
|
* internal buffer from allocating all system memory.
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the frame belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param[out] buffer The buffer having at least [bufferSize] space to store received data.
|
|
* @param bufferSize The amount of data to read.
|
|
* @param timeout_ms The timeout in milliseconds after which the function returns with less then
|
|
* bufferSize data read.
|
|
* @return Number of bytes read, values <0 indicate error code
|
|
*/
|
|
int BL_DLLIMPORT BLC_dmReadTimeout(BL_HANDLE handle,
|
|
char* buffer,
|
|
unsigned int bufferSize,
|
|
unsigned int timeout_ms);
|
|
|
|
/**
|
|
* @brief Issue a pulse on the bus
|
|
*
|
|
* with a duration of lowtime_us in us. After the pulse, any further action will be delayed
|
|
* paddingtime_us if no bus power is available, the pulse will be queued to be sent when bus power
|
|
* is available
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the frame belongs (see @ref
|
|
* BLC_getChannelHandle )
|
|
* @param lowtime_us The time in micro seconds to hold the output on dominant level.
|
|
* @param paddingtime_us The time in mico seconds to idle before taking the next action.
|
|
* @return @ref BL_OK on success, errocode otherwise
|
|
*/
|
|
int BL_DLLIMPORT BLC_dmPulse(BL_HANDLE handle,
|
|
unsigned int lowtime_us,
|
|
unsigned int paddingtime_us);
|
|
|
|
/**
|
|
* @brief Delay the next operation by the given time.
|
|
*
|
|
* this function is an alias for "@ref BLC_dmPulse(channel, 0, paddingtime_us)". If no bus power is
|
|
* available, the delay will be queued to be sent when bus power is available.
|
|
*
|
|
* @param[in] channel A handle representing the channel to which the frame belongs
|
|
* @param paddingtime_us The time in mico seconds to idle before taking the next action.
|
|
* @return @ref BL_OK on success, errocode otherwise
|
|
* @see @ref BLC_getChannelHandle
|
|
*/
|
|
int BL_DLLIMPORT BLC_dmDelay(BL_HANDLE channel, unsigned int paddingtime_us);
|
|
|
|
/**
|
|
* @brief Stop direct mode
|
|
*
|
|
* @param[in] handle Handle representing the channel to which the frame belongs
|
|
* @return @ref BL_OK on success, errorcode otherwise
|
|
* @see @ref BLC_getChannelHandle
|
|
*/
|
|
int BL_DLLIMPORT BLC_dmStop(BL_HANDLE handle);
|
|
|
|
/**
|
|
* @brief BLC_dmPrepare enters or exits the preparation state.
|
|
*
|
|
* @param[in] channel The channel handle to work on.
|
|
* @param mode The preparation mode to set. 1 for entering preparation mode, 0 to exit it and
|
|
* 2 to clear the preparation buffer.
|
|
* @return @ref BL_OK on success, errorcode otherwise
|
|
*/
|
|
int BL_DLLIMPORT BLC_dmPrepare(BL_HANDLE channel, unsigned char mode);
|
|
/** @}*/
|
|
|
|
/** @addtogroup command_functions
|
|
* @brief List of functions to access the LIN-BUS directly
|
|
*
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* @brief BLC_loggingStart enables the standard logging feature for a specific device or channel.
|
|
*
|
|
* @param[in] handle Handle representing the channel or device handle whose data should be
|
|
* logged. If one want to log a single channel (e.g. the first LIN) use the
|
|
* channel handle and get one logfile. If one want to log all device channels
|
|
* use the connection handle and get one logfile for each channel and one for
|
|
* the device channel.
|
|
* @param[in] configFile The config file to load (can be created with the SimpleMenu). Setting
|
|
* "configFile" to a nullptr will load these default settings: ASCII mode,
|
|
* logging of frames, debug and error messages limit file size to 100MB and
|
|
* max. 2 files per channel. Output path is "User/Documents/Lipowsky
|
|
* Industrie-Elektronik GmbH/logs"
|
|
* @return @ref BL_OK on success, errorcode otherwise
|
|
* @see @ref BLC_getChannelHandle and @ref BLC_open
|
|
*/
|
|
int BL_DLLIMPORT BLC_loggingStart(BL_HANDLE handle, const char* configFile);
|
|
|
|
/**
|
|
* @brief BLC_loggingAddComment Added a string to the logfile
|
|
*
|
|
* @param[in] handle Handle representing the channel or device handle whose data should be logged.
|
|
* If one want to log a single channel (e.g. the first LIN) use the channel
|
|
* handle and get one logfile. If one want to log all device channels use the
|
|
* connection handle and get one logfile for each channel and one for the device
|
|
* channel.
|
|
* @param[in] comment The comment string which would be added to the logfile which is linked to
|
|
* the handle.
|
|
* @return @ref BL_OK on success, errorcode otherwise
|
|
* @see @ref BLC_getChannelHandle and @ref BLC_open
|
|
*/
|
|
int BL_DLLIMPORT BLC_loggingAddComment(BL_HANDLE handle, const char* comment);
|
|
|
|
/**
|
|
* @brief BLC_loggingStop stop and close all active logfiles which were started via @ref
|
|
* BLC_loggingStart and linked to the handle. This function did not stop the logging via a SDF file
|
|
* if used.
|
|
*
|
|
*@param[in] handle The handle of the device or channel to stop. If this is a device handle all
|
|
* corresponding channels will be stopped, if this is a channel handle, only the
|
|
* logging of this channel will be stopped.
|
|
* @return @ref BL_OK on success, errorcode otherwise
|
|
*/
|
|
int BL_DLLIMPORT BLC_loggingStop(BL_HANDLE handle);
|
|
|
|
/**
|
|
* @brief BLC_loggingStopGlobal stop and close all active logfiles which were started via @ref
|
|
* BLC_loggingStart. This function did not stop the logging via a SDF file if used.
|
|
*
|
|
* @return @ref BL_OK on success, errorcode otherwise
|
|
*/
|
|
int BL_DLLIMPORT BLC_loggingStopGlobal();
|
|
/** @}*/
|
|
|
|
/**
|
|
* Incomplete features. Do not use.
|
|
*/
|
|
|
|
/** @addtogroup legacy
|
|
* @brief List of functions to access the LIN-BUS directly
|
|
*
|
|
* @{
|
|
*/
|
|
|
|
#ifdef WIN32
|
|
#define BL_EXCEPTION_FILTER_ATTR __stdcall
|
|
#else
|
|
#define BL_EXCEPTION_FILTER_ATTR
|
|
#endif
|
|
typedef long(BL_EXCEPTION_FILTER_ATTR* exception_filter)(struct _EXCEPTION_POINTERS* ExceptionInfo);
|
|
void BL_DLLIMPORT BLC_overwriteCrashHandler(exception_filter function,
|
|
const char* application_name,
|
|
int dump_external_code,
|
|
int show_msgbox_on_crash);
|
|
|
|
int BL_DLLIMPORT BLC_runLuaCode(BL_HANDLE handle, const char* lua_code);
|
|
|
|
/** @}*/
|
|
|
|
#if defined(__cplusplus)
|
|
} // extern "C"
|
|
#endif
|
|
|
|
#endif // BABYLIN_H
|