Compare commits

..

No commits in common. "351e462167ac2316d9835bf9811363015bcaf702" and "992e83d8ea3c82d08df3b0fa0ec06683a1036fd8" have entirely different histories.

10 changed files with 3 additions and 2937 deletions

1
.gitignore vendored
View File

@ -15,4 +15,3 @@ third-party/concurrentqueue/tests
examples/csharp/bin examples/csharp/bin
examples/csharp/obj examples/csharp/obj
test/system test/system
.venv

View File

@ -584,13 +584,12 @@ if(LIBICSNEO_BUILD_SYSTEM_TESTS)
FetchContent_Declare( FetchContent_Declare(
SystemTests SystemTests
GIT_REPOSITORY $ENV{LIBICSNEO_SYSTEM_TESTS} GIT_REPOSITORY $ENV{LIBICSNEO_SYSTEM_TESTS}
GIT_TAG icsneo_api GIT_TAG main
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test/system SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test/system
) )
FetchContent_MakeAvailable(SystemTests) FetchContent_MakeAvailable(SystemTests)
else() else()
message(WARNING "LIBICSNEO_SYSTEM_TESTS env variable not defined, attempting to use ${CMAKE_CURRENT_SOURCE_DIR}/test/system anyways...") message("System test repo not defined!")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test/system)
endif() endif()
endif() endif()

2
docs/conf.py 100755 → 100644
View File

@ -7,7 +7,6 @@ import subprocess
subprocess.call('cd ..; doxygen docs/icsneocpp/Doxyfile', shell=True) subprocess.call('cd ..; doxygen docs/icsneocpp/Doxyfile', shell=True)
subprocess.call('cd ..; doxygen docs/icsneoc/Doxyfile', shell=True) subprocess.call('cd ..; doxygen docs/icsneoc/Doxyfile', shell=True)
subprocess.call('cd ..; doxygen docs/icsneo/Doxyfile', shell=True)
# -- Project information ----------------------------------------------------- # -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
@ -27,7 +26,6 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
breathe_projects = { breathe_projects = {
'icsneocpp': 'icsneocpp/doxygen/xml', 'icsneocpp': 'icsneocpp/doxygen/xml',
'icsneoc': 'icsneoc/doxygen/xml', 'icsneoc': 'icsneoc/doxygen/xml',
'icsneo': 'icsneoc/doxygen/xml',
} }
breathe_default_project = 'icsneocpp' breathe_default_project = 'icsneocpp'

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
=====
C API
=====
.. doxygenfile:: icsneo.h
:project: icsneo
.. doxygenfile:: icsneotypes.h
:project: icsneo

View File

@ -1,43 +0,0 @@
==========
C Examples
==========
A variety of examples can be found within ``examples/c``, see below for an
example that uses the polling API to receive CAN frames.
.. code-block:: c
size_t deviceCount = 10; // Pre-set to the size of your buffer before the icsneo_findAllDevices() call
neodevice_t devices[10];
icsneo_findAllDevices(devices, &deviceCount);
printf("We found %ull devices\n", deviceCount);
for(size_t i = 0; i < deviceCount; i++) {
neodevice_t* myDevice = &devices[i];
char desc[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
size_t sz = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
icsneo_describeDevice(myDevice, desc, &sz);
printf("Found %s\n", desc); // "Found neoVI FIRE 2 CY2345"
}
neodevice_t* myDevice = &devices[0];
if(!icsneo_openDevice(myDevice)) {
neoevent_t error;
if(icsneo_getLastError(&error))
printf("Error! %s\n", error.description);
}
icsneo_goOnline(myDevice); // Start receiving messages
icsneo_enableMessagePolling(myDevice); // Allow the use of icsneo_getMessages() later
sleep(5);
neomessage_t messages[50];
size_t messageCount = 50;
icsneo_getMessages(myDevice, messages, &messageCount, 0 /* non-blocking */);
printf("We got %ull messages!\n", messageCount);
for(size_t i = 0; i < messageCount; i++) {
if(messages[i].type == ICSNEO_NETWORK_TYPE_CAN) {
// A message of type CAN should be interperated a neomessage_can_t, so we can cast safely
neomessage_can_t* canmsg = (neomessage_can_t*)&messages[i];
// canmsg->arbid is valid here
// canmsg->data is an uint8_t*, you can check canmsg->length for the length of the payload
// canmsg->timestamp is the time recorded by the hardware in nanoseconds since (1/1/2007 12:00:00 GMT)
}
}
icsneo_closeDevice(myDevice);

View File

@ -1,9 +0,0 @@
icsneo
=======
.. toctree::
:maxdepth: 2
installation
examples
api

View File

@ -1,7 +0,0 @@
============
Installation
============
The installation steps for the C API are the same as the C++ API as the C API is
a wrapper for the C++ library. The ``LIBICSNEO_BUILD_ICSNEO`` CMake option is
default ``ON`` but note that the C API depends on this flag to build.

View File

@ -13,4 +13,3 @@ communication library. The source code for libicsneo can be found on GitHub:
icsneocpp/index icsneocpp/index
icsneopy/index icsneopy/index
icsneoc/index icsneoc/index
icsneo/index

View File

@ -250,7 +250,7 @@ int process_messages(icsneo_device_t* device, icsneo_message_t** messages, uint3
printf("\t%d) Message type: %u bus type: %s (%u)\n", i, msg_type, bus_name, bus_type); printf("\t%d) Message type: %u bus type: %s (%u)\n", i, msg_type, bus_name, bus_type);
if (bus_type == icsneo_msg_bus_type_can) { if (bus_type == icsneo_msg_bus_type_can) {
uint32_t arbid = 0; uint32_t arbid = 0;
int32_t dlc = 0; uint32_t dlc = 0;
icsneo_netid_t netid = 0; icsneo_netid_t netid = 0;
bool is_remote = false; bool is_remote = false;
bool is_canfd = false; bool is_canfd = false;