Move examples into tree
See history at https://github.com/intrepidcs/libicsneo-examples/tree/v0.2.0-devpull/25/head
parent
2079037ae4
commit
f49f65c3ed
|
|
@ -3,6 +3,7 @@ project(libicsneo VERSION 0.2.0)
|
|||
|
||||
option(LIBICSNEO_BUILD_TESTS "Build all tests." OFF)
|
||||
option(LIBICSNEO_BUILD_DOCS "Build documentation. Don't use in Visual Studio." OFF)
|
||||
option(LIBICSNEO_BUILD_EXAMPLES "Build examples." ON)
|
||||
option(LIBICSNEO_BUILD_ICSNEOC "Build dynamic C library" ON)
|
||||
option(LIBICSNEO_BUILD_ICSNEOC_STATIC "Build static C library" ON)
|
||||
option(LIBICSNEO_BUILD_ICSNEOLEGACY "Build icsnVC40 compatibility library" ON)
|
||||
|
|
@ -101,6 +102,10 @@ else() # elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(LIBICSNEO_BUILD_EXAMPLES)
|
||||
add_subdirectory(examples)
|
||||
endif()
|
||||
|
||||
set(COMMON_SRC
|
||||
communication/message/flexray/control/flexraycontrolmessage.cpp
|
||||
communication/message/neomessage.cpp
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
option(LIBICSNEO_BUILD_C_INTERACTIVE_EXAMPLE "Build the command-line interactive C example." ON)
|
||||
option(LIBICSNEO_BUILD_CPP_SIMPLE_EXAMPLE "Build the simple C++ example." ON)
|
||||
option(LIBICSNEO_BUILD_CPP_INTERACTIVE_EXAMPLE "Build the command-line interactive C++ example." ON)
|
||||
|
||||
# Disabled until we properly build these in-tree
|
||||
# option(LIBICSNEO_BUILD_CSHARP_INTERACTIVE_EXAMPLE "Build the command-line interactive C# example." OFF)
|
||||
# option(LIBICSNEO_BUILD_JAVA_INTERACTIVE_EXAMPLE "Build the command-line interactive Java example." OFF)
|
||||
|
||||
if(LIBICSNEO_BUILD_C_INTERACTIVE_EXAMPLE)
|
||||
add_subdirectory(c/interactive)
|
||||
endif()
|
||||
|
||||
if(LIBICSNEO_BUILD_CPP_SIMPLE_EXAMPLE)
|
||||
add_subdirectory(cpp/simple)
|
||||
endif()
|
||||
|
||||
if(LIBICSNEO_BUILD_CPP_INTERACTIVE_EXAMPLE)
|
||||
add_subdirectory(cpp/interactive)
|
||||
endif()
|
||||
|
||||
# if(LIBICSNEO_BUILD_CSHARP_INTERACTIVE_EXAMPLE)
|
||||
# add_subdirectory(csharp)
|
||||
# endif()
|
||||
|
||||
# if(LIBICSNEO_BUILD_JAVA_INTERACTIVE_EXAMPLE)
|
||||
# add_subdirectory(java)
|
||||
# endif()
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
cmake_minimum_required(VERSION 3.2)
|
||||
project(libicsneoc-interactive-example VERSION 0.2.0)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# Include libicsneo's include directory
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../include)
|
||||
|
||||
if(UNIX)
|
||||
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS)
|
||||
endif()
|
||||
|
||||
add_executable(libicsneoc-interactive-example src/main.c)
|
||||
if(UNIX)
|
||||
target_link_libraries(libicsneoc-interactive-example ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
# libicsneo C Example
|
||||
|
||||
This is an example console application that uses the icsneoc library to control an Intrepid Control Systems hardware device.
|
||||
|
||||
## Cloning
|
||||
|
||||
This will create a copy of the repository on your local machine.
|
||||
|
||||
Run:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/intrepidcs/libicsneo-examples -b v0.2.0-dev --recursive
|
||||
```
|
||||
|
||||
Alternatively, if you cloned without the `--recursive` flag, you must enter the `libicsneo-examples` folder and run the following:
|
||||
|
||||
```shell
|
||||
git submodule update --recursive --init
|
||||
```
|
||||
|
||||
If you haven't done this, `third-party/libicsneo` will be empty and you won't be able to build!
|
||||
|
||||
## Windows using Visual Studio 2017+
|
||||
|
||||
### Building the DLL
|
||||
|
||||
First, we are going to build the icsneoc library into a .dll file that we can later use in order to access the library functions.
|
||||
|
||||
1. Launch Visual Studio and open the `libicsneo-examples` folder.
|
||||
2. Choose `File->Open->Cmake...`
|
||||
3. Navigate to `third-party/libicsneo` and select the `CMakeLists.txt` there.
|
||||
4. Visual Studio will process the CMake project.
|
||||
5. Select `Build->Rebuild All`
|
||||
6. Visual Studio will generate the `icsneoc.dll` file, which can then be found by selecting `Project->Cmake Cache (x64-Debug Only)->Open in Explorer`. If the file cannot be found, search in `libicsneo-examples/third-party/libicsneo/out/build/x64-Debug` and double-check that the build succeeded in step 5.
|
||||
7. Move the `icsneoc.dll` file to the `/C/Windows/System32` folder. This will allow it to be found by icsneo_init(), which loads all the library functions.
|
||||
* Alternatively, the `icsneoc.dll` file can be placed in the same directory as `libicsneoc-example.exe`, which is typically `libicsneo-examples/libicsneoc-example/out/build/x64-Debug`, although this is not recommended. For more information, refer to [the Microsoft documentation](https://docs.microsoft.com/en-us/windows/desktop/dlls/dynamic-link-library-search-order).
|
||||
|
||||
### Building the example program
|
||||
|
||||
Although the example program will build without successfully completing the steps above, it will exit immediately upon running due to a failure to load any library functions.
|
||||
|
||||
1. Choose `File->Open->Cmake...`
|
||||
2. Navigate to `libicsneo-examples/libicsneoc-example` and select the `CMakeLists.txt` there.
|
||||
3. Visual Studio will process the CMake project.
|
||||
4. Select `Build->Rebuild All`
|
||||
5. Click on the dropdown arrow attached to the green play button (labelled "Select Startup Item") and select `libicsneoc-example.exe`
|
||||
6. Click on the green play button to run the example.
|
||||
|
||||
## Ubuntu 18.04 LTS
|
||||
|
||||
### Building the .so
|
||||
|
||||
First, we are going to build the icsneoc library into a .so file that we can later use in order to access the library functions.
|
||||
|
||||
1. Install dependencies with `sudo apt update` then `sudo apt install build-essential cmake libusb-1.0-0-dev libpcap0.8-dev`
|
||||
2. Change directories to `libicsneo-examples/third-party/libicsneo` and create a build directory by running `mkdir -p build`
|
||||
3. Enter the build directory with `cd build`
|
||||
4. Run `cmake ..` to generate your Makefile.
|
||||
* Hint! Running `cmake -DCMAKE_BUILD_TYPE=Debug ..` will generate the proper scripts to build debug, and `cmake -DCMAKE_BUILD_TYPE=Release ..` will generate the proper scripts to build with all optimizations on.
|
||||
5. Run `make` to build the library.
|
||||
* Hint! Speed up your build by using multiple processors! Use `make -j#` where `#` is the number of cores/threads your system has plus one. For instance, on a standard 8 thread Intel i7, you might use `-j9` for an ~8x speedup.
|
||||
6. Run `sudo cp libicsneoc.so /usr/lib` so that it can be found via the default ubuntu .so search path. For more information, see the [ld.so.8 man page](http://man7.org/linux/man-pages/man8/ld.so.8.html).
|
||||
|
||||
### Building the example program
|
||||
|
||||
Although the example program will build without successfully completing the steps above, it will exit immediately upon running due to a failure to load any library functions.
|
||||
|
||||
1. Change directories to `libicsneo-examples/libicsneoc-example`
|
||||
2. Create a build directory by running `mkdir -p build`
|
||||
3. Enter the build directory with `cd build`
|
||||
4. Run `cmake ..` to generate your Makefile.
|
||||
* Hint! Running `cmake -DCMAKE_BUILD_TYPE=Debug ..` will generate the proper scripts to build debug, and `cmake -DCMAKE_BUILD_TYPE=Release ..` will generate the proper scripts to build with all optimizations on.
|
||||
5. Run `make` to build the library.
|
||||
* Hint! Speed up your build by using multiple processors! Use `make -j#` where `#` is the number of cores/threads your system has plus one. For instance, on a standard 8 thread Intel i7, you might use `-j9` for an ~8x speedup.
|
||||
6. Run `sudo ./libicsneoc-example` to run the example.
|
||||
* Hint! In order to run without sudo, you will need to set up the udev rules. Copy `libicsneo-examples/third-party/libicsneo/99-intrepidcs.rules` to `/etc/udev/rules.d`, then run `udevadm control --reload-rules && udevadm trigger` afterwards. While the program will still run without setting up these rules, it will fail to open any devices.
|
||||
|
||||
## macOS
|
||||
|
||||
Instructions coming soon™
|
||||
|
|
@ -0,0 +1,610 @@
|
|||
// Signal to dynamically load the library
|
||||
#define ICSNEOC_DYNAMICLOAD
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <ctype.h>
|
||||
|
||||
// Get the PRIu64 macro for timestamps
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#include <inttypes.h>
|
||||
|
||||
// Include icsneo/icsneoc.h to access library functions
|
||||
#include "icsneo/icsneoc.h"
|
||||
|
||||
size_t msgLimit = 50000;
|
||||
size_t numDevices = 0;
|
||||
neodevice_t devices[99];
|
||||
const neodevice_t* selectedDevice = NULL;
|
||||
|
||||
/**
|
||||
* \brief Prints all current known devices to output in the following format:
|
||||
* [num] DeviceType SerialNum Connected: Yes/No Online: Yes/No Msg Polling: On/Off
|
||||
*
|
||||
* If any devices could not be described due to an error, they will appear in the following format:
|
||||
* Description for device num not available!
|
||||
*/
|
||||
void printAllDevices() {
|
||||
if(numDevices == 0) {
|
||||
printf("No devices found! Please scan for new devices.\n");
|
||||
}
|
||||
for(int i = 0; i < numDevices; i++) {
|
||||
char productDescription[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
|
||||
size_t descriptionLength = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
|
||||
// Updates productDescription and descriptionLength for each device
|
||||
if(icsneo_describeDevice(devices + i, productDescription, &descriptionLength)) {
|
||||
printf("[%d] %s\tConnected: ", i + 1, productDescription);
|
||||
if(icsneo_isOpen(devices + i)) {
|
||||
printf("Yes\t");
|
||||
} else printf("No\t");
|
||||
|
||||
printf("Online: ");
|
||||
if(icsneo_isOnline(devices + i)) {
|
||||
printf("Yes\t");
|
||||
} else printf("No\t");
|
||||
|
||||
printf("Msg Polling: ");
|
||||
if(icsneo_isMessagePollingEnabled(devices + i)) {
|
||||
printf("On\n");
|
||||
} else printf("Off\n");
|
||||
|
||||
} else {
|
||||
printf("Description for device %d not available!\n", i + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Scans for any new devices, adding them to devices and updating numDevices accordingly
|
||||
* A total of 99 devices may be stored at once
|
||||
*/
|
||||
size_t scanNewDevices() {
|
||||
neodevice_t newDevices[99];
|
||||
size_t numNewDevices = 99;
|
||||
icsneo_findAllDevices(newDevices, &numNewDevices);
|
||||
|
||||
for(int i = 0; i < numNewDevices; ++i) {
|
||||
devices[numDevices + i] = newDevices[i];
|
||||
}
|
||||
numDevices += numNewDevices;
|
||||
return numNewDevices;
|
||||
}
|
||||
|
||||
// Prints the main menu options to output
|
||||
void printMainMenu() {
|
||||
printf("Press the letter next to the function you want to use:\n");
|
||||
printf("A - List all devices\n");
|
||||
printf("B - Scan for new devices\n");
|
||||
printf("C - Open/close\n");
|
||||
printf("D - Go online/offline\n");
|
||||
printf("E - Enable/disable message polling\n");
|
||||
printf("F - Get messages\n");
|
||||
printf("G - Send message\n");
|
||||
printf("H - Get events\n");
|
||||
printf("I - Set HS CAN to 250K\n");
|
||||
printf("J - Set HS CAN to 500K\n");
|
||||
printf("X - Exit\n");
|
||||
}
|
||||
|
||||
void printLastError() {
|
||||
neoevent_t error;
|
||||
if(icsneo_getLastError(&error))
|
||||
printf("Error 0x%u: %s\n", error.eventNumber, error.description);
|
||||
else
|
||||
printf("No errors found!\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Gets all current API events and prints them to output
|
||||
* Flushes the API event cache, meaning future calls (barring any new events) will not detect any further API events
|
||||
*/
|
||||
void printAPIEvents() {
|
||||
neoevent_t events[99];
|
||||
size_t eventCount = 99;
|
||||
if(icsneo_getEvents(events, &eventCount)) {
|
||||
if(eventCount == 1) {
|
||||
printf("1 API event found!\n");
|
||||
printf("Event 0x%u: %s\n", events[0].eventNumber, events[0].description);
|
||||
} else {
|
||||
printf("%d API events found!\n", (int) eventCount);
|
||||
for(int i = 0; i < eventCount; ++i) {
|
||||
printf("Event 0x%u: %s\n", events[i].eventNumber, events[i].description);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
printf("Failed to get API events!\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Gets all current device events and prints them to output. If no device events were found, printAPIEvents() is called
|
||||
* Flushes the device event cache, meaning future calls (barring any new events) will not detect any further device events for this device
|
||||
*/
|
||||
void printDeviceEvents(neodevice_t* device) {
|
||||
neoevent_t events[99];
|
||||
size_t eventCount = 99;
|
||||
if(icsneo_getDeviceEvents(selectedDevice, events, &eventCount)) {
|
||||
if(eventCount == 1) {
|
||||
printf("1 device event found!\n");
|
||||
printf("Event 0x%x: %s\n", events[0].eventNumber, events[0].description);
|
||||
} else {
|
||||
printf("%d device events found!\n", (int) eventCount);
|
||||
for(int i = 0; i < eventCount; ++i) {
|
||||
printf("Event 0x%x: %s\n", events[i].eventNumber, events[i].description);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Used to check character inputs for correctness (if they are found in an expected list)
|
||||
* \param[in] numArgs the number of possible options for the expected character
|
||||
* \param[in] ... the possible options for the expected character
|
||||
* \returns the entered character
|
||||
*
|
||||
* This function repeatedly prompts the user for input until a matching input is entered
|
||||
* Example usage: char input = getCharInput(5, 'F', 'u', 'b', 'a', 'r');
|
||||
*/
|
||||
char getCharInput(int numArgs, ...) {
|
||||
// 99 chars shold be more than enough to catch any typos
|
||||
char input[99];
|
||||
bool found = false;
|
||||
|
||||
va_list vaList;
|
||||
va_start(vaList, numArgs);
|
||||
|
||||
char* list = (char*) calloc(numArgs, sizeof(char));
|
||||
for(int i = 0; i < numArgs; ++i) {
|
||||
*(list + i) = va_arg(vaList, int);
|
||||
}
|
||||
|
||||
va_end(vaList);
|
||||
|
||||
while(!found) {
|
||||
fgets(input, 99, stdin);
|
||||
if(strlen(input) == 2) {
|
||||
for(int i = 0; i < numArgs; ++i) {
|
||||
if(input[0] == *(list + i)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!found) {
|
||||
printf("Input did not match expected options. Please try again.\n");
|
||||
}
|
||||
}
|
||||
|
||||
free(list);
|
||||
|
||||
return input[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Prompts the user to select a device from the list of currently known devices
|
||||
* \returns a pointer to the device in devices[] selected by the user
|
||||
* Requires an input from 1-9, so a maximum of 9 devices are supported
|
||||
*/
|
||||
const neodevice_t* selectDevice() {
|
||||
printf("Please select a device:\n");
|
||||
printAllDevices();
|
||||
printf("\n");
|
||||
|
||||
int selectedDeviceNum = 10;
|
||||
|
||||
while(selectedDeviceNum > numDevices) {
|
||||
char deviceSelection = getCharInput(9, '1', '2', '3', '4', '5', '6', '7', '8', '9');
|
||||
selectedDeviceNum = deviceSelection - '0';
|
||||
if(selectedDeviceNum > numDevices) {
|
||||
printf("Selected device out of range!\n");
|
||||
}
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
|
||||
return devices + selectedDeviceNum - 1;
|
||||
}
|
||||
|
||||
int main() {
|
||||
|
||||
// Attempt to initialize the library and access its functions
|
||||
// This call searches for icsneoc.dll according to the standard dynamic-link library search order
|
||||
int ret = icsneo_init();
|
||||
if(ret == 1) {
|
||||
printf("The library was already initialized!\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
if(ret == 2) {
|
||||
printf("The library could not be found!\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
if(ret == 3) {
|
||||
printf("The library is missing functions!\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
neoversion_t ver = icsneo_getVersion();
|
||||
printf("ICS icsneoc.dll version %u.%u.%u\n\n", ver.major, ver.minor, ver.patch);
|
||||
|
||||
while(true) {
|
||||
printMainMenu();
|
||||
printf("\n");
|
||||
char input = getCharInput(22, 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'X', 'x');
|
||||
printf("\n");
|
||||
switch(input) {
|
||||
// List current devices
|
||||
case 'A':
|
||||
case 'a':
|
||||
printAllDevices();
|
||||
printf("\n");
|
||||
break;
|
||||
// Scan for new devices
|
||||
case 'B':
|
||||
case 'b':
|
||||
{
|
||||
size_t numNewDevices = scanNewDevices();
|
||||
if(numNewDevices == 1) {
|
||||
printf("1 new device found!\n");
|
||||
} else {
|
||||
printf("%d new devices found!\n", (int) numNewDevices);
|
||||
}
|
||||
printAllDevices();
|
||||
printf("\n");
|
||||
break;
|
||||
}
|
||||
// Open/close a device
|
||||
case 'C':
|
||||
case 'c':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
printf("No devices found! Please scan for new devices.\n\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
char productDescription[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
|
||||
size_t descriptionLength = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
icsneo_describeDevice(selectedDevice, productDescription, &descriptionLength);
|
||||
|
||||
printf("Would you like to open or close %s?\n", productDescription);
|
||||
printf("[1] Open\n[2] Close\n[3] Cancel\n\n");
|
||||
|
||||
char input = getCharInput(3, '1', '2', '3');
|
||||
printf("\n");
|
||||
|
||||
switch(input) {
|
||||
case '1':
|
||||
// Attempt to open the selected device
|
||||
if(icsneo_openDevice(selectedDevice)) {
|
||||
printf("%s successfully opened!\n\n", productDescription);
|
||||
} else {
|
||||
printf("%s failed to open!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to close the device
|
||||
if(icsneo_closeDevice(selectedDevice)) {
|
||||
numDevices--;
|
||||
printf("Successfully closed %s!\n\n", productDescription);
|
||||
|
||||
// Shifts everything after the removed device 1 index to the left
|
||||
bool startResizing = false;
|
||||
for(int i = 0; i < numDevices; ++i) {
|
||||
if(selectedDevice == devices + i)
|
||||
startResizing = true;
|
||||
if(startResizing)
|
||||
devices[i] = devices[i + 1];
|
||||
}
|
||||
|
||||
selectedDevice = NULL;
|
||||
} else {
|
||||
printf("Failed to close %s!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
printf("Canceling!\n\n");
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Go online/offline
|
||||
case 'D':
|
||||
case 'd':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
printf("No devices found! Please scan for new devices.\n\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
char productDescription[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
|
||||
size_t descriptionLength = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
icsneo_describeDevice(selectedDevice, productDescription, &descriptionLength);
|
||||
|
||||
printf("Would you like to have %s go online or offline?\n", productDescription);
|
||||
printf("[1] Online\n[2] Offline\n[3] Cancel\n\n");
|
||||
|
||||
char input = getCharInput(3, '1', '2', '3');
|
||||
printf("\n");
|
||||
|
||||
switch(input) {
|
||||
case '1':
|
||||
// Attempt to go online
|
||||
if(icsneo_goOnline(selectedDevice)) {
|
||||
printf("%s successfully went online!\n\n", productDescription);
|
||||
} else {
|
||||
printf("%s failed to go online!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to go offline
|
||||
if(icsneo_goOffline(selectedDevice)) {
|
||||
printf("%s successfully went offline!\n\n", productDescription);
|
||||
} else {
|
||||
printf("%s failed to go offline!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
printf("Canceling!\n\n");
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Enable/disable message polling
|
||||
case 'E':
|
||||
case 'e':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
printf("No devices found! Please scan for new devices.\n\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
char productDescription[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
|
||||
size_t descriptionLength = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
icsneo_describeDevice(selectedDevice, productDescription, &descriptionLength);
|
||||
|
||||
printf("Would you like to enable or disable message polling for %s?\n", productDescription);
|
||||
printf("[1] Enable\n[2] Disable\n[3] Cancel\n\n");
|
||||
|
||||
char input = getCharInput(3, '1', '2', '3');
|
||||
printf("\n");
|
||||
|
||||
switch(input) {
|
||||
case '1':
|
||||
// Attempt to enable message polling
|
||||
if(icsneo_enableMessagePolling(selectedDevice)) {
|
||||
printf("Successfully enabled message polling for %s!\n\n", productDescription);
|
||||
} else {
|
||||
printf("Failed to enable message polling for %s!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
// Manually setting the polling message limit as done below is optional
|
||||
// It will default to 20k if not set
|
||||
// Attempt to set the polling message limit
|
||||
if(icsneo_setPollingMessageLimit(selectedDevice, msgLimit)) {
|
||||
printf("Successfully set message polling limit for %s!\n\n", productDescription);
|
||||
} else {
|
||||
printf("Failed to set polling message limit for %s!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to disable message polling
|
||||
if(icsneo_disableMessagePolling(selectedDevice)) {
|
||||
printf("Successfully disabled message polling for %s!\n\n", productDescription);
|
||||
} else {
|
||||
printf("Failed to disable message polling limit for %s!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
printf("Canceling!\n\n");
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Get messages
|
||||
case 'F':
|
||||
case 'f':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
printf("No devices found! Please scan for new devices.\n\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
char productDescription[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
|
||||
size_t descriptionLength = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
icsneo_describeDevice(selectedDevice, productDescription, &descriptionLength);
|
||||
|
||||
// Prepare the array of neomessage_t ptrs for reading in the messages
|
||||
neomessage_t* msgs = (neomessage_t*) malloc(msgLimit * sizeof(neomessage_t*));
|
||||
|
||||
// Get messages
|
||||
size_t msgCount = msgLimit;
|
||||
|
||||
// Attempt to get messages
|
||||
if(!icsneo_getMessages(selectedDevice, msgs, &msgCount, (uint64_t) 0)) {
|
||||
printf("Failed to get messages for %s!\n\n", productDescription);
|
||||
printLastError();
|
||||
free(msgs);
|
||||
printf("\n");
|
||||
break;
|
||||
}
|
||||
|
||||
if(msgCount == 1) {
|
||||
printf("1 message received from %s!\n", productDescription);
|
||||
} else {
|
||||
printf("%d messages received from %s!\n", (int) msgCount, productDescription);
|
||||
}
|
||||
|
||||
// Print out the received messages
|
||||
for(size_t i = 0; i < msgCount; i++) {
|
||||
neomessage_t* msg = &msgs[i];
|
||||
switch(msg->type) {
|
||||
case ICSNEO_NETWORK_TYPE_CAN: // CAN
|
||||
{
|
||||
neomessage_can_t* canMsg = (neomessage_can_t*) msg;
|
||||
printf("\t0x%03x [%zu] ", canMsg->arbid, canMsg->length);
|
||||
for(size_t i = 0; i < canMsg->length; i++) {
|
||||
printf("%02x ", canMsg->data[i]);
|
||||
}
|
||||
printf("(%"PRIu64")\n", canMsg->timestamp);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if(msg->netid != 0)
|
||||
printf("\tMessage on netid %d with length %zu\n", msg->netid, msg->length);
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
free(msgs);
|
||||
}
|
||||
|
||||
break;
|
||||
// Send message
|
||||
case 'G':
|
||||
case 'g':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
printf("No devices found! Please scan for new devices.\n\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
char productDescription[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
|
||||
size_t descriptionLength = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
icsneo_describeDevice(selectedDevice, productDescription, &descriptionLength);
|
||||
|
||||
// Start generating sample msg
|
||||
uint8_t sendMessageData[6];
|
||||
sendMessageData[0] = 0xaa;
|
||||
sendMessageData[1] = 0xbb;
|
||||
sendMessageData[2] = 0xcc;
|
||||
sendMessageData[3] = 0xdd;
|
||||
sendMessageData[4] = 0xee;
|
||||
sendMessageData[5] = 0xff;
|
||||
|
||||
neomessage_can_t msg = {0};
|
||||
msg.arbid = 0x120;
|
||||
msg.length = 6;
|
||||
msg.netid = ICSNEO_NETID_HSCAN;
|
||||
msg.data = sendMessageData;
|
||||
msg.status.canfdFDF = false;
|
||||
msg.status.extendedFrame = false;
|
||||
msg.status.canfdBRS = false;
|
||||
// End generating sample msg
|
||||
|
||||
// Attempt to transmit the sample msg
|
||||
if(icsneo_transmit(selectedDevice, (const neomessage_t*) &msg)) {
|
||||
printf("Message transmit successful!\n\n");
|
||||
} else {
|
||||
printf("Failed to transmit message to %s!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Get events
|
||||
case 'H':
|
||||
case 'h':
|
||||
{
|
||||
// All API events
|
||||
printAPIEvents();
|
||||
printf("\n");
|
||||
}
|
||||
break;
|
||||
// Set HS CAN to 250k
|
||||
case 'I':
|
||||
case 'i':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
printf("No devices found! Please scan for new devices.\n\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
char productDescription[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
|
||||
size_t descriptionLength = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
icsneo_describeDevice(selectedDevice, productDescription, &descriptionLength);
|
||||
|
||||
// Attempt to set baudrate and apply settings
|
||||
if(icsneo_setBaudrate(selectedDevice, ICSNEO_NETID_HSCAN, 250000) && icsneo_settingsApply(selectedDevice)) {
|
||||
printf("Successfully set HS CAN baudrate for %s to 250k!\n\n", productDescription);
|
||||
} else {
|
||||
printf("Failed to set HS CAN for %s to 250k!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Set HS CAN to 500k
|
||||
case 'J':
|
||||
case 'j':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
printf("No devices found! Please scan for new devices.\n\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
char productDescription[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
|
||||
size_t descriptionLength = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
icsneo_describeDevice(selectedDevice, productDescription, &descriptionLength);
|
||||
|
||||
// Attempt to set baudrate and apply settings
|
||||
if(icsneo_setBaudrate(selectedDevice, ICSNEO_NETID_HSCAN, 500000) && icsneo_settingsApply(selectedDevice)) {
|
||||
printf("Successfully set HS CAN baudrate for %s to 500k!\n\n", productDescription);
|
||||
} else {
|
||||
printf("Failed to set HS CAN for %s to 500k!\n\n", productDescription);
|
||||
printLastError();
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Exit
|
||||
case 'X':
|
||||
case 'x':
|
||||
printf("Exiting program\n");
|
||||
return !icsneo_close();
|
||||
default:
|
||||
printf("Unexpected input, exiting!\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
cmake_minimum_required(VERSION 3.2)
|
||||
project(libicsneocpp-interactive-example VERSION 0.2.0)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# Add an include directory like so if desired
|
||||
#include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
|
||||
# Enable Warnings
|
||||
if(MSVC)
|
||||
# Force to always compile with W4
|
||||
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
||||
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
||||
endif()
|
||||
else() #if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-switch -Wno-unknown-pragmas")
|
||||
endif()
|
||||
|
||||
# Add libicsneo, usually a git submodule within your project works well
|
||||
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../third-party/libicsneo ${CMAKE_CURRENT_BINARY_DIR}/third-party/libicsneo)
|
||||
|
||||
add_executable(libicsneocpp-interactive-example src/InteractiveExample.cpp)
|
||||
target_link_libraries(libicsneocpp-interactive-example icsneocpp)
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
# libicsneo C++ Example
|
||||
|
||||
This is an example console application which uses libicsneo to connect to an Intrepid Control Systems hardware device. It has both interactive and simple examples for sending and receiving CAN & CAN FD traffic.
|
||||
|
||||
## Building
|
||||
|
||||
This example shows how to use the C++ version of libicsneo with CMake. It will build libicsneo along with your project.
|
||||
|
||||
First, you need to clone the repository onto your local machine. Run:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/intrepidcs/libicsneo-examples --recursive
|
||||
```
|
||||
|
||||
Alternatively, if you cloned without the `--recursive flag`, you must enter the `libicsneo-examples` folder and run the following:
|
||||
|
||||
```shell
|
||||
git submodule update --recursive --init
|
||||
```
|
||||
|
||||
If you haven't done this, `third-party/libicsneo` will be empty and you won't be able to build!
|
||||
|
||||
### Windows using Visual Studio 2017+
|
||||
|
||||
1. Launch Visual Studio and open the `libicsneo-examples` folder.
|
||||
2. Choose `File->Open->CMake...`
|
||||
3. Navigate to the `libicsneocpp-example` folder and select the `CMakeLists.txt` there.
|
||||
4. Visual Studio will process the CMake project.
|
||||
5. Choose the dropdown attached to the green play button (labelled "select startup item...") in the toolbar.
|
||||
6. Select `libicsneocpp-interactive-example.exe` or `libicsneocpp-simple-example.exe`
|
||||
7. Press the green play button to compile and run the example.
|
||||
|
||||
### Ubuntu 18.04 LTS
|
||||
|
||||
1. Install dependencies with `sudo apt update` then `sudo apt install build-essential cmake libusb-1.0-0-dev libpcap0.8-dev`
|
||||
2. Change directories to your `libicsneo-examples/libicsneocpp-example` folder and create a build directory by running `mkdir -p build`
|
||||
3. Enter the build directory with `cd build`
|
||||
4. Run `cmake ..` to generate your Makefile.
|
||||
* Hint! Running `cmake -DCMAKE_BUILD_TYPE=Debug ..` will generate the proper scripts to build debug, and `cmake -DCMAKE_BUILD_TYPE=Release ..` will generate the proper scripts to build with all optimizations on.
|
||||
5. Run `make libicsneocpp-interactive-example` to build.
|
||||
* Hint! Speed up your build by using multiple processors! Use `make libicsneocpp-interactive-example -j#` where `#` is the number of cores/threads your system has plus one. For instance, on a standard 8 thread Intel i7, you might use `-j9` for an ~8x speedup.
|
||||
6. Now run `sudo ./libicsneocpp-interactive-example` to run the example.
|
||||
* Hint! In order to run without sudo, you will need to set up the udev rules. Copy `libicsneo-examples/third-party/libicsneo/99-intrepidcs.rules` to `/etc/udev/rules.d`, then run `udevadm control --reload-rules && udevadm trigger` afterwards. While the program will still run without setting up these rules, it will fail to open any devices.
|
||||
7. If you wish to run the simple example instead, replace any instances of "interactive" with "simple" in steps 5 and 6.
|
||||
|
||||
### macOS
|
||||
|
||||
Instructions coming soon™
|
||||
|
|
@ -0,0 +1,618 @@
|
|||
#include <iostream>
|
||||
#include <string>
|
||||
#include <ctype.h>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
// Include icsneo/icsneocpp.h to access library functions
|
||||
#include "icsneo/icsneocpp.h"
|
||||
|
||||
/**
|
||||
* \brief Prints all current known devices to output in the following format:
|
||||
* [num] DeviceType SerialNum Connected: Yes/No Online: Yes/No Msg Polling: On/Off
|
||||
*
|
||||
* If any devices could not be described due to an error, they will appear in the following format:
|
||||
* Description for device num not available!
|
||||
*/
|
||||
void printAllDevices(const std::vector<std::shared_ptr<icsneo::Device>>& devices) {
|
||||
if(devices.size() == 0) {
|
||||
std::cout << "No devices found! Please scan for new devices." << std::endl;
|
||||
}
|
||||
|
||||
int index = 1;
|
||||
for(auto device : devices) {
|
||||
std::cout << "[" << index << "] " << device->describe() << "\tConnected: " << (device->isOpen() ? "Yes\t" : "No\t");
|
||||
std::cout << "Online: " << (device->isOnline() ? "Yes\t" : "No\t");
|
||||
std::cout << "Msg Polling: " << (device->isMessagePollingEnabled() ? "On" : "Off") << std::endl;
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
// Prints the main menu options to output
|
||||
void printMainMenu() {
|
||||
std::cout << "Press the letter next to the function you want to use:" << std::endl;
|
||||
std::cout << "A - List all devices" << std::endl;
|
||||
std::cout << "B - Find all devices" << std::endl;
|
||||
std::cout << "C - Open/close" << std::endl;
|
||||
std::cout << "D - Go online/offline" << std::endl;
|
||||
std::cout << "E - Enable/disable message polling" << std::endl;
|
||||
std::cout << "F - Get messages" << std::endl;
|
||||
std::cout << "G - Send messages" << std::endl;
|
||||
std::cout << "H - Get events" << std::endl;
|
||||
std::cout << "I - Set HS CAN to 250K" << std::endl;
|
||||
std::cout << "J - Set LSFT CAN to 250K" << std::endl;
|
||||
std::cout << "K - Add/Remove a message callback" << std::endl;
|
||||
std::cout << "X - Exit" << std::endl;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Gets all current API events (info and warning level) and prints them to output
|
||||
* Flushes all current API events, meaning future calls (barring any new events) will not detect any further API events
|
||||
*/
|
||||
void printAPIEvents() {
|
||||
// Match all events
|
||||
auto events = icsneo::GetEvents(icsneo::EventFilter());
|
||||
|
||||
if(events.size() == 1) {
|
||||
std::cout << "1 API event found!" << std::endl;
|
||||
} else {
|
||||
std::cout << events.size() << " API events found!" << std::endl;
|
||||
}
|
||||
|
||||
for(auto event : events) {
|
||||
std::cout << event << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Gets all current API warnings and prints them to output
|
||||
* Flushes all current API warnings, meaning future calls (barring any new warnings) will not detect any further API warnings
|
||||
*/
|
||||
void printAPIWarnings() {
|
||||
// Match all warning events, regardless of device
|
||||
auto warnings = icsneo::GetEvents(icsneo::EventFilter(nullptr, icsneo::APIEvent::Severity::EventWarning));
|
||||
|
||||
if(warnings.size() == 1) {
|
||||
std::cout << "1 API warning found!" << std::endl;
|
||||
} else {
|
||||
std::cout << warnings.size() << " API warnings found!" << std::endl;
|
||||
}
|
||||
|
||||
for(auto warning : warnings) {
|
||||
std::cout << warning << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Gets all current device events and prints them to output.
|
||||
* Flushes all current device events, meaning future calls (barring any new events) will not detect any further device events for this device
|
||||
*/
|
||||
void printDeviceEvents(std::shared_ptr<icsneo::Device> device) {
|
||||
// Match all events for the specified device
|
||||
auto events = icsneo::GetEvents(icsneo::EventFilter(device.get()));
|
||||
|
||||
if(events.size() == 1) {
|
||||
std::cout << "1 device event found!" << std::endl;
|
||||
} else {
|
||||
std::cout << events.size() << " device events found!" << std::endl;
|
||||
}
|
||||
|
||||
for(auto event : events) {
|
||||
std::cout << event << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Gets all current device warnings and prints them to output.
|
||||
* Flushes all current device warnings, meaning future calls (barring any new warnings) will not detect any further device warnings for this device
|
||||
*/
|
||||
void printDeviceWarnings(std::shared_ptr<icsneo::Device> device) {
|
||||
// Match all warning events for the specified device
|
||||
auto events = icsneo::GetEvents(icsneo::EventFilter(device.get(), icsneo::APIEvent::Severity::EventWarning));
|
||||
|
||||
if(events.size() == 1) {
|
||||
std::cout << "1 device warning found!" << std::endl;
|
||||
} else {
|
||||
std::cout << events.size() << " device warnings found!" << std::endl;
|
||||
}
|
||||
|
||||
for(auto event : events) {
|
||||
std::cout << event << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Used to check character inputs for correctness (if they are found in an expected list)
|
||||
* \param[in] numArgs the number of possible options for the expected character
|
||||
* \param[in] ... the possible options for the expected character
|
||||
* \returns the entered character
|
||||
*
|
||||
* This function repeatedly prompts the user for input until a matching input is entered
|
||||
* Example usage:
|
||||
* char input = getCharInput(std::vector<char> {'F', 'u', 'b', 'a', 'r'});
|
||||
*/
|
||||
char getCharInput(std::vector<char> allowed) {
|
||||
bool found = false;
|
||||
std::string input;
|
||||
|
||||
while(!found) {
|
||||
std::cin >> input;
|
||||
|
||||
if(input.length() == 1) {
|
||||
for(char compare : allowed) {
|
||||
if(compare == input.c_str()[0]) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!found) {
|
||||
std::cout << "Input did not match expected options. Please try again." << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
return input.c_str()[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Prompts the user to select a device from the list of currently known devices
|
||||
* \returns a pointer to the device in devices[] selected by the user
|
||||
* Requires an input from 1-9, so a maximum of 9 devices are supported
|
||||
*/
|
||||
std::shared_ptr<icsneo::Device> selectDevice(const std::vector<std::shared_ptr<icsneo::Device>>& from) {
|
||||
printf("Please select a device:\n");
|
||||
printAllDevices(from);
|
||||
printf("\n");
|
||||
|
||||
int selectedDeviceNum = 10;
|
||||
|
||||
while((size_t) selectedDeviceNum > from.size()) {
|
||||
char deviceSelection = getCharInput(std::vector<char> {'1', '2', '3', '4', '5', '6', '7', '8', '9'});
|
||||
selectedDeviceNum = deviceSelection - '0';
|
||||
if((size_t) selectedDeviceNum > from.size()) {
|
||||
std::cout << "Selected device out of range!" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << std::endl;
|
||||
|
||||
return from.at(selectedDeviceNum - 1);
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::cout << "Running libicsneo " << icsneo::GetVersion() << std::endl << std::endl;
|
||||
|
||||
size_t msgLimit = 50000;
|
||||
std::vector<std::shared_ptr<icsneo::Device>> devices;
|
||||
std::map<std::shared_ptr<icsneo::Device>, std::vector<int>> callbacks;
|
||||
std::shared_ptr<icsneo::Device> selectedDevice;
|
||||
|
||||
while(true) {
|
||||
printMainMenu();
|
||||
std::cout << std::endl;
|
||||
char input = getCharInput(std::vector<char> {'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k', 'X', 'x'});
|
||||
std::cout << std::endl;
|
||||
|
||||
switch(input) {
|
||||
// List current devices
|
||||
case 'A':
|
||||
case 'a':
|
||||
printAllDevices(devices);
|
||||
std::cout << std::endl;
|
||||
break;
|
||||
// Find all devices
|
||||
case 'B':
|
||||
case 'b':
|
||||
{
|
||||
devices = icsneo::FindAllDevices();
|
||||
|
||||
for(auto device : devices) {
|
||||
callbacks.insert({device, std::vector<int>()});
|
||||
}
|
||||
|
||||
if(devices.size() == 1) {
|
||||
std::cout << "1 device found!" << std::endl;
|
||||
} else {
|
||||
std::cout << devices.size() << " devices found!" << std::endl;
|
||||
}
|
||||
printAllDevices(devices);
|
||||
std::cout << std::endl;
|
||||
break;
|
||||
}
|
||||
// Open/Close
|
||||
case 'C':
|
||||
case 'c':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(devices.size() == 0) {
|
||||
std::cout << "No devices found! Please scan for new devices." << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice(devices);
|
||||
|
||||
std::cout << "Would you like to open or close " << selectedDevice->describe() << "?" << std::endl;
|
||||
std::cout << "[1] Open" << std::endl << "[2] Close" << std::endl << "[3] Cancel" << std::endl << std::endl;
|
||||
char selection = getCharInput(std::vector<char> {'1', '2', '3'});
|
||||
std::cout << std::endl;
|
||||
|
||||
switch(selection) {
|
||||
case '1':
|
||||
if(selectedDevice->open()) {
|
||||
std::cout << selectedDevice->describe() << " successfully opened!" << std::endl << std::endl;
|
||||
} else {
|
||||
std::cout << selectedDevice->describe() << " failed to open!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to close the device
|
||||
if(selectedDevice->close()) {
|
||||
std::cout << "Successfully closed " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
selectedDevice = NULL;
|
||||
} else {
|
||||
std::cout << "Failed to close " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
std::cout << "Canceling!" << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Go online/offline
|
||||
case 'D':
|
||||
case 'd':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(devices.size() == 0) {
|
||||
std::cout << "No devices found! Please scan for new devices." << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice(devices);
|
||||
|
||||
std::cout << "Would you like to have " << selectedDevice->describe() << " go online or offline?" << std::endl;
|
||||
std::cout << "[1] Online" << std::endl << "[2] Offline" << std::endl << "[3] Cancel" << std::endl << std::endl;
|
||||
char selection = getCharInput(std::vector<char> {'1', '2', '3'});
|
||||
std::cout << std::endl;
|
||||
|
||||
switch(selection) {
|
||||
case '1':
|
||||
// Attempt to have the selected device go online
|
||||
if(selectedDevice->goOnline()) {
|
||||
std::cout << selectedDevice->describe() << " successfully went online!" << std::endl << std::endl;
|
||||
} else {
|
||||
std::cout << selectedDevice->describe() << " failed to go online!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
std::cout << std::endl;
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to go offline
|
||||
if(selectedDevice->goOffline()) {
|
||||
std::cout << selectedDevice->describe() << " successfully went offline!" << std::endl << std::endl;
|
||||
} else {
|
||||
std::cout << selectedDevice->describe() << " failed to go offline!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
std::cout << std::endl;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
std::cout << "Canceling!" << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Enable/disable message polling
|
||||
case 'E':
|
||||
case 'e':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(devices.size() == 0) {
|
||||
std::cout << "No devices found! Please scan for new devices." << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice(devices);
|
||||
|
||||
std::cout << "Would you like to enable or disable message polling for " << selectedDevice->describe() << "?" << std::endl;
|
||||
std::cout << "[1] Enable" << std::endl << "[2] Disable" << std::endl << "[3] Cancel" << std::endl << std::endl;
|
||||
char selection = getCharInput(std::vector<char> {'1', '2', '3'});
|
||||
std::cout << std::endl;
|
||||
|
||||
switch(selection) {
|
||||
case '1':
|
||||
// Attempt to enable message polling
|
||||
if(selectedDevice->enableMessagePolling()) {
|
||||
std::cout << "Successfully enabled message polling for " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
} else {
|
||||
std::cout << "Failed to enable message polling for " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
std::cout << std::endl;
|
||||
}
|
||||
// Manually setting the polling message limit as done below is optional
|
||||
// It will default to 20k if not set
|
||||
selectedDevice->setPollingMessageLimit(50000);
|
||||
if(selectedDevice->getPollingMessageLimit() == 50000) {
|
||||
std::cout << "Successfully set polling message limit for " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
} else {
|
||||
std::cout << "Failed to set polling message limit for " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
std::cout << std::endl;
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to disable message polling
|
||||
if(selectedDevice->disableMessagePolling()) {
|
||||
std::cout << "Successfully disabled message polling for " << selectedDevice->describe() << "!" << std::endl;
|
||||
} else {
|
||||
std::cout << "Failed to disable message polling for " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
std::cout << std::endl;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
std::cout << "Canceling!" << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Get messages
|
||||
case 'F':
|
||||
case 'f':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(devices.size() == 0) {
|
||||
std::cout << "No devices found! Please scan for new devices." << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice(devices);
|
||||
|
||||
std::vector<std::shared_ptr<icsneo::Message>> msgs;
|
||||
|
||||
// Attempt to get messages, limiting the number of messages at once to 50,000
|
||||
// A third parameter of type std::chrono::milliseconds is also accepted if a timeout is desired
|
||||
if(!selectedDevice->getMessages(msgs, msgLimit)) {
|
||||
std::cout << "Failed to get messages for " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
std::cout << std::endl;
|
||||
break;
|
||||
}
|
||||
|
||||
if(msgs.size() == 1) {
|
||||
std::cout << "1 message received from " << selectedDevice->describe() << "!" << std::endl;
|
||||
} else {
|
||||
std::cout << msgs.size() << " messages received from " << selectedDevice->describe() << "!" << std::endl;
|
||||
}
|
||||
|
||||
// Print out the received messages
|
||||
for(auto msg : msgs) {
|
||||
switch(msg->network.getType()) {
|
||||
case icsneo::Network::Type::CAN:
|
||||
{
|
||||
// A message of type CAN is guaranteed to be a CANMessage, so we can static cast safely
|
||||
auto canMsg = std::static_pointer_cast<icsneo::CANMessage>(msg);
|
||||
std::cout << "\t0x" << std::setfill('0') << std::setw(3) << std::hex << (int) canMsg->arbid << " [" << canMsg->data.size() << "] " << std::dec;
|
||||
|
||||
for(auto data : canMsg->data) {
|
||||
std::cout << std::setfill('0') << std::setw(2) << std::hex << (int) data << " " << std::dec;
|
||||
}
|
||||
|
||||
std::cout << canMsg->timestamp << std::endl;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if(msg->network.getNetID() != icsneo::Network::NetID::Device) {
|
||||
std::cout << "\tMessage on netid " << msg->network.GetNetIDString(msg->network.getNetID()) << " with length " << msg->data.size() << std::endl;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
break;
|
||||
// Send messages
|
||||
case 'G':
|
||||
case 'g':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(devices.size() == 0) {
|
||||
std::cout << "No devices found! Please scan for new devices." << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice(devices);
|
||||
|
||||
std::cout << "Transmitting a normal CAN frame..." << std::endl;
|
||||
auto msg = std::make_shared<icsneo::CANMessage>();
|
||||
msg->network = icsneo::Network::NetID::HSCAN;
|
||||
msg->arbid = 0x120;
|
||||
msg->data.insert(msg->data.end(), {0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff});
|
||||
msg->isExtended = false;
|
||||
msg->isCANFD = false;
|
||||
|
||||
// Attempt to transmit the sample msg
|
||||
if(selectedDevice->transmit(msg)) {
|
||||
std::cout << "Message transmit successful!" << std::endl;
|
||||
} else {
|
||||
std::cout << "Failed to transmit message to " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
}
|
||||
|
||||
/** Example of CAN FD
|
||||
std::cout << "Transmitting an extended CAN FD frame... " << std::endl;
|
||||
auto txMessage = std::make_shared<icsneo::CANMessage>();
|
||||
txMessage->network = icsneo::Network::NetID::HSCAN;
|
||||
txMessage->arbid = 0x1C5001C5;
|
||||
txMessage->data.insert(txMessage->data.end(), {0xaa, 0xbb, 0xcc});
|
||||
// The DLC will come from the length of the data vector
|
||||
txMessage->isExtended = true;
|
||||
txMessage->isCANFD = true;
|
||||
|
||||
// Attempt to transmit the sample msg
|
||||
if(selectedDevice->transmit(txMessage)) {
|
||||
std::cout << "Extended CAN FD frame transmit successful!" << std::endl;
|
||||
} else {
|
||||
std::cout << "Failed to transmit extended CAN FD frame to " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
}
|
||||
*/
|
||||
|
||||
std::cout << std::endl;
|
||||
}
|
||||
break;
|
||||
// Get events
|
||||
case 'H':
|
||||
case 'h':
|
||||
{
|
||||
// Prints all events
|
||||
printAPIEvents();
|
||||
std::cout << std::endl;
|
||||
}
|
||||
break;
|
||||
// Set HS CAN to 250k
|
||||
case 'I':
|
||||
case 'i':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(devices.size() == 0) {
|
||||
std::cout << "No devices found! Please scan for new devices." << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice(devices);
|
||||
|
||||
// Attempt to set baudrate and apply settings
|
||||
if(selectedDevice->settings->setBaudrateFor(icsneo::Network::NetID::HSCAN, 250000) && selectedDevice->settings->apply()) {
|
||||
std::cout << "Successfully set HS CAN baudrate for " << selectedDevice->describe() << " to 250k!" << std::endl;
|
||||
} else {
|
||||
std::cout << "Failed to set HS CAN baudrate for " << selectedDevice->describe() << " to 250k!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
}
|
||||
std::cout << std::endl;
|
||||
}
|
||||
break;
|
||||
// Set LSFT CAN to 250k
|
||||
case 'J':
|
||||
case 'j':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(devices.size() == 0) {
|
||||
std::cout << "No devices found! Please scan for new devices." << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice(devices);
|
||||
|
||||
// Attempt to set baudrate and apply settings
|
||||
if(selectedDevice->settings->setBaudrateFor(icsneo::Network::NetID::LSFTCAN, 250000) && selectedDevice->settings->apply()) {
|
||||
std::cout << "Successfully set LSFT CAN baudrate for " << selectedDevice->describe() << " to 250k!" << std::endl;
|
||||
} else {
|
||||
std::cout << "Failed to set LSFT CAN baudrate for " << selectedDevice->describe() << " to 250k!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
}
|
||||
std::cout << std::endl;
|
||||
}
|
||||
break;
|
||||
// Add/Remove a message callback
|
||||
case 'K':
|
||||
case 'k':
|
||||
{
|
||||
// Select a device and get its description
|
||||
if(devices.size() == 0) {
|
||||
std::cout << "No devices found! Please scan for new devices." << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice(devices);
|
||||
|
||||
std::cout << "Would you like to add or remove a message callback for " << selectedDevice->describe() << "?" << std::endl;
|
||||
std::cout << "[1] Add" << std::endl << "[2] Remove" << std::endl << "[3] Cancel" << std::endl << std::endl;
|
||||
char selection = getCharInput(std::vector<char> {'1', '2', '3'});
|
||||
std::cout << std::endl;
|
||||
|
||||
switch(selection) {
|
||||
case '1':
|
||||
{
|
||||
// Shameless copy-paste from get messages above, demonstrating a callback
|
||||
int callbackID = selectedDevice->addMessageCallback(icsneo::MessageCallback([](std::shared_ptr<icsneo::Message> msg){
|
||||
switch(msg->network.getType()) {
|
||||
case icsneo::Network::Type::CAN:
|
||||
{
|
||||
// A message of type CAN is guaranteed to be a CANMessage, so we can static cast safely
|
||||
auto canMsg = std::static_pointer_cast<icsneo::CANMessage>(msg);
|
||||
std::cout << "\t0x" << std::setfill('0') << std::setw(3) << std::hex << (int) canMsg->arbid << " [" << canMsg->data.size() << "] " << std::dec;
|
||||
|
||||
for(auto data : canMsg->data) {
|
||||
std::cout << std::setfill('0') << std::setw(2) << std::hex << (int) data << " " << std::dec;
|
||||
}
|
||||
|
||||
std::cout << canMsg->timestamp << std::endl;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if(msg->network.getNetID() != icsneo::Network::NetID::Device) {
|
||||
std::cout << "\tMessage on netid " << msg->network.GetNetIDString(msg->network.getNetID()) << " with length " << msg->data.size() << std::endl;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}));
|
||||
|
||||
if(callbackID != -1) {
|
||||
std::cout << "Successfully added message callback to " << selectedDevice->describe() << "!" << std::endl;
|
||||
callbacks.find(selectedDevice)->second.push_back(callbackID);
|
||||
} else {
|
||||
std::cout << "Failed to add message callback to " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
{
|
||||
if(callbacks.find(selectedDevice)->second.size() == 0) {
|
||||
std::cout << "No callbacks found for " << selectedDevice->describe() << "!" << std::endl;
|
||||
break;
|
||||
} else {
|
||||
std::vector<char> allowed;
|
||||
|
||||
std::cout << "Which id would you like to remove?" << std::endl;
|
||||
for(int id : callbacks.find(selectedDevice)->second) {
|
||||
allowed.push_back(static_cast<char>(id) + '0');
|
||||
std::cout << "[" << id << "]" << std::endl;
|
||||
}
|
||||
std::cout << std::endl;
|
||||
|
||||
|
||||
int removeID = getCharInput(allowed) - '0';
|
||||
std::cout << std::endl;
|
||||
|
||||
if(selectedDevice->removeMessageCallback(removeID)) {
|
||||
std::cout << "Successfully removed callback id " << removeID << " from " << selectedDevice->describe() << "!" << std::endl;
|
||||
} else {
|
||||
std::cout << "Failed to remove message callback id " << removeID << " from " << selectedDevice->describe() << "!" << std::endl << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl;;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
std::cout << "Canceling!" << std::endl << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Exit
|
||||
case 'X':
|
||||
case 'x':
|
||||
printf("Exiting program\n");
|
||||
return 0;
|
||||
default:
|
||||
printf("Unexpected input, exiting!\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
cmake_minimum_required(VERSION 3.2)
|
||||
project(libicsneocpp-simple-example VERSION 0.2.0)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# Add an include directory like so if desired
|
||||
#include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
|
||||
# Enable Warnings
|
||||
if(MSVC)
|
||||
# Force to always compile with W4
|
||||
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
||||
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
||||
endif()
|
||||
else() #if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-switch -Wno-unknown-pragmas")
|
||||
endif()
|
||||
|
||||
# Add libicsneo, usually a git submodule within your project works well
|
||||
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../third-party/libicsneo ${CMAKE_CURRENT_BINARY_DIR}/third-party/libicsneo)
|
||||
|
||||
add_executable(libicsneocpp-simple-example src/SimpleExample.cpp)
|
||||
target_link_libraries(libicsneocpp-simple-example icsneocpp)
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
# libicsneo C++ Example
|
||||
|
||||
This is an example console application which uses libicsneo to connect to an Intrepid Control Systems hardware device. It has both interactive and simple examples for sending and receiving CAN & CAN FD traffic.
|
||||
|
||||
## Building
|
||||
|
||||
This example shows how to use the C++ version of libicsneo with CMake. It will build libicsneo along with your project.
|
||||
|
||||
First, you need to clone the repository onto your local machine. Run:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/intrepidcs/libicsneo-examples --recursive
|
||||
```
|
||||
|
||||
Alternatively, if you cloned without the `--recursive flag`, you must enter the `libicsneo-examples` folder and run the following:
|
||||
|
||||
```shell
|
||||
git submodule update --recursive --init
|
||||
```
|
||||
|
||||
If you haven't done this, `third-party/libicsneo` will be empty and you won't be able to build!
|
||||
|
||||
### Windows using Visual Studio 2017+
|
||||
|
||||
1. Launch Visual Studio and open the `libicsneo-examples` folder.
|
||||
2. Choose `File->Open->CMake...`
|
||||
3. Navigate to the `libicsneocpp-example` folder and select the `CMakeLists.txt` there.
|
||||
4. Visual Studio will process the CMake project.
|
||||
5. Choose the dropdown attached to the green play button (labelled "select startup item...") in the toolbar.
|
||||
6. Select `libicsneocpp-simple-example.exe`
|
||||
7. Press the green play button to compile and run the example.
|
||||
|
||||
### Ubuntu 18.04 LTS
|
||||
|
||||
1. Install dependencies with `sudo apt update` then `sudo apt install build-essential cmake libusb-1.0-0-dev libpcap0.8-dev`
|
||||
2. Change directories to your `libicsneo-examples/libicsneocpp-example` folder and create a build directory by running `mkdir -p build`
|
||||
3. Enter the build directory with `cd build`
|
||||
4. Run `cmake ..` to generate your Makefile.
|
||||
* Hint! Running `cmake -DCMAKE_BUILD_TYPE=Debug ..` will generate the proper scripts to build debug, and `cmake -DCMAKE_BUILD_TYPE=Release ..` will generate the proper scripts to build with all optimizations on.
|
||||
5. Run `make libicsneocpp-interactive-example` to build.
|
||||
* Hint! Speed up your build by using multiple processors! Use `make libicsneocpp-interactive-example -j#` where `#` is the number of cores/threads your system has plus one. For instance, on a standard 8 thread Intel i7, you might use `-j9` for an ~8x speedup.
|
||||
6. Now run `sudo ./libicsneocpp-interactive-example` to run the example.
|
||||
* Hint! In order to run without sudo, you will need to set up the udev rules. Copy `libicsneo-examples/third-party/libicsneo/99-intrepidcs.rules` to `/etc/udev/rules.d`, then run `udevadm control --reload-rules && udevadm trigger` afterwards. While the program will still run without setting up these rules, it will fail to open any devices.
|
||||
7. If you wish to run the simple example instead, replace any instances of "interactive" with "simple" in steps 5 and 6.
|
||||
|
||||
### macOS
|
||||
|
||||
Instructions coming soon™
|
||||
|
|
@ -0,0 +1,248 @@
|
|||
#include <iostream>
|
||||
#include <iomanip>
|
||||
#include <thread>
|
||||
#include <chrono>
|
||||
|
||||
#include "icsneo/icsneocpp.h"
|
||||
|
||||
int main() {
|
||||
// Print version
|
||||
std::cout << "Running libicsneo " << icsneo::GetVersion() << std::endl;
|
||||
|
||||
std::cout<< "Supported devices:" << std::endl;
|
||||
for(auto& dev : icsneo::GetSupportedDevices())
|
||||
std::cout << '\t' << dev << std::endl;
|
||||
|
||||
std::cout << "\nFinding devices... " << std::flush;
|
||||
auto devices = icsneo::FindAllDevices(); // This is type std::vector<std::shared_ptr<icsneo::Device>>
|
||||
// You now hold the shared_ptrs for these devices, you are considered to "own" these devices from a memory perspective
|
||||
std::cout << "OK, " << devices.size() << " device" << (devices.size() == 1 ? "" : "s") << " found" << std::endl;
|
||||
|
||||
// List off the devices
|
||||
for(auto& device : devices)
|
||||
std::cout << '\t' << device->getType() << " - " << device->getSerial() << " @ Handle " << device->getNeoDevice().handle << std::endl;
|
||||
std::cout << std::endl;
|
||||
|
||||
for(auto& device : devices) {
|
||||
std::cout << "Connecting to " << device->getType() << ' ' << device->getSerial() << "... ";
|
||||
bool ret = device->open();
|
||||
if(!ret) { // Failed to open
|
||||
std::cout << "FAIL" << std::endl;
|
||||
std::cout << icsneo::GetLastError() << std::endl << std::endl;
|
||||
continue;
|
||||
}
|
||||
std::cout << "OK" << std::endl;
|
||||
|
||||
std::cout << "\tGetting HSCAN Baudrate... ";
|
||||
int64_t baud = device->settings->getBaudrateFor(icsneo::Network::NetID::HSCAN);
|
||||
if(baud < 0)
|
||||
std::cout << "FAIL" << std::endl;
|
||||
else
|
||||
std::cout << "OK, " << (baud/1000) << "kbit/s" << std::endl;
|
||||
|
||||
std::cout << "\tSetting HSCAN to operate at 125kbit/s... ";
|
||||
ret = device->settings->setBaudrateFor(icsneo::Network::NetID::HSCAN, 125000);
|
||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||
|
||||
// Changes to the settings do not take affect until you call settings->apply()!
|
||||
// When you get the baudrate here, you're reading what the device is currently operating on
|
||||
std::cout << "\tGetting HSCAN Baudrate... (expected to be unchanged) ";
|
||||
baud = device->settings->getBaudrateFor(icsneo::Network::NetID::HSCAN);
|
||||
if(baud < 0)
|
||||
std::cout << "FAIL" << std::endl;
|
||||
else
|
||||
std::cout << "OK, " << (baud/1000) << "kbit/s" << std::endl;
|
||||
|
||||
std::cout << "\tGetting HSCANFD Baudrate... ";
|
||||
baud = device->settings->getFDBaudrateFor(icsneo::Network::NetID::HSCAN);
|
||||
if(baud < 0)
|
||||
std::cout << "FAIL" << std::endl;
|
||||
else
|
||||
std::cout << "OK, " << (baud/1000) << "kbit/s" << std::endl;
|
||||
|
||||
std::cout << "\tSetting HSCANFD to operate at 8Mbit/s... ";
|
||||
ret = device->settings->setFDBaudrateFor(icsneo::Network::NetID::HSCAN, 8000000);
|
||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||
|
||||
std::cout << "\tGetting HSCANFD Baudrate... (expected to be unchanged) ";
|
||||
baud = device->settings->getFDBaudrateFor(icsneo::Network::NetID::HSCAN);
|
||||
if(baud < 0)
|
||||
std::cout << "FAIL" << std::endl;
|
||||
else
|
||||
std::cout << "OK, " << (baud/1000) << "kbit/s" << std::endl;
|
||||
|
||||
// Setting settings temporarily does not need to be done before committing to device EEPROM
|
||||
// It's done here to test both functionalities
|
||||
// Setting temporarily will keep these settings until another send/commit is called or a power cycle occurs
|
||||
std::cout << "\tSetting settings temporarily... ";
|
||||
ret = device->settings->apply(true);
|
||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||
|
||||
// Now that we have applied, we expect that our operating baudrates have changed
|
||||
std::cout << "\tGetting HSCAN Baudrate... ";
|
||||
baud = device->settings->getBaudrateFor(icsneo::Network::NetID::HSCAN);
|
||||
if(baud < 0)
|
||||
std::cout << "FAIL" << std::endl;
|
||||
else
|
||||
std::cout << "OK, " << (baud/1000) << "kbit/s" << std::endl;
|
||||
|
||||
std::cout << "\tGetting HSCANFD Baudrate... ";
|
||||
baud = device->settings->getFDBaudrateFor(icsneo::Network::NetID::HSCAN);
|
||||
if(baud < 0)
|
||||
std::cout << "FAIL" << std::endl;
|
||||
else
|
||||
std::cout << "OK, " << (baud/1000) << "kbit/s" << std::endl;
|
||||
|
||||
std::cout << "\tSetting settings permanently... ";
|
||||
ret = device->settings->apply();
|
||||
std::cout << (ret ? "OK\n\n" : "FAIL\n\n");
|
||||
|
||||
// The concept of going "online" tells the connected device to start listening, i.e. ACKing traffic and giving it to us
|
||||
std::cout << "\tGoing online... ";
|
||||
ret = device->goOnline();
|
||||
if(!ret) {
|
||||
std::cout << "FAIL" << std::endl;
|
||||
device->close();
|
||||
continue;
|
||||
}
|
||||
std::cout << "OK" << std::endl;
|
||||
|
||||
// A real application would just check the result of icsneo_goOnline() rather than calling this
|
||||
// This function is intended to be called later on if needed
|
||||
std::cout << "\tChecking online status... ";
|
||||
ret = device->isOnline();
|
||||
if(!ret) {
|
||||
std::cout << "FAIL\n" << std::endl;
|
||||
device->close();
|
||||
continue;
|
||||
}
|
||||
std::cout << "OK" << std::endl;
|
||||
|
||||
// Now we can either register a handler (or multiple) for messages coming in
|
||||
// or we can enable message polling, and then call device->getMessages periodically
|
||||
|
||||
// We're actually going to do both here, so first enable message polling
|
||||
device->enableMessagePolling();
|
||||
device->setPollingMessageLimit(100000); // Feel free to set a limit if you like, the default is a conservative 20k
|
||||
// Keep in mind that 20k messages comes quickly at high bus loads!
|
||||
|
||||
// We can also register a handler
|
||||
std::cout << "\tStreaming messages in for 3 seconds... " << std::endl;
|
||||
// MessageCallbacks are powerful, and can filter on things like ArbID for you. See the documentation
|
||||
auto handler = device->addMessageCallback(icsneo::MessageCallback([](std::shared_ptr<icsneo::Message> message) {
|
||||
switch(message->network.getType()) {
|
||||
case icsneo::Network::Type::CAN: {
|
||||
// A message of type CAN is guaranteed to be a CANMessage, so we can static cast safely
|
||||
auto canMessage = std::static_pointer_cast<icsneo::CANMessage>(message);
|
||||
|
||||
std::cout << "\t\tCAN ";
|
||||
if(canMessage->isCANFD) {
|
||||
std::cout << "FD ";
|
||||
if(!canMessage->baudrateSwitch)
|
||||
std::cout << "(No BRS) ";
|
||||
}
|
||||
|
||||
// Print the Arbitration ID
|
||||
std::cout << "0x" << std::hex << std::setw(canMessage->isExtended ? 8 : 3) << std::setfill('0') << canMessage->arbid;
|
||||
|
||||
// Print the DLC
|
||||
std::cout << std::dec << " [" << canMessage->data.size() << "] ";
|
||||
|
||||
// Print the data
|
||||
for(auto& databyte : canMessage->data)
|
||||
std::cout << std::hex << std::setw(2) << (uint32_t)databyte << ' ';
|
||||
|
||||
// Print the timestamp
|
||||
std::cout << std::dec << '(' << canMessage->timestamp << " ns since 1/1/2007)\n";
|
||||
break;
|
||||
}
|
||||
case icsneo::Network::Type::Ethernet: {
|
||||
auto ethMessage = std::static_pointer_cast<icsneo::EthernetMessage>(message);
|
||||
|
||||
std::cout << "\t\t" << ethMessage->network << " Frame - " << std::dec << ethMessage->data.size() << " bytes on wire\n";
|
||||
std::cout << "\t\t Timestamped:\t"<< ethMessage->timestamp << " ns since 1/1/2007\n";
|
||||
|
||||
// The MACAddress may be printed directly or accessed with the `data` member
|
||||
std::cout << "\t\t Source:\t" << ethMessage->getSourceMAC() << "\n";
|
||||
std::cout << "\t\t Destination:\t" << ethMessage->getDestinationMAC();
|
||||
|
||||
// Print the data
|
||||
for(size_t i = 0; i < ethMessage->data.size(); i++) {
|
||||
if(i % 8 == 0)
|
||||
std::cout << "\n\t\t " << std::hex << std::setw(4) << std::setfill('0') << i << '\t';
|
||||
std::cout << std::hex << std::setw(2) << (uint32_t)ethMessage->data[i] << ' ';
|
||||
}
|
||||
|
||||
std::cout << std::dec << std::endl;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
// Ignoring non-network messages
|
||||
break;
|
||||
}
|
||||
}));
|
||||
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
device->removeMessageCallback(handler); // Removing the callback means it will not be called anymore
|
||||
|
||||
// Since we're using message polling, we can also get the messages which have come in for the past 3 seconds that way
|
||||
// We could simply call getMessages and it would return a vector of message pointers to us
|
||||
//auto messages = device->getMessages();
|
||||
|
||||
// For speed when calling repeatedly, we can also preallocate and continually reuse a vector
|
||||
std::vector<std::shared_ptr<icsneo::Message>> messages;
|
||||
messages.reserve(100000);
|
||||
device->getMessages(messages);
|
||||
std::cout << "\t\tGot " << messages.size() << " messages while polling" << std::endl;
|
||||
|
||||
// If we wanted to make sure it didn't grow and reallocate, we could also pass in a limit
|
||||
// If there are more messages than the limit, we can call getMessages repeatedly
|
||||
//device->getMessages(messages, 100);
|
||||
|
||||
// You are now the owner (or one of the owners, if multiple handlers are registered) of the shared_ptrs to the messages
|
||||
// This means that when you let them go out of scope or reuse the vector, the messages will be freed automatically
|
||||
|
||||
// We can transmit messages
|
||||
std::cout << "\tTransmitting an extended CAN FD frame... ";
|
||||
auto txMessage = std::make_shared<icsneo::CANMessage>();
|
||||
txMessage->network = icsneo::Network::NetID::HSCAN;
|
||||
txMessage->arbid = 0x1C5001C5;
|
||||
txMessage->data.insert(txMessage->data.end(), {0xaa, 0xbb, 0xcc});
|
||||
// The DLC will come from the length of the data vector
|
||||
txMessage->isExtended = true;
|
||||
txMessage->isCANFD = true;
|
||||
ret = device->transmit(txMessage); // This will return false if the device does not support CAN FD, or does not have HSCAN
|
||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||
|
||||
std::cout << "\tTransmitting an ethernet frame on OP (BR) Ethernet 2... ";
|
||||
auto ethTxMessage = std::make_shared<icsneo::EthernetMessage>();
|
||||
ethTxMessage->network = icsneo::Network::NetID::OP_Ethernet2;
|
||||
ethTxMessage->data.insert(ethTxMessage->data.end(), {
|
||||
0x00, 0xFC, 0x70, 0x00, 0x01, 0x02, /* Destination MAC */
|
||||
0x00, 0xFC, 0x70, 0x00, 0x01, 0x01, /* Source MAC */
|
||||
0x00, 0x00, /* Ether Type */
|
||||
0x01, 0xC5, 0x01, 0xC5 /* Payload (will automatically be padded on transmit unless you set `ethTxMessage->noPadding`) */
|
||||
});
|
||||
ret = device->transmit(ethTxMessage); // This will return false if the device does not support OP (BR) Ethernet 2
|
||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(50));
|
||||
|
||||
// Go offline, stop sending and receiving traffic
|
||||
std::cout << "\tGoing offline... ";
|
||||
ret = device->goOffline();
|
||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||
|
||||
// Apply default settings
|
||||
std::cout << "\tSetting default settings... ";
|
||||
ret = device->settings->applyDefaults(); // This will also write to the device
|
||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||
|
||||
std::cout << "\tDisconnecting... ";
|
||||
ret = device->close();
|
||||
std::cout << (ret ? "OK\n" : "FAIL\n") << std::endl;
|
||||
}
|
||||
|
||||
std::cout << "Press any key to continue..." << std::endl;
|
||||
std::cin.get();
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
cmake_minimum_required(VERSION 3.2)
|
||||
project(icsneocsharp VERSION 0.2.0)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# Add an include directory like so if desired
|
||||
#include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
|
||||
# Enable Warnings
|
||||
if(MSVC)
|
||||
# Force to always compile with W4
|
||||
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
||||
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
||||
endif()
|
||||
else() #if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-switch -Wno-unknown-pragmas")
|
||||
endif()
|
||||
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../third-party/libicsneo ${CMAKE_CURRENT_BINARY_DIR}/third-party/libicsneo)
|
||||
|
||||
add_library(icsneocsharp SHARED ${CMAKE_CURRENT_SOURCE_DIR}/csharp_wrap.c)
|
||||
target_link_libraries(icsneocsharp icsneoc)
|
||||
|
|
@ -0,0 +1,520 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace libicsneocsharp_example {
|
||||
class InteractiveExample {
|
||||
|
||||
private uint msgLimit = 50000;
|
||||
private neodevice_t selectedDevice;
|
||||
private List<neodevice_t> devices = new List<neodevice_t>();
|
||||
private uint numDevices = 0;
|
||||
|
||||
private void PrintAllDevices() {
|
||||
if(numDevices == 0) {
|
||||
System.Console.WriteLine("No devices found! Please scan for new devices.");
|
||||
}
|
||||
|
||||
for(int i = 0; i < numDevices; i++) {
|
||||
System.Text.StringBuilder description = new System.Text.StringBuilder(icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int maxLength = icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
|
||||
if(icsneocsharp.icsneo_describeDevice(devices[i], description, ref maxLength)) {
|
||||
System.Console.Write("[" + (i + 1) + "] " + description.ToString() + "\tConnected: ");
|
||||
|
||||
if(icsneocsharp.icsneo_isOpen(devices[i])) {
|
||||
System.Console.Write("Yes\t");
|
||||
} else System.Console.Write("No\t");
|
||||
|
||||
System.Console.Write("Online: ");
|
||||
if(icsneocsharp.icsneo_isOnline(devices[i])) {
|
||||
System.Console.Write("Yes\t");
|
||||
} else System.Console.Write("No\t");
|
||||
|
||||
System.Console.Write("Msg Polling: ");
|
||||
if(icsneocsharp.icsneo_isMessagePollingEnabled(devices[i])) {
|
||||
System.Console.Write("On\n");
|
||||
} else System.Console.Write("Off\n");
|
||||
} else {
|
||||
System.Console.WriteLine("Description for device " + (i + 1) + " not available!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private uint ScanNewDevices() {
|
||||
neodevice_t newDevices = icsneocsharp.new_neodevice_t_array(99);
|
||||
|
||||
int count = 10;
|
||||
|
||||
icsneocsharp.icsneo_findAllDevices(newDevices, ref count);
|
||||
|
||||
numDevices += (uint) count;
|
||||
|
||||
for(int i = 0; i < numDevices; i++) {
|
||||
devices.Add(icsneocsharp.neodevice_t_array_getitem(newDevices, i));
|
||||
}
|
||||
icsneocsharp.delete_neodevice_t_array(newDevices);
|
||||
return (uint) count;
|
||||
}
|
||||
|
||||
private void PrintMainMenu() {
|
||||
System.Console.WriteLine("Press the letter next to the function you want to use:");
|
||||
System.Console.WriteLine("A - List all devices");
|
||||
System.Console.WriteLine("B - Scan for new devices");
|
||||
System.Console.WriteLine("C - Open/close");
|
||||
System.Console.WriteLine("D - Go online/offline");
|
||||
System.Console.WriteLine("E - Enable/disable message polling");
|
||||
System.Console.WriteLine("F - Get messages");
|
||||
System.Console.WriteLine("G - Send message");
|
||||
System.Console.WriteLine("H - Get events");
|
||||
System.Console.WriteLine("I - Set HS CAN to 250K");
|
||||
System.Console.WriteLine("J - Set HS CAN to 500K");
|
||||
System.Console.WriteLine("X - Exit");
|
||||
}
|
||||
|
||||
void PrintLastError() {
|
||||
neoevent_t error = new neoevent_t();
|
||||
if(icsneocsharp.icsneo_getLastError(error))
|
||||
System.Console.WriteLine("Error 0x" + error.eventNumber + ": " + error.description);
|
||||
else
|
||||
System.Console.WriteLine("No errors found!");
|
||||
}
|
||||
|
||||
void PrintAPIEvents() {
|
||||
neoevent_t events = icsneocsharp.new_neoevent_t_array(99);
|
||||
int eventCount = 99;
|
||||
if(icsneocsharp.icsneo_getEvents(events, ref eventCount)) {
|
||||
if(eventCount == 1) {
|
||||
neoevent_t evt = icsneocsharp.neoevent_t_array_getitem(events, 0);
|
||||
System.Console.WriteLine("1 API event found!");
|
||||
System.Console.WriteLine("Event 0x" + evt.eventNumber + ": " + evt.description);
|
||||
} else {
|
||||
System.Console.WriteLine(eventCount + " API events found!");
|
||||
for(var i = 0; i < eventCount; ++i) {
|
||||
neoevent_t evt = icsneocsharp.neoevent_t_array_getitem(events, i);
|
||||
System.Console.WriteLine("Event 0x" + evt.eventNumber + ": " + evt.description);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
System.Console.WriteLine("Failed to get API events!");
|
||||
}
|
||||
icsneocsharp.delete_neoevent_t_array(events);
|
||||
}
|
||||
|
||||
void PrintDeviceEvents(neodevice_t device) {
|
||||
neoevent_t events = icsneocsharp.new_neoevent_t_array(99);
|
||||
int eventCount = 99;
|
||||
if(icsneocsharp.icsneo_getDeviceEvents(device, events, ref eventCount)) {
|
||||
if(eventCount == 1) {
|
||||
neoevent_t evt = icsneocsharp.neoevent_t_array_getitem(events, 0);
|
||||
System.Console.WriteLine("1 device event found!");
|
||||
System.Console.WriteLine("Event 0x" + evt.eventNumber + ": " + evt.description);
|
||||
} else {
|
||||
System.Console.WriteLine(eventCount + " device events found!");
|
||||
for(var i = 0; i < eventCount; ++i) {
|
||||
neoevent_t evt = icsneocsharp.neoevent_t_array_getitem(events, i);
|
||||
System.Console.WriteLine("Event 0x" + evt.eventNumber + ": " + evt.description);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
System.Console.WriteLine("Failed to get API events!");
|
||||
}
|
||||
icsneocsharp.delete_neoevent_t_array(events);
|
||||
}
|
||||
|
||||
private char GetCharInput(List<char> allowed) {
|
||||
bool found = false;
|
||||
char key = '0';
|
||||
while(!found) {
|
||||
key = System.Console.ReadKey().KeyChar;
|
||||
System.Console.WriteLine();
|
||||
foreach(char compare in allowed) {
|
||||
if(compare == key) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!found) {
|
||||
System.Console.WriteLine("Input did not match expected options. Please try again.");
|
||||
}
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
neodevice_t SelectDevice() {
|
||||
System.Console.WriteLine("Please select a device:");
|
||||
PrintAllDevices();
|
||||
System.Console.WriteLine();
|
||||
|
||||
int selectedDeviceNum = 10;
|
||||
while(selectedDeviceNum > numDevices) {
|
||||
char deviceSelection = GetCharInput(new List<char> { '1', '2', '3', '4', '5', '6', '7', '8', '9' });
|
||||
selectedDeviceNum = (int)char.GetNumericValue(deviceSelection);
|
||||
if(selectedDeviceNum > numDevices) {
|
||||
System.Console.WriteLine("Selected device out of range!");
|
||||
}
|
||||
}
|
||||
|
||||
System.Console.WriteLine();
|
||||
|
||||
return devices[selectedDeviceNum - 1];
|
||||
}
|
||||
|
||||
public void Run() {
|
||||
neoversion_t version = icsneocsharp.icsneo_getVersion();
|
||||
System.Console.WriteLine("ICS icsneocsharp.dll version " + version.major + "." + version.minor + "." + version.patch);
|
||||
System.Console.WriteLine();
|
||||
|
||||
while(true) {
|
||||
PrintMainMenu();
|
||||
System.Console.WriteLine();
|
||||
char input = GetCharInput(new List<char> { 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'X', 'x' });
|
||||
System.Console.WriteLine();
|
||||
switch(input) {
|
||||
// List current devices
|
||||
case 'A':
|
||||
goto case 'a';
|
||||
case 'a':
|
||||
PrintAllDevices();
|
||||
System.Console.WriteLine();
|
||||
break;
|
||||
// Scan for new devices
|
||||
case 'B':
|
||||
goto case 'b';
|
||||
case 'b': {
|
||||
var numNewDevices = ScanNewDevices();
|
||||
if(numNewDevices == 1) {
|
||||
System.Console.WriteLine("1 new device found!");
|
||||
} else {
|
||||
System.Console.WriteLine(numNewDevices + " new devices found!");
|
||||
}
|
||||
PrintAllDevices();
|
||||
System.Console.WriteLine();
|
||||
break;
|
||||
}
|
||||
// Open/close a device
|
||||
case 'C':
|
||||
goto case 'c';
|
||||
case 'c': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.Console.WriteLine("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = SelectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
System.Text.StringBuilder description = new System.Text.StringBuilder(icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int maxLength = icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
|
||||
icsneocsharp.icsneo_describeDevice(selectedDevice, description, ref maxLength);
|
||||
|
||||
System.Console.WriteLine("Would you like to open or close " + description + "?");
|
||||
System.Console.WriteLine("[1] Open\n[2] Close\n[3] Cancel\n");
|
||||
|
||||
char option = GetCharInput(new List<char> { '1', '2', '3' });
|
||||
System.Console.WriteLine();
|
||||
|
||||
switch(option) {
|
||||
case '1':
|
||||
// Attempt to open the selected device
|
||||
if(icsneocsharp.icsneo_openDevice(selectedDevice)) {
|
||||
System.Console.WriteLine(description + " successfully opened!\n");
|
||||
} else {
|
||||
System.Console.WriteLine(description + " failed to open!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to close the device
|
||||
if(icsneocsharp.icsneo_closeDevice(selectedDevice)) {
|
||||
numDevices--;
|
||||
System.Console.WriteLine("Successfully closed " + description + "!\n");
|
||||
devices.Remove(selectedDevice);
|
||||
selectedDevice = null;
|
||||
} else {
|
||||
System.Console.WriteLine("Failed to close " + description.ToString() + "!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
System.Console.WriteLine("Canceling!\n");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Go online/offline
|
||||
case 'D':
|
||||
goto case 'd';
|
||||
case 'd': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.Console.WriteLine("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = SelectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
System.Text.StringBuilder description = new System.Text.StringBuilder(icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int maxLength = icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
|
||||
icsneocsharp.icsneo_describeDevice(selectedDevice, description, ref maxLength);
|
||||
|
||||
System.Console.WriteLine("Would you like to have " + description.ToString() + " go online or offline?");
|
||||
System.Console.WriteLine("[1] Online\n[2] Offline\n[3] Cancel\n");
|
||||
|
||||
char option = GetCharInput(new List<char> { '1', '2', '3' });
|
||||
System.Console.WriteLine();
|
||||
|
||||
switch(option) {
|
||||
case '1':
|
||||
// Attempt to go online
|
||||
if(icsneocsharp.icsneo_goOnline(selectedDevice)) {
|
||||
System.Console.WriteLine(description + " successfully went online!\n");
|
||||
} else {
|
||||
System.Console.WriteLine(description + " failed to go online!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to go offline
|
||||
if(icsneocsharp.icsneo_goOffline(selectedDevice)) {
|
||||
System.Console.WriteLine(description + " successfully went offline!\n");
|
||||
} else {
|
||||
System.Console.WriteLine(description + " failed to go offline!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
System.Console.WriteLine("Canceling!\n");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Enable/disable message polling
|
||||
case 'E':
|
||||
goto case 'e';
|
||||
case 'e': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.Console.WriteLine("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = SelectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
System.Text.StringBuilder description = new System.Text.StringBuilder(icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int maxLength = icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
|
||||
icsneocsharp.icsneo_describeDevice(selectedDevice, description, ref maxLength);
|
||||
|
||||
System.Console.WriteLine("Would you like to enable or disable message polling for " + description.ToString() + "?");
|
||||
System.Console.WriteLine("[1] Enable\n[2] Disable\n[3] Cancel\n");
|
||||
|
||||
char option = GetCharInput(new List<char> { '1', '2', '3' });
|
||||
System.Console.WriteLine();
|
||||
|
||||
switch(option) {
|
||||
case '1':
|
||||
// Attempt to enable message polling
|
||||
if(icsneocsharp.icsneo_enableMessagePolling(selectedDevice)) {
|
||||
System.Console.WriteLine("Successfully enabled message polling for " + description.ToString() + "!\n");
|
||||
} else {
|
||||
System.Console.WriteLine("Failed to enable message polling for " + description.ToString() + "!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
|
||||
// Manually setting the polling message limit as done below is optional
|
||||
// It will default to 20k if not set
|
||||
// Attempt to set the polling message limit
|
||||
if(icsneocsharp.icsneo_setPollingMessageLimit(selectedDevice, msgLimit)) {
|
||||
System.Console.WriteLine("Successfully set message polling limit for " + description.ToString() + "!\n");
|
||||
} else {
|
||||
System.Console.WriteLine("Failed to set polling message limit for " + description.ToString() + "!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to disable message polling
|
||||
if(icsneocsharp.icsneo_disableMessagePolling(selectedDevice)) {
|
||||
System.Console.WriteLine("Successfully disabled message polling for " + description.ToString() + "!\n");
|
||||
} else {
|
||||
System.Console.WriteLine("Failed to disable message polling for " + description.ToString() + "!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
System.Console.WriteLine("Canceling!\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'F':
|
||||
goto case 'f';
|
||||
case 'f': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.Console.WriteLine("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = SelectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
System.Text.StringBuilder description = new System.Text.StringBuilder(icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int maxLength = icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
|
||||
icsneocsharp.icsneo_describeDevice(selectedDevice, description, ref maxLength);
|
||||
|
||||
// Prepare the neomessage_t array and size for reading in the messages
|
||||
neomessage_t msgs = icsneocsharp.new_neomessage_t_array((int)msgLimit);
|
||||
int msgCount = (int)msgLimit;
|
||||
|
||||
if(!icsneocsharp.icsneo_getMessages(selectedDevice, msgs, ref msgCount, 0)) {
|
||||
System.Console.WriteLine("Failed to get messages for " + description.ToString() + "!\n");
|
||||
PrintLastError();
|
||||
icsneocsharp.delete_neomessage_t_array(msgs);
|
||||
System.Console.WriteLine();
|
||||
break;
|
||||
}
|
||||
|
||||
if(msgCount == 1) {
|
||||
System.Console.WriteLine("1 message received from " + description.ToString() + "!");
|
||||
} else {
|
||||
System.Console.WriteLine(msgCount + " messages received from " + description.ToString() + "!");
|
||||
}
|
||||
|
||||
// Print out the received messages
|
||||
for(int i = 0; i < msgCount; i++) {
|
||||
neomessage_t msg = icsneocsharp.neomessage_t_array_getitem(msgs, i);
|
||||
if(msg.type == icsneocsharp.ICSNEO_NETWORK_TYPE_CAN) {
|
||||
System.Console.Write("\t0x" + "{0:x}" + " [" + msg.length + "] ", icsneocsharp.neomessage_can_t_cast(msg).arbid);
|
||||
for(int j = 0; j < msg.length; j++) {
|
||||
System.Console.Write("{0:x} ", icsneocsharp.neomessage_can_t_cast(msg).data[j]);
|
||||
}
|
||||
System.Console.WriteLine("(" + msg.timestamp + ")");
|
||||
} else {
|
||||
if(msg.netid != 0)
|
||||
System.Console.WriteLine("\tMessage on netid " + msg.netid + " with length " + msg.length);
|
||||
}
|
||||
}
|
||||
icsneocsharp.delete_neomessage_t_array(msgs);
|
||||
break;
|
||||
}
|
||||
// Send message
|
||||
case 'G':
|
||||
goto case 'g';
|
||||
case 'g': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.Console.WriteLine("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = SelectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
System.Text.StringBuilder description = new System.Text.StringBuilder(icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int maxLength = icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
|
||||
icsneocsharp.icsneo_describeDevice(selectedDevice, description, ref maxLength);
|
||||
|
||||
// Start generating sample msg
|
||||
neomessage_can_t msg = new neomessage_can_t();
|
||||
msg.arbid = 0x120;
|
||||
msg.length = 6;
|
||||
msg.netid = (ushort)icsneocsharp.ICSNEO_NETID_HSCAN;
|
||||
msg.data = new byte[6] { 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff };
|
||||
msg.status.canfdFDF = 0;
|
||||
msg.status.extendedFrame = 0;
|
||||
msg.status.canfdBRS = 0;
|
||||
// End generating sample msg
|
||||
|
||||
// Attempt to transmit the sample msg
|
||||
if(icsneocsharp.icsneo_transmit(selectedDevice, icsneocsharp.from_can_neomessage_t_cast(msg))) {
|
||||
System.Console.WriteLine("Message transmit successful!");
|
||||
} else {
|
||||
System.Console.WriteLine("Failed to transmit message to " + description.ToString() + "!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Get events
|
||||
case 'H':
|
||||
goto case 'h';
|
||||
case 'h':
|
||||
PrintAPIEvents();
|
||||
System.Console.WriteLine();
|
||||
break;
|
||||
// Set HS CAN to 250k
|
||||
case 'I':
|
||||
goto case 'i';
|
||||
case 'i': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.Console.WriteLine("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = SelectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
System.Text.StringBuilder description = new System.Text.StringBuilder(icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int maxLength = icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
|
||||
icsneocsharp.icsneo_describeDevice(selectedDevice, description, ref maxLength);
|
||||
|
||||
// Attempt to set baudrate and apply settings
|
||||
if(icsneocsharp.icsneo_setBaudrate(selectedDevice, (ushort)icsneocsharp.ICSNEO_NETID_HSCAN, 250000) && icsneocsharp.icsneo_settingsApply(selectedDevice)) {
|
||||
System.Console.WriteLine("Successfully set HS CAN baudrate for " + description.ToString() + "to 250k!\n");
|
||||
} else {
|
||||
System.Console.WriteLine("Failed to set HS CAN for " + description.ToString() + " to 250k!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Set HS CAN to 500k
|
||||
case 'J':
|
||||
goto case 'j';
|
||||
case 'j': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.Console.WriteLine("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = SelectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
System.Text.StringBuilder description = new System.Text.StringBuilder(icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int maxLength = icsneocsharp.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
|
||||
|
||||
icsneocsharp.icsneo_describeDevice(selectedDevice, description, ref maxLength);
|
||||
|
||||
// Attempt to set baudrate and apply settings
|
||||
if(icsneocsharp.icsneo_setBaudrate(selectedDevice, (ushort)icsneocsharp.ICSNEO_NETID_HSCAN, 500000) && icsneocsharp.icsneo_settingsApply(selectedDevice)) {
|
||||
System.Console.WriteLine("Successfully set HS CAN baudrate for " + description.ToString() + "to 500k!\n");
|
||||
} else {
|
||||
System.Console.WriteLine("Failed to set HS CAN for " + description.ToString() + " to 500k!\n");
|
||||
PrintLastError();
|
||||
System.Console.WriteLine();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'X':
|
||||
goto case 'x';
|
||||
case 'x':
|
||||
System.Console.WriteLine("Exiting program");
|
||||
return;
|
||||
default:
|
||||
System.Console.WriteLine("Unexpected input, exiting!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
namespace libicsneocsharp_example {
|
||||
class Program {
|
||||
static void Main(string[] args) {
|
||||
InteractiveExample example = new InteractiveExample();
|
||||
example.Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
# libicsneo C# Example
|
||||
|
||||
This is an example console application that uses the icsneocsharp library to control an Intrepid Control Systems hardware device.
|
||||
|
||||
## Cloning
|
||||
|
||||
This will create a copy of the repository on your local machine.
|
||||
|
||||
Run:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/intrepidcs/libicsneo-examples --recursive
|
||||
```
|
||||
|
||||
Alternatively, if you cloned without the `--recursive` flag, you must enter the `libicsneo-examples` folder and run the following:
|
||||
|
||||
```shell
|
||||
git submodule update --recursive --init
|
||||
```
|
||||
|
||||
If you haven't done this, `third-party/libicsneo` will be empty and you won't be able to build!
|
||||
|
||||
## Windows using Visual Studio 2017+
|
||||
|
||||
### Building the DLLs
|
||||
|
||||
#### icsneoc
|
||||
|
||||
First, we are going to build the icsneoc library into a .dll file that is used by the C# wrapper to access the library functions.
|
||||
|
||||
1. Launch Visual Studio and open the `libicsneo-examples` folder.
|
||||
2. Choose `File->Open->Cmake...`
|
||||
3. Navigate to `third-party/libicsneo` and select the `CMakeLists.txt` there.
|
||||
4. Visual Studio will process the CMake project.
|
||||
5. Select `Build->Rebuild All`
|
||||
6. Visual Studio will generate the `icsneoc.dll` file, which can then be found by selecting `Project->Cmake Cache (x64-Debug Only)->Open in Explorer`. If the file cannot be found, search in `libicsneo-examples/third-party/libicsneo/out/build/x64-Debug` and double-check that the build succeeded in step 5.
|
||||
7. Move the `icsneoc.dll` file to the `/C/Windows/System32` folder.
|
||||
|
||||
#### icsneocsharp
|
||||
|
||||
Next, we are going to build the wrapper functions into a .dll file that is used to access the library functions in C#.
|
||||
|
||||
1. Launch a terminal window and change directories into `libicsneo-examples/libicsneocsharp-example`, then create a build directory by running `mkdir -p build`
|
||||
2. Enter the build directory with `cd build`
|
||||
3. Run `cmake ..`
|
||||
4. Run `cmake --build .`
|
||||
5. The `icsneocsharp.dll` file will be generated in `libicsneo-examples/libicsneocsharp-example/build/Debug`
|
||||
6. Move the `icsneocsharp.dll` file to the `/C/Windows/System32` folder.
|
||||
|
||||
### Building the example program
|
||||
|
||||
1. Choose `File->Open->Project/Solution...`
|
||||
2. Navigate to `libicsneo-examples/libicsneocsharp-example` and select the `libicsneocsharp-example.sln` there.
|
||||
3. Visual Studio will process the project.
|
||||
4. Select `Build->Rebuild Solution`
|
||||
5. Click on the dropdown arrow attached to the green play button (labelled "Select Startup Item") and select `libicsneocsharp-example`
|
||||
6. Click on the green play button to run the example.
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class SWIGTYPE_p_time_t {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
|
||||
internal SWIGTYPE_p_time_t(global::System.IntPtr cPtr, bool futureUse) {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_time_t() {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_time_t obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class SWIGTYPE_p_unsigned_char {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
|
||||
internal SWIGTYPE_p_unsigned_char(global::System.IntPtr cPtr, bool futureUse) {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_unsigned_char() {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_unsigned_char obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class SWIGTYPE_p_unsigned_int {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
|
||||
internal SWIGTYPE_p_unsigned_int(global::System.IntPtr cPtr, bool futureUse) {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_unsigned_int() {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_unsigned_int obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class SWIGTYPE_p_unsigned_short {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
|
||||
internal SWIGTYPE_p_unsigned_short(global::System.IntPtr cPtr, bool futureUse) {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_unsigned_short() {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_unsigned_short obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class SWIGTYPE_p_void {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
|
||||
internal SWIGTYPE_p_void(global::System.IntPtr cPtr, bool futureUse) {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_void() {
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_void obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
%module icsneocsharp
|
||||
%include <windows.i>
|
||||
%include <typemaps.i>
|
||||
%include <stdint.i>
|
||||
%include <carrays.i>
|
||||
%include <arrays_csharp.i>
|
||||
|
||||
#define DLLExport
|
||||
|
||||
%typemap(ctype) uint8_t const *data "unsigned char *"
|
||||
%typemap(imtype, out="System.IntPtr") uint8_t const *data "byte[]"
|
||||
%typemap(cstype) uint8_t const *data "byte[]"
|
||||
|
||||
%typemap(in) uint8_t const *data %{
|
||||
$1 = $input;
|
||||
%}
|
||||
|
||||
%typemap(csvarin) uint8_t const *data %{
|
||||
set {
|
||||
icsneocsharpPINVOKE.$csclazznamedata_set(swigCPtr, value);
|
||||
}
|
||||
%}
|
||||
|
||||
%typemap(csvarout, excode=SWIGEXCODE2) uint8_t const *data %{
|
||||
get {
|
||||
byte[] ret = new byte[this.length];
|
||||
System.IntPtr data = $imcall;
|
||||
System.Runtime.InteropServices.Marshal.Copy(data, ret, 0, (int)this.length)$excode;
|
||||
return ret;
|
||||
}
|
||||
%}
|
||||
|
||||
%typemap(ctype) char *str "char *"
|
||||
%typemap(imtype) char *str "System.Text.StringBuilder"
|
||||
%typemap(cstype) char *str "System.Text.StringBuilder"
|
||||
|
||||
%{
|
||||
#include "icsneo/icsneoc.h"
|
||||
%}
|
||||
|
||||
%apply int *INOUT {size_t *};
|
||||
|
||||
%ignore icsneo_addMessageCallback;
|
||||
%ignore icsneo_removeMessageCallback;
|
||||
%ignore icsneo_addEventCallback;
|
||||
%ignore icsneo_removeEventCallback;
|
||||
|
||||
%include "icsneo/icsneoc.h"
|
||||
%include "icsneo/device/neodevice.h"
|
||||
%include "icsneo/communication/message/neomessage.h"
|
||||
%include "icsneo/device/devicetype.h"
|
||||
%include "icsneo/api/version.h"
|
||||
%include "icsneo/api/event.h"
|
||||
%include "icsneo/communication/network.h"
|
||||
|
||||
%inline %{
|
||||
static neomessage_can_t* neomessage_can_t_cast(neomessage_t* msg) {
|
||||
return (neomessage_can_t*) msg;
|
||||
}
|
||||
|
||||
static neomessage_eth_t* neomessage_eth_t_cast(neomessage_t* msg) {
|
||||
return (neomessage_eth_t*) msg;
|
||||
}
|
||||
|
||||
static neomessage_t* from_can_neomessage_t_cast(neomessage_can_t* msg) {
|
||||
return (neomessage_t*) msg;
|
||||
}
|
||||
|
||||
static neomessage_t* from_eth_neomessage_t_cast(neomessage_eth_t* msg) {
|
||||
return (neomessage_t*) msg;
|
||||
}
|
||||
%}
|
||||
|
||||
%array_functions(neodevice_t, neodevice_t_array);
|
||||
%array_functions(neoevent_t, neoevent_t_array);
|
||||
%array_functions(neomessage_t, neomessage_t_array);
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,426 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class icsneocsharp {
|
||||
public static void icsneo_findAllDevices(neodevice_t devices, ref int count) {
|
||||
icsneocsharpPINVOKE.icsneo_findAllDevices(neodevice_t.getCPtr(devices), ref count);
|
||||
}
|
||||
|
||||
public static void icsneo_freeUnconnectedDevices() {
|
||||
icsneocsharpPINVOKE.icsneo_freeUnconnectedDevices();
|
||||
}
|
||||
|
||||
public static bool icsneo_serialNumToString(uint num, System.Text.StringBuilder str, ref int count) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_serialNumToString(num, str, ref count);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static uint icsneo_serialStringToNum(System.Text.StringBuilder str) {
|
||||
uint ret = icsneocsharpPINVOKE.icsneo_serialStringToNum(str);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_isValidNeoDevice(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_isValidNeoDevice(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_openDevice(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_openDevice(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_closeDevice(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_closeDevice(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_isOpen(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_isOpen(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_goOnline(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_goOnline(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_goOffline(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_goOffline(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_isOnline(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_isOnline(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_enableMessagePolling(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_enableMessagePolling(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_disableMessagePolling(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_disableMessagePolling(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_isMessagePollingEnabled(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_isMessagePollingEnabled(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_getMessages(neodevice_t device, neomessage_t messages, ref int items, ulong timeout) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_getMessages(neodevice_t.getCPtr(device), neomessage_t.getCPtr(messages), ref items, timeout);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static uint icsneo_getPollingMessageLimit(neodevice_t device) {
|
||||
uint ret = icsneocsharpPINVOKE.icsneo_getPollingMessageLimit(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_setPollingMessageLimit(neodevice_t device, uint newLimit) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_setPollingMessageLimit(neodevice_t.getCPtr(device), newLimit);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_getProductName(neodevice_t device, System.Text.StringBuilder str, ref int maxLength) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_getProductName(neodevice_t.getCPtr(device), str, ref maxLength);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_getProductNameForType(uint type, System.Text.StringBuilder str, ref int maxLength) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_getProductNameForType(type, str, ref maxLength);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_settingsRefresh(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_settingsRefresh(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_settingsApply(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_settingsApply(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_settingsApplyTemporary(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_settingsApplyTemporary(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_settingsApplyDefaults(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_settingsApplyDefaults(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_settingsApplyDefaultsTemporary(neodevice_t device) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_settingsApplyDefaultsTemporary(neodevice_t.getCPtr(device));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static int icsneo_settingsReadStructure(neodevice_t device, SWIGTYPE_p_void structure, uint structureSize) {
|
||||
int ret = icsneocsharpPINVOKE.icsneo_settingsReadStructure(neodevice_t.getCPtr(device), SWIGTYPE_p_void.getCPtr(structure), structureSize);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_settingsApplyStructure(neodevice_t device, SWIGTYPE_p_void structure, uint structureSize) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_settingsApplyStructure(neodevice_t.getCPtr(device), SWIGTYPE_p_void.getCPtr(structure), structureSize);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_settingsApplyStructureTemporary(neodevice_t device, SWIGTYPE_p_void structure, uint structureSize) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_settingsApplyStructureTemporary(neodevice_t.getCPtr(device), SWIGTYPE_p_void.getCPtr(structure), structureSize);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static long icsneo_getBaudrate(neodevice_t device, ushort netid) {
|
||||
long ret = icsneocsharpPINVOKE.icsneo_getBaudrate(neodevice_t.getCPtr(device), netid);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_setBaudrate(neodevice_t device, ushort netid, long newBaudrate) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_setBaudrate(neodevice_t.getCPtr(device), netid, newBaudrate);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static long icsneo_getFDBaudrate(neodevice_t device, ushort netid) {
|
||||
long ret = icsneocsharpPINVOKE.icsneo_getFDBaudrate(neodevice_t.getCPtr(device), netid);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_setFDBaudrate(neodevice_t device, ushort netid, long newBaudrate) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_setFDBaudrate(neodevice_t.getCPtr(device), netid, newBaudrate);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_transmit(neodevice_t device, neomessage_t message) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_transmit(neodevice_t.getCPtr(device), neomessage_t.getCPtr(message));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_transmitMessages(neodevice_t device, neomessage_t messages, uint count) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_transmitMessages(neodevice_t.getCPtr(device), neomessage_t.getCPtr(messages), count);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void icsneo_setWriteBlocks(neodevice_t device, bool blocks) {
|
||||
icsneocsharpPINVOKE.icsneo_setWriteBlocks(neodevice_t.getCPtr(device), blocks);
|
||||
}
|
||||
|
||||
public static bool icsneo_describeDevice(neodevice_t device, System.Text.StringBuilder str, ref int maxLength) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_describeDevice(neodevice_t.getCPtr(device), str, ref maxLength);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static neoversion_t icsneo_getVersion() {
|
||||
neoversion_t ret = new neoversion_t(icsneocsharpPINVOKE.icsneo_getVersion(), true);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_getEvents(neoevent_t events, ref int size) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_getEvents(neoevent_t.getCPtr(events), ref size);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_getDeviceEvents(neodevice_t device, neoevent_t events, ref int size) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_getDeviceEvents(neodevice_t.getCPtr(device), neoevent_t.getCPtr(events), ref size);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_getLastError(neoevent_t error) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_getLastError(neoevent_t.getCPtr(error));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void icsneo_discardAllEvents() {
|
||||
icsneocsharpPINVOKE.icsneo_discardAllEvents();
|
||||
}
|
||||
|
||||
public static void icsneo_discardDeviceEvents(neodevice_t device) {
|
||||
icsneocsharpPINVOKE.icsneo_discardDeviceEvents(neodevice_t.getCPtr(device));
|
||||
}
|
||||
|
||||
public static void icsneo_setEventLimit(uint newLimit) {
|
||||
icsneocsharpPINVOKE.icsneo_setEventLimit(newLimit);
|
||||
}
|
||||
|
||||
public static uint icsneo_getEventLimit() {
|
||||
uint ret = icsneocsharpPINVOKE.icsneo_getEventLimit();
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_getSupportedDevices(SWIGTYPE_p_unsigned_int devices, ref int count) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_getSupportedDevices(SWIGTYPE_p_unsigned_int.getCPtr(devices), ref count);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static bool icsneo_getTimestampResolution(neodevice_t device, SWIGTYPE_p_unsigned_short resolution) {
|
||||
bool ret = icsneocsharpPINVOKE.icsneo_getTimestampResolution(neodevice_t.getCPtr(device), SWIGTYPE_p_unsigned_short.getCPtr(resolution));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static neomessage_can_t neomessage_can_t_cast(neomessage_t msg) {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_can_t_cast(neomessage_t.getCPtr(msg));
|
||||
neomessage_can_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neomessage_can_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static neomessage_eth_t neomessage_eth_t_cast(neomessage_t msg) {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_eth_t_cast(neomessage_t.getCPtr(msg));
|
||||
neomessage_eth_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neomessage_eth_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static neomessage_t from_can_neomessage_t_cast(neomessage_can_t msg) {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.from_can_neomessage_t_cast(neomessage_can_t.getCPtr(msg));
|
||||
neomessage_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neomessage_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static neomessage_t from_eth_neomessage_t_cast(neomessage_eth_t msg) {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.from_eth_neomessage_t_cast(neomessage_eth_t.getCPtr(msg));
|
||||
neomessage_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neomessage_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static neodevice_t new_neodevice_t_array(int nelements) {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.new_neodevice_t_array(nelements);
|
||||
neodevice_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neodevice_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void delete_neodevice_t_array(neodevice_t ary) {
|
||||
icsneocsharpPINVOKE.delete_neodevice_t_array(neodevice_t.getCPtr(ary));
|
||||
}
|
||||
|
||||
public static neodevice_t neodevice_t_array_getitem(neodevice_t ary, int index) {
|
||||
neodevice_t ret = new neodevice_t(icsneocsharpPINVOKE.neodevice_t_array_getitem(neodevice_t.getCPtr(ary), index), true);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void neodevice_t_array_setitem(neodevice_t ary, int index, neodevice_t value) {
|
||||
icsneocsharpPINVOKE.neodevice_t_array_setitem(neodevice_t.getCPtr(ary), index, neodevice_t.getCPtr(value));
|
||||
if (icsneocsharpPINVOKE.SWIGPendingException.Pending) throw icsneocsharpPINVOKE.SWIGPendingException.Retrieve();
|
||||
}
|
||||
|
||||
public static neoevent_t new_neoevent_t_array(int nelements) {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.new_neoevent_t_array(nelements);
|
||||
neoevent_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neoevent_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void delete_neoevent_t_array(neoevent_t ary) {
|
||||
icsneocsharpPINVOKE.delete_neoevent_t_array(neoevent_t.getCPtr(ary));
|
||||
}
|
||||
|
||||
public static neoevent_t neoevent_t_array_getitem(neoevent_t ary, int index) {
|
||||
neoevent_t ret = new neoevent_t(icsneocsharpPINVOKE.neoevent_t_array_getitem(neoevent_t.getCPtr(ary), index), true);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void neoevent_t_array_setitem(neoevent_t ary, int index, neoevent_t value) {
|
||||
icsneocsharpPINVOKE.neoevent_t_array_setitem(neoevent_t.getCPtr(ary), index, neoevent_t.getCPtr(value));
|
||||
if (icsneocsharpPINVOKE.SWIGPendingException.Pending) throw icsneocsharpPINVOKE.SWIGPendingException.Retrieve();
|
||||
}
|
||||
|
||||
public static neomessage_t new_neomessage_t_array(int nelements) {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.new_neomessage_t_array(nelements);
|
||||
neomessage_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neomessage_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void delete_neomessage_t_array(neomessage_t ary) {
|
||||
icsneocsharpPINVOKE.delete_neomessage_t_array(neomessage_t.getCPtr(ary));
|
||||
}
|
||||
|
||||
public static neomessage_t neomessage_t_array_getitem(neomessage_t ary, int index) {
|
||||
neomessage_t ret = new neomessage_t(icsneocsharpPINVOKE.neomessage_t_array_getitem(neomessage_t.getCPtr(ary), index), true);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void neomessage_t_array_setitem(neomessage_t ary, int index, neomessage_t value) {
|
||||
icsneocsharpPINVOKE.neomessage_t_array_setitem(neomessage_t.getCPtr(ary), index, neomessage_t.getCPtr(value));
|
||||
if (icsneocsharpPINVOKE.SWIGPendingException.Pending) throw icsneocsharpPINVOKE.SWIGPendingException.Retrieve();
|
||||
}
|
||||
|
||||
public static readonly int ICSNEO_DEVICETYPE_LONGEST_NAME = icsneocsharpPINVOKE.ICSNEO_DEVICETYPE_LONGEST_NAME_get();
|
||||
public static readonly int ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION = icsneocsharpPINVOKE.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION_get();
|
||||
public static readonly int ICSNEO_NETID_DEVICE = icsneocsharpPINVOKE.ICSNEO_NETID_DEVICE_get();
|
||||
public static readonly int ICSNEO_NETID_HSCAN = icsneocsharpPINVOKE.ICSNEO_NETID_HSCAN_get();
|
||||
public static readonly int ICSNEO_NETID_MSCAN = icsneocsharpPINVOKE.ICSNEO_NETID_MSCAN_get();
|
||||
public static readonly int ICSNEO_NETID_SWCAN = icsneocsharpPINVOKE.ICSNEO_NETID_SWCAN_get();
|
||||
public static readonly int ICSNEO_NETID_LSFTCAN = icsneocsharpPINVOKE.ICSNEO_NETID_LSFTCAN_get();
|
||||
public static readonly int ICSNEO_NETID_FORDSCP = icsneocsharpPINVOKE.ICSNEO_NETID_FORDSCP_get();
|
||||
public static readonly int ICSNEO_NETID_J1708 = icsneocsharpPINVOKE.ICSNEO_NETID_J1708_get();
|
||||
public static readonly int ICSNEO_NETID_AUX = icsneocsharpPINVOKE.ICSNEO_NETID_AUX_get();
|
||||
public static readonly int ICSNEO_NETID_J1850VPW = icsneocsharpPINVOKE.ICSNEO_NETID_J1850VPW_get();
|
||||
public static readonly int ICSNEO_NETID_ISO = icsneocsharpPINVOKE.ICSNEO_NETID_ISO_get();
|
||||
public static readonly int ICSNEO_NETID_ISOPIC = icsneocsharpPINVOKE.ICSNEO_NETID_ISOPIC_get();
|
||||
public static readonly int ICSNEO_NETID_MAIN51 = icsneocsharpPINVOKE.ICSNEO_NETID_MAIN51_get();
|
||||
public static readonly int ICSNEO_NETID_RED = icsneocsharpPINVOKE.ICSNEO_NETID_RED_get();
|
||||
public static readonly int ICSNEO_NETID_SCI = icsneocsharpPINVOKE.ICSNEO_NETID_SCI_get();
|
||||
public static readonly int ICSNEO_NETID_ISO2 = icsneocsharpPINVOKE.ICSNEO_NETID_ISO2_get();
|
||||
public static readonly int ICSNEO_NETID_ISO14230 = icsneocsharpPINVOKE.ICSNEO_NETID_ISO14230_get();
|
||||
public static readonly int ICSNEO_NETID_LIN = icsneocsharpPINVOKE.ICSNEO_NETID_LIN_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET1 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET1_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET2 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET2_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET3 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET3_get();
|
||||
public static readonly int ICSNEO_NETID_RED_EXT_MEMORYREAD = icsneocsharpPINVOKE.ICSNEO_NETID_RED_EXT_MEMORYREAD_get();
|
||||
public static readonly int ICSNEO_NETID_RED_INT_MEMORYREAD = icsneocsharpPINVOKE.ICSNEO_NETID_RED_INT_MEMORYREAD_get();
|
||||
public static readonly int ICSNEO_NETID_RED_DFLASH_READ = icsneocsharpPINVOKE.ICSNEO_NETID_RED_DFLASH_READ_get();
|
||||
public static readonly int ICSNEO_NETID_RED_SDCARD_READ = icsneocsharpPINVOKE.ICSNEO_NETID_RED_SDCARD_READ_get();
|
||||
public static readonly int ICSNEO_NETID_CAN_ERRBITS = icsneocsharpPINVOKE.ICSNEO_NETID_CAN_ERRBITS_get();
|
||||
public static readonly int ICSNEO_NETID_RED_DFLASH_WRITE_DONE = icsneocsharpPINVOKE.ICSNEO_NETID_RED_DFLASH_WRITE_DONE_get();
|
||||
public static readonly int ICSNEO_NETID_RED_WAVE_CAN1_LOGICAL = icsneocsharpPINVOKE.ICSNEO_NETID_RED_WAVE_CAN1_LOGICAL_get();
|
||||
public static readonly int ICSNEO_NETID_RED_WAVE_CAN2_LOGICAL = icsneocsharpPINVOKE.ICSNEO_NETID_RED_WAVE_CAN2_LOGICAL_get();
|
||||
public static readonly int ICSNEO_NETID_RED_WAVE_LIN1_LOGICAL = icsneocsharpPINVOKE.ICSNEO_NETID_RED_WAVE_LIN1_LOGICAL_get();
|
||||
public static readonly int ICSNEO_NETID_RED_WAVE_LIN2_LOGICAL = icsneocsharpPINVOKE.ICSNEO_NETID_RED_WAVE_LIN2_LOGICAL_get();
|
||||
public static readonly int ICSNEO_NETID_RED_WAVE_LIN1_ANALOG = icsneocsharpPINVOKE.ICSNEO_NETID_RED_WAVE_LIN1_ANALOG_get();
|
||||
public static readonly int ICSNEO_NETID_RED_WAVE_LIN2_ANALOG = icsneocsharpPINVOKE.ICSNEO_NETID_RED_WAVE_LIN2_ANALOG_get();
|
||||
public static readonly int ICSNEO_NETID_RED_WAVE_MISC_ANALOG = icsneocsharpPINVOKE.ICSNEO_NETID_RED_WAVE_MISC_ANALOG_get();
|
||||
public static readonly int ICSNEO_NETID_RED_WAVE_MISCDIO2_LOGICAL = icsneocsharpPINVOKE.ICSNEO_NETID_RED_WAVE_MISCDIO2_LOGICAL_get();
|
||||
public static readonly int ICSNEO_NETID_RED_NETWORK_COM_ENABLE_EX = icsneocsharpPINVOKE.ICSNEO_NETID_RED_NETWORK_COM_ENABLE_EX_get();
|
||||
public static readonly int ICSNEO_NETID_RED_NEOVI_NETWORK = icsneocsharpPINVOKE.ICSNEO_NETID_RED_NEOVI_NETWORK_get();
|
||||
public static readonly int ICSNEO_NETID_RED_READ_BAUD_SETTINGS = icsneocsharpPINVOKE.ICSNEO_NETID_RED_READ_BAUD_SETTINGS_get();
|
||||
public static readonly int ICSNEO_NETID_RED_OLDFORMAT = icsneocsharpPINVOKE.ICSNEO_NETID_RED_OLDFORMAT_get();
|
||||
public static readonly int ICSNEO_NETID_RED_SCOPE_CAPTURE = icsneocsharpPINVOKE.ICSNEO_NETID_RED_SCOPE_CAPTURE_get();
|
||||
public static readonly int ICSNEO_NETID_RED_HARDWARE_EXCEP = icsneocsharpPINVOKE.ICSNEO_NETID_RED_HARDWARE_EXCEP_get();
|
||||
public static readonly int ICSNEO_NETID_RED_GET_RTC = icsneocsharpPINVOKE.ICSNEO_NETID_RED_GET_RTC_get();
|
||||
public static readonly int ICSNEO_NETID_ISO3 = icsneocsharpPINVOKE.ICSNEO_NETID_ISO3_get();
|
||||
public static readonly int ICSNEO_NETID_HSCAN2 = icsneocsharpPINVOKE.ICSNEO_NETID_HSCAN2_get();
|
||||
public static readonly int ICSNEO_NETID_HSCAN3 = icsneocsharpPINVOKE.ICSNEO_NETID_HSCAN3_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET4 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET4_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET5 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET5_get();
|
||||
public static readonly int ICSNEO_NETID_ISO4 = icsneocsharpPINVOKE.ICSNEO_NETID_ISO4_get();
|
||||
public static readonly int ICSNEO_NETID_LIN2 = icsneocsharpPINVOKE.ICSNEO_NETID_LIN2_get();
|
||||
public static readonly int ICSNEO_NETID_LIN3 = icsneocsharpPINVOKE.ICSNEO_NETID_LIN3_get();
|
||||
public static readonly int ICSNEO_NETID_LIN4 = icsneocsharpPINVOKE.ICSNEO_NETID_LIN4_get();
|
||||
public static readonly int ICSNEO_NETID_RED_APP_ERROR = icsneocsharpPINVOKE.ICSNEO_NETID_RED_APP_ERROR_get();
|
||||
public static readonly int ICSNEO_NETID_CGI = icsneocsharpPINVOKE.ICSNEO_NETID_CGI_get();
|
||||
public static readonly int ICSNEO_NETID_RESET_STATUS = icsneocsharpPINVOKE.ICSNEO_NETID_RESET_STATUS_get();
|
||||
public static readonly int ICSNEO_NETID_FB_STATUS = icsneocsharpPINVOKE.ICSNEO_NETID_FB_STATUS_get();
|
||||
public static readonly int ICSNEO_NETID_APP_SIGNAL_STATUS = icsneocsharpPINVOKE.ICSNEO_NETID_APP_SIGNAL_STATUS_get();
|
||||
public static readonly int ICSNEO_NETID_READ_DATALINK_CM_TX_MSG = icsneocsharpPINVOKE.ICSNEO_NETID_READ_DATALINK_CM_TX_MSG_get();
|
||||
public static readonly int ICSNEO_NETID_READ_DATALINK_CM_RX_MSG = icsneocsharpPINVOKE.ICSNEO_NETID_READ_DATALINK_CM_RX_MSG_get();
|
||||
public static readonly int ICSNEO_NETID_LOGGING_OVERFLOW = icsneocsharpPINVOKE.ICSNEO_NETID_LOGGING_OVERFLOW_get();
|
||||
public static readonly int ICSNEO_NETID_READ_SETTINGS = icsneocsharpPINVOKE.ICSNEO_NETID_READ_SETTINGS_get();
|
||||
public static readonly int ICSNEO_NETID_HSCAN4 = icsneocsharpPINVOKE.ICSNEO_NETID_HSCAN4_get();
|
||||
public static readonly int ICSNEO_NETID_HSCAN5 = icsneocsharpPINVOKE.ICSNEO_NETID_HSCAN5_get();
|
||||
public static readonly int ICSNEO_NETID_RS232 = icsneocsharpPINVOKE.ICSNEO_NETID_RS232_get();
|
||||
public static readonly int ICSNEO_NETID_UART = icsneocsharpPINVOKE.ICSNEO_NETID_UART_get();
|
||||
public static readonly int ICSNEO_NETID_UART2 = icsneocsharpPINVOKE.ICSNEO_NETID_UART2_get();
|
||||
public static readonly int ICSNEO_NETID_UART3 = icsneocsharpPINVOKE.ICSNEO_NETID_UART3_get();
|
||||
public static readonly int ICSNEO_NETID_UART4 = icsneocsharpPINVOKE.ICSNEO_NETID_UART4_get();
|
||||
public static readonly int ICSNEO_NETID_SWCAN2 = icsneocsharpPINVOKE.ICSNEO_NETID_SWCAN2_get();
|
||||
public static readonly int ICSNEO_NETID_ETHERNET_DAQ = icsneocsharpPINVOKE.ICSNEO_NETID_ETHERNET_DAQ_get();
|
||||
public static readonly int ICSNEO_NETID_DATA_TO_HOST = icsneocsharpPINVOKE.ICSNEO_NETID_DATA_TO_HOST_get();
|
||||
public static readonly int ICSNEO_NETID_TEXTAPI_TO_HOST = icsneocsharpPINVOKE.ICSNEO_NETID_TEXTAPI_TO_HOST_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET6 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET6_get();
|
||||
public static readonly int ICSNEO_NETID_RED_VBAT = icsneocsharpPINVOKE.ICSNEO_NETID_RED_VBAT_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET7 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET7_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET8 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET8_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET9 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET9_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET10 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET10_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET11 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET11_get();
|
||||
public static readonly int ICSNEO_NETID_FLEXRAY1A = icsneocsharpPINVOKE.ICSNEO_NETID_FLEXRAY1A_get();
|
||||
public static readonly int ICSNEO_NETID_FLEXRAY1B = icsneocsharpPINVOKE.ICSNEO_NETID_FLEXRAY1B_get();
|
||||
public static readonly int ICSNEO_NETID_FLEXRAY2A = icsneocsharpPINVOKE.ICSNEO_NETID_FLEXRAY2A_get();
|
||||
public static readonly int ICSNEO_NETID_FLEXRAY2B = icsneocsharpPINVOKE.ICSNEO_NETID_FLEXRAY2B_get();
|
||||
public static readonly int ICSNEO_NETID_LIN5 = icsneocsharpPINVOKE.ICSNEO_NETID_LIN5_get();
|
||||
public static readonly int ICSNEO_NETID_FLEXRAY = icsneocsharpPINVOKE.ICSNEO_NETID_FLEXRAY_get();
|
||||
public static readonly int ICSNEO_NETID_FLEXRAY2 = icsneocsharpPINVOKE.ICSNEO_NETID_FLEXRAY2_get();
|
||||
public static readonly int ICSNEO_NETID_OP_ETHERNET12 = icsneocsharpPINVOKE.ICSNEO_NETID_OP_ETHERNET12_get();
|
||||
public static readonly int ICSNEO_NETID_MOST25 = icsneocsharpPINVOKE.ICSNEO_NETID_MOST25_get();
|
||||
public static readonly int ICSNEO_NETID_MOST50 = icsneocsharpPINVOKE.ICSNEO_NETID_MOST50_get();
|
||||
public static readonly int ICSNEO_NETID_MOST150 = icsneocsharpPINVOKE.ICSNEO_NETID_MOST150_get();
|
||||
public static readonly int ICSNEO_NETID_ETHERNET = icsneocsharpPINVOKE.ICSNEO_NETID_ETHERNET_get();
|
||||
public static readonly int ICSNEO_NETID_GMFSA = icsneocsharpPINVOKE.ICSNEO_NETID_GMFSA_get();
|
||||
public static readonly int ICSNEO_NETID_TCP = icsneocsharpPINVOKE.ICSNEO_NETID_TCP_get();
|
||||
public static readonly int ICSNEO_NETID_HSCAN6 = icsneocsharpPINVOKE.ICSNEO_NETID_HSCAN6_get();
|
||||
public static readonly int ICSNEO_NETID_HSCAN7 = icsneocsharpPINVOKE.ICSNEO_NETID_HSCAN7_get();
|
||||
public static readonly int ICSNEO_NETID_LIN6 = icsneocsharpPINVOKE.ICSNEO_NETID_LIN6_get();
|
||||
public static readonly int ICSNEO_NETID_LSFTCAN2 = icsneocsharpPINVOKE.ICSNEO_NETID_LSFTCAN2_get();
|
||||
public static readonly int ICSNEO_NETID_HW_COM_LATENCY_TEST = icsneocsharpPINVOKE.ICSNEO_NETID_HW_COM_LATENCY_TEST_get();
|
||||
public static readonly int ICSNEO_NETID_DEVICE_STATUS = icsneocsharpPINVOKE.ICSNEO_NETID_DEVICE_STATUS_get();
|
||||
public static readonly int ICSNEO_NETID_ANY = icsneocsharpPINVOKE.ICSNEO_NETID_ANY_get();
|
||||
public static readonly int ICSNEO_NETID_INVALID = icsneocsharpPINVOKE.ICSNEO_NETID_INVALID_get();
|
||||
public static readonly int ICSNEO_NETWORK_TYPE_INVALID = icsneocsharpPINVOKE.ICSNEO_NETWORK_TYPE_INVALID_get();
|
||||
public static readonly int ICSNEO_NETWORK_TYPE_INTERNAL = icsneocsharpPINVOKE.ICSNEO_NETWORK_TYPE_INTERNAL_get();
|
||||
public static readonly int ICSNEO_NETWORK_TYPE_CAN = icsneocsharpPINVOKE.ICSNEO_NETWORK_TYPE_CAN_get();
|
||||
public static readonly int ICSNEO_NETWORK_TYPE_LIN = icsneocsharpPINVOKE.ICSNEO_NETWORK_TYPE_LIN_get();
|
||||
public static readonly int ICSNEO_NETWORK_TYPE_FLEXRAY = icsneocsharpPINVOKE.ICSNEO_NETWORK_TYPE_FLEXRAY_get();
|
||||
public static readonly int ICSNEO_NETWORK_TYPE_MOST = icsneocsharpPINVOKE.ICSNEO_NETWORK_TYPE_MOST_get();
|
||||
public static readonly int ICSNEO_NETWORK_TYPE_ETHERNET = icsneocsharpPINVOKE.ICSNEO_NETWORK_TYPE_ETHERNET_get();
|
||||
public static readonly int ICSNEO_NETWORK_TYPE_ANY = icsneocsharpPINVOKE.ICSNEO_NETWORK_TYPE_ANY_get();
|
||||
public static readonly int ICSNEO_NETWORK_TYPE_OTHER = icsneocsharpPINVOKE.ICSNEO_NETWORK_TYPE_OTHER_get();
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,9 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
<RootNamespace>libicsneocsharp_example</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.28922.388
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libicsneocsharp-example", "libicsneocsharp-example.csproj", "{391FCF02-39BB-4C81-AE99-6785A7EA13A1}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{391FCF02-39BB-4C81-AE99-6785A7EA13A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{391FCF02-39BB-4C81-AE99-6785A7EA13A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{391FCF02-39BB-4C81-AE99-6785A7EA13A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{391FCF02-39BB-4C81-AE99-6785A7EA13A1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {9610ED61-57FA-46BD-A071-DC7DB7BAC3A9}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class neodevice_t : global::System.IDisposable {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
protected bool swigCMemOwn;
|
||||
|
||||
internal neodevice_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(neodevice_t obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
|
||||
~neodevice_t() {
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
Dispose(true);
|
||||
global::System.GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing) {
|
||||
lock(this) {
|
||||
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneocsharpPINVOKE.delete_neodevice_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_void device {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neodevice_t_device_set(swigCPtr, SWIGTYPE_p_void.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neodevice_t_device_get(swigCPtr);
|
||||
SWIGTYPE_p_void ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_void(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public int handle {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neodevice_t_handle_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
int ret = icsneocsharpPINVOKE.neodevice_t_handle_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint type {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neodevice_t_type_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neodevice_t_type_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public string serial {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neodevice_t_serial_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
string ret = icsneocsharpPINVOKE.neodevice_t_serial_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public neodevice_t() : this(icsneocsharpPINVOKE.new_neodevice_t(), true) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class neoevent_t : global::System.IDisposable {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
protected bool swigCMemOwn;
|
||||
|
||||
internal neoevent_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(neoevent_t obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
|
||||
~neoevent_t() {
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
Dispose(true);
|
||||
global::System.GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing) {
|
||||
lock(this) {
|
||||
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneocsharpPINVOKE.delete_neoevent_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string description {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoevent_t_description_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
string ret = icsneocsharpPINVOKE.neoevent_t_description_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_time_t timestamp {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoevent_t_timestamp_set(swigCPtr, SWIGTYPE_p_time_t.getCPtr(value));
|
||||
if (icsneocsharpPINVOKE.SWIGPendingException.Pending) throw icsneocsharpPINVOKE.SWIGPendingException.Retrieve();
|
||||
}
|
||||
get {
|
||||
SWIGTYPE_p_time_t ret = new SWIGTYPE_p_time_t(icsneocsharpPINVOKE.neoevent_t_timestamp_get(swigCPtr), true);
|
||||
if (icsneocsharpPINVOKE.SWIGPendingException.Pending) throw icsneocsharpPINVOKE.SWIGPendingException.Retrieve();
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint eventNumber {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoevent_t_eventNumber_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neoevent_t_eventNumber_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public byte severity {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoevent_t_severity_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
byte ret = icsneocsharpPINVOKE.neoevent_t_severity_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public string serial {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoevent_t_serial_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
string ret = icsneocsharpPINVOKE.neoevent_t_serial_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_unsigned_char reserved {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoevent_t_reserved_set(swigCPtr, SWIGTYPE_p_unsigned_char.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neoevent_t_reserved_get(swigCPtr);
|
||||
SWIGTYPE_p_unsigned_char ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public neoevent_t() : this(icsneocsharpPINVOKE.new_neoevent_t(), true) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class neomessage_can_t : global::System.IDisposable {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
protected bool swigCMemOwn;
|
||||
|
||||
internal neomessage_can_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(neomessage_can_t obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
|
||||
~neomessage_can_t() {
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
Dispose(true);
|
||||
global::System.GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing) {
|
||||
lock(this) {
|
||||
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneocsharpPINVOKE.delete_neomessage_can_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public neomessage_statusbitfield_t status {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_status_set(swigCPtr, neomessage_statusbitfield_t.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_can_t_status_get(swigCPtr);
|
||||
neomessage_statusbitfield_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neomessage_statusbitfield_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ulong timestamp {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_timestamp_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ulong ret = icsneocsharpPINVOKE.neomessage_can_t_timestamp_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ulong timestampReserved {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_timestampReserved_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ulong ret = icsneocsharpPINVOKE.neomessage_can_t_timestampReserved_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] data {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_data_set(swigCPtr, value);
|
||||
}
|
||||
|
||||
get {
|
||||
byte[] ret = new byte[this.length];
|
||||
System.IntPtr data = icsneocsharpPINVOKE.neomessage_can_t_data_get(swigCPtr);
|
||||
System.Runtime.InteropServices.Marshal.Copy(data, ret, 0, (int)this.length);
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public uint length {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_length_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_can_t_length_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint arbid {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_arbid_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_can_t_arbid_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ushort netid {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_netid_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ushort ret = icsneocsharpPINVOKE.neomessage_can_t_netid_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public byte type {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_type_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
byte ret = icsneocsharpPINVOKE.neomessage_can_t_type_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public byte dlcOnWire {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_dlcOnWire_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
byte ret = icsneocsharpPINVOKE.neomessage_can_t_dlcOnWire_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_unsigned_char reserved {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_can_t_reserved_set(swigCPtr, SWIGTYPE_p_unsigned_char.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_can_t_reserved_get(swigCPtr);
|
||||
SWIGTYPE_p_unsigned_char ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public neomessage_can_t() : this(icsneocsharpPINVOKE.new_neomessage_can_t(), true) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,156 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class neomessage_eth_t : global::System.IDisposable {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
protected bool swigCMemOwn;
|
||||
|
||||
internal neomessage_eth_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(neomessage_eth_t obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
|
||||
~neomessage_eth_t() {
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
Dispose(true);
|
||||
global::System.GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing) {
|
||||
lock(this) {
|
||||
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneocsharpPINVOKE.delete_neomessage_eth_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public neomessage_statusbitfield_t status {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_status_set(swigCPtr, neomessage_statusbitfield_t.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_eth_t_status_get(swigCPtr);
|
||||
neomessage_statusbitfield_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neomessage_statusbitfield_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ulong timestamp {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_timestamp_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ulong ret = icsneocsharpPINVOKE.neomessage_eth_t_timestamp_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ulong timestampReserved {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_timestampReserved_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ulong ret = icsneocsharpPINVOKE.neomessage_eth_t_timestampReserved_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] data {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_data_set(swigCPtr, value);
|
||||
}
|
||||
|
||||
get {
|
||||
byte[] ret = new byte[this.length];
|
||||
System.IntPtr data = icsneocsharpPINVOKE.neomessage_eth_t_data_get(swigCPtr);
|
||||
System.Runtime.InteropServices.Marshal.Copy(data, ret, 0, (int)this.length);
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public uint length {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_length_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_eth_t_length_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public byte preemptionFlags {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_preemptionFlags_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
byte ret = icsneocsharpPINVOKE.neomessage_eth_t_preemptionFlags_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_unsigned_char reservedHeader {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_reservedHeader_set(swigCPtr, SWIGTYPE_p_unsigned_char.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_eth_t_reservedHeader_get(swigCPtr);
|
||||
SWIGTYPE_p_unsigned_char ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ushort netid {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_netid_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ushort ret = icsneocsharpPINVOKE.neomessage_eth_t_netid_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public byte type {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_type_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
byte ret = icsneocsharpPINVOKE.neomessage_eth_t_type_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_unsigned_char reserved {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_eth_t_reserved_set(swigCPtr, SWIGTYPE_p_unsigned_char.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_eth_t_reserved_get(swigCPtr);
|
||||
SWIGTYPE_p_unsigned_char ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public neomessage_eth_t() : this(icsneocsharpPINVOKE.new_neomessage_eth_t(), true) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,610 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class neomessage_statusbitfield_t : global::System.IDisposable {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
protected bool swigCMemOwn;
|
||||
|
||||
internal neomessage_statusbitfield_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(neomessage_statusbitfield_t obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
|
||||
~neomessage_statusbitfield_t() {
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
Dispose(true);
|
||||
global::System.GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing) {
|
||||
lock(this) {
|
||||
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneocsharpPINVOKE.delete_neomessage_statusbitfield_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public uint globalError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_globalError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_globalError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint transmitMessage {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_transmitMessage_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_transmitMessage_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint extendedFrame {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_extendedFrame_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_extendedFrame_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint remoteFrame {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_remoteFrame_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_remoteFrame_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint crcError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_crcError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_crcError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canErrorPassive {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canErrorPassive_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canErrorPassive_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint incompleteFrame {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_incompleteFrame_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_incompleteFrame_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint lostArbitration {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_lostArbitration_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_lostArbitration_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint undefinedError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_undefinedError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_undefinedError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canBusOff {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canBusOff_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canBusOff_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canErrorWarning {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canErrorWarning_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canErrorWarning_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canBusShortedPlus {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canBusShortedPlus_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canBusShortedPlus_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canBusShortedGround {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canBusShortedGround_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canBusShortedGround_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint checksumError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_checksumError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_checksumError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint badMessageBitTimeError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_badMessageBitTimeError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_badMessageBitTimeError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint ifrData {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_ifrData_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_ifrData_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint hardwareCommError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_hardwareCommError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_hardwareCommError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint expectedLengthError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_expectedLengthError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_expectedLengthError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint incomingNoMatch {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_incomingNoMatch_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_incomingNoMatch_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint statusBreak {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_statusBreak_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_statusBreak_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint avsiRecOverflow {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_avsiRecOverflow_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_avsiRecOverflow_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint testTrigger {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_testTrigger_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_testTrigger_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint audioComment {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_audioComment_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_audioComment_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint gpsData {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_gpsData_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_gpsData_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint analogDigitalInput {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_analogDigitalInput_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_analogDigitalInput_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint textComment {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_textComment_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_textComment_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint networkMessageType {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_networkMessageType_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_networkMessageType_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint vsiTXUnderrun {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_vsiTXUnderrun_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_vsiTXUnderrun_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint vsiIFRCRCBit {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_vsiIFRCRCBit_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_vsiIFRCRCBit_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint initMessage {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_initMessage_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_initMessage_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint flexraySecondStartupFrame {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_flexraySecondStartupFrame_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_flexraySecondStartupFrame_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint extended {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_extended_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_extended_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint hasValue {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_hasValue_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_hasValue_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint valueIsBoolean {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_valueIsBoolean_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_valueIsBoolean_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint highVoltage {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_highVoltage_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_highVoltage_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint longMessage {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_longMessage_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_longMessage_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint globalChange {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_globalChange_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_globalChange_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint errorFrame {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_errorFrame_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_errorFrame_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint endOfLongMessage {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_endOfLongMessage_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_endOfLongMessage_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linErrorRXBreakNotZero {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorRXBreakNotZero_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorRXBreakNotZero_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linErrorRXBreakTooShort {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorRXBreakTooShort_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorRXBreakTooShort_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linErrorRXSyncNot55 {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorRXSyncNot55_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorRXSyncNot55_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linErrorRXDataGreaterEight {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorRXDataGreaterEight_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorRXDataGreaterEight_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linErrorTXRXMismatch {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorTXRXMismatch_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorTXRXMismatch_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linErrorMessageIDParity {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorMessageIDParity_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linErrorMessageIDParity_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linSyncFrameError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linSyncFrameError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linSyncFrameError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linIDFrameError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linIDFrameError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linIDFrameError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linSlaveByteError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linSlaveByteError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linSlaveByteError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint rxTimeoutError {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_rxTimeoutError_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_rxTimeoutError_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint linNoSlaveData {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_linNoSlaveData_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_linNoSlaveData_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canfdESI {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdESI_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdESI_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canfdIDE {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdIDE_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdIDE_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canfdRTR {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdRTR_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdRTR_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canfdFDF {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdFDF_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdFDF_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public uint canfdBRS {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdBRS_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_statusbitfield_t_canfdBRS_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_unsigned_int statusBitfield {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_statusbitfield_t_statusBitfield_set(swigCPtr, SWIGTYPE_p_unsigned_int.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_statusbitfield_t_statusBitfield_get(swigCPtr);
|
||||
SWIGTYPE_p_unsigned_int ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_int(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public neomessage_statusbitfield_t() : this(icsneocsharpPINVOKE.new_neomessage_statusbitfield_t(), true) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class neomessage_t : global::System.IDisposable {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
protected bool swigCMemOwn;
|
||||
|
||||
internal neomessage_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(neomessage_t obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
|
||||
~neomessage_t() {
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
Dispose(true);
|
||||
global::System.GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing) {
|
||||
lock(this) {
|
||||
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneocsharpPINVOKE.delete_neomessage_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public neomessage_statusbitfield_t status {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_t_status_set(swigCPtr, neomessage_statusbitfield_t.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_t_status_get(swigCPtr);
|
||||
neomessage_statusbitfield_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new neomessage_statusbitfield_t(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ulong timestamp {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_t_timestamp_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ulong ret = icsneocsharpPINVOKE.neomessage_t_timestamp_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ulong timestampReserved {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_t_timestampReserved_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ulong ret = icsneocsharpPINVOKE.neomessage_t_timestampReserved_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] data {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_t_data_set(swigCPtr, value);
|
||||
}
|
||||
|
||||
get {
|
||||
byte[] ret = new byte[this.length];
|
||||
System.IntPtr data = icsneocsharpPINVOKE.neomessage_t_data_get(swigCPtr);
|
||||
System.Runtime.InteropServices.Marshal.Copy(data, ret, 0, (int)this.length);
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public uint length {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_t_length_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
uint ret = icsneocsharpPINVOKE.neomessage_t_length_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_unsigned_char header {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_t_header_set(swigCPtr, SWIGTYPE_p_unsigned_char.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_t_header_get(swigCPtr);
|
||||
SWIGTYPE_p_unsigned_char ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ushort netid {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_t_netid_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ushort ret = icsneocsharpPINVOKE.neomessage_t_netid_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public byte type {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_t_type_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
byte ret = icsneocsharpPINVOKE.neomessage_t_type_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_unsigned_char reserved {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neomessage_t_reserved_set(swigCPtr, SWIGTYPE_p_unsigned_char.getCPtr(value));
|
||||
}
|
||||
get {
|
||||
global::System.IntPtr cPtr = icsneocsharpPINVOKE.neomessage_t_reserved_get(swigCPtr);
|
||||
SWIGTYPE_p_unsigned_char ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public neomessage_t() : this(icsneocsharpPINVOKE.new_neomessage_t(), true) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated />
|
||||
//
|
||||
// This file was automatically generated by SWIG (http://www.swig.org).
|
||||
// Version 4.0.0
|
||||
//
|
||||
// Do not make changes to this file unless you know what you are doing--modify
|
||||
// the SWIG interface file instead.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
public class neoversion_t : global::System.IDisposable {
|
||||
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
|
||||
protected bool swigCMemOwn;
|
||||
|
||||
internal neoversion_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
|
||||
}
|
||||
|
||||
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(neoversion_t obj) {
|
||||
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
|
||||
}
|
||||
|
||||
~neoversion_t() {
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
Dispose(true);
|
||||
global::System.GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing) {
|
||||
lock(this) {
|
||||
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneocsharpPINVOKE.delete_neoversion_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ushort major {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoversion_t_major_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ushort ret = icsneocsharpPINVOKE.neoversion_t_major_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ushort minor {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoversion_t_minor_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ushort ret = icsneocsharpPINVOKE.neoversion_t_minor_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public ushort patch {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoversion_t_patch_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
ushort ret = icsneocsharpPINVOKE.neoversion_t_patch_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public string metadata {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoversion_t_metadata_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
string ret = icsneocsharpPINVOKE.neoversion_t_metadata_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public string buildBranch {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoversion_t_buildBranch_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
string ret = icsneocsharpPINVOKE.neoversion_t_buildBranch_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public string buildTag {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoversion_t_buildTag_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
string ret = icsneocsharpPINVOKE.neoversion_t_buildTag_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public string reserved {
|
||||
set {
|
||||
icsneocsharpPINVOKE.neoversion_t_reserved_set(swigCPtr, value);
|
||||
}
|
||||
get {
|
||||
string ret = icsneocsharpPINVOKE.neoversion_t_reserved_get(swigCPtr);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public neoversion_t() : this(icsneocsharpPINVOKE.new_neoversion_t(), true) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
cmake_minimum_required(VERSION 3.2)
|
||||
project(icsneojava VERSION 0.2.0)
|
||||
|
||||
find_package(Java REQUIRED)
|
||||
find_package(JNI REQUIRED)
|
||||
|
||||
include(UseJava)
|
||||
include_directories(${JNI_INCLUDE_DIRS})
|
||||
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../third-party/libicsneo ${CMAKE_CURRENT_BINARY_DIR}/third-party/libicsneo)
|
||||
|
||||
add_library(icsneojava SHARED ${CMAKE_CURRENT_SOURCE_DIR}/java_wrap.c)
|
||||
target_link_libraries(icsneojava icsneoc)
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
# libicsneo Java Example
|
||||
|
||||
This is an example console application which uses icsneojava to connect to an Intrepid Control Systems hardware device. It has both interactive and simple examples for sending and receiving CAN & CAN FD traffic.
|
||||
|
||||
## Cloning
|
||||
|
||||
This will create a copy of the repository on your local machine.
|
||||
|
||||
Run:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/intrepidcs/libicsneo-examples -b v0.2.0-dev --recursive
|
||||
```
|
||||
|
||||
Alternatively, if you cloned without the `--recursive flag`, you must enter the `libicsneo-examples` folder and run the following:
|
||||
|
||||
```shell
|
||||
git submodule update --recursive --init
|
||||
```
|
||||
|
||||
If you haven't done this, `third-party/libicsneo` will be empty and you won't be able to build!
|
||||
|
||||
## Windows
|
||||
|
||||
### Building the DLL's
|
||||
|
||||
#### icsneoc
|
||||
|
||||
First, we are going to build the icsneoc library into a .dll file that is used by the Java wrapper to access the library functions.
|
||||
|
||||
1. Change directories to the `libicsneo-examples/third-party/libicsneo` folder.
|
||||
2. Create a build directory by running `mkdir -p build`
|
||||
3. Enter the build directory with `cd build`
|
||||
4. Run `cmake ..` to generate your Makefile.
|
||||
* Hint! Running `cmake -DCMAKE_BUILD_TYPE=Debug ..` will generate the proper scripts to build debug, and `cmake -DCMAKE_BUILD_TYPE=Release ..` will generate the proper scripts to build with all optimizations on.
|
||||
5. Run `cmake --build .` to build the library.
|
||||
* Hint! Speed up your build by using multiple processors! Use `make -j#` where `#` is the number of cores/threads your system has plus one. For instance, on a standard 8 thread Intel i7, you might use `-j9` for an ~8x speedup.
|
||||
6. The `icsneoc.dll` file will be generated in `libicsneo-examples/third-party/libicsneo/build/Debug`. Move this file to the `/C/Windows/System32` folder.
|
||||
|
||||
#### icsneojava
|
||||
|
||||
Next, we are going to build the wrapper functions into a .dll file that is used to access the library functions in Java.
|
||||
|
||||
1. Change directories to the `libicsneo-examples/libicsneojava-example` folder.
|
||||
2. Create a build directory by running `mkdir -p build`
|
||||
3. Enter the build directory with `cd build`
|
||||
4. Run `cmake ..` to generate your Makefile.
|
||||
* Hint! Running `cmake -DCMAKE_BUILD_TYPE=Debug ..` will generate the proper scripts to build debug, and `cmake -DCMAKE_BUILD_TYPE=Release ..` will generate the proper scripts to build with all optimizations on.
|
||||
5. Run `cmake --build .` to build the library.
|
||||
* Hint! Speed up your build by using multiple processors! Use `make -j#` where `#` is the number of cores/threads your system has plus one. For instance, on a standard 8 thread Intel i7, you might use `-j9` for an ~8x speedup.
|
||||
6. The `icsneojava.dll` file will be generated in `libicsneo-examples/libicsneojava-example/build/Debug`. Move this file to the `/C/Windows/System32` folder.
|
||||
|
||||
### Building and running the example program
|
||||
|
||||
1. Change directories to the `libicsneo-examples/libicsneojava-example/src` folder.
|
||||
2. Run `javac Run.java`
|
||||
3. Run `java Run`
|
||||
|
||||
## Ubuntu 18.04 LTS
|
||||
|
||||
### Building the .so's
|
||||
|
||||
#### icsneoc
|
||||
|
||||
1. Install dependencies with `sudo apt update` then `sudo apt install build-essential cmake libusb-1.0-0-dev libpcap0.8-dev`
|
||||
2. Change directories to `libicsneo-examples/third-party/libicsneo` and create a build directory by running `mkdir -p build`
|
||||
3. Enter the build directory with `cd build`
|
||||
4. Run `cmake ..` to generate your Makefile.
|
||||
* Hint! Running `cmake -DCMAKE_BUILD_TYPE=Debug ..` will generate the proper scripts to build debug, and `cmake -DCMAKE_BUILD_TYPE=Release ..` will generate the proper scripts to build with all optimizations on.
|
||||
5. Run `make` to build the library.
|
||||
* Hint! Speed up your build by using multiple processors! Use `make -j#` where `#` is the number of cores/threads your system has plus one. For instance, on a standard 8 thread Intel i7, you might use `-j9` for an ~8x speedup.
|
||||
6. Run `sudo cp libicsneoc.so /usr/lib` so that it can be found via the default ubuntu .so search path. For more information, see the [ld.so.8 man page](http://man7.org/linux/man-pages/man8/ld.so.8.html).
|
||||
|
||||
#### icsneojava
|
||||
|
||||
Next, we are going to build the wrapper functions into a .so file that is used to access the library functions in Java.
|
||||
|
||||
1. Change directories to the `libicsneo-examples/libicsneojava-example` folder.
|
||||
2. Create a build directory by running `mkdir -p build`
|
||||
3. Enter the build directory with `cd build`
|
||||
4. Run `cmake ..` to generate your Makefile.
|
||||
* Hint! Running `cmake -DCMAKE_BUILD_TYPE=Debug ..` will generate the proper scripts to build debug, and `cmake -DCMAKE_BUILD_TYPE=Release ..` will generate the proper scripts to build with all optimizations on.
|
||||
5. Run `cmake --build .` to build the library.
|
||||
* Hint! Speed up your build by using multiple processors! Use `make -j#` where `#` is the number of cores/threads your system has plus one. For instance, on a standard 8 thread Intel i7, you might use `-j9` for an ~8x speedup.
|
||||
6. The `icsneojava.so` file will be generated in `libicsneo-examples/libicsneojava-example/build/Debug`. Run `sudo cp libicsneojava.so /usr/lib` so that it can be found via the default ubuntu .so search path. For more information, see the [ld.so.8 man page](http://man7.org/linux/man-pages/man8/ld.so.8.html).
|
||||
|
||||
### Building and running the example program
|
||||
|
||||
1. Change directories to the `libicsneo-examples/libicsneojava-example/src` folder.
|
||||
2. Run `javac Run.java`
|
||||
3. Run `java Run`
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
%module icsneojava
|
||||
%include <windows.i>
|
||||
%include <typemaps.i>
|
||||
%include <stdint.i>
|
||||
%include <carrays.i>
|
||||
%include <various.i>
|
||||
%include <java.i>
|
||||
%include <arrays_java.i>
|
||||
|
||||
#define DLLExport
|
||||
|
||||
%typemap(jni) uint8_t const *data "jbyteArray"
|
||||
%typemap(jtype) uint8_t const *data "byte[]"
|
||||
%typemap(jstype) uint8_t const *data "byte[]"
|
||||
%typemap(javain) uint8_t const *data "$javainput"
|
||||
|
||||
%typemap(javaout) uint8_t const *data {
|
||||
return $jnicall;
|
||||
}
|
||||
|
||||
%typemap(out) uint8_t const *data %{
|
||||
$result = (*jenv)->NewByteArray(jenv, (int) arg1->length);
|
||||
(*jenv)->SetByteArrayRegion(jenv, $result, 0, (int) arg1->length, $1);
|
||||
%}
|
||||
|
||||
%typemap(in) uint8_t const *data %{
|
||||
bool isCopy;
|
||||
arg2 = (*jenv)->GetByteArrayElements(jenv, jarg2, &isCopy);
|
||||
%}
|
||||
|
||||
%typemap(jni) char *str "jobject"
|
||||
%typemap(jtype) char *str "StringBuffer"
|
||||
%typemap(jstype) char *str "StringBuffer"
|
||||
|
||||
/* How to convert Java(JNI) type to requested C type */
|
||||
%typemap(in) char *str {
|
||||
|
||||
$1 = NULL;
|
||||
if($input != NULL) {
|
||||
/* Get the String from the StringBuffer */
|
||||
jmethodID setLengthID;
|
||||
jclass strClass = (*jenv)->GetObjectClass(jenv, $input);
|
||||
jmethodID toStringID = (*jenv)->GetMethodID(jenv, strClass, "toString", "()Ljava/lang/String;");
|
||||
jstring js = (jstring) (*jenv)->CallObjectMethod(jenv, $input, toStringID);
|
||||
|
||||
/* Convert the String to a C string */
|
||||
const char *pCharStr = (*jenv)->GetStringUTFChars(jenv, js, 0);
|
||||
|
||||
/* Take a copy of the C string as the typemap is for a non const C string */
|
||||
jmethodID capacityID = (*jenv)->GetMethodID(jenv, strClass, "capacity", "()I");
|
||||
jint capacity = (*jenv)->CallIntMethod(jenv, $input, capacityID);
|
||||
$1 = (char *) malloc(capacity+1);
|
||||
strcpy($1, pCharStr);
|
||||
|
||||
/* Release the UTF string we obtained with GetStringUTFChars */
|
||||
(*jenv)->ReleaseStringUTFChars(jenv, js, pCharStr);
|
||||
|
||||
/* Zero the original StringBuffer, so we can replace it with the result */
|
||||
setLengthID = (*jenv)->GetMethodID(jenv, strClass, "setLength", "(I)V");
|
||||
(*jenv)->CallVoidMethod(jenv, $input, setLengthID, (jint) 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* How to convert the C type to the Java(JNI) type */
|
||||
%typemap(argout) char *str {
|
||||
|
||||
if($1 != NULL) {
|
||||
/* Append the result to the empty StringBuffer */
|
||||
jstring newString = (*jenv)->NewStringUTF(jenv, $1);
|
||||
jclass strClass = (*jenv)->GetObjectClass(jenv, $input);
|
||||
jmethodID appendStringID = (*jenv)->GetMethodID(jenv, strClass, "append", "(Ljava/lang/String;)Ljava/lang/StringBuffer;");
|
||||
(*jenv)->CallObjectMethod(jenv, $input, appendStringID, newString);
|
||||
|
||||
/* Clean up the string object, no longer needed */
|
||||
free($1);
|
||||
$1 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* Prevent the default freearg typemap from being used */
|
||||
%typemap(freearg) char *str ""
|
||||
|
||||
/* Convert the jstype to jtype typemap type */
|
||||
%typemap(javain) char *str "$javainput"
|
||||
|
||||
%{
|
||||
#include "icsneo/icsneoc.h"
|
||||
%}
|
||||
|
||||
%apply int *INOUT {size_t *};
|
||||
|
||||
%ignore icsneo_addMessageCallback;
|
||||
%ignore icsneo_removeMessageCallback;
|
||||
%ignore icsneo_addEventCallback;
|
||||
%ignore icsneo_removeEventCallback;
|
||||
|
||||
%include "icsneo/icsneoc.h"
|
||||
%include "icsneo/device/neodevice.h"
|
||||
%include "icsneo/communication/message/neomessage.h"
|
||||
%include "icsneo/device/devicetype.h"
|
||||
%include "icsneo/api/version.h"
|
||||
%include "icsneo/api/event.h"
|
||||
%include "icsneo/communication/network.h"
|
||||
|
||||
%inline %{
|
||||
static neomessage_can_t* neomessage_can_t_cast(neomessage_t* msg) {
|
||||
return (neomessage_can_t*) msg;
|
||||
}
|
||||
|
||||
static neomessage_eth_t* neomessage_eth_t_cast(neomessage_t* msg) {
|
||||
return (neomessage_eth_t*) msg;
|
||||
}
|
||||
|
||||
static neomessage_t* from_can_neomessage_t_cast(neomessage_can_t* msg) {
|
||||
return (neomessage_t*) msg;
|
||||
}
|
||||
|
||||
static neomessage_t* from_eth_neomessage_t_cast(neomessage_eth_t* msg) {
|
||||
return (neomessage_t*) msg;
|
||||
}
|
||||
%}
|
||||
|
||||
%array_functions(neodevice_t, neodevice_t_array);
|
||||
%array_functions(neoevent_t, neoevent_t_array);
|
||||
%array_functions(neomessage_t, neomessage_t_array);
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,511 @@
|
|||
import java.math.BigInteger;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class InteractiveExample {
|
||||
|
||||
private int msgLimit = 50000;
|
||||
private neodevice_t selectedDevice;
|
||||
private ArrayList<neodevice_t> devices = new ArrayList<neodevice_t>();
|
||||
private int numDevices = 0;
|
||||
|
||||
private void printAllDevices() {
|
||||
if(numDevices == 0) {
|
||||
System.out.println("No devices found! Please scan for new devices.");
|
||||
}
|
||||
|
||||
for(int i = 0; i < numDevices; i++) {
|
||||
StringBuffer description = new StringBuffer(icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int[] maxLength = {icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION};
|
||||
|
||||
if(icsneojava.icsneo_describeDevice(devices.get(i), description, maxLength)) {
|
||||
System.out.print("[" + (i + 1) + "] " + description + "\tConnected: ");
|
||||
|
||||
if(icsneojava.icsneo_isOpen(devices.get(i))) {
|
||||
System.out.print("Yes\t");
|
||||
} else System.out.print("No\t");
|
||||
|
||||
System.out.print("Online: ");
|
||||
if(icsneojava.icsneo_isOnline(devices.get(i))) {
|
||||
System.out.print("Yes\t");
|
||||
} else System.out.print("No\t");
|
||||
|
||||
System.out.print("Msg Polling: ");
|
||||
if(icsneojava.icsneo_isMessagePollingEnabled(devices.get(i))) {
|
||||
System.out.print("On\n");
|
||||
} else System.out.print("Off\n");
|
||||
} else {
|
||||
System.out.println("Description for device " + (i + 1) + " not available!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int scanNewDevices() {
|
||||
neodevice_t newDevices = icsneojava.new_neodevice_t_array(99);
|
||||
|
||||
int[] count = {10};
|
||||
|
||||
icsneojava.icsneo_findAllDevices(newDevices, count);
|
||||
|
||||
numDevices += count[0];
|
||||
|
||||
for(int i = 0; i < numDevices; i++) {
|
||||
devices.add(icsneojava.neodevice_t_array_getitem(newDevices, i));
|
||||
}
|
||||
|
||||
icsneojava.delete_neodevice_t_array(newDevices);
|
||||
return count[0];
|
||||
}
|
||||
|
||||
private void printMainMenu() {
|
||||
System.out.println("Press the letter next to the function you want to use:");
|
||||
System.out.println("A - List all devices");
|
||||
System.out.println("B - Scan for new devices");
|
||||
System.out.println("C - Open/close");
|
||||
System.out.println("D - Go online/offline");
|
||||
System.out.println("E - Enable/disable message polling");
|
||||
System.out.println("F - Get messages");
|
||||
System.out.println("G - Send message");
|
||||
System.out.println("H - Get events");
|
||||
System.out.println("I - Set HS CAN to 250K");
|
||||
System.out.println("J - Set HS CAN to 500K");
|
||||
System.out.println("X - Exit");
|
||||
}
|
||||
|
||||
private void printLastError() {
|
||||
neoevent_t error = new neoevent_t();
|
||||
if(icsneojava.icsneo_getLastError(error))
|
||||
System.out.println("Error 0x" + error.getEventNumber() + ": " + error.getDescription());
|
||||
else
|
||||
System.out.println("No errors found!");
|
||||
}
|
||||
|
||||
private void printAPIEvents() {
|
||||
neoevent_t events = icsneojava.new_neoevent_t_array(99);
|
||||
int[] eventCount = {99};
|
||||
if(icsneojava.icsneo_getEvents(events, eventCount)) {
|
||||
if(eventCount[0] == 1) {
|
||||
neoevent_t evt = icsneojava.neoevent_t_array_getitem(events, 0);
|
||||
System.out.println("1 API event found!");
|
||||
System.out.println("Event 0x" + evt.getEventNumber() + ": " + evt.getDescription());
|
||||
} else {
|
||||
System.out.println(eventCount[0] + " API events found!");
|
||||
for(var i = 0; i < eventCount[0]; ++i) {
|
||||
neoevent_t evt = icsneojava.neoevent_t_array_getitem(events, i);
|
||||
System.out.println("Event 0x" + evt.getEventNumber() + ": " + evt.getDescription());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
System.out.println("Failed to get API events!");
|
||||
}
|
||||
icsneojava.delete_neoevent_t_array(events);
|
||||
}
|
||||
|
||||
private void printDeviceEvents(neodevice_t device) {
|
||||
neoevent_t events = icsneojava.new_neoevent_t_array(99);
|
||||
int[] eventCount = {99};
|
||||
if(icsneojava.icsneo_getDeviceEvents(device, events, eventCount)) {
|
||||
if(eventCount[0] == 1) {
|
||||
neoevent_t evt = icsneojava.neoevent_t_array_getitem(events, 0);
|
||||
System.out.println("1 device event found!");
|
||||
System.out.println("Event 0x" + evt.getEventNumber() + ": " + evt.getDescription());
|
||||
} else {
|
||||
System.out.println(eventCount[0] + " device events found!");
|
||||
for(int i = 0; i < eventCount[0]; ++i) {
|
||||
neoevent_t evt = icsneojava.neoevent_t_array_getitem(events, i);
|
||||
System.out.println("Event 0x" + evt.getEventNumber() + ": " + evt.getDescription());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
System.out.println("Failed to get API events!");
|
||||
}
|
||||
icsneojava.delete_neoevent_t_array(events);
|
||||
}
|
||||
|
||||
private char getCharInput(char[] allowed) {
|
||||
boolean found = false;
|
||||
char key = '0';
|
||||
Scanner sc = new Scanner(System.in);
|
||||
while(!found) {
|
||||
key = sc.next().charAt(0);
|
||||
System.out.println();
|
||||
for(char compare : allowed) {
|
||||
if(compare == key) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!found) {
|
||||
System.out.println("Input did not match expected options. Please try again.");
|
||||
}
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
private neodevice_t selectDevice() {
|
||||
System.out.println("Please select a device:");
|
||||
printAllDevices();
|
||||
System.out.println();
|
||||
|
||||
int selectedDeviceNum = 10;
|
||||
while(selectedDeviceNum > numDevices) {
|
||||
char deviceSelection = getCharInput(new char[] { '1', '2', '3', '4', '5', '6', '7', '8', '9' });
|
||||
selectedDeviceNum = deviceSelection - '0';
|
||||
if(selectedDeviceNum > numDevices) {
|
||||
System.out.println("Selected device out of range!");
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
|
||||
return devices.get(selectedDeviceNum - 1);
|
||||
}
|
||||
|
||||
public void run() {
|
||||
neoversion_t version = icsneojava.icsneo_getVersion();
|
||||
System.out.println("ICS libicsneojava.dll version " + version.getMajor() + "." + version.getMinor() + "." + version.getPatch());
|
||||
System.out.println();
|
||||
|
||||
while(true) {
|
||||
printMainMenu();
|
||||
System.out.println();
|
||||
char input = getCharInput(new char[] { 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'X', 'x' });
|
||||
System.out.println();
|
||||
switch(input) {
|
||||
// List current devices
|
||||
case 'A':
|
||||
case 'a':
|
||||
printAllDevices();
|
||||
System.out.println();
|
||||
break;
|
||||
// Scan for new devices
|
||||
case 'B':
|
||||
case 'b': {
|
||||
var numNewDevices = scanNewDevices();
|
||||
if(numNewDevices == 1) {
|
||||
System.out.println("1 new device found!");
|
||||
} else {
|
||||
System.out.println(numNewDevices + " new devices found!");
|
||||
}
|
||||
printAllDevices();
|
||||
System.out.println();
|
||||
break;
|
||||
}
|
||||
// Open/close a device
|
||||
case 'C':
|
||||
case 'c': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.out.println("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
StringBuffer description = new StringBuffer(icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int[] maxLength = {icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION};
|
||||
|
||||
icsneojava.icsneo_describeDevice(selectedDevice, description, maxLength);
|
||||
|
||||
System.out.println("Would you like to open or close " + description + "?");
|
||||
System.out.println("[1] Open\n[2] Close\n[3] Cancel\n");
|
||||
|
||||
char option = getCharInput(new char[] { '1', '2', '3' });
|
||||
System.out.println();
|
||||
|
||||
switch(option) {
|
||||
case '1':
|
||||
// Attempt to open the selected device
|
||||
if(icsneojava.icsneo_openDevice(selectedDevice)) {
|
||||
System.out.println(description + " successfully opened!\n");
|
||||
} else {
|
||||
System.out.println(description + " failed to open!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to close the device
|
||||
if(icsneojava.icsneo_closeDevice(selectedDevice)) {
|
||||
numDevices--;
|
||||
System.out.println("Successfully closed " + description + "!\n");
|
||||
devices.remove(selectedDevice);
|
||||
selectedDevice = null;
|
||||
} else {
|
||||
System.out.println("Failed to close " + description + "!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
System.out.println("Canceling!\n");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Go online/offline
|
||||
case 'D':
|
||||
case 'd': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.out.println("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
StringBuffer description = new StringBuffer(icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int[] maxLength = {icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION};
|
||||
|
||||
icsneojava.icsneo_describeDevice(selectedDevice, description, maxLength);
|
||||
|
||||
System.out.println("Would you like to have " + description + " go online or offline?");
|
||||
System.out.println("[1] Online\n[2] Offline\n[3] Cancel\n");
|
||||
|
||||
char option = getCharInput(new char[] { '1', '2', '3' });
|
||||
System.out.println();
|
||||
|
||||
switch(option) {
|
||||
case '1':
|
||||
// Attempt to go online
|
||||
if(icsneojava.icsneo_goOnline(selectedDevice)) {
|
||||
System.out.println(description + " successfully went online!\n");
|
||||
} else {
|
||||
System.out.println(description + " failed to go online!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to go offline
|
||||
if(icsneojava.icsneo_goOffline(selectedDevice)) {
|
||||
System.out.println(description + " successfully went offline!\n");
|
||||
} else {
|
||||
System.out.println(description + " failed to go offline!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
System.out.println("Canceling!\n");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Enable/disable message polling
|
||||
case 'E':
|
||||
case 'e': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.out.println("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
StringBuffer description = new StringBuffer(icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int[] maxLength = {icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION};
|
||||
|
||||
icsneojava.icsneo_describeDevice(selectedDevice, description, maxLength);
|
||||
|
||||
System.out.println("Would you like to enable or disable message polling for " + description + "?");
|
||||
System.out.println("[1] Enable\n[2] Disable\n[3] Cancel\n");
|
||||
|
||||
char option = getCharInput(new char[] { '1', '2', '3' });
|
||||
System.out.println();
|
||||
|
||||
switch(option) {
|
||||
case '1':
|
||||
// Attempt to enable message polling
|
||||
if(icsneojava.icsneo_enableMessagePolling(selectedDevice)) {
|
||||
System.out.println("Successfully enabled message polling for " + description + "!\n");
|
||||
} else {
|
||||
System.out.println("Failed to enable message polling for " + description + "!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
// Manually setting the polling message limit as done below is optional
|
||||
// It will default to 20k if not set
|
||||
// Attempt to set the polling message limit
|
||||
if(icsneojava.icsneo_setPollingMessageLimit(selectedDevice, msgLimit)) {
|
||||
System.out.println("Successfully set message polling limit for " + description + "!\n");
|
||||
} else {
|
||||
System.out.println("Failed to set polling message limit for " + description + "!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
// Attempt to disable message polling
|
||||
if(icsneojava.icsneo_disableMessagePolling(selectedDevice)) {
|
||||
System.out.println("Successfully disabled message polling for " + description + "!\n");
|
||||
} else {
|
||||
System.out.println("Failed to disable message polling for " + description + "!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
System.out.println("Canceling!\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'F':
|
||||
case 'f': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.out.println("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
StringBuffer description = new StringBuffer(icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int[] maxLength = {icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION};
|
||||
|
||||
icsneojava.icsneo_describeDevice(selectedDevice, description, maxLength);
|
||||
|
||||
// Prepare the neomessage_t array and size for reading in the messages
|
||||
neomessage_t msgs = icsneojava.new_neomessage_t_array((int)msgLimit);
|
||||
int[] msgCount = {msgLimit};
|
||||
|
||||
if(!icsneojava.icsneo_getMessages(selectedDevice, msgs, msgCount, BigInteger.ZERO)) {
|
||||
System.out.println("Failed to get messages for " + description + "!\n");
|
||||
icsneojava.delete_neomessage_t_array(msgs);
|
||||
printLastError();
|
||||
System.out.println();
|
||||
break;
|
||||
}
|
||||
|
||||
if(msgCount[0] == 1) {
|
||||
System.out.println("1 message received from " + description + "!");
|
||||
} else {
|
||||
System.out.println(msgCount[0] + " messages received from " + description + "!");
|
||||
}
|
||||
|
||||
// Print out the received messages
|
||||
for(int i = 0; i < msgCount[0]; i++) {
|
||||
neomessage_t msg = icsneojava.neomessage_t_array_getitem(msgs, i);
|
||||
if(msg.getType() == icsneojava.ICSNEO_NETWORK_TYPE_CAN) {
|
||||
System.out.print("\t0x" + String.format("%03x", icsneojava.neomessage_can_t_cast(msg).getArbid()) + " [" + msg.getLength() + "] ");
|
||||
for(int j = 0; j < msg.getLength(); j++) {
|
||||
System.out.print(String.format("%02x ", icsneojava.neomessage_can_t_cast(msg).getData()[j]));
|
||||
}
|
||||
System.out.println("(" + msg.getTimestamp() + ")");
|
||||
} else {
|
||||
if(msg.getNetid() != 0)
|
||||
System.out.println("\tMessage on netid " + msg.getNetid() + " with length " + msg.getLength());
|
||||
}
|
||||
}
|
||||
icsneojava.delete_neomessage_t_array(msgs);
|
||||
break;
|
||||
}
|
||||
// Send message
|
||||
case 'G':
|
||||
case 'g': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.out.println("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
StringBuffer description = new StringBuffer(icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int[] maxLength = {icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION};
|
||||
|
||||
icsneojava.icsneo_describeDevice(selectedDevice, description, maxLength);
|
||||
|
||||
// Start generating sample msg
|
||||
neomessage_can_t msg = new neomessage_can_t();
|
||||
msg.setArbid(0x120);
|
||||
msg.setLength(6);
|
||||
msg.setNetid(icsneojava.ICSNEO_NETID_HSCAN);
|
||||
msg.setData(new byte[] { (byte) 0xaa, (byte) 0xbb, (byte) 0xcc, (byte) 0xdd, (byte) 0xee, (byte) 0xff});
|
||||
msg.getStatus().setCanfdFDF(0);
|
||||
msg.getStatus().setExtendedFrame(0);
|
||||
msg.getStatus().setCanfdBRS(0);
|
||||
// End generating sample msg
|
||||
|
||||
// Attempt to transmit the sample msg
|
||||
if(icsneojava.icsneo_transmit(selectedDevice, icsneojava.from_can_neomessage_t_cast(msg))) {
|
||||
System.out.println("Message transmit successful!");
|
||||
} else {
|
||||
System.out.println("Failed to transmit message to " + description + "!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Get events
|
||||
case 'H':
|
||||
case 'h':
|
||||
printAPIEvents();
|
||||
System.out.println();
|
||||
break;
|
||||
// Set HS CAN to 250k
|
||||
case 'I':
|
||||
case 'i': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.out.println("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
StringBuffer description = new StringBuffer(icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int[] maxLength = {icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION};
|
||||
|
||||
icsneojava.icsneo_describeDevice(selectedDevice, description, maxLength);
|
||||
|
||||
// Attempt to set baudrate and apply settings
|
||||
if(icsneojava.icsneo_setBaudrate(selectedDevice, icsneojava.ICSNEO_NETID_HSCAN, 250000) && icsneojava.icsneo_settingsApply(selectedDevice)) {
|
||||
System.out.println("Successfully set HS CAN baudrate for " + description + "to 250k!\n");
|
||||
} else {
|
||||
System.out.println("Failed to set HS CAN for " + description + " to 250k!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Set HS CAN to 500k
|
||||
case 'J':
|
||||
case 'j': {
|
||||
// Select a device and get its description
|
||||
if(numDevices == 0) {
|
||||
System.out.println("No devices found! Please scan for new devices.\n");
|
||||
break;
|
||||
}
|
||||
selectedDevice = selectDevice();
|
||||
|
||||
// Get the product description for the device
|
||||
StringBuffer description = new StringBuffer(icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION);
|
||||
int[] maxLength = {icsneojava.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION};
|
||||
|
||||
icsneojava.icsneo_describeDevice(selectedDevice, description, maxLength);
|
||||
|
||||
// Attempt to set baudrate and apply settings
|
||||
if(icsneojava.icsneo_setBaudrate(selectedDevice, icsneojava.ICSNEO_NETID_HSCAN, 500000) && icsneojava.icsneo_settingsApply(selectedDevice)) {
|
||||
System.out.println("Successfully set HS CAN baudrate for " + description + "to 500k!\n");
|
||||
} else {
|
||||
System.out.println("Failed to set HS CAN for " + description + " to 500k!\n");
|
||||
printLastError();
|
||||
System.out.println();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'X':
|
||||
case 'x':
|
||||
System.out.println("Exiting program");
|
||||
return;
|
||||
default:
|
||||
System.out.println("Unexpected input, exiting!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
public class Run {
|
||||
static {
|
||||
System.loadLibrary("icsneojava");
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
InteractiveExample example = new InteractiveExample();
|
||||
example.run();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class SWIGTYPE_p_time_t {
|
||||
private transient long swigCPtr;
|
||||
|
||||
protected SWIGTYPE_p_time_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_time_t() {
|
||||
swigCPtr = 0;
|
||||
}
|
||||
|
||||
protected static long getCPtr(SWIGTYPE_p_time_t obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class SWIGTYPE_p_unsigned_char {
|
||||
private transient long swigCPtr;
|
||||
|
||||
protected SWIGTYPE_p_unsigned_char(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_unsigned_char() {
|
||||
swigCPtr = 0;
|
||||
}
|
||||
|
||||
protected static long getCPtr(SWIGTYPE_p_unsigned_char obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class SWIGTYPE_p_unsigned_int {
|
||||
private transient long swigCPtr;
|
||||
|
||||
protected SWIGTYPE_p_unsigned_int(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_unsigned_int() {
|
||||
swigCPtr = 0;
|
||||
}
|
||||
|
||||
protected static long getCPtr(SWIGTYPE_p_unsigned_int obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class SWIGTYPE_p_unsigned_short {
|
||||
private transient long swigCPtr;
|
||||
|
||||
protected SWIGTYPE_p_unsigned_short(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_unsigned_short() {
|
||||
swigCPtr = 0;
|
||||
}
|
||||
|
||||
protected static long getCPtr(SWIGTYPE_p_unsigned_short obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class SWIGTYPE_p_void {
|
||||
private transient long swigCPtr;
|
||||
|
||||
protected SWIGTYPE_p_void(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected SWIGTYPE_p_void() {
|
||||
swigCPtr = 0;
|
||||
}
|
||||
|
||||
protected static long getCPtr(SWIGTYPE_p_void obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,262 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class icsneojava implements icsneojavaConstants {
|
||||
public static void icsneo_findAllDevices(neodevice_t devices, int[] count) {
|
||||
icsneojavaJNI.icsneo_findAllDevices(neodevice_t.getCPtr(devices), devices, count);
|
||||
}
|
||||
|
||||
public static void icsneo_freeUnconnectedDevices() {
|
||||
icsneojavaJNI.icsneo_freeUnconnectedDevices();
|
||||
}
|
||||
|
||||
public static boolean icsneo_serialNumToString(long num, StringBuffer str, int[] count) {
|
||||
return icsneojavaJNI.icsneo_serialNumToString(num, str, count);
|
||||
}
|
||||
|
||||
public static long icsneo_serialStringToNum(StringBuffer str) {
|
||||
return icsneojavaJNI.icsneo_serialStringToNum(str);
|
||||
}
|
||||
|
||||
public static boolean icsneo_isValidNeoDevice(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_isValidNeoDevice(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_openDevice(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_openDevice(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_closeDevice(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_closeDevice(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_isOpen(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_isOpen(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_goOnline(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_goOnline(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_goOffline(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_goOffline(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_isOnline(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_isOnline(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_enableMessagePolling(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_enableMessagePolling(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_disableMessagePolling(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_disableMessagePolling(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_isMessagePollingEnabled(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_isMessagePollingEnabled(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_getMessages(neodevice_t device, neomessage_t messages, int[] items, java.math.BigInteger timeout) {
|
||||
return icsneojavaJNI.icsneo_getMessages(neodevice_t.getCPtr(device), device, neomessage_t.getCPtr(messages), messages, items, timeout);
|
||||
}
|
||||
|
||||
public static long icsneo_getPollingMessageLimit(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_getPollingMessageLimit(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_setPollingMessageLimit(neodevice_t device, long newLimit) {
|
||||
return icsneojavaJNI.icsneo_setPollingMessageLimit(neodevice_t.getCPtr(device), device, newLimit);
|
||||
}
|
||||
|
||||
public static boolean icsneo_getProductName(neodevice_t device, StringBuffer str, int[] maxLength) {
|
||||
return icsneojavaJNI.icsneo_getProductName(neodevice_t.getCPtr(device), device, str, maxLength);
|
||||
}
|
||||
|
||||
public static boolean icsneo_getProductNameForType(long type, StringBuffer str, int[] maxLength) {
|
||||
return icsneojavaJNI.icsneo_getProductNameForType(type, str, maxLength);
|
||||
}
|
||||
|
||||
public static boolean icsneo_settingsRefresh(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_settingsRefresh(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_settingsApply(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_settingsApply(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_settingsApplyTemporary(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_settingsApplyTemporary(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_settingsApplyDefaults(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_settingsApplyDefaults(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static boolean icsneo_settingsApplyDefaultsTemporary(neodevice_t device) {
|
||||
return icsneojavaJNI.icsneo_settingsApplyDefaultsTemporary(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static int icsneo_settingsReadStructure(neodevice_t device, SWIGTYPE_p_void structure, long structureSize) {
|
||||
return icsneojavaJNI.icsneo_settingsReadStructure(neodevice_t.getCPtr(device), device, SWIGTYPE_p_void.getCPtr(structure), structureSize);
|
||||
}
|
||||
|
||||
public static boolean icsneo_settingsApplyStructure(neodevice_t device, SWIGTYPE_p_void structure, long structureSize) {
|
||||
return icsneojavaJNI.icsneo_settingsApplyStructure(neodevice_t.getCPtr(device), device, SWIGTYPE_p_void.getCPtr(structure), structureSize);
|
||||
}
|
||||
|
||||
public static boolean icsneo_settingsApplyStructureTemporary(neodevice_t device, SWIGTYPE_p_void structure, long structureSize) {
|
||||
return icsneojavaJNI.icsneo_settingsApplyStructureTemporary(neodevice_t.getCPtr(device), device, SWIGTYPE_p_void.getCPtr(structure), structureSize);
|
||||
}
|
||||
|
||||
public static long icsneo_getBaudrate(neodevice_t device, int netid) {
|
||||
return icsneojavaJNI.icsneo_getBaudrate(neodevice_t.getCPtr(device), device, netid);
|
||||
}
|
||||
|
||||
public static boolean icsneo_setBaudrate(neodevice_t device, int netid, long newBaudrate) {
|
||||
return icsneojavaJNI.icsneo_setBaudrate(neodevice_t.getCPtr(device), device, netid, newBaudrate);
|
||||
}
|
||||
|
||||
public static long icsneo_getFDBaudrate(neodevice_t device, int netid) {
|
||||
return icsneojavaJNI.icsneo_getFDBaudrate(neodevice_t.getCPtr(device), device, netid);
|
||||
}
|
||||
|
||||
public static boolean icsneo_setFDBaudrate(neodevice_t device, int netid, long newBaudrate) {
|
||||
return icsneojavaJNI.icsneo_setFDBaudrate(neodevice_t.getCPtr(device), device, netid, newBaudrate);
|
||||
}
|
||||
|
||||
public static boolean icsneo_transmit(neodevice_t device, neomessage_t message) {
|
||||
return icsneojavaJNI.icsneo_transmit(neodevice_t.getCPtr(device), device, neomessage_t.getCPtr(message), message);
|
||||
}
|
||||
|
||||
public static boolean icsneo_transmitMessages(neodevice_t device, neomessage_t messages, long count) {
|
||||
return icsneojavaJNI.icsneo_transmitMessages(neodevice_t.getCPtr(device), device, neomessage_t.getCPtr(messages), messages, count);
|
||||
}
|
||||
|
||||
public static void icsneo_setWriteBlocks(neodevice_t device, boolean blocks) {
|
||||
icsneojavaJNI.icsneo_setWriteBlocks(neodevice_t.getCPtr(device), device, blocks);
|
||||
}
|
||||
|
||||
public static boolean icsneo_describeDevice(neodevice_t device, StringBuffer str, int[] maxLength) {
|
||||
return icsneojavaJNI.icsneo_describeDevice(neodevice_t.getCPtr(device), device, str, maxLength);
|
||||
}
|
||||
|
||||
public static neoversion_t icsneo_getVersion() {
|
||||
return new neoversion_t(icsneojavaJNI.icsneo_getVersion(), true);
|
||||
}
|
||||
|
||||
public static boolean icsneo_getEvents(neoevent_t events, int[] size) {
|
||||
return icsneojavaJNI.icsneo_getEvents(neoevent_t.getCPtr(events), events, size);
|
||||
}
|
||||
|
||||
public static boolean icsneo_getDeviceEvents(neodevice_t device, neoevent_t events, int[] size) {
|
||||
return icsneojavaJNI.icsneo_getDeviceEvents(neodevice_t.getCPtr(device), device, neoevent_t.getCPtr(events), events, size);
|
||||
}
|
||||
|
||||
public static boolean icsneo_getLastError(neoevent_t error) {
|
||||
return icsneojavaJNI.icsneo_getLastError(neoevent_t.getCPtr(error), error);
|
||||
}
|
||||
|
||||
public static void icsneo_discardAllEvents() {
|
||||
icsneojavaJNI.icsneo_discardAllEvents();
|
||||
}
|
||||
|
||||
public static void icsneo_discardDeviceEvents(neodevice_t device) {
|
||||
icsneojavaJNI.icsneo_discardDeviceEvents(neodevice_t.getCPtr(device), device);
|
||||
}
|
||||
|
||||
public static void icsneo_setEventLimit(long newLimit) {
|
||||
icsneojavaJNI.icsneo_setEventLimit(newLimit);
|
||||
}
|
||||
|
||||
public static long icsneo_getEventLimit() {
|
||||
return icsneojavaJNI.icsneo_getEventLimit();
|
||||
}
|
||||
|
||||
public static boolean icsneo_getSupportedDevices(SWIGTYPE_p_unsigned_int devices, int[] count) {
|
||||
return icsneojavaJNI.icsneo_getSupportedDevices(SWIGTYPE_p_unsigned_int.getCPtr(devices), count);
|
||||
}
|
||||
|
||||
public static boolean icsneo_getTimestampResolution(neodevice_t device, SWIGTYPE_p_unsigned_short resolution) {
|
||||
return icsneojavaJNI.icsneo_getTimestampResolution(neodevice_t.getCPtr(device), device, SWIGTYPE_p_unsigned_short.getCPtr(resolution));
|
||||
}
|
||||
|
||||
public static neomessage_can_t neomessage_can_t_cast(neomessage_t msg) {
|
||||
long cPtr = icsneojavaJNI.neomessage_can_t_cast(neomessage_t.getCPtr(msg), msg);
|
||||
return (cPtr == 0) ? null : new neomessage_can_t(cPtr, false);
|
||||
}
|
||||
|
||||
public static neomessage_eth_t neomessage_eth_t_cast(neomessage_t msg) {
|
||||
long cPtr = icsneojavaJNI.neomessage_eth_t_cast(neomessage_t.getCPtr(msg), msg);
|
||||
return (cPtr == 0) ? null : new neomessage_eth_t(cPtr, false);
|
||||
}
|
||||
|
||||
public static neomessage_t from_can_neomessage_t_cast(neomessage_can_t msg) {
|
||||
long cPtr = icsneojavaJNI.from_can_neomessage_t_cast(neomessage_can_t.getCPtr(msg), msg);
|
||||
return (cPtr == 0) ? null : new neomessage_t(cPtr, false);
|
||||
}
|
||||
|
||||
public static neomessage_t from_eth_neomessage_t_cast(neomessage_eth_t msg) {
|
||||
long cPtr = icsneojavaJNI.from_eth_neomessage_t_cast(neomessage_eth_t.getCPtr(msg), msg);
|
||||
return (cPtr == 0) ? null : new neomessage_t(cPtr, false);
|
||||
}
|
||||
|
||||
public static neodevice_t new_neodevice_t_array(int nelements) {
|
||||
long cPtr = icsneojavaJNI.new_neodevice_t_array(nelements);
|
||||
return (cPtr == 0) ? null : new neodevice_t(cPtr, false);
|
||||
}
|
||||
|
||||
public static void delete_neodevice_t_array(neodevice_t ary) {
|
||||
icsneojavaJNI.delete_neodevice_t_array(neodevice_t.getCPtr(ary), ary);
|
||||
}
|
||||
|
||||
public static neodevice_t neodevice_t_array_getitem(neodevice_t ary, int index) {
|
||||
return new neodevice_t(icsneojavaJNI.neodevice_t_array_getitem(neodevice_t.getCPtr(ary), ary, index), true);
|
||||
}
|
||||
|
||||
public static void neodevice_t_array_setitem(neodevice_t ary, int index, neodevice_t value) {
|
||||
icsneojavaJNI.neodevice_t_array_setitem(neodevice_t.getCPtr(ary), ary, index, neodevice_t.getCPtr(value), value);
|
||||
}
|
||||
|
||||
public static neoevent_t new_neoevent_t_array(int nelements) {
|
||||
long cPtr = icsneojavaJNI.new_neoevent_t_array(nelements);
|
||||
return (cPtr == 0) ? null : new neoevent_t(cPtr, false);
|
||||
}
|
||||
|
||||
public static void delete_neoevent_t_array(neoevent_t ary) {
|
||||
icsneojavaJNI.delete_neoevent_t_array(neoevent_t.getCPtr(ary), ary);
|
||||
}
|
||||
|
||||
public static neoevent_t neoevent_t_array_getitem(neoevent_t ary, int index) {
|
||||
return new neoevent_t(icsneojavaJNI.neoevent_t_array_getitem(neoevent_t.getCPtr(ary), ary, index), true);
|
||||
}
|
||||
|
||||
public static void neoevent_t_array_setitem(neoevent_t ary, int index, neoevent_t value) {
|
||||
icsneojavaJNI.neoevent_t_array_setitem(neoevent_t.getCPtr(ary), ary, index, neoevent_t.getCPtr(value), value);
|
||||
}
|
||||
|
||||
public static neomessage_t new_neomessage_t_array(int nelements) {
|
||||
long cPtr = icsneojavaJNI.new_neomessage_t_array(nelements);
|
||||
return (cPtr == 0) ? null : new neomessage_t(cPtr, false);
|
||||
}
|
||||
|
||||
public static void delete_neomessage_t_array(neomessage_t ary) {
|
||||
icsneojavaJNI.delete_neomessage_t_array(neomessage_t.getCPtr(ary), ary);
|
||||
}
|
||||
|
||||
public static neomessage_t neomessage_t_array_getitem(neomessage_t ary, int index) {
|
||||
return new neomessage_t(icsneojavaJNI.neomessage_t_array_getitem(neomessage_t.getCPtr(ary), ary, index), true);
|
||||
}
|
||||
|
||||
public static void neomessage_t_array_setitem(neomessage_t ary, int index, neomessage_t value) {
|
||||
icsneojavaJNI.neomessage_t_array_setitem(neomessage_t.getCPtr(ary), ary, index, neomessage_t.getCPtr(value), value);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public interface icsneojavaConstants {
|
||||
public final static int ICSNEO_DEVICETYPE_LONGEST_NAME = icsneojavaJNI.ICSNEO_DEVICETYPE_LONGEST_NAME_get();
|
||||
public final static int ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION = icsneojavaJNI.ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION_get();
|
||||
public final static int ICSNEO_NETID_DEVICE = icsneojavaJNI.ICSNEO_NETID_DEVICE_get();
|
||||
public final static int ICSNEO_NETID_HSCAN = icsneojavaJNI.ICSNEO_NETID_HSCAN_get();
|
||||
public final static int ICSNEO_NETID_MSCAN = icsneojavaJNI.ICSNEO_NETID_MSCAN_get();
|
||||
public final static int ICSNEO_NETID_SWCAN = icsneojavaJNI.ICSNEO_NETID_SWCAN_get();
|
||||
public final static int ICSNEO_NETID_LSFTCAN = icsneojavaJNI.ICSNEO_NETID_LSFTCAN_get();
|
||||
public final static int ICSNEO_NETID_FORDSCP = icsneojavaJNI.ICSNEO_NETID_FORDSCP_get();
|
||||
public final static int ICSNEO_NETID_J1708 = icsneojavaJNI.ICSNEO_NETID_J1708_get();
|
||||
public final static int ICSNEO_NETID_AUX = icsneojavaJNI.ICSNEO_NETID_AUX_get();
|
||||
public final static int ICSNEO_NETID_J1850VPW = icsneojavaJNI.ICSNEO_NETID_J1850VPW_get();
|
||||
public final static int ICSNEO_NETID_ISO = icsneojavaJNI.ICSNEO_NETID_ISO_get();
|
||||
public final static int ICSNEO_NETID_ISOPIC = icsneojavaJNI.ICSNEO_NETID_ISOPIC_get();
|
||||
public final static int ICSNEO_NETID_MAIN51 = icsneojavaJNI.ICSNEO_NETID_MAIN51_get();
|
||||
public final static int ICSNEO_NETID_RED = icsneojavaJNI.ICSNEO_NETID_RED_get();
|
||||
public final static int ICSNEO_NETID_SCI = icsneojavaJNI.ICSNEO_NETID_SCI_get();
|
||||
public final static int ICSNEO_NETID_ISO2 = icsneojavaJNI.ICSNEO_NETID_ISO2_get();
|
||||
public final static int ICSNEO_NETID_ISO14230 = icsneojavaJNI.ICSNEO_NETID_ISO14230_get();
|
||||
public final static int ICSNEO_NETID_LIN = icsneojavaJNI.ICSNEO_NETID_LIN_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET1 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET1_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET2 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET2_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET3 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET3_get();
|
||||
public final static int ICSNEO_NETID_RED_EXT_MEMORYREAD = icsneojavaJNI.ICSNEO_NETID_RED_EXT_MEMORYREAD_get();
|
||||
public final static int ICSNEO_NETID_RED_INT_MEMORYREAD = icsneojavaJNI.ICSNEO_NETID_RED_INT_MEMORYREAD_get();
|
||||
public final static int ICSNEO_NETID_RED_DFLASH_READ = icsneojavaJNI.ICSNEO_NETID_RED_DFLASH_READ_get();
|
||||
public final static int ICSNEO_NETID_RED_SDCARD_READ = icsneojavaJNI.ICSNEO_NETID_RED_SDCARD_READ_get();
|
||||
public final static int ICSNEO_NETID_CAN_ERRBITS = icsneojavaJNI.ICSNEO_NETID_CAN_ERRBITS_get();
|
||||
public final static int ICSNEO_NETID_RED_DFLASH_WRITE_DONE = icsneojavaJNI.ICSNEO_NETID_RED_DFLASH_WRITE_DONE_get();
|
||||
public final static int ICSNEO_NETID_RED_WAVE_CAN1_LOGICAL = icsneojavaJNI.ICSNEO_NETID_RED_WAVE_CAN1_LOGICAL_get();
|
||||
public final static int ICSNEO_NETID_RED_WAVE_CAN2_LOGICAL = icsneojavaJNI.ICSNEO_NETID_RED_WAVE_CAN2_LOGICAL_get();
|
||||
public final static int ICSNEO_NETID_RED_WAVE_LIN1_LOGICAL = icsneojavaJNI.ICSNEO_NETID_RED_WAVE_LIN1_LOGICAL_get();
|
||||
public final static int ICSNEO_NETID_RED_WAVE_LIN2_LOGICAL = icsneojavaJNI.ICSNEO_NETID_RED_WAVE_LIN2_LOGICAL_get();
|
||||
public final static int ICSNEO_NETID_RED_WAVE_LIN1_ANALOG = icsneojavaJNI.ICSNEO_NETID_RED_WAVE_LIN1_ANALOG_get();
|
||||
public final static int ICSNEO_NETID_RED_WAVE_LIN2_ANALOG = icsneojavaJNI.ICSNEO_NETID_RED_WAVE_LIN2_ANALOG_get();
|
||||
public final static int ICSNEO_NETID_RED_WAVE_MISC_ANALOG = icsneojavaJNI.ICSNEO_NETID_RED_WAVE_MISC_ANALOG_get();
|
||||
public final static int ICSNEO_NETID_RED_WAVE_MISCDIO2_LOGICAL = icsneojavaJNI.ICSNEO_NETID_RED_WAVE_MISCDIO2_LOGICAL_get();
|
||||
public final static int ICSNEO_NETID_RED_NETWORK_COM_ENABLE_EX = icsneojavaJNI.ICSNEO_NETID_RED_NETWORK_COM_ENABLE_EX_get();
|
||||
public final static int ICSNEO_NETID_RED_NEOVI_NETWORK = icsneojavaJNI.ICSNEO_NETID_RED_NEOVI_NETWORK_get();
|
||||
public final static int ICSNEO_NETID_RED_READ_BAUD_SETTINGS = icsneojavaJNI.ICSNEO_NETID_RED_READ_BAUD_SETTINGS_get();
|
||||
public final static int ICSNEO_NETID_RED_OLDFORMAT = icsneojavaJNI.ICSNEO_NETID_RED_OLDFORMAT_get();
|
||||
public final static int ICSNEO_NETID_RED_SCOPE_CAPTURE = icsneojavaJNI.ICSNEO_NETID_RED_SCOPE_CAPTURE_get();
|
||||
public final static int ICSNEO_NETID_RED_HARDWARE_EXCEP = icsneojavaJNI.ICSNEO_NETID_RED_HARDWARE_EXCEP_get();
|
||||
public final static int ICSNEO_NETID_RED_GET_RTC = icsneojavaJNI.ICSNEO_NETID_RED_GET_RTC_get();
|
||||
public final static int ICSNEO_NETID_ISO3 = icsneojavaJNI.ICSNEO_NETID_ISO3_get();
|
||||
public final static int ICSNEO_NETID_HSCAN2 = icsneojavaJNI.ICSNEO_NETID_HSCAN2_get();
|
||||
public final static int ICSNEO_NETID_HSCAN3 = icsneojavaJNI.ICSNEO_NETID_HSCAN3_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET4 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET4_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET5 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET5_get();
|
||||
public final static int ICSNEO_NETID_ISO4 = icsneojavaJNI.ICSNEO_NETID_ISO4_get();
|
||||
public final static int ICSNEO_NETID_LIN2 = icsneojavaJNI.ICSNEO_NETID_LIN2_get();
|
||||
public final static int ICSNEO_NETID_LIN3 = icsneojavaJNI.ICSNEO_NETID_LIN3_get();
|
||||
public final static int ICSNEO_NETID_LIN4 = icsneojavaJNI.ICSNEO_NETID_LIN4_get();
|
||||
public final static int ICSNEO_NETID_RED_APP_ERROR = icsneojavaJNI.ICSNEO_NETID_RED_APP_ERROR_get();
|
||||
public final static int ICSNEO_NETID_CGI = icsneojavaJNI.ICSNEO_NETID_CGI_get();
|
||||
public final static int ICSNEO_NETID_RESET_STATUS = icsneojavaJNI.ICSNEO_NETID_RESET_STATUS_get();
|
||||
public final static int ICSNEO_NETID_FB_STATUS = icsneojavaJNI.ICSNEO_NETID_FB_STATUS_get();
|
||||
public final static int ICSNEO_NETID_APP_SIGNAL_STATUS = icsneojavaJNI.ICSNEO_NETID_APP_SIGNAL_STATUS_get();
|
||||
public final static int ICSNEO_NETID_READ_DATALINK_CM_TX_MSG = icsneojavaJNI.ICSNEO_NETID_READ_DATALINK_CM_TX_MSG_get();
|
||||
public final static int ICSNEO_NETID_READ_DATALINK_CM_RX_MSG = icsneojavaJNI.ICSNEO_NETID_READ_DATALINK_CM_RX_MSG_get();
|
||||
public final static int ICSNEO_NETID_LOGGING_OVERFLOW = icsneojavaJNI.ICSNEO_NETID_LOGGING_OVERFLOW_get();
|
||||
public final static int ICSNEO_NETID_READ_SETTINGS = icsneojavaJNI.ICSNEO_NETID_READ_SETTINGS_get();
|
||||
public final static int ICSNEO_NETID_HSCAN4 = icsneojavaJNI.ICSNEO_NETID_HSCAN4_get();
|
||||
public final static int ICSNEO_NETID_HSCAN5 = icsneojavaJNI.ICSNEO_NETID_HSCAN5_get();
|
||||
public final static int ICSNEO_NETID_RS232 = icsneojavaJNI.ICSNEO_NETID_RS232_get();
|
||||
public final static int ICSNEO_NETID_UART = icsneojavaJNI.ICSNEO_NETID_UART_get();
|
||||
public final static int ICSNEO_NETID_UART2 = icsneojavaJNI.ICSNEO_NETID_UART2_get();
|
||||
public final static int ICSNEO_NETID_UART3 = icsneojavaJNI.ICSNEO_NETID_UART3_get();
|
||||
public final static int ICSNEO_NETID_UART4 = icsneojavaJNI.ICSNEO_NETID_UART4_get();
|
||||
public final static int ICSNEO_NETID_SWCAN2 = icsneojavaJNI.ICSNEO_NETID_SWCAN2_get();
|
||||
public final static int ICSNEO_NETID_ETHERNET_DAQ = icsneojavaJNI.ICSNEO_NETID_ETHERNET_DAQ_get();
|
||||
public final static int ICSNEO_NETID_DATA_TO_HOST = icsneojavaJNI.ICSNEO_NETID_DATA_TO_HOST_get();
|
||||
public final static int ICSNEO_NETID_TEXTAPI_TO_HOST = icsneojavaJNI.ICSNEO_NETID_TEXTAPI_TO_HOST_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET6 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET6_get();
|
||||
public final static int ICSNEO_NETID_RED_VBAT = icsneojavaJNI.ICSNEO_NETID_RED_VBAT_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET7 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET7_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET8 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET8_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET9 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET9_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET10 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET10_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET11 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET11_get();
|
||||
public final static int ICSNEO_NETID_FLEXRAY1A = icsneojavaJNI.ICSNEO_NETID_FLEXRAY1A_get();
|
||||
public final static int ICSNEO_NETID_FLEXRAY1B = icsneojavaJNI.ICSNEO_NETID_FLEXRAY1B_get();
|
||||
public final static int ICSNEO_NETID_FLEXRAY2A = icsneojavaJNI.ICSNEO_NETID_FLEXRAY2A_get();
|
||||
public final static int ICSNEO_NETID_FLEXRAY2B = icsneojavaJNI.ICSNEO_NETID_FLEXRAY2B_get();
|
||||
public final static int ICSNEO_NETID_LIN5 = icsneojavaJNI.ICSNEO_NETID_LIN5_get();
|
||||
public final static int ICSNEO_NETID_FLEXRAY = icsneojavaJNI.ICSNEO_NETID_FLEXRAY_get();
|
||||
public final static int ICSNEO_NETID_FLEXRAY2 = icsneojavaJNI.ICSNEO_NETID_FLEXRAY2_get();
|
||||
public final static int ICSNEO_NETID_OP_ETHERNET12 = icsneojavaJNI.ICSNEO_NETID_OP_ETHERNET12_get();
|
||||
public final static int ICSNEO_NETID_MOST25 = icsneojavaJNI.ICSNEO_NETID_MOST25_get();
|
||||
public final static int ICSNEO_NETID_MOST50 = icsneojavaJNI.ICSNEO_NETID_MOST50_get();
|
||||
public final static int ICSNEO_NETID_MOST150 = icsneojavaJNI.ICSNEO_NETID_MOST150_get();
|
||||
public final static int ICSNEO_NETID_ETHERNET = icsneojavaJNI.ICSNEO_NETID_ETHERNET_get();
|
||||
public final static int ICSNEO_NETID_GMFSA = icsneojavaJNI.ICSNEO_NETID_GMFSA_get();
|
||||
public final static int ICSNEO_NETID_TCP = icsneojavaJNI.ICSNEO_NETID_TCP_get();
|
||||
public final static int ICSNEO_NETID_HSCAN6 = icsneojavaJNI.ICSNEO_NETID_HSCAN6_get();
|
||||
public final static int ICSNEO_NETID_HSCAN7 = icsneojavaJNI.ICSNEO_NETID_HSCAN7_get();
|
||||
public final static int ICSNEO_NETID_LIN6 = icsneojavaJNI.ICSNEO_NETID_LIN6_get();
|
||||
public final static int ICSNEO_NETID_LSFTCAN2 = icsneojavaJNI.ICSNEO_NETID_LSFTCAN2_get();
|
||||
public final static int ICSNEO_NETID_HW_COM_LATENCY_TEST = icsneojavaJNI.ICSNEO_NETID_HW_COM_LATENCY_TEST_get();
|
||||
public final static int ICSNEO_NETID_DEVICE_STATUS = icsneojavaJNI.ICSNEO_NETID_DEVICE_STATUS_get();
|
||||
public final static int ICSNEO_NETID_ANY = icsneojavaJNI.ICSNEO_NETID_ANY_get();
|
||||
public final static int ICSNEO_NETID_INVALID = icsneojavaJNI.ICSNEO_NETID_INVALID_get();
|
||||
public final static int ICSNEO_NETWORK_TYPE_INVALID = icsneojavaJNI.ICSNEO_NETWORK_TYPE_INVALID_get();
|
||||
public final static int ICSNEO_NETWORK_TYPE_INTERNAL = icsneojavaJNI.ICSNEO_NETWORK_TYPE_INTERNAL_get();
|
||||
public final static int ICSNEO_NETWORK_TYPE_CAN = icsneojavaJNI.ICSNEO_NETWORK_TYPE_CAN_get();
|
||||
public final static int ICSNEO_NETWORK_TYPE_LIN = icsneojavaJNI.ICSNEO_NETWORK_TYPE_LIN_get();
|
||||
public final static int ICSNEO_NETWORK_TYPE_FLEXRAY = icsneojavaJNI.ICSNEO_NETWORK_TYPE_FLEXRAY_get();
|
||||
public final static int ICSNEO_NETWORK_TYPE_MOST = icsneojavaJNI.ICSNEO_NETWORK_TYPE_MOST_get();
|
||||
public final static int ICSNEO_NETWORK_TYPE_ETHERNET = icsneojavaJNI.ICSNEO_NETWORK_TYPE_ETHERNET_get();
|
||||
public final static int ICSNEO_NETWORK_TYPE_ANY = icsneojavaJNI.ICSNEO_NETWORK_TYPE_ANY_get();
|
||||
public final static int ICSNEO_NETWORK_TYPE_OTHER = icsneojavaJNI.ICSNEO_NETWORK_TYPE_OTHER_get();
|
||||
}
|
||||
|
|
@ -0,0 +1,400 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class icsneojavaJNI {
|
||||
public final static native void icsneo_findAllDevices(long jarg1, neodevice_t jarg1_, int[] jarg2);
|
||||
public final static native void icsneo_freeUnconnectedDevices();
|
||||
public final static native boolean icsneo_serialNumToString(long jarg1, StringBuffer jarg2, int[] jarg3);
|
||||
public final static native long icsneo_serialStringToNum(StringBuffer jarg1);
|
||||
public final static native boolean icsneo_isValidNeoDevice(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_openDevice(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_closeDevice(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_isOpen(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_goOnline(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_goOffline(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_isOnline(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_enableMessagePolling(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_disableMessagePolling(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_isMessagePollingEnabled(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_getMessages(long jarg1, neodevice_t jarg1_, long jarg2, neomessage_t jarg2_, int[] jarg3, java.math.BigInteger jarg4);
|
||||
public final static native long icsneo_getPollingMessageLimit(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_setPollingMessageLimit(long jarg1, neodevice_t jarg1_, long jarg2);
|
||||
public final static native boolean icsneo_getProductName(long jarg1, neodevice_t jarg1_, StringBuffer jarg2, int[] jarg3);
|
||||
public final static native boolean icsneo_getProductNameForType(long jarg1, StringBuffer jarg2, int[] jarg3);
|
||||
public final static native boolean icsneo_settingsRefresh(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_settingsApply(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_settingsApplyTemporary(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_settingsApplyDefaults(long jarg1, neodevice_t jarg1_);
|
||||
public final static native boolean icsneo_settingsApplyDefaultsTemporary(long jarg1, neodevice_t jarg1_);
|
||||
public final static native int icsneo_settingsReadStructure(long jarg1, neodevice_t jarg1_, long jarg2, long jarg3);
|
||||
public final static native boolean icsneo_settingsApplyStructure(long jarg1, neodevice_t jarg1_, long jarg2, long jarg3);
|
||||
public final static native boolean icsneo_settingsApplyStructureTemporary(long jarg1, neodevice_t jarg1_, long jarg2, long jarg3);
|
||||
public final static native long icsneo_getBaudrate(long jarg1, neodevice_t jarg1_, int jarg2);
|
||||
public final static native boolean icsneo_setBaudrate(long jarg1, neodevice_t jarg1_, int jarg2, long jarg3);
|
||||
public final static native long icsneo_getFDBaudrate(long jarg1, neodevice_t jarg1_, int jarg2);
|
||||
public final static native boolean icsneo_setFDBaudrate(long jarg1, neodevice_t jarg1_, int jarg2, long jarg3);
|
||||
public final static native boolean icsneo_transmit(long jarg1, neodevice_t jarg1_, long jarg2, neomessage_t jarg2_);
|
||||
public final static native boolean icsneo_transmitMessages(long jarg1, neodevice_t jarg1_, long jarg2, neomessage_t jarg2_, long jarg3);
|
||||
public final static native void icsneo_setWriteBlocks(long jarg1, neodevice_t jarg1_, boolean jarg2);
|
||||
public final static native boolean icsneo_describeDevice(long jarg1, neodevice_t jarg1_, StringBuffer jarg2, int[] jarg3);
|
||||
public final static native long icsneo_getVersion();
|
||||
public final static native boolean icsneo_getEvents(long jarg1, neoevent_t jarg1_, int[] jarg2);
|
||||
public final static native boolean icsneo_getDeviceEvents(long jarg1, neodevice_t jarg1_, long jarg2, neoevent_t jarg2_, int[] jarg3);
|
||||
public final static native boolean icsneo_getLastError(long jarg1, neoevent_t jarg1_);
|
||||
public final static native void icsneo_discardAllEvents();
|
||||
public final static native void icsneo_discardDeviceEvents(long jarg1, neodevice_t jarg1_);
|
||||
public final static native void icsneo_setEventLimit(long jarg1);
|
||||
public final static native long icsneo_getEventLimit();
|
||||
public final static native boolean icsneo_getSupportedDevices(long jarg1, int[] jarg2);
|
||||
public final static native boolean icsneo_getTimestampResolution(long jarg1, neodevice_t jarg1_, long jarg2);
|
||||
public final static native void neodevice_t_device_set(long jarg1, neodevice_t jarg1_, long jarg2);
|
||||
public final static native long neodevice_t_device_get(long jarg1, neodevice_t jarg1_);
|
||||
public final static native void neodevice_t_handle_set(long jarg1, neodevice_t jarg1_, int jarg2);
|
||||
public final static native int neodevice_t_handle_get(long jarg1, neodevice_t jarg1_);
|
||||
public final static native void neodevice_t_type_set(long jarg1, neodevice_t jarg1_, long jarg2);
|
||||
public final static native long neodevice_t_type_get(long jarg1, neodevice_t jarg1_);
|
||||
public final static native void neodevice_t_serial_set(long jarg1, neodevice_t jarg1_, String jarg2);
|
||||
public final static native String neodevice_t_serial_get(long jarg1, neodevice_t jarg1_);
|
||||
public final static native long new_neodevice_t();
|
||||
public final static native void delete_neodevice_t(long jarg1);
|
||||
public final static native void neomessage_statusbitfield_t_globalError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_globalError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_transmitMessage_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_transmitMessage_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_extendedFrame_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_extendedFrame_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_remoteFrame_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_remoteFrame_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_crcError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_crcError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canErrorPassive_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canErrorPassive_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_incompleteFrame_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_incompleteFrame_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_lostArbitration_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_lostArbitration_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_undefinedError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_undefinedError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canBusOff_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canBusOff_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canErrorWarning_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canErrorWarning_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canBusShortedPlus_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canBusShortedPlus_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canBusShortedGround_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canBusShortedGround_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_checksumError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_checksumError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_badMessageBitTimeError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_badMessageBitTimeError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_ifrData_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_ifrData_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_hardwareCommError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_hardwareCommError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_expectedLengthError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_expectedLengthError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_incomingNoMatch_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_incomingNoMatch_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_statusBreak_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_statusBreak_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_avsiRecOverflow_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_avsiRecOverflow_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_testTrigger_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_testTrigger_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_audioComment_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_audioComment_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_gpsData_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_gpsData_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_analogDigitalInput_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_analogDigitalInput_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_textComment_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_textComment_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_networkMessageType_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_networkMessageType_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_vsiTXUnderrun_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_vsiTXUnderrun_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_vsiIFRCRCBit_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_vsiIFRCRCBit_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_initMessage_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_initMessage_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_flexraySecondStartupFrame_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_flexraySecondStartupFrame_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_extended_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_extended_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_hasValue_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_hasValue_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_valueIsBoolean_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_valueIsBoolean_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_highVoltage_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_highVoltage_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_longMessage_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_longMessage_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_globalChange_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_globalChange_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_errorFrame_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_errorFrame_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_endOfLongMessage_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_endOfLongMessage_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linErrorRXBreakNotZero_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linErrorRXBreakNotZero_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linErrorRXBreakTooShort_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linErrorRXBreakTooShort_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linErrorRXSyncNot55_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linErrorRXSyncNot55_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linErrorRXDataGreaterEight_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linErrorRXDataGreaterEight_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linErrorTXRXMismatch_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linErrorTXRXMismatch_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linErrorMessageIDParity_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linErrorMessageIDParity_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linSyncFrameError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linSyncFrameError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linIDFrameError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linIDFrameError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linSlaveByteError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linSlaveByteError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_rxTimeoutError_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_rxTimeoutError_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_linNoSlaveData_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_linNoSlaveData_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canfdESI_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canfdESI_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canfdIDE_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canfdIDE_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canfdRTR_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canfdRTR_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canfdFDF_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canfdFDF_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_canfdBRS_set(long jarg1, neomessage_statusbitfield_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_statusbitfield_t_canfdBRS_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native void neomessage_statusbitfield_t_statusBitfield_set(long jarg1, neomessage_statusbitfield_t jarg1_, long[] jarg2);
|
||||
public final static native long[] neomessage_statusbitfield_t_statusBitfield_get(long jarg1, neomessage_statusbitfield_t jarg1_);
|
||||
public final static native long new_neomessage_statusbitfield_t();
|
||||
public final static native void delete_neomessage_statusbitfield_t(long jarg1);
|
||||
public final static native void neomessage_t_status_set(long jarg1, neomessage_t jarg1_, long jarg2, neomessage_statusbitfield_t jarg2_);
|
||||
public final static native long neomessage_t_status_get(long jarg1, neomessage_t jarg1_);
|
||||
public final static native void neomessage_t_timestamp_set(long jarg1, neomessage_t jarg1_, java.math.BigInteger jarg2);
|
||||
public final static native java.math.BigInteger neomessage_t_timestamp_get(long jarg1, neomessage_t jarg1_);
|
||||
public final static native void neomessage_t_timestampReserved_set(long jarg1, neomessage_t jarg1_, java.math.BigInteger jarg2);
|
||||
public final static native java.math.BigInteger neomessage_t_timestampReserved_get(long jarg1, neomessage_t jarg1_);
|
||||
public final static native void neomessage_t_data_set(long jarg1, neomessage_t jarg1_, byte[] jarg2);
|
||||
public final static native byte[] neomessage_t_data_get(long jarg1, neomessage_t jarg1_);
|
||||
public final static native void neomessage_t_length_set(long jarg1, neomessage_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_t_length_get(long jarg1, neomessage_t jarg1_);
|
||||
public final static native void neomessage_t_header_set(long jarg1, neomessage_t jarg1_, short[] jarg2);
|
||||
public final static native short[] neomessage_t_header_get(long jarg1, neomessage_t jarg1_);
|
||||
public final static native void neomessage_t_netid_set(long jarg1, neomessage_t jarg1_, int jarg2);
|
||||
public final static native int neomessage_t_netid_get(long jarg1, neomessage_t jarg1_);
|
||||
public final static native void neomessage_t_type_set(long jarg1, neomessage_t jarg1_, short jarg2);
|
||||
public final static native short neomessage_t_type_get(long jarg1, neomessage_t jarg1_);
|
||||
public final static native void neomessage_t_reserved_set(long jarg1, neomessage_t jarg1_, short[] jarg2);
|
||||
public final static native short[] neomessage_t_reserved_get(long jarg1, neomessage_t jarg1_);
|
||||
public final static native long new_neomessage_t();
|
||||
public final static native void delete_neomessage_t(long jarg1);
|
||||
public final static native void neomessage_can_t_status_set(long jarg1, neomessage_can_t jarg1_, long jarg2, neomessage_statusbitfield_t jarg2_);
|
||||
public final static native long neomessage_can_t_status_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native void neomessage_can_t_timestamp_set(long jarg1, neomessage_can_t jarg1_, java.math.BigInteger jarg2);
|
||||
public final static native java.math.BigInteger neomessage_can_t_timestamp_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native void neomessage_can_t_timestampReserved_set(long jarg1, neomessage_can_t jarg1_, java.math.BigInteger jarg2);
|
||||
public final static native java.math.BigInteger neomessage_can_t_timestampReserved_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native void neomessage_can_t_data_set(long jarg1, neomessage_can_t jarg1_, byte[] jarg2);
|
||||
public final static native byte[] neomessage_can_t_data_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native void neomessage_can_t_length_set(long jarg1, neomessage_can_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_can_t_length_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native void neomessage_can_t_arbid_set(long jarg1, neomessage_can_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_can_t_arbid_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native void neomessage_can_t_netid_set(long jarg1, neomessage_can_t jarg1_, int jarg2);
|
||||
public final static native int neomessage_can_t_netid_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native void neomessage_can_t_type_set(long jarg1, neomessage_can_t jarg1_, short jarg2);
|
||||
public final static native short neomessage_can_t_type_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native void neomessage_can_t_dlcOnWire_set(long jarg1, neomessage_can_t jarg1_, short jarg2);
|
||||
public final static native short neomessage_can_t_dlcOnWire_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native void neomessage_can_t_reserved_set(long jarg1, neomessage_can_t jarg1_, short[] jarg2);
|
||||
public final static native short[] neomessage_can_t_reserved_get(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native long new_neomessage_can_t();
|
||||
public final static native void delete_neomessage_can_t(long jarg1);
|
||||
public final static native void neomessage_eth_t_status_set(long jarg1, neomessage_eth_t jarg1_, long jarg2, neomessage_statusbitfield_t jarg2_);
|
||||
public final static native long neomessage_eth_t_status_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native void neomessage_eth_t_timestamp_set(long jarg1, neomessage_eth_t jarg1_, java.math.BigInteger jarg2);
|
||||
public final static native java.math.BigInteger neomessage_eth_t_timestamp_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native void neomessage_eth_t_timestampReserved_set(long jarg1, neomessage_eth_t jarg1_, java.math.BigInteger jarg2);
|
||||
public final static native java.math.BigInteger neomessage_eth_t_timestampReserved_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native void neomessage_eth_t_data_set(long jarg1, neomessage_eth_t jarg1_, byte[] jarg2);
|
||||
public final static native byte[] neomessage_eth_t_data_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native void neomessage_eth_t_length_set(long jarg1, neomessage_eth_t jarg1_, long jarg2);
|
||||
public final static native long neomessage_eth_t_length_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native void neomessage_eth_t_preemptionFlags_set(long jarg1, neomessage_eth_t jarg1_, short jarg2);
|
||||
public final static native short neomessage_eth_t_preemptionFlags_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native void neomessage_eth_t_reservedHeader_set(long jarg1, neomessage_eth_t jarg1_, short[] jarg2);
|
||||
public final static native short[] neomessage_eth_t_reservedHeader_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native void neomessage_eth_t_netid_set(long jarg1, neomessage_eth_t jarg1_, int jarg2);
|
||||
public final static native int neomessage_eth_t_netid_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native void neomessage_eth_t_type_set(long jarg1, neomessage_eth_t jarg1_, short jarg2);
|
||||
public final static native short neomessage_eth_t_type_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native void neomessage_eth_t_reserved_set(long jarg1, neomessage_eth_t jarg1_, short[] jarg2);
|
||||
public final static native short[] neomessage_eth_t_reserved_get(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native long new_neomessage_eth_t();
|
||||
public final static native void delete_neomessage_eth_t(long jarg1);
|
||||
public final static native int ICSNEO_DEVICETYPE_LONGEST_NAME_get();
|
||||
public final static native int ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION_get();
|
||||
public final static native void neoversion_t_major_set(long jarg1, neoversion_t jarg1_, int jarg2);
|
||||
public final static native int neoversion_t_major_get(long jarg1, neoversion_t jarg1_);
|
||||
public final static native void neoversion_t_minor_set(long jarg1, neoversion_t jarg1_, int jarg2);
|
||||
public final static native int neoversion_t_minor_get(long jarg1, neoversion_t jarg1_);
|
||||
public final static native void neoversion_t_patch_set(long jarg1, neoversion_t jarg1_, int jarg2);
|
||||
public final static native int neoversion_t_patch_get(long jarg1, neoversion_t jarg1_);
|
||||
public final static native void neoversion_t_metadata_set(long jarg1, neoversion_t jarg1_, String jarg2);
|
||||
public final static native String neoversion_t_metadata_get(long jarg1, neoversion_t jarg1_);
|
||||
public final static native void neoversion_t_buildBranch_set(long jarg1, neoversion_t jarg1_, String jarg2);
|
||||
public final static native String neoversion_t_buildBranch_get(long jarg1, neoversion_t jarg1_);
|
||||
public final static native void neoversion_t_buildTag_set(long jarg1, neoversion_t jarg1_, String jarg2);
|
||||
public final static native String neoversion_t_buildTag_get(long jarg1, neoversion_t jarg1_);
|
||||
public final static native void neoversion_t_reserved_set(long jarg1, neoversion_t jarg1_, String jarg2);
|
||||
public final static native String neoversion_t_reserved_get(long jarg1, neoversion_t jarg1_);
|
||||
public final static native long new_neoversion_t();
|
||||
public final static native void delete_neoversion_t(long jarg1);
|
||||
public final static native void neoevent_t_description_set(long jarg1, neoevent_t jarg1_, String jarg2);
|
||||
public final static native String neoevent_t_description_get(long jarg1, neoevent_t jarg1_);
|
||||
public final static native void neoevent_t_timestamp_set(long jarg1, neoevent_t jarg1_, long jarg2);
|
||||
public final static native long neoevent_t_timestamp_get(long jarg1, neoevent_t jarg1_);
|
||||
public final static native void neoevent_t_eventNumber_set(long jarg1, neoevent_t jarg1_, long jarg2);
|
||||
public final static native long neoevent_t_eventNumber_get(long jarg1, neoevent_t jarg1_);
|
||||
public final static native void neoevent_t_severity_set(long jarg1, neoevent_t jarg1_, short jarg2);
|
||||
public final static native short neoevent_t_severity_get(long jarg1, neoevent_t jarg1_);
|
||||
public final static native void neoevent_t_serial_set(long jarg1, neoevent_t jarg1_, String jarg2);
|
||||
public final static native String neoevent_t_serial_get(long jarg1, neoevent_t jarg1_);
|
||||
public final static native void neoevent_t_reserved_set(long jarg1, neoevent_t jarg1_, short[] jarg2);
|
||||
public final static native short[] neoevent_t_reserved_get(long jarg1, neoevent_t jarg1_);
|
||||
public final static native long new_neoevent_t();
|
||||
public final static native void delete_neoevent_t(long jarg1);
|
||||
public final static native int ICSNEO_NETID_DEVICE_get();
|
||||
public final static native int ICSNEO_NETID_HSCAN_get();
|
||||
public final static native int ICSNEO_NETID_MSCAN_get();
|
||||
public final static native int ICSNEO_NETID_SWCAN_get();
|
||||
public final static native int ICSNEO_NETID_LSFTCAN_get();
|
||||
public final static native int ICSNEO_NETID_FORDSCP_get();
|
||||
public final static native int ICSNEO_NETID_J1708_get();
|
||||
public final static native int ICSNEO_NETID_AUX_get();
|
||||
public final static native int ICSNEO_NETID_J1850VPW_get();
|
||||
public final static native int ICSNEO_NETID_ISO_get();
|
||||
public final static native int ICSNEO_NETID_ISOPIC_get();
|
||||
public final static native int ICSNEO_NETID_MAIN51_get();
|
||||
public final static native int ICSNEO_NETID_RED_get();
|
||||
public final static native int ICSNEO_NETID_SCI_get();
|
||||
public final static native int ICSNEO_NETID_ISO2_get();
|
||||
public final static native int ICSNEO_NETID_ISO14230_get();
|
||||
public final static native int ICSNEO_NETID_LIN_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET1_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET2_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET3_get();
|
||||
public final static native int ICSNEO_NETID_RED_EXT_MEMORYREAD_get();
|
||||
public final static native int ICSNEO_NETID_RED_INT_MEMORYREAD_get();
|
||||
public final static native int ICSNEO_NETID_RED_DFLASH_READ_get();
|
||||
public final static native int ICSNEO_NETID_RED_SDCARD_READ_get();
|
||||
public final static native int ICSNEO_NETID_CAN_ERRBITS_get();
|
||||
public final static native int ICSNEO_NETID_RED_DFLASH_WRITE_DONE_get();
|
||||
public final static native int ICSNEO_NETID_RED_WAVE_CAN1_LOGICAL_get();
|
||||
public final static native int ICSNEO_NETID_RED_WAVE_CAN2_LOGICAL_get();
|
||||
public final static native int ICSNEO_NETID_RED_WAVE_LIN1_LOGICAL_get();
|
||||
public final static native int ICSNEO_NETID_RED_WAVE_LIN2_LOGICAL_get();
|
||||
public final static native int ICSNEO_NETID_RED_WAVE_LIN1_ANALOG_get();
|
||||
public final static native int ICSNEO_NETID_RED_WAVE_LIN2_ANALOG_get();
|
||||
public final static native int ICSNEO_NETID_RED_WAVE_MISC_ANALOG_get();
|
||||
public final static native int ICSNEO_NETID_RED_WAVE_MISCDIO2_LOGICAL_get();
|
||||
public final static native int ICSNEO_NETID_RED_NETWORK_COM_ENABLE_EX_get();
|
||||
public final static native int ICSNEO_NETID_RED_NEOVI_NETWORK_get();
|
||||
public final static native int ICSNEO_NETID_RED_READ_BAUD_SETTINGS_get();
|
||||
public final static native int ICSNEO_NETID_RED_OLDFORMAT_get();
|
||||
public final static native int ICSNEO_NETID_RED_SCOPE_CAPTURE_get();
|
||||
public final static native int ICSNEO_NETID_RED_HARDWARE_EXCEP_get();
|
||||
public final static native int ICSNEO_NETID_RED_GET_RTC_get();
|
||||
public final static native int ICSNEO_NETID_ISO3_get();
|
||||
public final static native int ICSNEO_NETID_HSCAN2_get();
|
||||
public final static native int ICSNEO_NETID_HSCAN3_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET4_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET5_get();
|
||||
public final static native int ICSNEO_NETID_ISO4_get();
|
||||
public final static native int ICSNEO_NETID_LIN2_get();
|
||||
public final static native int ICSNEO_NETID_LIN3_get();
|
||||
public final static native int ICSNEO_NETID_LIN4_get();
|
||||
public final static native int ICSNEO_NETID_RED_APP_ERROR_get();
|
||||
public final static native int ICSNEO_NETID_CGI_get();
|
||||
public final static native int ICSNEO_NETID_RESET_STATUS_get();
|
||||
public final static native int ICSNEO_NETID_FB_STATUS_get();
|
||||
public final static native int ICSNEO_NETID_APP_SIGNAL_STATUS_get();
|
||||
public final static native int ICSNEO_NETID_READ_DATALINK_CM_TX_MSG_get();
|
||||
public final static native int ICSNEO_NETID_READ_DATALINK_CM_RX_MSG_get();
|
||||
public final static native int ICSNEO_NETID_LOGGING_OVERFLOW_get();
|
||||
public final static native int ICSNEO_NETID_READ_SETTINGS_get();
|
||||
public final static native int ICSNEO_NETID_HSCAN4_get();
|
||||
public final static native int ICSNEO_NETID_HSCAN5_get();
|
||||
public final static native int ICSNEO_NETID_RS232_get();
|
||||
public final static native int ICSNEO_NETID_UART_get();
|
||||
public final static native int ICSNEO_NETID_UART2_get();
|
||||
public final static native int ICSNEO_NETID_UART3_get();
|
||||
public final static native int ICSNEO_NETID_UART4_get();
|
||||
public final static native int ICSNEO_NETID_SWCAN2_get();
|
||||
public final static native int ICSNEO_NETID_ETHERNET_DAQ_get();
|
||||
public final static native int ICSNEO_NETID_DATA_TO_HOST_get();
|
||||
public final static native int ICSNEO_NETID_TEXTAPI_TO_HOST_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET6_get();
|
||||
public final static native int ICSNEO_NETID_RED_VBAT_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET7_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET8_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET9_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET10_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET11_get();
|
||||
public final static native int ICSNEO_NETID_FLEXRAY1A_get();
|
||||
public final static native int ICSNEO_NETID_FLEXRAY1B_get();
|
||||
public final static native int ICSNEO_NETID_FLEXRAY2A_get();
|
||||
public final static native int ICSNEO_NETID_FLEXRAY2B_get();
|
||||
public final static native int ICSNEO_NETID_LIN5_get();
|
||||
public final static native int ICSNEO_NETID_FLEXRAY_get();
|
||||
public final static native int ICSNEO_NETID_FLEXRAY2_get();
|
||||
public final static native int ICSNEO_NETID_OP_ETHERNET12_get();
|
||||
public final static native int ICSNEO_NETID_MOST25_get();
|
||||
public final static native int ICSNEO_NETID_MOST50_get();
|
||||
public final static native int ICSNEO_NETID_MOST150_get();
|
||||
public final static native int ICSNEO_NETID_ETHERNET_get();
|
||||
public final static native int ICSNEO_NETID_GMFSA_get();
|
||||
public final static native int ICSNEO_NETID_TCP_get();
|
||||
public final static native int ICSNEO_NETID_HSCAN6_get();
|
||||
public final static native int ICSNEO_NETID_HSCAN7_get();
|
||||
public final static native int ICSNEO_NETID_LIN6_get();
|
||||
public final static native int ICSNEO_NETID_LSFTCAN2_get();
|
||||
public final static native int ICSNEO_NETID_HW_COM_LATENCY_TEST_get();
|
||||
public final static native int ICSNEO_NETID_DEVICE_STATUS_get();
|
||||
public final static native int ICSNEO_NETID_ANY_get();
|
||||
public final static native int ICSNEO_NETID_INVALID_get();
|
||||
public final static native int ICSNEO_NETWORK_TYPE_INVALID_get();
|
||||
public final static native int ICSNEO_NETWORK_TYPE_INTERNAL_get();
|
||||
public final static native int ICSNEO_NETWORK_TYPE_CAN_get();
|
||||
public final static native int ICSNEO_NETWORK_TYPE_LIN_get();
|
||||
public final static native int ICSNEO_NETWORK_TYPE_FLEXRAY_get();
|
||||
public final static native int ICSNEO_NETWORK_TYPE_MOST_get();
|
||||
public final static native int ICSNEO_NETWORK_TYPE_ETHERNET_get();
|
||||
public final static native int ICSNEO_NETWORK_TYPE_ANY_get();
|
||||
public final static native int ICSNEO_NETWORK_TYPE_OTHER_get();
|
||||
public final static native long neomessage_can_t_cast(long jarg1, neomessage_t jarg1_);
|
||||
public final static native long neomessage_eth_t_cast(long jarg1, neomessage_t jarg1_);
|
||||
public final static native long from_can_neomessage_t_cast(long jarg1, neomessage_can_t jarg1_);
|
||||
public final static native long from_eth_neomessage_t_cast(long jarg1, neomessage_eth_t jarg1_);
|
||||
public final static native long new_neodevice_t_array(int jarg1);
|
||||
public final static native void delete_neodevice_t_array(long jarg1, neodevice_t jarg1_);
|
||||
public final static native long neodevice_t_array_getitem(long jarg1, neodevice_t jarg1_, int jarg2);
|
||||
public final static native void neodevice_t_array_setitem(long jarg1, neodevice_t jarg1_, int jarg2, long jarg3, neodevice_t jarg3_);
|
||||
public final static native long new_neoevent_t_array(int jarg1);
|
||||
public final static native void delete_neoevent_t_array(long jarg1, neoevent_t jarg1_);
|
||||
public final static native long neoevent_t_array_getitem(long jarg1, neoevent_t jarg1_, int jarg2);
|
||||
public final static native void neoevent_t_array_setitem(long jarg1, neoevent_t jarg1_, int jarg2, long jarg3, neoevent_t jarg3_);
|
||||
public final static native long new_neomessage_t_array(int jarg1);
|
||||
public final static native void delete_neomessage_t_array(long jarg1, neomessage_t jarg1_);
|
||||
public final static native long neomessage_t_array_getitem(long jarg1, neomessage_t jarg1_, int jarg2);
|
||||
public final static native void neomessage_t_array_setitem(long jarg1, neomessage_t jarg1_, int jarg2, long jarg3, neomessage_t jarg3_);
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class neodevice_t {
|
||||
private transient long swigCPtr;
|
||||
protected transient boolean swigCMemOwn;
|
||||
|
||||
protected neodevice_t(long cPtr, boolean cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected static long getCPtr(neodevice_t obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void finalize() {
|
||||
delete();
|
||||
}
|
||||
|
||||
public synchronized void delete() {
|
||||
if (swigCPtr != 0) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneojavaJNI.delete_neodevice_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void setDevice(SWIGTYPE_p_void value) {
|
||||
icsneojavaJNI.neodevice_t_device_set(swigCPtr, this, SWIGTYPE_p_void.getCPtr(value));
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_void getDevice() {
|
||||
long cPtr = icsneojavaJNI.neodevice_t_device_get(swigCPtr, this);
|
||||
return (cPtr == 0) ? null : new SWIGTYPE_p_void(cPtr, false);
|
||||
}
|
||||
|
||||
public void setHandle(int value) {
|
||||
icsneojavaJNI.neodevice_t_handle_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public int getHandle() {
|
||||
return icsneojavaJNI.neodevice_t_handle_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setType(long value) {
|
||||
icsneojavaJNI.neodevice_t_type_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getType() {
|
||||
return icsneojavaJNI.neodevice_t_type_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setSerial(String value) {
|
||||
icsneojavaJNI.neodevice_t_serial_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public String getSerial() {
|
||||
return icsneojavaJNI.neodevice_t_serial_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public neodevice_t() {
|
||||
this(icsneojavaJNI.new_neodevice_t(), true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class neoevent_t {
|
||||
private transient long swigCPtr;
|
||||
protected transient boolean swigCMemOwn;
|
||||
|
||||
protected neoevent_t(long cPtr, boolean cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected static long getCPtr(neoevent_t obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void finalize() {
|
||||
delete();
|
||||
}
|
||||
|
||||
public synchronized void delete() {
|
||||
if (swigCPtr != 0) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneojavaJNI.delete_neoevent_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void setDescription(String value) {
|
||||
icsneojavaJNI.neoevent_t_description_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return icsneojavaJNI.neoevent_t_description_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setTimestamp(SWIGTYPE_p_time_t value) {
|
||||
icsneojavaJNI.neoevent_t_timestamp_set(swigCPtr, this, SWIGTYPE_p_time_t.getCPtr(value));
|
||||
}
|
||||
|
||||
public SWIGTYPE_p_time_t getTimestamp() {
|
||||
return new SWIGTYPE_p_time_t(icsneojavaJNI.neoevent_t_timestamp_get(swigCPtr, this), true);
|
||||
}
|
||||
|
||||
public void setEventNumber(long value) {
|
||||
icsneojavaJNI.neoevent_t_eventNumber_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getEventNumber() {
|
||||
return icsneojavaJNI.neoevent_t_eventNumber_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setSeverity(short value) {
|
||||
icsneojavaJNI.neoevent_t_severity_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short getSeverity() {
|
||||
return icsneojavaJNI.neoevent_t_severity_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setSerial(String value) {
|
||||
icsneojavaJNI.neoevent_t_serial_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public String getSerial() {
|
||||
return icsneojavaJNI.neoevent_t_serial_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setReserved(short[] value) {
|
||||
icsneojavaJNI.neoevent_t_reserved_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short[] getReserved() {
|
||||
return icsneojavaJNI.neoevent_t_reserved_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public neoevent_t() {
|
||||
this(icsneojavaJNI.new_neoevent_t(), true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class neomessage_can_t {
|
||||
private transient long swigCPtr;
|
||||
protected transient boolean swigCMemOwn;
|
||||
|
||||
protected neomessage_can_t(long cPtr, boolean cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected static long getCPtr(neomessage_can_t obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void finalize() {
|
||||
delete();
|
||||
}
|
||||
|
||||
public synchronized void delete() {
|
||||
if (swigCPtr != 0) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneojavaJNI.delete_neomessage_can_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void setStatus(neomessage_statusbitfield_t value) {
|
||||
icsneojavaJNI.neomessage_can_t_status_set(swigCPtr, this, neomessage_statusbitfield_t.getCPtr(value), value);
|
||||
}
|
||||
|
||||
public neomessage_statusbitfield_t getStatus() {
|
||||
long cPtr = icsneojavaJNI.neomessage_can_t_status_get(swigCPtr, this);
|
||||
return (cPtr == 0) ? null : new neomessage_statusbitfield_t(cPtr, false);
|
||||
}
|
||||
|
||||
public void setTimestamp(java.math.BigInteger value) {
|
||||
icsneojavaJNI.neomessage_can_t_timestamp_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public java.math.BigInteger getTimestamp() {
|
||||
return icsneojavaJNI.neomessage_can_t_timestamp_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setTimestampReserved(java.math.BigInteger value) {
|
||||
icsneojavaJNI.neomessage_can_t_timestampReserved_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public java.math.BigInteger getTimestampReserved() {
|
||||
return icsneojavaJNI.neomessage_can_t_timestampReserved_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setData(byte[] value) {
|
||||
icsneojavaJNI.neomessage_can_t_data_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public byte[] getData() {
|
||||
return icsneojavaJNI.neomessage_can_t_data_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLength(long value) {
|
||||
icsneojavaJNI.neomessage_can_t_length_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLength() {
|
||||
return icsneojavaJNI.neomessage_can_t_length_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setArbid(long value) {
|
||||
icsneojavaJNI.neomessage_can_t_arbid_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getArbid() {
|
||||
return icsneojavaJNI.neomessage_can_t_arbid_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setNetid(int value) {
|
||||
icsneojavaJNI.neomessage_can_t_netid_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public int getNetid() {
|
||||
return icsneojavaJNI.neomessage_can_t_netid_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setType(short value) {
|
||||
icsneojavaJNI.neomessage_can_t_type_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short getType() {
|
||||
return icsneojavaJNI.neomessage_can_t_type_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setDlcOnWire(short value) {
|
||||
icsneojavaJNI.neomessage_can_t_dlcOnWire_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short getDlcOnWire() {
|
||||
return icsneojavaJNI.neomessage_can_t_dlcOnWire_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setReserved(short[] value) {
|
||||
icsneojavaJNI.neomessage_can_t_reserved_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short[] getReserved() {
|
||||
return icsneojavaJNI.neomessage_can_t_reserved_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public neomessage_can_t() {
|
||||
this(icsneojavaJNI.new_neomessage_can_t(), true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class neomessage_eth_t {
|
||||
private transient long swigCPtr;
|
||||
protected transient boolean swigCMemOwn;
|
||||
|
||||
protected neomessage_eth_t(long cPtr, boolean cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected static long getCPtr(neomessage_eth_t obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void finalize() {
|
||||
delete();
|
||||
}
|
||||
|
||||
public synchronized void delete() {
|
||||
if (swigCPtr != 0) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneojavaJNI.delete_neomessage_eth_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void setStatus(neomessage_statusbitfield_t value) {
|
||||
icsneojavaJNI.neomessage_eth_t_status_set(swigCPtr, this, neomessage_statusbitfield_t.getCPtr(value), value);
|
||||
}
|
||||
|
||||
public neomessage_statusbitfield_t getStatus() {
|
||||
long cPtr = icsneojavaJNI.neomessage_eth_t_status_get(swigCPtr, this);
|
||||
return (cPtr == 0) ? null : new neomessage_statusbitfield_t(cPtr, false);
|
||||
}
|
||||
|
||||
public void setTimestamp(java.math.BigInteger value) {
|
||||
icsneojavaJNI.neomessage_eth_t_timestamp_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public java.math.BigInteger getTimestamp() {
|
||||
return icsneojavaJNI.neomessage_eth_t_timestamp_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setTimestampReserved(java.math.BigInteger value) {
|
||||
icsneojavaJNI.neomessage_eth_t_timestampReserved_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public java.math.BigInteger getTimestampReserved() {
|
||||
return icsneojavaJNI.neomessage_eth_t_timestampReserved_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setData(byte[] value) {
|
||||
icsneojavaJNI.neomessage_eth_t_data_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public byte[] getData() {
|
||||
return icsneojavaJNI.neomessage_eth_t_data_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLength(long value) {
|
||||
icsneojavaJNI.neomessage_eth_t_length_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLength() {
|
||||
return icsneojavaJNI.neomessage_eth_t_length_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setPreemptionFlags(short value) {
|
||||
icsneojavaJNI.neomessage_eth_t_preemptionFlags_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short getPreemptionFlags() {
|
||||
return icsneojavaJNI.neomessage_eth_t_preemptionFlags_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setReservedHeader(short[] value) {
|
||||
icsneojavaJNI.neomessage_eth_t_reservedHeader_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short[] getReservedHeader() {
|
||||
return icsneojavaJNI.neomessage_eth_t_reservedHeader_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setNetid(int value) {
|
||||
icsneojavaJNI.neomessage_eth_t_netid_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public int getNetid() {
|
||||
return icsneojavaJNI.neomessage_eth_t_netid_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setType(short value) {
|
||||
icsneojavaJNI.neomessage_eth_t_type_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short getType() {
|
||||
return icsneojavaJNI.neomessage_eth_t_type_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setReserved(short[] value) {
|
||||
icsneojavaJNI.neomessage_eth_t_reserved_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short[] getReserved() {
|
||||
return icsneojavaJNI.neomessage_eth_t_reserved_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public neomessage_eth_t() {
|
||||
this(icsneojavaJNI.new_neomessage_eth_t(), true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,490 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class neomessage_statusbitfield_t {
|
||||
private transient long swigCPtr;
|
||||
protected transient boolean swigCMemOwn;
|
||||
|
||||
protected neomessage_statusbitfield_t(long cPtr, boolean cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected static long getCPtr(neomessage_statusbitfield_t obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void finalize() {
|
||||
delete();
|
||||
}
|
||||
|
||||
public synchronized void delete() {
|
||||
if (swigCPtr != 0) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneojavaJNI.delete_neomessage_statusbitfield_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void setGlobalError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_globalError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getGlobalError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_globalError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setTransmitMessage(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_transmitMessage_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getTransmitMessage() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_transmitMessage_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setExtendedFrame(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_extendedFrame_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getExtendedFrame() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_extendedFrame_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setRemoteFrame(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_remoteFrame_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getRemoteFrame() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_remoteFrame_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCrcError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_crcError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCrcError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_crcError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanErrorPassive(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canErrorPassive_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanErrorPassive() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canErrorPassive_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setIncompleteFrame(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_incompleteFrame_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getIncompleteFrame() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_incompleteFrame_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLostArbitration(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_lostArbitration_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLostArbitration() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_lostArbitration_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setUndefinedError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_undefinedError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getUndefinedError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_undefinedError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanBusOff(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canBusOff_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanBusOff() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canBusOff_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanErrorWarning(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canErrorWarning_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanErrorWarning() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canErrorWarning_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanBusShortedPlus(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canBusShortedPlus_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanBusShortedPlus() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canBusShortedPlus_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanBusShortedGround(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canBusShortedGround_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanBusShortedGround() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canBusShortedGround_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setChecksumError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_checksumError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getChecksumError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_checksumError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setBadMessageBitTimeError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_badMessageBitTimeError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getBadMessageBitTimeError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_badMessageBitTimeError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setIfrData(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_ifrData_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getIfrData() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_ifrData_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setHardwareCommError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_hardwareCommError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getHardwareCommError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_hardwareCommError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setExpectedLengthError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_expectedLengthError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getExpectedLengthError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_expectedLengthError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setIncomingNoMatch(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_incomingNoMatch_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getIncomingNoMatch() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_incomingNoMatch_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setStatusBreak(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_statusBreak_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getStatusBreak() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_statusBreak_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setAvsiRecOverflow(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_avsiRecOverflow_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getAvsiRecOverflow() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_avsiRecOverflow_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setTestTrigger(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_testTrigger_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getTestTrigger() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_testTrigger_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setAudioComment(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_audioComment_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getAudioComment() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_audioComment_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setGpsData(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_gpsData_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getGpsData() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_gpsData_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setAnalogDigitalInput(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_analogDigitalInput_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getAnalogDigitalInput() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_analogDigitalInput_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setTextComment(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_textComment_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getTextComment() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_textComment_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setNetworkMessageType(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_networkMessageType_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getNetworkMessageType() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_networkMessageType_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setVsiTXUnderrun(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_vsiTXUnderrun_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getVsiTXUnderrun() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_vsiTXUnderrun_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setVsiIFRCRCBit(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_vsiIFRCRCBit_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getVsiIFRCRCBit() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_vsiIFRCRCBit_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setInitMessage(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_initMessage_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getInitMessage() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_initMessage_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setFlexraySecondStartupFrame(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_flexraySecondStartupFrame_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getFlexraySecondStartupFrame() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_flexraySecondStartupFrame_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setExtended(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_extended_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getExtended() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_extended_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setHasValue(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_hasValue_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getHasValue() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_hasValue_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setValueIsBoolean(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_valueIsBoolean_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getValueIsBoolean() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_valueIsBoolean_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setHighVoltage(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_highVoltage_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getHighVoltage() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_highVoltage_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLongMessage(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_longMessage_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLongMessage() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_longMessage_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setGlobalChange(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_globalChange_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getGlobalChange() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_globalChange_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setErrorFrame(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_errorFrame_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getErrorFrame() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_errorFrame_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setEndOfLongMessage(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_endOfLongMessage_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getEndOfLongMessage() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_endOfLongMessage_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinErrorRXBreakNotZero(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linErrorRXBreakNotZero_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinErrorRXBreakNotZero() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linErrorRXBreakNotZero_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinErrorRXBreakTooShort(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linErrorRXBreakTooShort_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinErrorRXBreakTooShort() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linErrorRXBreakTooShort_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinErrorRXSyncNot55(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linErrorRXSyncNot55_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinErrorRXSyncNot55() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linErrorRXSyncNot55_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinErrorRXDataGreaterEight(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linErrorRXDataGreaterEight_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinErrorRXDataGreaterEight() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linErrorRXDataGreaterEight_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinErrorTXRXMismatch(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linErrorTXRXMismatch_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinErrorTXRXMismatch() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linErrorTXRXMismatch_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinErrorMessageIDParity(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linErrorMessageIDParity_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinErrorMessageIDParity() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linErrorMessageIDParity_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinSyncFrameError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linSyncFrameError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinSyncFrameError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linSyncFrameError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinIDFrameError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linIDFrameError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinIDFrameError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linIDFrameError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinSlaveByteError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linSlaveByteError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinSlaveByteError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linSlaveByteError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setRxTimeoutError(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_rxTimeoutError_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getRxTimeoutError() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_rxTimeoutError_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLinNoSlaveData(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_linNoSlaveData_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLinNoSlaveData() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_linNoSlaveData_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanfdESI(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canfdESI_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanfdESI() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canfdESI_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanfdIDE(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canfdIDE_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanfdIDE() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canfdIDE_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanfdRTR(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canfdRTR_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanfdRTR() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canfdRTR_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanfdFDF(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canfdFDF_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanfdFDF() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canfdFDF_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setCanfdBRS(long value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_canfdBRS_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getCanfdBRS() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_canfdBRS_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setStatusBitfield(long[] value) {
|
||||
icsneojavaJNI.neomessage_statusbitfield_t_statusBitfield_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long[] getStatusBitfield() {
|
||||
return icsneojavaJNI.neomessage_statusbitfield_t_statusBitfield_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public neomessage_statusbitfield_t() {
|
||||
this(icsneojavaJNI.new_neomessage_statusbitfield_t(), true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class neomessage_t {
|
||||
private transient long swigCPtr;
|
||||
protected transient boolean swigCMemOwn;
|
||||
|
||||
protected neomessage_t(long cPtr, boolean cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected static long getCPtr(neomessage_t obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void finalize() {
|
||||
delete();
|
||||
}
|
||||
|
||||
public synchronized void delete() {
|
||||
if (swigCPtr != 0) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneojavaJNI.delete_neomessage_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void setStatus(neomessage_statusbitfield_t value) {
|
||||
icsneojavaJNI.neomessage_t_status_set(swigCPtr, this, neomessage_statusbitfield_t.getCPtr(value), value);
|
||||
}
|
||||
|
||||
public neomessage_statusbitfield_t getStatus() {
|
||||
long cPtr = icsneojavaJNI.neomessage_t_status_get(swigCPtr, this);
|
||||
return (cPtr == 0) ? null : new neomessage_statusbitfield_t(cPtr, false);
|
||||
}
|
||||
|
||||
public void setTimestamp(java.math.BigInteger value) {
|
||||
icsneojavaJNI.neomessage_t_timestamp_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public java.math.BigInteger getTimestamp() {
|
||||
return icsneojavaJNI.neomessage_t_timestamp_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setTimestampReserved(java.math.BigInteger value) {
|
||||
icsneojavaJNI.neomessage_t_timestampReserved_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public java.math.BigInteger getTimestampReserved() {
|
||||
return icsneojavaJNI.neomessage_t_timestampReserved_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setData(byte[] value) {
|
||||
icsneojavaJNI.neomessage_t_data_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public byte[] getData() {
|
||||
return icsneojavaJNI.neomessage_t_data_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setLength(long value) {
|
||||
icsneojavaJNI.neomessage_t_length_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public long getLength() {
|
||||
return icsneojavaJNI.neomessage_t_length_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setHeader(short[] value) {
|
||||
icsneojavaJNI.neomessage_t_header_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short[] getHeader() {
|
||||
return icsneojavaJNI.neomessage_t_header_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setNetid(int value) {
|
||||
icsneojavaJNI.neomessage_t_netid_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public int getNetid() {
|
||||
return icsneojavaJNI.neomessage_t_netid_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setType(short value) {
|
||||
icsneojavaJNI.neomessage_t_type_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short getType() {
|
||||
return icsneojavaJNI.neomessage_t_type_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setReserved(short[] value) {
|
||||
icsneojavaJNI.neomessage_t_reserved_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public short[] getReserved() {
|
||||
return icsneojavaJNI.neomessage_t_reserved_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public neomessage_t() {
|
||||
this(icsneojavaJNI.new_neomessage_t(), true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 4.0.0
|
||||
*
|
||||
* Do not make changes to this file unless you know what you are doing--modify
|
||||
* the SWIG interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
public class neoversion_t {
|
||||
private transient long swigCPtr;
|
||||
protected transient boolean swigCMemOwn;
|
||||
|
||||
protected neoversion_t(long cPtr, boolean cMemoryOwn) {
|
||||
swigCMemOwn = cMemoryOwn;
|
||||
swigCPtr = cPtr;
|
||||
}
|
||||
|
||||
protected static long getCPtr(neoversion_t obj) {
|
||||
return (obj == null) ? 0 : obj.swigCPtr;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void finalize() {
|
||||
delete();
|
||||
}
|
||||
|
||||
public synchronized void delete() {
|
||||
if (swigCPtr != 0) {
|
||||
if (swigCMemOwn) {
|
||||
swigCMemOwn = false;
|
||||
icsneojavaJNI.delete_neoversion_t(swigCPtr);
|
||||
}
|
||||
swigCPtr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void setMajor(int value) {
|
||||
icsneojavaJNI.neoversion_t_major_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public int getMajor() {
|
||||
return icsneojavaJNI.neoversion_t_major_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setMinor(int value) {
|
||||
icsneojavaJNI.neoversion_t_minor_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public int getMinor() {
|
||||
return icsneojavaJNI.neoversion_t_minor_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setPatch(int value) {
|
||||
icsneojavaJNI.neoversion_t_patch_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public int getPatch() {
|
||||
return icsneojavaJNI.neoversion_t_patch_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setMetadata(String value) {
|
||||
icsneojavaJNI.neoversion_t_metadata_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public String getMetadata() {
|
||||
return icsneojavaJNI.neoversion_t_metadata_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setBuildBranch(String value) {
|
||||
icsneojavaJNI.neoversion_t_buildBranch_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public String getBuildBranch() {
|
||||
return icsneojavaJNI.neoversion_t_buildBranch_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setBuildTag(String value) {
|
||||
icsneojavaJNI.neoversion_t_buildTag_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public String getBuildTag() {
|
||||
return icsneojavaJNI.neoversion_t_buildTag_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public void setReserved(String value) {
|
||||
icsneojavaJNI.neoversion_t_reserved_set(swigCPtr, this, value);
|
||||
}
|
||||
|
||||
public String getReserved() {
|
||||
return icsneojavaJNI.neoversion_t_reserved_get(swigCPtr, this);
|
||||
}
|
||||
|
||||
public neoversion_t() {
|
||||
this(icsneojavaJNI.new_neoversion_t(), true);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue