PDF

AGHAF  4.3.5
Annecy electronique Generic Hardware Access Framework
Can_LS/main.cpp
#include <vector>
#include <iostream>
#define AGHAF_DYNAMIC_LIBRARY_INIT
#include <aghaf.h>
void canBus_callback(AGHAF_CAN_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) {
break;
AGHAF_CAN_Frame_id(frame, &id);
int64_t size = AGHAF_CAN_Frame_dataSize(frame);
uint8_t *data = new uint8_t[size];
AGHAF_CAN_Frame_data(frame, data, size);
delete [] data;
}
break;
}
}
break;
}
}
}
int main()
{
#ifdef _WIN32
AGHAF_loadLibrary(AGHAF_DEFAULT_FILENAME);
#endif
uint32_t count = AGHAF_getDeviceCount();
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);
&canBus_callback,
nullptr);
// BUS CAN LS -------------------------------
125000);
120);
// --------------------------------------------
std::vector<uint8_t> dataToSend;
dataToSend.push_back(0x01);
identifier.type = AGHAF_CAN_IdStd;
identifier.id.std = 0x100;
AGHAF_CAN_Frame_setId(frameToSend, &identifier);
dataToSend.data(),
static_cast<uint32_t>(
dataToSend.size()));
AGHAF_CAN_sendFrame(canBus, frameToSend);
AGHAF_CAN_Frame_delete(frameToSend);
AGHAF_CAN_deregisterCallback(canBus, &canBus_callback);
}
#ifdef _WIN32
AGHAF_unloadLibrary();
#endif
return 0;
}
AGHAF_CAN_MODE_LS
@ AGHAF_CAN_MODE_LS
Definition: aghaf_can_enums.h:43
AGHAF_CAN_EVENT_MSGRX
@ AGHAF_CAN_EVENT_MSGRX
Message has been received.
Definition: aghaf_can.h:44
AGHAF_CAN_IdStd
@ AGHAF_CAN_IdStd
Standard 11 bit identifier.
Definition: aghaf_can.h:23
AGHAF_CAN_EVENT_UNKNOW
@ AGHAF_CAN_EVENT_UNKNOW
Unknown type of event.
Definition: aghaf_can.h:42
aghaf.h
AGHAF_CAN_Frame_new
AGHAF_CAN_Frame AGHAF_API AGHAF_CAN_Frame_new(void)
Return a handle on a CAN frame.
Definition: aghaf_can.cpp:389
AGHAF_getDeviceCount
uint32_t AGHAF_API AGHAF_getDeviceCount(void)
Return the number of devices onnected.
Definition: aghaf_global.cpp:113
AGHAF_CAN_Event_frame
AGHAF_CAN_Frame AGHAF_API AGHAF_CAN_Event_frame(AGHAF_CAN_Event event)
return the frame contained in an event
Definition: aghaf_can.cpp:579
AGHAF_CAN_sendFrame
AGHAF_Status AGHAF_API AGHAF_CAN_sendFrame(AGHAF_CAN_Bus bus, AGHAF_CAN_Frame frame)
send a frame on a CAN bus
Definition: aghaf_can.cpp:556
AGHAF_CAN_Frame_id
AGHAF_Status AGHAF_API AGHAF_CAN_Frame_id(AGHAF_CAN_Frame frame, AGHAF_CAN_Identifier *identifier)
Get the identifier from a CAN frame.
Definition: aghaf_can.cpp:423
AGHAF_openDevice
AGHAF_Status AGHAF_API AGHAF_openDevice(AGHAF_Device device)
Open a device.
Definition: aghaf_global.cpp:257
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_CAN_registerCallback
void AGHAF_API AGHAF_CAN_registerCallback(AGHAF_CAN_Bus bus, AGHAF_CAN_Callback callback, void *userContext)
Register a callback for the CAN events from a bus.
Definition: aghaf_can.cpp:68
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_deregisterCallback
void AGHAF_API AGHAF_CAN_deregisterCallback(AGHAF_CAN_Bus bus, AGHAF_CAN_Callback callback)
deregister a callback
Definition: aghaf_can.cpp:82
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_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_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_CAN_EVENT_BUSLOAD
@ AGHAF_CAN_EVENT_BUSLOAD
Bus load information.
Definition: aghaf_can.h:47
AGHAF_CAN_typeEvent
AGHAF_CAN_EventType AGHAF_API AGHAF_CAN_typeEvent(AGHAF_EventInfo event)
return the type from the event
Definition: aghaf_can.cpp:590
AGHAF_FALSE
@ AGHAF_FALSE
false
Definition: aghaf_global.h:102
CAN_PARAM_MODE
@ CAN_PARAM_MODE
Definition: aghaf_can_enums.h:51
AGHAF_CAN_EVENT_ERROR
@ AGHAF_CAN_EVENT_ERROR
Bus error.
Definition: aghaf_can.h:45
AGHAF_CAN_Bus
void * AGHAF_CAN_Bus
Definition: aghaf_can.h:77
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_CAN_EVENT_MSGTX
@ AGHAF_CAN_EVENT_MSGTX
End of transmission.
Definition: aghaf_can.h:43
AGHAF_DeviceInfo
Definition: aghaf_global.h:175
AGHAF_EventInfo::type
AGHAF_TypeEvent type
Type information. Provide information about origin (device, can, ethernet...).
Definition: aghaf_global.h:201
AGHAF_TypeDeviceEvent
@ AGHAF_TypeDeviceEvent
Event from Device.
Definition: aghaf_global.h:156
AGHAF_CAN_Identifier::type
AGHAF_CAN_IdentifierType type
Identifier type.
Definition: aghaf_can.h:88
AGHAF_CAN_EVENT_BUSCHANGE
@ AGHAF_CAN_EVENT_BUSCHANGE
Chip state has chaged active or passive error ou bus off.
Definition: aghaf_can.h:46
AGHAF_CAN_Identifier
Definition: aghaf_can.h:86
AGHAF_CAN_Frame
void * AGHAF_CAN_Frame
Definition: aghaf_can.h:78
AGHAF_TypeEthernetEvent
@ AGHAF_TypeEthernetEvent
Event from Ethernet.
Definition: aghaf_global.h:157
AGHAF_CAN_Identifier::id
union AGHAF_CAN_Identifier::@0 id
Identifier.
AGHAF_CAN_EventType
AGHAF_CAN_EventType
Definition: aghaf_can.h:41
CAN_PARAM_LISTEN_ONLY
@ CAN_PARAM_LISTEN_ONLY
Definition: aghaf_can_enums.h:89
AGHAF_CAN_Frame_setId
AGHAF_Status AGHAF_API AGHAF_CAN_Frame_setId(AGHAF_CAN_Frame frame, AGHAF_CAN_Identifier *identifier)
Set the identifier from a CAN frame.
Definition: aghaf_can.cpp:410
AGHAF_CAN_Frame_delete
void AGHAF_API AGHAF_CAN_Frame_delete(AGHAF_CAN_Frame frame)
Free the memory from a CAN frame.
Definition: aghaf_can.cpp:398
AGHAF_CAN_Frame_dataSize
int64_t AGHAF_API AGHAF_CAN_Frame_dataSize(AGHAF_CAN_Frame frame)
return the size from the data
Definition: aghaf_can.cpp:544
AGHAF_CAN_Frame_setData
AGHAF_Status AGHAF_API AGHAF_CAN_Frame_setData(AGHAF_CAN_Frame frame, const void *data, int64_t size)
Set the data from a frame.
Definition: aghaf_can.cpp:509
AGHAF_freeDeviceList
void AGHAF_API AGHAF_freeDeviceList(AGHAF_DeviceInfo *devices)
Free the memory allocated with AGHAF_getDeviceList.
Definition: aghaf_global.cpp:137
AGHAF_CAN_Frame_data
AGHAF_Status AGHAF_API AGHAF_CAN_Frame_data(AGHAF_CAN_Frame frame, void *data, int64_t size)
Provide the data contained in a frame.
Definition: aghaf_can.cpp:526
AGHAF_closeDevice
AGHAF_Status AGHAF_API AGHAF_closeDevice(AGHAF_Device device)
close the device
Definition: aghaf_global.cpp:268
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
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_Status
AGHAF_Status
Definition: aghaf_global.h:106
AGHAF_CAN_Identifier::std
uint16_t std
Standard identifier.
Definition: aghaf_can.h:90