Paul Hollinsky
a9840028ff
Windows: DynamicLib: DLLExport before _stdcall for Legacy
2021-06-11 18:43:33 -04:00
Paul Hollinsky
4b7cb28bdf
API: Legacy: Disable octal mappings for non-stubbed functions
2021-06-11 18:42:33 -04:00
Paul Hollinsky
c888aad5ae
VersionPacket: Use C++11 function signature
2021-06-11 18:40:50 -04:00
Paul Hollinsky
4588cb55fa
POSIX: DynamicLib: Force visibility of exports in case of -fvisibility=hidden
2021-06-11 15:20:41 -04:00
Paul Hollinsky
9b2eae4a6c
API: Legacy: Fix icsneoFindDevices
2021-06-11 15:19:40 -04:00
Paul Hollinsky
45c879c2b6
API: Legacy: Update def file with the correct ordinals
2021-06-11 13:52:09 -04:00
Paul Hollinsky
a43c0117d6
API: C: Check nullptr in icsneo_serialStringToNum
...
Otherwise it will implicitly call the std::string constructor
and that constructor does not check nullptr.
2021-06-11 13:06:47 -04:00
Paul Hollinsky
f3e456e7ea
API: Legacy: Fix build issues caused by the merge
2021-06-11 13:05:39 -04:00
Paul Hollinsky
843fa92564
API: Legacy: Add standard DLLExport to LegacyDLLExport
2021-06-11 12:39:20 -04:00
Paul Hollinsky
34f7bfabd2
API: Legacy: Remove unused variable
2021-06-11 12:36:37 -04:00
Paul Hollinsky
4095f23ded
Settings: Make getBaudrateFor work for SWCAN and LSFTCAN
2021-06-10 15:18:31 -04:00
Paul Hollinsky
1b7db51a45
Windows: PCAP: Fix Npcap loading for _UNICODE
2021-06-10 15:18:23 -04:00
Paul Hollinsky
165eb0f8a2
Windows: Correct dynamic load helper when _UNICODE is defined
2021-06-10 15:18:13 -04:00
Paul Hollinsky
ed94012046
Examples: Interactive C: Fix initializers
2021-06-10 15:18:05 -04:00
Paul Hollinsky
7b7320bc27
Support the RAD-Epsilon
2021-06-10 15:17:57 -04:00
Paul Hollinsky
19aabdfacf
POSIX: PCAP: Cancel after pcap_breakloop() to EINTR out of poll()
...
This is necessary as pcap_breakloop() does not actually wake the
thread from blocking operations, such as poll.
2021-06-10 15:17:43 -04:00
Paul Hollinsky
b340d167dc
Support the neoVI RED 2
2021-06-10 15:17:34 -04:00
Paul Hollinsky
d4f6c12394
CANPacket: Fix invalid length check
...
This case is already checked above, and further
was invalid since the length had already been
translated to the numeric (0-64) value.
2021-06-10 15:03:34 -04:00
Paul Hollinsky
21e93d1f73
CAN: Honor the specified dlcOnWire for transmit
2021-05-21 17:38:00 -04:00
Paul Hollinsky
b97f358a0f
Settings: Extra Ethernet settings on ValueCAN 4 and RAD-Pluto
2021-05-10 21:17:31 -04:00
Paul Hollinsky
6f8e073fd1
MultiChannelCommunication: Resolve MSVC constexpr warning
2021-05-10 21:16:21 -04:00
Paul Hollinsky
07afbebc6d
Settings: Resolve MSVC structure warnings
2021-05-10 21:15:54 -04:00
Paul Hollinsky
9ba7320fd3
MSVC: Fix build warnings
2021-05-05 12:51:52 -04:00
Paul Hollinsky
f752924a36
Unaligned: Use correct MSVC define
2021-05-05 12:32:29 -04:00
Paul Hollinsky
295ba490aa
Settings: Mark termination enables as an unaligned ptr
...
Unfortunately, the termination enables are not always at an aligned
boundary, and MSVC needs to taint the ptr type with __unaligned
in that case.
2021-05-05 03:38:58 -04:00
Paul Hollinsky
1bb114004e
Remove unused parameters
...
These can cause warnings (which we treat as errors) on MSVC
2021-05-05 02:40:00 -04:00
Paul Hollinsky
e99107c1bc
Device: Allow different Question options for OpenStatus
2021-05-05 02:21:15 -04:00
Paul Hollinsky
82113f1a67
Settings: Better handling of the checksum
2021-05-05 02:20:36 -04:00
Paul Hollinsky
0006f31844
Network: Mark Main51, OldFormat, and ReadSettings as Internal
2021-05-05 02:18:22 -04:00
Paul Hollinsky
595cc36545
Device: Implement version handling
2021-05-05 02:17:38 -04:00
Paul Hollinsky
8be3bbaee5
CMake: Use CMAKE_CXX_STANDARD_REQUIRED
2021-05-05 02:16:01 -04:00
Paul Hollinsky
72bc5914a6
EthernetPacket: Allow 1 extra byte at the end of the packet
...
ValueCAN 4-2EL sends an extra byte to pad the message
to an even byte count.
2021-05-04 23:25:36 -04:00
Paul Hollinsky
eca1110305
ValueCAN 4-2EL: Allow the Ethernet network while communicating over it
...
All frames except for the CAB1/CAB2 communication are reported
2021-05-04 23:08:34 -04:00
Paul Hollinsky
b104b34919
Device: Report whether the current driver supports DFU
2021-05-04 22:53:28 -04:00
Paul Hollinsky
805ff4f549
ValueCAN 4-2EL: Device reqires PCAP to enumerate over Ethernet
2021-05-04 22:39:33 -04:00
Paul Hollinsky
78e3eb18df
Drivers: Rename STM32 to CDC ACM
...
This is much more descriptive of what the driver actually is
2021-05-04 22:37:16 -04:00
Paul Hollinsky
6d22b1e001
POSIX: STM32: Check re-enumeration by inode
...
This is much more stable than waiting for a set amount of time
We still timeout at 5s, if we see that being hit it can be increased
2021-05-04 22:22:30 -04:00
Paul Hollinsky
b7c7d4349a
Device: Extend open() API for long-running tasks
2021-04-29 19:08:31 -04:00
Paul Hollinsky
3d4e0a27e3
Decoder: Pass on short Device messages
2021-04-29 19:07:38 -04:00
Paul Hollinsky
0ce52f064b
Event: Better error message for USB powered devices
2021-04-29 18:15:56 -04:00
Paul Hollinsky
f629125e67
Build: Allow inheritance of the C++ standard
...
This fixes symbol name incompatibilities when linking with icsneo::optional
between C++ standards.
2021-04-29 18:08:01 -04:00
Paul Hollinsky
a63d701839
Event: More user-friendly message for the packet decoding error
2021-04-29 18:07:08 -04:00
Paul Hollinsky
622c5ee57a
POSIX: STM32: Handle re-enumeration when changing modes
2021-04-27 21:12:59 -04:00
Paul Hollinsky
5733300de6
Extensions: Auto-add linked extensions
2021-04-27 21:12:24 -04:00
Paul Hollinsky
65a6fadd1d
Device: Pull out communication close on open error
...
We don't want to close before calling the extension hooks.
2021-04-27 21:07:36 -04:00
Paul Hollinsky
8e2883bca9
MultiChannelCommunication: Use generic handleInput
...
This way redirection, and any other changes we
make to the packetizer/dispatch flow, apply to
MultiChannelCommunication as well.
2021-04-23 22:34:32 -04:00
Paul Hollinsky
f8355df770
Communication: Block destruction while inside redirectionFn
2021-04-23 22:33:32 -04:00
Paul Hollinsky
218648ae5a
Extensions: Offer an opportunity to communicate with a dead device
2021-04-23 22:32:42 -04:00
Paul Hollinsky
4cd7bafca7
Device: Allow the suppression of disconnects from extensions
2021-04-23 20:04:02 -04:00
Paul Hollinsky
6c1cbc9db8
Optional: Move optional-lite to the include/third-party directory
...
This fixes the use case of adding the include folder
manually to an outside project.
2021-04-23 20:01:53 -04:00
Paul Hollinsky
b7ce9819bd
POSIX STM32: Handle large write payloads failing with O_NONBLOCK
2021-04-23 17:06:16 -04:00
Paul Hollinsky
55ca6adee6
Communication: Allow redirection of reads
2021-04-23 17:00:37 -04:00
Paul Hollinsky
bb7719d185
POSIX Drivers: Clear disconnected status when closing
...
This allows us to properly re-open if we were
previously disconnected.
2021-04-23 16:59:48 -04:00
Paul Hollinsky
4b12d3aa4d
EventCallback: Convert indentation to tabs
2021-04-22 13:29:56 -04:00
Paul Hollinsky
bb322ad190
neoVI FIRE 2: MiscIO and EMiscIO Support
2021-04-21 10:40:35 -04:00
Paul Hollinsky
92589c2ce7
Device: Make IO system thread-safe
2021-04-21 10:04:25 -04:00
Paul Hollinsky
3b6b4f0541
C API: Expose icsneo_getNetworkByNumber
2021-04-12 20:20:48 -04:00
Paul Hollinsky
40be68e744
C API: Add typedefs for neonetid_t and neonettype_t
2021-04-12 20:20:07 -04:00
Paul Hollinsky
e29d63b08c
Add Keysight branding where applicable
...
Because there is now more than one "product name" per device
type, we have a concept of a "generic product name" which
singularly maps onto a device type.
This change comes with a few small breaking changes within
the C++ API:
DeviceType::GetDeviceTypeString has been renamed to
DeviceType::GetGenericProductName to denote that
the returned value is not device specific and
device->getProductName() is preferable.
The member function DeviceType::toString has been renamed
to DeviceType::getGenericProductName for the same reason.
The DeviceType std::ostream& operator<< has been removed
to avoid accidental use of the generic product name.
2021-04-12 19:01:43 -04:00
Paul Hollinsky
d79f735df8
Settings: Fix an issue where read errors were not properly reported
...
Since we were not failing the open for a settings read failure,
any errors would go unnoticed.
2021-04-11 22:37:44 -04:00
Paul Hollinsky
e82b5d15e0
Support software controllable termination
2021-04-11 22:13:51 -04:00
Paul Hollinsky
c8bf1f26da
Examples: C Interactive: Initialize product description to empty string
...
This is a guard in case the icsneo_describeDevice call were to
fail for some reason, and is just good practice regardless.
2021-04-11 22:00:12 -04:00
Paul Hollinsky
9ba21d5dc7
C API: Digital IO function use stdbool.h
...
This requirement is already in place and makes the API more consistent
2021-04-11 20:54:59 -04:00
Paul Hollinsky
eb5a84132a
EtherBADGE: Device only has one CAN channel
2021-04-08 15:51:56 -04:00
Paul Hollinsky
66b0c91cea
Settings: Add missing early return on error to getFDBaudrateFor
2021-04-08 15:05:39 -04:00
Paul Hollinsky
7fdae15aed
Network: Update DeviceStatus define to match the standard style
2021-04-07 00:38:49 -04:00
Paul Hollinsky
adb972b1f7
Network: Fix defines for C API
2021-04-07 00:35:08 -04:00
Paul Hollinsky
441b16e9a1
Network: Add CoreMini Mappings
...
These are used for network and termination enables
2021-04-07 00:30:54 -04:00
Paul Hollinsky
cf8c5a31c7
I2C: Add as type and fix network definitions
...
The first I2C was mysteriously missing, it is here now.
In addition, I2C support will soon be requested so it has been
given its own type.
2021-04-07 00:23:29 -04:00
Paul Hollinsky
a6c8acd8e9
Ethernet (DoIP) Activation Line support
2021-04-06 22:50:25 -04:00
Paul Hollinsky
4e245db94e
ValueCAN 4-2EL: Fix wrong structure used in settings
...
The old structure lined up with the correct one, so the wrong
way did work, but it was just by sheer luck.
2021-04-06 18:03:41 -04:00
Paul Hollinsky
4a1d0382f2
ThirdParty: Add optional-lite polyfill
...
Thanks to all who have made contributions to
https://github.com/martinmoene/optional-lite
2021-04-06 18:01:26 -04:00
Paul Hollinsky
18394d0cfb
Add transmit support for ISO 9141-2
2021-03-23 17:23:55 -04:00
Paul Hollinsky
4bca43028c
EthernetPacketizer: Resolve warnings
2021-03-23 14:36:10 -04:00
Paul Hollinsky
92790330f1
macOS: STM32: Fix device finding for newer versions of the OS
2021-03-22 16:07:51 -04:00
Paul Hollinsky
f63c187ed3
Add receive support for ISO 9141-2
2021-02-18 23:19:33 -05:00
Paul Hollinsky
4d655da69d
Decoder: 64-bit shift to avoid UB
...
Shifting a value by more than the size of its type is UB.
This was actually causing mangled serial numbers with
optimization on using Clang 12 on Linux.
2021-01-29 17:32:07 -05:00
Paul Hollinsky
09a02ff420
Platform: Windows: Unicode safe
...
Compile and run correctly whether UNICODE and _UNICODE are defined or not
2021-01-28 15:51:35 -05:00
Paul Hollinsky
7c1d44bc4f
C Example: Show transmit receipts
2020-11-17 11:47:09 -05:00
Paul Hollinsky
cfaf677263
C Example: Fix improper allocation size
2020-11-17 11:47:05 -05:00
Paul Hollinsky
e5920417ff
POSIX: FTDI: Use libusb include directory
...
This allows for the same include to be used on macOS
2020-10-08 21:09:45 -04:00
Paul Hollinsky and GitHub
dfe2d23d85
Merge pull request #27 from pierreluctg/icsneolegacy-ExtraDataPrtEnabled
...
Setting ExtraDataPtrEnabled when ExtraDataPtr is use
2020-09-23 12:40:56 -04:00
Paul Hollinsky and GitHub
66d7c2f390
Merge pull request #25 from pierreluctg/icsneolegacy-setFDBitRate
...
Adding icsneoSetFDBitRate api to the icsneolocacy
2020-09-23 12:36:23 -04:00
Paul Hollinsky
7e714abfd1
EthernetPacketizer: Add missing include for GCC
2020-09-23 10:23:05 -04:00
Paul Hollinsky
6f0654c336
Windows: PCAP: Rework for Ethernet Packetizer and Performance
2020-09-22 19:22:40 -04:00
Paul Hollinsky
76619e2496
RAD-Galaxy: RJ45 Ethernet Support
...
The "Ethernet" network must be enabled in neoVI Explorer.
It is disabled by default.
This network corresponds with the port labeled DAQ on
the Galaxy.
2020-09-22 19:20:56 -04:00
Paul Hollinsky
2c55584962
Ethernet: Encode preemption enabled flag
2020-09-22 19:19:22 -04:00
Paul Hollinsky
1f4358af4b
Packetizer: Correct packet length check
...
AA(1) + Old format(1) + New Length(2) + New NetID(2) = 6
2020-09-22 19:17:12 -04:00
Paul Hollinsky
28b35a8243
Communication: Create EthernetPacketizer
...
This code previously was separately maintained in each of the
PCAP driver layers.
While adding complexity for reassembly, I decided it was
time to pull it out into a common implementation.
As of this commit, the old implementations have not been
removed from the PCAP drivers yet.
2020-09-22 19:15:24 -04:00
Paul Hollinsky
5c18bedf70
RAD-Gigalog: Fix serial number prefix
2020-09-18 16:38:09 -04:00
Paul Hollinsky
eda4a30dcd
Add ValueCAN 4 Industrial
2020-09-14 12:45:32 -04:00
Paul Hollinsky
211f844f77
ValueCAN 4-2EL: Fix device agnostic CAN settings
2020-09-14 12:36:19 -04:00
Paul Hollinsky
8843ace87e
ValueCAN 4-2EL: Add communication over Ethernet
...
The device can communicate with the PC over its Ethernet if the
enablePcEthernetComm setting is set within the structure.
This stops the Ethernet port from being used for vehicle data.
2020-09-14 12:35:43 -04:00
Paul Hollinsky
d2676afa11
Update device names for consistency
2020-09-14 11:58:34 -04:00
Paul Hollinsky
c48efe8e5b
Add Gigalog, Gigastar, Moon 2, Moon Duo, and Supermoon
...
The USB drivers for these devices are currently stubbed, it will find them
but not connect.
The Ethernet drivers work though, where applicable.
2020-09-14 11:57:01 -04:00
Paul Hollinsky
9dc4b302ef
POSIX: PCAP: Enable if permissions are set, with a warning otherwise
...
On Linux, raw packet capture requires CAP_NET_RAW (or root).
If we can't capture raw packets, we will not be able to find/connect to
devices over ethernet.
2020-09-14 11:51:15 -04:00
Paul Hollinsky
a460e27657
Add RADGigalog for Windows
...
Ethernet communication with device only
2020-09-08 17:55:52 -04:00
Paul Hollinsky
eaa1409af0
Update/add settings structures for several devices
2020-09-08 17:41:47 -04:00
Paul Hollinsky
de0c16a461
VividCAN: Better "Online Not Supported" Error
2020-09-08 17:39:47 -04:00
Paul Hollinsky
3f8ed840ba
Start callback IDs at 1 so 0 is reserved
2020-09-08 17:38:38 -04:00