Kyle Schwarz
a5b27a15b0
Allow disconnections to be signaled by drivers
...
This allows for disconnections to be detected quickly
where possible.
It also makes sure other driver errors aren't thrown
in the event of a disconnection.
2020-10-08 17:38:10 -04:00
Paul Hollinsky
66d7c2f390
Merge pull request #25 from pierreluctg/icsneolegacy-setFDBitRate
...
Adding icsneoSetFDBitRate api to the icsneolocacy
2020-09-23 12:36:23 -04:00
Pierre-Luc Tessier Gagne
90b04f4578
Adding icsneoSetFDBitRate api to the icsneolocacy
2020-09-23 07:23:17 -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
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
046e2bae9d
Ensure proper closure of the heartbeat thread on reopen
2020-09-01 15:52:41 -04:00
Kyle Schwarz
044c2bb86f
Detect device disconnects
...
When a device is sending any traffic, the device is considered to be connected. If no traffic if being received from the device, a status is requested. If the device fails to report the status back in a timely manner, it is considered to be disconnected.
If the device fails to reply to the status request, it is important to confirm that the device is not applying settings. While the device is applying settings, it will not be sending heartbeats or able to process a status request.
2020-08-27 13:20:48 -04:00
Kyle Schwarz
b6692d3762
Add missing C++ guards
2020-08-18 16:01:51 -04:00
Kyle Schwarz
4cd897badd
Fix deadlock with Driver::write
...
Use a spin lock to recheck the queue size until it has room to push.
2020-08-14 16:57:52 -04:00
Kyle Schwarz
afda617894
Remove trailing white-space
2020-08-11 13:42:13 -04:00
Kyle Schwarz
1d286be1e4
Switch PLUTO_MAX_MAC_CONFIG_ENTRIES to C API define
2020-08-10 15:50:29 -04:00
Kyle Schwarz
6638cf05ae
Use C++11 constexpr instead of define
2020-08-10 15:21:16 -04:00
Kyle Schwarz
d58202dfc0
Add RADPlutoSettings to initializer template call
2020-08-10 15:07:12 -04:00
Kyle Schwarz
08928c36e3
RADPluto uses HSCAN2 instead of MSCAN
2020-08-10 14:31:59 -04:00
Kyle Schwarz
3123cbb54b
Merge branch 'master' of Lustra:InfiniteWalrus/libicsneo into radpluto
2020-08-10 11:11:38 -04:00
Kyle Schwarz
17ebba3c57
Fix line-endings and include guard
2020-08-10 10:40:40 -04:00
Kyle Schwarz
7b3782cbe7
Update concurrentqueue to 1.0.2
...
1.0.2 resolves compiler warnings for MSVC 2019 with C++17 support (9cfda6cc61 )
2020-08-10 10:20:00 -04:00
Kyle Schwarz
f9ff4049f2
Add initial support for RADPluto settings
2020-08-07 17:13:08 -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
dcc44d99ea
Fix an issue where the FIRE could not be opened
2020-06-17 15:11:57 -04:00
Jeffrey Quesnelle
8f6ff86448
Load pcap_sendqueue functions on Windows
2020-06-12 13:55:47 -04:00
Jeffrey Quesnelle
d2019c24df
reuse discovered pcap interfaces in DeviceFinder::FindAll()
2020-05-11 16:17:56 -04:00
Jeffrey Quesnelle
99879c9021
turn PCAPDLL into a singleton
2020-03-24 13:15:26 -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
1cd817a16b
Fix race conditions with Communication::waitForMessageSync
2020-02-28 20:00:08 -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
4821a957dd
Properly decode incoming FlexRayPackets
2019-11-18 06:09:25 +01: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
Jeffrey Quesnelle
423f854682
fix MSVC build errors and warnings
2019-10-16 23:56:49 -04:00
Paul Hollinsky
eb856dffec
Quiet down warnings on Windows
2019-10-16 17:43:11 -04:00
Paul Hollinsky
2f9844df92
Begin work on FlexRay support
2019-10-16 16:43:31 -04:00
EricLiu2000
ef16e60025
Added more mutexes in eventmanager, fixed exiting destruction bug
2019-08-07 13:12:16 -04:00
EricLiu2000
9629864f1b
Fixed wait check in device online/offline
2019-08-07 10:06:33 -04:00
EricLiu2000
3358241abe
Reordered error downgrading, order of going offline, and renamed locks
2019-08-06 10:32:19 -04:00
EricLiu2000
01c62b6445
Replaced formal parameter filter in addmessagecallback and addeventcallback
2019-08-06 10:31:08 -04:00
EricLiu2000
4a81b9443a
Changed getpollingmessagelimit to return an int
2019-08-05 17:25:09 -04:00
EricLiu2000
9b3d36c8c1
Moved calling of event callbacks to after the event is added. Now using unique_locks on the list of events to allow event callbacks to safely modify the list of events
2019-08-05 11:40:17 -04:00
EricLiu2000
9040edc25d
Added event callback functionality in icsneoc
2019-08-02 16:32:15 -04:00
EricLiu2000
4f735a651c
Added event callback functionality. EventManager now uses multiple mutexes to lock events, errors, callbacks, and downgradedThreads separately. Wrote single-threaded test for event callbacks.
2019-08-02 15:00:31 -04:00
EricLiu2000
453f098cdb
Added check to see if message polling is enabled before disabling it in device destructor
2019-08-01 14:08:12 -04:00
EricLiu2000
055cae1232
Removed radpluto override of setupDecoder() in order to fix timestamp
2019-08-01 13:40:38 -04:00
EricLiu2000
8516a9c8bd
Added placeholder void* filter parameter to icsneo_addMessageCallback and added more documentation for message callback functions
2019-07-30 14:02:34 -04:00
EricLiu2000
c10224002a
Added message callback functionality in c and canceled error downgrading on user callbacks in communication as well
2019-07-30 10:22:27 -04:00
EricLiu2000
5a98bac8a6
Standardized int-returning functions in icsneoc library to return -1 on failure. Updated icsneolegacy accordingly, and added headers for message callback functionality in c
2019-07-29 16:08:54 -04:00
EricLiu2000
54b98ec9b4
Error downgrading now uses a map<threadid, bool>, and error downgrading is canceled during message callbacks
2019-07-29 15:16:35 -04:00
Paul Hollinsky
511a724252
POSIX FTDI: Improve performance by setting the latency timer
2019-07-26 17:46:24 -04:00
EricLiu2000
b75536c4a2
Updated some documentation in eventmanager to reflect chronological pruning of events
2019-07-26 13:34:03 -04:00
EricLiu2000
8c186f00cd
Added functionality to set blocking behavior of write
2019-07-24 14:57:06 -04:00
EricLiu2000
69b7e5b45a
Device::GetMessages now returns a pair of {vector, bool} instead of vector
2019-07-24 13:40:54 -04:00
EricLiu2000
6f8d307850
Implemented thread specific error-downgrading to events and wrote corresponding unit test
2019-07-24 12:52:15 -04:00
EricLiu2000
199bd2b144
Reverted refactor changes to icsneolegacy.h
2019-07-23 17:16:27 -04:00
Paul Hollinsky
77eed8f58d
Revise documentation for icsneo_getLastError
2019-07-23 15:03:43 -04:00
EricLiu2000
69a7b9bc2d
Removed casts in network.h constants for SWIG compatibility
2019-07-17 16:36:40 -04:00
EricLiu2000
42690d1f9a
Updated documentation, added multithreaded test with both events and errors for eventmanager
2019-06-28 11:11:58 -04:00
EricLiu2000
e3517767cb
Events are now removed purely in chronological order if overflowing
2019-06-27 18:04:59 -04:00
EricLiu2000
a4ddd24a50
Added functionality for filtering by both type and severity. Wrote tests for eventmanager::get
2019-06-27 17:04:07 -04:00
EricLiu2000
baa9404432
Went back to normal mutex because I forgot I reverted those
2019-06-27 16:02:31 -04:00
EricLiu2000
1d3b3359ca
Wrote more tests, fixed bug with eventmanager::get(size), optimized eventmanager adding and shrinking, prevented trying to add TooManyEvents
2019-06-27 15:50:22 -04:00
EricLiu2000
d0c6aba0fc
Revert "Changed list of events to vector, switched back to using lock_guard instead of shared/unique_locks"
...
This reverts commit 2dac03b3e5 .
2019-06-27 14:16:36 -04:00
EricLiu2000
2dac03b3e5
Changed list of events to vector, switched back to using lock_guard instead of shared/unique_locks
2019-06-27 13:42:02 -04:00
EricLiu2000
a9a2a978b8
Fixed multithreading issue with eventmanager
2019-06-27 13:20:13 -04:00
EricLiu2000
ec95f0f7c3
Wrote more tests and fixed locking bug in eventmanager
2019-06-26 15:08:41 -04:00
EricLiu2000
4923218d35
Separated tests into different files, added ResetInstance() method to EventManager
2019-06-26 11:30:24 -04:00
EricLiu2000
f45bd6772f
Builds and runs on both windows and ubuntu
2019-06-25 13:20:49 -04:00
EricLiu2000
2f971d7565
Runs on windows
2019-06-25 11:35:40 -04:00
EricLiu2000
50dba62a89
Event refactor builds on Windows
2019-06-24 17:59:45 -04:00
EricLiu2000
878d9e6dde
Implemented threaded error handling in errormanager and fixed compile error
2019-06-21 16:14:52 -04:00
EricLiu2000
f9d88b4743
Upgraded the severity of some warnings to errors and cleaned up internal API error adding
2019-06-21 15:08:08 -04:00
EricLiu2000
cb6f88c6bb
Initial rework of internal management for overflowing errors
2019-06-21 11:18:24 -04:00
EricLiu2000
92368f70a5
Added error checking for polling
2019-06-18 11:38:12 -04:00
EricLiu2000
04a2402925
Added additional documentation
2019-06-14 17:44:01 -04:00
EricLiu2000
a4a42c8704
Reworked updating LEDState to use sendCommand() instead of transmit()
2019-06-14 16:09:19 -04:00
EricLiu2000
28fc98c475
Added icsneo_isMessagePollingEnabled(), removed polling check from transmitting, and disabled error reporting on device destruction
2019-06-14 15:13:22 -04:00
Paul Hollinsky
a608d21304
Fix for error at pcap and vcp level on Windows causes crash
2019-06-14 09:41:47 -04:00
EricLiu2000
b7288edd9a
Finished adding error checking
2019-06-13 16:01:35 -04:00
EricLiu2000
255e1e2b90
Added more error logging
2019-06-13 16:01:35 -04:00
EricLiu2000
519e64fb17
Added error checking to functions called from Communication
2019-06-13 16:01:35 -04:00
EricLiu2000
a16f2843d8
Added error reporting to idevicesettings
2019-06-13 16:01:35 -04:00
EricLiu2000
965679c370
Added error checking and removed some redundancy from device isOpen()
2019-06-13 16:01:35 -04:00
EricLiu2000
2806c935f1
Added errors for DeviceCurrentlyOpen and DeviceCurrentlyClosed
2019-06-13 16:01:35 -04:00
EricLiu2000
903615dadd
Added icsneo_isOpen() functionality
2019-06-13 16:01:35 -04:00
EricLiu2000
f1e0625429
Fixed typo in documentation of icsneo_getLastError
2019-06-13 16:01:35 -04:00
EricLiu2000
0644234859
Removed hard coded .dll filepaths
2019-06-13 16:01:35 -04:00
EricLiu2000
9b21c153c7
Fixed icsneoc.h to work with c
2019-06-13 16:01:35 -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
Jeffrey Quesnelle
8833617fe5
fix wrong include path for radpluto on Windows
2019-06-05 13:08:02 -04:00
Zaid Nackasha
3621184696
fixed build bugs
2019-06-03 17:18:02 -04:00
Zaid Nackasha
d49fba7d81
Wrapped Visual Studio #Pragmas
2019-06-03 12:43:28 -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
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
Paul Hollinsky
d1cd34fb24
Merge remote-tracking branch 'drebbe-intrepid/master' into timestamp
2019-05-06 12:01:09 -04:00
Paul Hollinsky
6ffc364eba
Transmits now block when the buffer fills
2019-05-02 16:33:44 -04:00
Paul Hollinsky
5a6a1c990a
Support CAN FD Error State Indicator
2019-04-17 17:03:38 -04:00
David Rebbe
23c3cc3763
Implemented legacy icsneoGetTimeStampForMsg() function call.
...
Signed-off-by: David Rebbe <drebbe@intrepidcs.com>
2019-04-05 19:09:52 -04:00
David Rebbe
9a83ec1822
Updated icsnVC40.h to latest v803 release.
...
Signed-off-by: David Rebbe <drebbe@intrepidcs.com>
2019-03-27 17:39:12 -04:00
Paul Hollinsky
424d3d98a3
Linux Ethernet device support
2019-03-18 11:37:20 -04:00
Paul Hollinsky
993974234b
Remove the dependency on libftdipp and libboost for Linux and macOS
2019-02-28 18:32:16 -05:00
Paul Hollinsky
d042086c90
Improve reliability for finding FTDI devices on Windows
2019-01-22 13:16:58 -05:00
Paul Hollinsky
ae78122cbe
Add LSFTCAN and SWCAN support
2019-01-22 13:14:28 -05:00
Paul Hollinsky
c313801a21
Resolve issue #1 undefined symbols when building on POSIX systems
2019-01-11 13:01:19 -05:00
Paul Hollinsky
34148e8833
Fix a bug intrepidcs\libicsneo-examples#1 which prevented building on 32-bit platforms
2019-01-10 16:35:11 -05:00
Paul Hollinsky
7e9fbc4959
Basic introspection for device supported networks
2019-01-03 17:00:15 -05:00
Paul Hollinsky
efd5547e5c
Resolve an issue where FTDI devices could be erroneously detected with the wrong serial
2019-01-03 16:58:23 -05:00
Paul Hollinsky
61c16f4dfc
Updates to the legacy API
...
* Added transmit
* Added support for the new style icsneoFindDevices() call
* Added support for blocking wait for message
* CAN FD and XTD 29-bit CAN Support
2019-01-03 16:57:29 -05:00
Paul Hollinsky
b834ca1bb7
Support CAN FD on the RADStar2
2018-12-21 20:35:01 -05:00
Paul Hollinsky
b6c67eb74f
Correctly decode timestamps on the RADStar2 and RADGalaxy
2018-12-21 20:34:02 -05:00
Paul Hollinsky
d37d5bb23e
Support Ethernet and Broad-R Reach TX and RX
2018-12-21 20:32:27 -05:00
Paul Hollinsky
603d532d2d
Add support for RADStar2 settings
2018-12-21 20:28:25 -05:00
Paul Hollinsky
e124ad28f4
Major improvements to the settings API
...
* Allow the raw structure to be manipulated from C and Legacy APIs
* Structure is now split between what's on the device and what's on the client so changes will not be visible from read methods until apply()
* Allow devices to connect which have slightly different firmware versions than the settings structure
2018-12-21 20:24:11 -05:00
Paul Hollinsky
3488e36f2a
Added the ability to get the baudrate for networks
2018-12-10 14:57:43 -05:00
Paul Hollinsky
af45b72f9e
Add Sphinx documentation
2018-11-20 17:14:59 -05:00
Paul Hollinsky
8a4e33c8df
Allow version and supported devices to be printed at runtime
2018-11-20 10:41:42 -05:00
Paul Hollinsky
2ade9116eb
Merge branch 'master' of intrepidcs.homeip.net:paulhollinsky/icsneonext
2018-11-20 09:42:29 -05:00
Paul Hollinsky
8ef2260fbe
Add the ability to enumerate supported devices
2018-11-20 09:42:25 -05:00
Paul Hollinsky
7305f2027e
Larger message structure for future expansion
2018-11-19 12:20:45 -05:00
Paul Hollinsky
b04bb95393
Merge branch 'master' of Lustra:InfiniteWalrus/libicsneo
2018-11-19 12:10:33 -05:00
Paul Hollinsky
82adbcaba6
Windows VCP detection is now more reliable
2018-11-16 18:48:07 -05:00
Jeffrey Quesnelle
c9f761c262
add Ethernet cases to Network
2018-11-14 11:24:55 -05:00
Paul Hollinsky
0cf1e7fe7f
Resolve compilation errors and warnings with MSVC
2018-11-13 16:18:57 -05:00
Paul Hollinsky
f05f96822e
Fix defines for C applications
2018-11-09 16:34:00 -05:00
Paul Hollinsky
77d694c662
Added the ability to block on getMessages until a message arrives
2018-11-09 16:28:48 -05:00
Paul Hollinsky
35bd5139b2
Free malloc'd memory in example
2018-10-31 17:21:14 -04:00
Paul Hollinsky
4833bc704a
Fix a documentation typo
2018-10-31 17:07:48 -04:00
Paul Hollinsky
90992ad360
Added documentation for the C API
2018-10-31 16:47:46 -04:00
Paul Hollinsky
5bc65554f9
Error system now functional in C and C++ APIs
2018-10-30 16:54:36 -04:00
Paul Hollinsky
1a9c907fea
CAN FD baudrate settings
2018-10-30 15:38:15 -04:00
Paul Hollinsky
92d98f8bd5
Remove all debugging printouts to stdout
2018-10-30 15:02:01 -04:00
Paul Hollinsky
ccd26a3637
Fix a bug where settings were not read properly
2018-10-30 14:24:57 -04:00
Paul Hollinsky
526b3a0dc4
ValueCAN3 Settings
2018-10-30 12:59:37 -04:00
Paul Hollinsky
4f91d0775f
Version info
2018-10-29 16:35:14 -04:00
Paul Hollinsky
3a42372dcd
Add error system
2018-10-26 20:53:30 -04:00
Paul Hollinsky
a331a2afa8
Device component initialization done more intelligently
2018-10-26 19:28:09 -04:00
Paul Hollinsky
807518fbae
Network and device type constant definitions
2018-10-24 12:53:58 -04:00
Paul Hollinsky
95dce1c429
Device describe
2018-10-24 12:51:04 -04:00
Paul Hollinsky
419fc2fc73
Tracked down a white board FIRE and verified the need for enterMode
2018-10-22 18:26:38 -04:00
Paul Hollinsky
db255a5a3f
Add settings for FIRE
2018-10-22 18:26:18 -04:00
Paul Hollinsky
6ccd6f2072
Fixed size of UART_SETTINGS
2018-10-22 18:25:26 -04:00
Paul Hollinsky
8044488bed
Make a blank settings interface if one does not exist because segfaulting is bad
2018-10-22 17:23:13 -04:00
Paul Hollinsky
dfbc40f877
Add external facing shortcuts to message callback functions
2018-10-22 15:01:24 -04:00
Paul Hollinsky
a13adec04a
Clean up icsnVC40.h for the legacy API
2018-10-22 12:46:27 -04:00
Paul Hollinsky
9675bb81f7
Resolve MSVC errors and warnings with refactor
2018-10-22 12:19:33 -04:00
Paul Hollinsky
8e6b0d0b0e
Refactor for a central include directory
2018-10-22 11:52:34 -04:00