PDF

AGHAF  4.3.5
Annecy electronique Generic Hardware Access Framework
DoCan_FD/main.cpp
#include <vector>
#include <iostream>
#define AGHAF_DYNAMIC_LIBRARY_INIT
#include <aghaf.h>
void doCanBus_1_callback(AGHAF_DoCAN_Event event, void *userContext)
{
(void) userContext;
AGHAF_Status status = AGHAF_Event_getInfo(event, &info);
if (status == AGHAF_STATUS_OK) {
switch (info.type) {
break;
switch (eventType) {
std::cout << __FUNCTION__ << "AGHAF_DOCAN_EVENT_MSGTX" << reinterpret_cast<std::size_t>(channel) << std::endl;
break;
std::cout << __FUNCTION__ << "AGHAF_DoCAN_EVENT_MSGTXERR" << reinterpret_cast<std::size_t>(channel) << std::endl;
uint8_t error = AGHAF_DoCAN_Event_getError(event);
std::cout << static_cast<int>(error) << std::endl;
}
break;
std::cout << __FUNCTION__ << "AGHAF_DoCAN_EVENT_MSGRX" << reinterpret_cast<std::size_t>(channel) << std::endl;
uint32_t size = AGHAF_DoCAN_Event_getDataSize(event);
uint8_t *data = new uint8_t[size];
event,
data,
&size);
delete [] data;
}
break;
std::cout << __FUNCTION__ << "AGHAF_DoCAN_MSGRXFF" << std::endl;
break;
std::cout << __FUNCTION__ << "AGHAF_DoCAN_EVENT_MSGRXERR" << reinterpret_cast<std::size_t>(channel) << std::endl;
uint8_t error = AGHAF_DoCAN_Event_getError(event);
std::cout << static_cast<int>(error) << std::endl;
}
break;
}
}
break;
}
}
}
void doCanBus_2_callback(AGHAF_CAN_Event event, void *userContext)
{
(void) event;
(void) userContext;
}
int main()
{
#ifdef _WIN32
AGHAF_loadLibrary(AGHAF_DEFAULT_FILENAME);
#endif
uint32_t count = AGHAF_getDeviceCount();
std::cout << count << std::endl;
if (count > 0) {
AGHAF_DeviceInfo *devicesInfo = nullptr;
uint32_t deviceInfoNumber = 0;
AGHAF_getDeviceList(&devicesInfo, &deviceInfoNumber);
AGHAF_Device device = AGHAF_getDeviceBySN(
devicesInfo[0].productNo,
devicesInfo[0].serialNo);
AGHAF_freeDeviceList(devicesInfo);
AGHAF_CAN_Bus canBus = AGHAF_CAN_getBus(device, 0);
AGHAF_DoCAN_Bus doCanbus = AGHAF_DoCAN_getBus(device, 0);
// BUS CAN FD -------------------------------
1000000);
5000000);
120);
// --------------------------------------------
doCanbus,
&doCanBus_1_callback,
nullptr);
std::vector<uint8_t> data;
data.push_back(0x01);
channel, static_cast<uint32_t>(data.size()), data.data());
AGHAF_DoCAN_deregisterCallback(doCanbus, &doCanBus_1_callback);
}
#ifdef _WIN32
AGHAF_unloadLibrary();
#endif
return 0;
}
AGHAF_DoCAN_Event_getChannel
AGHAF_DoCAN_Channel AGHAF_API AGHAF_DoCAN_Event_getChannel(AGHAF_DoCAN_Event event)
Return the channel on which occured the event.
Definition: aghaf_docan.cpp:286
AGHAF_DoCAN_EVENT_MSGTX
@ AGHAF_DoCAN_EVENT_MSGTX
End of transmission.
Definition: aghaf_docan.h:22
AGHAF_DoCAN_Event_getDataSize
uint32_t AGHAF_API AGHAF_DoCAN_Event_getDataSize(AGHAF_DoCAN_Event event)
return the size from the datas in the event
Definition: aghaf_docan.cpp:240
AGHAF_DoCAN_CHANNEL_PARAM_PAD_VALUE
@ AGHAF_DoCAN_CHANNEL_PARAM_PAD_VALUE
Definition: aghaf_docan_enums.h:100
AGHAF_CAN_MODE_FD
@ AGHAF_CAN_MODE_FD
Definition: aghaf_can_enums.h:33
aghaf.h
AGHAF_DoCAN_releaseChannel
AGHAF_Status AGHAF_API AGHAF_DoCAN_releaseChannel(AGHAF_DoCAN_Channel channel)
Release the channel.
Definition: aghaf_docan.cpp:112
AGHAF_DoCAN_EVENT_MSGTXERR
@ AGHAF_DoCAN_EVENT_MSGTXERR
Transmission Error.
Definition: aghaf_docan.h:23
AGHAF_DoCAN_registerCallback
void AGHAF_API AGHAF_DoCAN_registerCallback(AGHAF_DoCAN_Bus bus, AGHAF_DoCAN_Callback callback, void *userContext)
Register a callback for the DoCAN events from a bus.
Definition: aghaf_docan.cpp:61
AGHAF_DoCAN_EVENT_MSGRXERR
@ AGHAF_DoCAN_EVENT_MSGRXERR
Reception error.
Definition: aghaf_docan.h:26
AGHAF_DoCAN_CHANNEL_PARAM_REQ_ID_VALUE
@ AGHAF_DoCAN_CHANNEL_PARAM_REQ_ID_VALUE
Definition: aghaf_docan_enums.h:151
CAN_PARAM_BAUDRATE_FD
@ CAN_PARAM_BAUDRATE_FD
Definition: aghaf_can_enums.h:61
AGHAF_getDeviceCount
uint32_t AGHAF_API AGHAF_getDeviceCount(void)
Return the number of devices onnected.
Definition: aghaf_global.cpp:113
AGHAF_DoCAN_EVENT_MSGRXFF
@ AGHAF_DoCAN_EVENT_MSGRXFF
First Frame has been received.
Definition: aghaf_docan.h:25
AGHAF_DoCAN_PAD_ENABLE
@ AGHAF_DoCAN_PAD_ENABLE
Enable padding handling.
Definition: aghaf_docan_enums.h:46
AGHAF_DoCAN_deregisterCallback
void AGHAF_API AGHAF_DoCAN_deregisterCallback(AGHAF_DoCAN_Bus bus, AGHAF_DoCAN_Callback callback)
deregister a callback
Definition: aghaf_docan.cpp:72
AGHAF_DoCAN_CHANNEL_PARAM_REQ_ID_FMT
@ AGHAF_DoCAN_CHANNEL_PARAM_REQ_ID_FMT
Definition: aghaf_docan_enums.h:146
AGHAF_DoCAN_ID_FMT_XTD
@ AGHAF_DoCAN_ID_FMT_XTD
Extended identifier (29-bit CAN ID)
Definition: aghaf_docan_enums.h:68
AGHAF_DoCAN_CHANNEL_PARAM_TIMING_AR
@ AGHAF_DoCAN_CHANNEL_PARAM_TIMING_AR
Definition: aghaf_docan_enums.h:116
AGHAF_DoCAN_Channel_setParam
AGHAF_Status AGHAF_API AGHAF_DoCAN_Channel_setParam(AGHAF_DoCAN_Channel channel, AGHAF_DoCAN_ChannelParam param, uint32_t value)
Set the parameter from a channel.
Definition: aghaf_docan.cpp:149
AGHAF_DoCAN_CHANNEL_DIR_2WAY
@ AGHAF_DoCAN_CHANNEL_DIR_2WAY
2-way channel
Definition: aghaf_docan_enums.h:38
AGHAF_DoCAN_Bus
void * AGHAF_DoCAN_Bus
Definition: aghaf_docan.h:40
AGHAF_openDevice
AGHAF_Status AGHAF_API AGHAF_openDevice(AGHAF_Device device)
Open a device.
Definition: aghaf_global.cpp:257
AGHAF_DoCAN_EventType
AGHAF_DoCAN_EventType
Definition: aghaf_docan.h:21
AGHAF_CAN_Bus_activate
AGHAF_Status AGHAF_API AGHAF_CAN_Bus_activate(AGHAF_CAN_Bus bus)
activate a CAN bus
Definition: aghaf_can.cpp:201
AGHAF_EventInfo
Definition: aghaf_global.h:199
AGHAF_DoCAN_EVENT_MSGRX
@ AGHAF_DoCAN_EVENT_MSGRX
Message has been received.
Definition: aghaf_docan.h:24
AGHAF_getDeviceList
AGHAF_Status AGHAF_API AGHAF_getDeviceList(AGHAF_DeviceInfo **devices, uint32_t *size)
Provide the list of devices connected.
Definition: aghaf_global.cpp:125
AGHAF_CAN_Bus_deactivate
AGHAF_Status AGHAF_API AGHAF_CAN_Bus_deactivate(AGHAF_CAN_Bus bus)
deactivate a CAN bus
Definition: aghaf_can.cpp:212
AGHAF_DoCAN_createChannel
AGHAF_DoCAN_Channel AGHAF_API AGHAF_DoCAN_createChannel(AGHAF_DoCAN_Bus bus)
Create a channel.
Definition: aghaf_docan.cpp:101
AGHAF_getDeviceBySN
AGHAF_Device AGHAF_API AGHAF_getDeviceBySN(const char *productNumber, const char *serialNumber)
Return the handle on the specified device.
Definition: aghaf_global.cpp:158
AGHAF_DoCAN_CHANNEL_PARAM_BLOCKSIZE
@ AGHAF_DoCAN_CHANNEL_PARAM_BLOCKSIZE
Definition: aghaf_docan_enums.h:183
AGHAF_DoCAN_ADDR_MODE_PHYS
@ AGHAF_DoCAN_ADDR_MODE_PHYS
Physical.
Definition: aghaf_docan_enums.h:30
AGHAF_DoCAN_Channel
void * AGHAF_DoCAN_Channel
Definition: aghaf_docan.h:43
AGHAF_CAN_getBus
AGHAF_CAN_Bus AGHAF_API AGHAF_CAN_getBus(AGHAF_Device device, uint8_t index)
return the CAN bus at index in parameter
Definition: aghaf_can.cpp:34
AGHAF_DoCAN_CHANNEL_PARAM_TIMING_CS
@ AGHAF_DoCAN_CHANNEL_PARAM_TIMING_CS
Definition: aghaf_docan_enums.h:129
AGHAF_FALSE
@ AGHAF_FALSE
false
Definition: aghaf_global.h:102
CAN_PARAM_MODE
@ CAN_PARAM_MODE
Definition: aghaf_can_enums.h:51
AGHAF_CAN_Bus
void * AGHAF_CAN_Bus
Definition: aghaf_can.h:77
AGHAF_DoCAN_Event
void * AGHAF_DoCAN_Event
Definition: aghaf_docan.h:42
AGHAF_CAN_Bus_setParam
AGHAF_Status AGHAF_API AGHAF_CAN_Bus_setParam(AGHAF_CAN_Bus bus, AGHAF_CAN_Param param, uint32_t value)
Set the value from a CAN parameter.
Definition: aghaf_can.cpp:141
CAN_PARAM_TERMINATION
@ CAN_PARAM_TERMINATION
Definition: aghaf_can_enums.h:95
AGHAF_STATUS_OK
@ AGHAF_STATUS_OK
The operation succeeded.
Definition: aghaf_global.h:108
AGHAF_TypeDoCanEvent
@ AGHAF_TypeDoCanEvent
Event from DOCAN.
Definition: aghaf_global.h:159
AGHAF_Event_getInfo
AGHAF_Status AGHAF_API AGHAF_Event_getInfo(AGHAF_Event event, AGHAF_EventInfo *info)
AGHAF_Event_getInfo.
Definition: aghaf_global.cpp:280
AGHAF_DeviceInfo
Definition: aghaf_global.h:175
AGHAF_DoCAN_CHANNEL_PARAM_RESP_ID_FMT
@ AGHAF_DoCAN_CHANNEL_PARAM_RESP_ID_FMT
Definition: aghaf_docan_enums.h:161
AGHAF_EventInfo::type
AGHAF_TypeEvent type
Type information. Provide information about origin (device, can, ethernet...).
Definition: aghaf_global.h:201
AGHAF_DoCAN_Channel_start
AGHAF_Status AGHAF_API AGHAF_DoCAN_Channel_start(AGHAF_DoCAN_Channel channel)
Start a channel.
Definition: aghaf_docan.cpp:173
AGHAF_DoCAN_CHANNEL_PARAM_REQ_ID_AE
@ AGHAF_DoCAN_CHANNEL_PARAM_REQ_ID_AE
Definition: aghaf_docan_enums.h:156
AGHAF_DoCAN_CHANNEL_PARAM_WAITFRAME
@ AGHAF_DoCAN_CHANNEL_PARAM_WAITFRAME
Definition: aghaf_docan_enums.h:176
AGHAF_TypeDeviceEvent
@ AGHAF_TypeDeviceEvent
Event from Device.
Definition: aghaf_global.h:156
AGHAF_DoCAN_CHANNEL_PARAM_TIMING_CR
@ AGHAF_DoCAN_CHANNEL_PARAM_TIMING_CR
Definition: aghaf_docan_enums.h:134
AGHAF_TypeEthernetEvent
@ AGHAF_TypeEthernetEvent
Event from Ethernet.
Definition: aghaf_global.h:157
AGHAF_DoCAN_CHANNEL_PARAM_TXDL
@ AGHAF_DoCAN_CHANNEL_PARAM_TXDL
Definition: aghaf_docan_enums.h:89
AGHAF_DoCAN_CHANNEL_PARAM_PAD_HANDLING
@ AGHAF_DoCAN_CHANNEL_PARAM_PAD_HANDLING
Definition: aghaf_docan_enums.h:94
AGHAF_DoCAN_CHANNEL_PARAM_MAXDATALEN
@ AGHAF_DoCAN_CHANNEL_PARAM_MAXDATALEN
Definition: aghaf_docan_enums.h:188
CAN_PARAM_LISTEN_ONLY
@ CAN_PARAM_LISTEN_ONLY
Definition: aghaf_can_enums.h:89
AGHAF_DoCAN_CHANNEL_PARAM_DIRECTION
@ AGHAF_DoCAN_CHANNEL_PARAM_DIRECTION
Definition: aghaf_docan_enums.h:83
AGHAF_DoCAN_CHANNEL_PARAM_ADDRMODE
@ AGHAF_DoCAN_CHANNEL_PARAM_ADDRMODE
Definition: aghaf_docan_enums.h:106
AGHAF_DoCAN_CHANNEL_PARAM_TIMING_STMIN
@ AGHAF_DoCAN_CHANNEL_PARAM_TIMING_STMIN
Definition: aghaf_docan_enums.h:141
AGHAF_DoCAN_TX_DL_CLASSIC_CAN
@ AGHAF_DoCAN_TX_DL_CLASSIC_CAN
Classic CAN, TX_DL = 8.
Definition: aghaf_docan_enums.h:52
AGHAF_DoCAN_CHANNEL_PARAM_RESP_ID_VALUE
@ AGHAF_DoCAN_CHANNEL_PARAM_RESP_ID_VALUE
Definition: aghaf_docan_enums.h:166
AGHAF_DoCAN_CHANNEL_PARAM_TIMING_AS
@ AGHAF_DoCAN_CHANNEL_PARAM_TIMING_AS
Definition: aghaf_docan_enums.h:111
AGHAF_DoCAN_Event_getData
AGHAF_Status AGHAF_API AGHAF_DoCAN_Event_getData(AGHAF_DoCAN_Event event, uint8_t *data, uint32_t *size)
Provide the datas received in the event.
Definition: aghaf_docan.cpp:253
AGHAF_DoCAN_CHANNEL_PARAM_TIMING_BR
@ AGHAF_DoCAN_CHANNEL_PARAM_TIMING_BR
Definition: aghaf_docan_enums.h:125
AGHAF_freeDeviceList
void AGHAF_API AGHAF_freeDeviceList(AGHAF_DeviceInfo *devices)
Free the memory allocated with AGHAF_getDeviceList.
Definition: aghaf_global.cpp:137
AGHAF_DoCAN_Event_getError
uint8_t AGHAF_API AGHAF_DoCAN_Event_getError(AGHAF_DoCAN_Event event)
Return the error value from the event.
Definition: aghaf_docan.cpp:275
AGHAF_closeDevice
AGHAF_Status AGHAF_API AGHAF_closeDevice(AGHAF_Device device)
close the device
Definition: aghaf_global.cpp:268
AGHAF_DoCAN_CHANNEL_PARAM_TIMING_BS
@ AGHAF_DoCAN_CHANNEL_PARAM_TIMING_BS
Definition: aghaf_docan_enums.h:121
AGHAF_CAN_Event
void * AGHAF_CAN_Event
Definition: aghaf_can.h:79
AGHAF_TypeNoEvent
@ AGHAF_TypeNoEvent
No event. Event is invalid.
Definition: aghaf_global.h:155
AGHAF_DoCAN_Channel_stop
AGHAF_Status AGHAF_API AGHAF_DoCAN_Channel_stop(AGHAF_DoCAN_Channel channel)
Stop a channel.
Definition: aghaf_docan.cpp:184
AGHAF_DoCAN_CHANNEL_PARAM_RESP_ID_AE
@ AGHAF_DoCAN_CHANNEL_PARAM_RESP_ID_AE
Definition: aghaf_docan_enums.h:171
CAN_PARAM_BAUDRATE
@ CAN_PARAM_BAUDRATE
Definition: aghaf_can_enums.h:56
AGHAF_TypeCanEvent
@ AGHAF_TypeCanEvent
Event from CAN.
Definition: aghaf_global.h:158
AGHAF_DoCAN_getBus
AGHAF_DoCAN_Bus AGHAF_API AGHAF_DoCAN_getBus(AGHAF_Device device, uint8_t index)
return the DoCAN bus at index in parameter
Definition: aghaf_docan.cpp:33
AGHAF_DoCAN_Event_type
AGHAF_DoCAN_EventType AGHAF_API AGHAF_DoCAN_Event_type(AGHAF_EventInfo event)
return the type from the event
Definition: aghaf_docan.cpp:219
AGHAF_DoCAN_Channel_send
AGHAF_Status AGHAF_API AGHAF_DoCAN_Channel_send(AGHAF_DoCAN_Channel channel, uint32_t dataLen, uint8_t const *data)
Send on the DoCAN channel in parameter.
Definition: aghaf_docan.cpp:197
AGHAF_Status
AGHAF_Status
Definition: aghaf_global.h:106