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
Paul Hollinsky
8e999a0fb8
Heartbeat: Break from loop rather than returning
...
This makes sure we run the cleanup code at the bottom of the thread
2020-09-01 16:32:54 -04:00
Paul Hollinsky
a325d8a12b
PCAP: Send initial requests from the interface MAC
...
This allows the device to respond directly to us
2020-09-01 15:53:45 -04:00
Paul Hollinsky
046e2bae9d
Ensure proper closure of the heartbeat thread on reopen
2020-09-01 15:52:41 -04:00
Paul Hollinsky
c48995520f
POSIX: FTDI: Report warnings and retry on libftdi errors
2020-09-01 15:15:36 -04:00
Paul Hollinsky
aceea6dc5b
libftdi: Don't discard data on LIBUSB_ERROR_TIMEOUT
...
libusb may have transferred some data, don't want to lose it
2020-09-01 15:14:37 -04:00
Paul Hollinsky
5db07102aa
PCAP: Listen for ICS_UNSET_MAC
...
On newer firmware, the device will address the PC directly after
EnableNetworkComm. Before this, it will set the destination MAC to
00:FC:70:FF:FF:FF.
2020-08-27 12:24:35 -04:00
Paul Hollinsky
b5c9443fc8
POSIX: PCAP: Ensure packets get captured
...
No packets were being captured with a timeout of 0
2020-08-27 12:24:35 -04:00
Paul Hollinsky
07e99515fa
Always send the ReadSettings command in short format
...
This is needed for FIRE
2020-08-10 12:30:30 -04:00
Paul Hollinsky
154eab4b1b
Direct to the examples folder
2020-08-06 16:26:46 -04:00
Paul Hollinsky
b09f85693f
v0.2.0
...
This update has breaking changes for the event/error subsystem, see
Usage within the documentation for details on the workings of the new
system.
2020-08-06 16:17:28 -04:00
Paul Hollinsky
6218a5cc7e
Fix documentation building
2020-08-06 16:09:29 -04:00
Paul Hollinsky
8566f9d57d
Update copyright date
2020-08-06 16:06:31 -04:00
Paul Hollinsky
f49f65c3ed
Move examples into tree
...
See history at https://github.com/intrepidcs/libicsneo-examples/tree/v0.2.0-dev
2020-08-06 15:41:48 -04:00
Paul Hollinsky
2079037ae4
POSIX FTDI: Nicer error message for when device is in use
...
Commonly, the device is being used by another libicsneo program
(icsscand, maybe) or passed through to a VM.
2020-06-24 22:15:22 -04:00
Paul Hollinsky
a759c1faa9
Communication: Fix issue where driver failing to open leaves dangling thread
2020-06-24 22:03:31 -04:00
Paul Hollinsky
67bd1e616a
MultiChannelCommunication: Fix issue where initial open fails
2020-06-24 21:38:57 -04:00
Paul Hollinsky
25f079b5c6
POSIX FTDI: Fix a bug where closing device successfully returned an error
2020-06-24 20:59:53 -04:00
Paul Hollinsky
dcc44d99ea
Fix an issue where the FIRE could not be opened
2020-06-17 15:11:57 -04:00
Paul Hollinsky
8260149cb8
Add bridging between neomessage_eth_t and EthernetMessage
...
This allows transmitting Ethernet from the C API
2020-05-18 17:23:40 -04:00
Paul Hollinsky
38e24d7641
Refactor ICommunication/Transport => Driver
2020-03-09 14:09:27 -04:00
Paul Hollinsky
d8798acaa7
Communication: MultiChannel: Properly mask out communication from non-main VNETs
...
This also makes it possible for Communication to create more instances of Packetizer
This is necessary because Packetizer is not thread safe,
so when we support more VNETs we will need to create more Packetizers.
2020-03-09 13:56:18 -04:00
Paul Hollinsky
42780dc610
Add ReaderWriterQueue and update ConcurrentQueue
2020-03-09 13:38:14 -04:00
Paul Hollinsky
9ac3fd56bd
FlexRay: Don't check for POCReady when writing configuration
...
It is not needed and this gives a good speedup to configuration
2020-02-28 20:10:31 -05:00
Paul Hollinsky
8ae3317930
FlexRay: Rework controller register reading for reliability
2020-02-28 20:09:33 -05:00
Paul Hollinsky
1cd817a16b
Fix race conditions with Communication::waitForMessageSync
2020-02-28 20:00:08 -05:00
Paul Hollinsky
9fcba2eb13
Notify extensions we're going offline before we actually do
2020-02-28 19:57:43 -05:00
Paul Hollinsky
0c330f734b
Fix typo
2020-02-28 19:57:16 -05:00
Paul Hollinsky
a2fecb7621
Support for EtherBADGE
2020-02-20 14:43:10 -05:00
Paul Hollinsky
ef34959c91
STM32 device finder for Darwin
2020-02-14 23:18:34 -05:00
Paul Hollinsky
31062dd928
For now, assume VNET Z is in coldstart mode
2019-11-12 20:48:30 -05:00
Paul Hollinsky
37778d7891
Implement FlexRay transmit, configuration, and cold start
2019-11-12 20:38:47 -05:00
Paul Hollinsky
3396f5dcce
Refining the FlexRay API
2019-11-09 15:34:58 -05:00
Paul Hollinsky
f0582697a6
Clarify FlexRay Slot ID
2019-11-01 14:48:14 -04:00
Paul Hollinsky
eb856dffec
Quiet down warnings on Windows
2019-10-16 17:43:11 -04:00
Paul Hollinsky
debaf8f0cb
Merge branch 'v0.2.0-dev' of github.com:intrepidcs/libicsneo into v0.2.0-dev
2019-10-16 16:44:16 -04:00
Paul Hollinsky
2f9844df92
Begin work on FlexRay support
2019-10-16 16:43:31 -04:00
Paul Hollinsky
5795efbde8
Merge changes from v0.1.2
...
Dropping the updateLEDState fix as the one on this branch is nicer
2019-09-04 13:40:42 -04:00
Paul Hollinsky
2a47b6f179
v0.1.2
...
Embed version info into DLLs on Windows
Fix device LEDs not indicating status properly
Build fixes
2019-09-04 13:32:09 -04:00
Paul Hollinsky
ff1a78c4eb
Hotfix for broken device LED updating
...
This is fixed more permanently on the development branch.
That change will be preferred over this one, when the time comes to merge.
2019-09-04 13:31:17 -04:00
Paul Hollinsky and GitHub
6bae630463
Merge pull request #14 from intrepidcs/icsneoc-versioninfo
...
Embed version info into built icsneoc DLL
2019-08-27 12:46:35 -04:00
Paul Hollinsky
0607986114
Resolve merge conflicts
2019-08-12 11:17:28 -04:00
Paul Hollinsky
511a724252
POSIX FTDI: Improve performance by setting the latency timer
2019-07-26 17:46:24 -04:00
Paul Hollinsky
21c3fead4a
Error checking for Encoder::encode UpdateLEDState
2019-07-23 15:04:50 -04:00
Paul Hollinsky
77eed8f58d
Revise documentation for icsneo_getLastError
2019-07-23 15:03:43 -04:00
Paul Hollinsky and EricLiu2000
a608d21304
Fix for error at pcap and vcp level on Windows causes crash
2019-06-14 09:41:47 -04:00
Paul Hollinsky
b7dbeccaef
Lock before adding or removing message callbacks
2019-06-13 15:47:23 -04:00
Paul Hollinsky
4530bd14c0
Merge in fixes for warnings
2019-06-12 18:36:35 -04:00
Paul Hollinsky
ba7228d4ba
Embed version info into built DLLs
2019-05-30 13:17:55 -04:00
Paul Hollinsky
9175a7bacf
v0.1.1
...
Initial numbered release
Numbered releases will list changes since the last numbered release in a changelog
2019-05-14 15:31:39 -04:00
Paul Hollinsky
56d191b438
Add support for RADPluto over USB
2019-05-14 15:29:03 -04:00
Paul Hollinsky
a465d5d6c6
POSIX: Disable Ethernet communication devices until performance issues are resolved
2019-05-14 15:27:44 -04:00
Paul Hollinsky
e081724da6
POSIX PCAP: Resolve a crash on a communication error
2019-05-14 15:22:12 -04:00
Paul Hollinsky
0dae7d4354
STM32: Check that termios attributes are set successfully
2019-05-14 15:21:05 -04:00
Paul Hollinsky
288ff3565e
Make sure to close underlying com if we fail to open
2019-05-14 15:20:04 -04:00
Paul Hollinsky
f3cd9ac94b
Merge branch 'pcap'
2019-05-06 12:50:29 -04:00
Paul Hollinsky
7cf0ec5f4f
Rename timestampMultiplier to timestampResolution
...
We've also decided to leave it out of the message structures since, for most uses going forward, it will not be needed.
Anyone who wants the timestamp resolution can always make the inexpensive device call to get it.
2019-05-06 12:32:04 -04:00