Commit Graph

119 Commits (ks-refactor-docs)

Author SHA1 Message Date
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 6f0654c336 Windows: PCAP: Rework for Ethernet Packetizer and Performance 2020-09-22 19:22:40 -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 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 c48995520f POSIX: FTDI: Report warnings and retry on libftdi errors 2020-09-01 15:15:36 -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
Kyle Schwarz 7cd008a003 Switch to non-blocking I/O for STM32
STM32 can latency is not as good as it could be when it is synchronous due to read() timeouts,
so switch to asynchronous reading with select().
2020-08-25 16:14:47 -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
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 25f079b5c6 POSIX FTDI: Fix a bug where closing device successfully returned an error 2020-06-24 20:59:53 -04:00
Jeffrey Quesnelle 7a71a35848 add option to build with Npcap on Windows 2020-06-16 12:14:46 -04:00
Jeffrey Quesnelle 8f6ff86448 Load pcap_sendqueue functions on Windows 2020-06-12 13:55:47 -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 ef34959c91 STM32 device finder for Darwin 2020-02-14 23:18:34 -05:00
Jeffrey Quesnelle 57fb55b686 fix uninitialized memory which may cause Windows to not properly enumerate devices 2020-01-24 13:32:35 -05:00
EricLiu2000 9629864f1b Fixed wait check in device online/offline 2019-08-07 10:06:33 -04:00
Jeffrey Quesnelle 5112e1d2f9 fix building for macos 2019-08-06 17:14:12 -04:00
EricLiu2000 3358241abe Reordered error downgrading, order of going offline, and renamed locks 2019-08-06 10:32:19 -04:00
EricLiu2000 f41b5c4a79 Removed cancellation of error downgrading after closing, was causing read access violations. 2019-08-01 14:07:42 -04:00
Paul Hollinsky 511a724252 POSIX FTDI: Improve performance by setting the latency timer 2019-07-26 17:46:24 -04:00
EricLiu2000 66126b2b61 Downgraded non-user thread errors to warnings 2019-07-24 13:22:17 -04:00
EricLiu2000 f45bd6772f Builds and runs on both windows and ubuntu 2019-06-25 13:20:49 -04:00
EricLiu2000 50dba62a89 Event refactor builds on Windows 2019-06-24 17:59:45 -04:00
EricLiu2000 965679c370 Added error checking and removed some redundancy from device isOpen() 2019-06-13 16:01:35 -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 f3cd9ac94b Merge branch 'pcap' 2019-05-06 12:50:29 -04:00
Paul Hollinsky 6ffc364eba Transmits now block when the buffer fills 2019-05-02 16:33:44 -04:00
Paul Hollinsky 4588024ed0 Lower CPU usage while finding devices on Linux 2019-04-17 16:50:40 -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 837ca29ac8 Improved FTDI device finding logic 2018-12-10 14:58:28 -05:00
Paul Hollinsky 8a147e2c3f Purge read and write queues after a close succeeds 2018-11-16 18:48:28 -05:00
Paul Hollinsky 07a5dc4118 Allow threads to reopen after closing 2018-11-16 17:08:53 -05:00
Paul Hollinsky 0cf1e7fe7f Resolve compilation errors and warnings with MSVC 2018-11-13 16:18:57 -05:00
Paul Hollinsky a295713c50 Add connection failure error to POSIX FTDI driver 2018-10-30 16:52:29 -04:00
Paul Hollinsky 92d98f8bd5 Remove all debugging printouts to stdout 2018-10-30 15:02:01 -04:00
Paul Hollinsky ef3c93258c Remove vestigial part of FTDI POSIX driver 2018-10-30 12:59:28 -04:00
Paul Hollinsky 8e6b0d0b0e Refactor for a central include directory 2018-10-22 11:52:34 -04:00
Paul Hollinsky 769c797a50 Detection for ValueCAN 4 models, as well as settings for each 2018-10-19 13:43:36 -04:00
Paul Hollinsky ae5646dd78 Update devices to the new memory management model 2018-10-17 15:12:48 -04:00
Paul Hollinsky 7d821b9745 Revamp the way that ethernet devices are found
Also add RADStar2 Ethernet support
2018-10-08 16:32:51 -04:00
Paul Hollinsky 466d35c68b Use the interface MAC to transmit 2018-10-08 15:44:23 -04:00
Paul Hollinsky 6ad4e564b9 Fix PCAP MAC PID issues by checking against the serial returned instead 2018-10-04 17:37:17 -04:00
Paul Hollinsky acfeacedfc Encoder works but needs cleanup, GS checksum is not working properly somehow 2018-10-03 17:04:55 -04:00
Paul Hollinsky 590a99d995 Linux: Take out hardcoded path to SO, use LD_LIBRARY_PATH or copy the SO 2018-10-02 16:20:24 -04:00
Paul Hollinsky a8ef08fae4 Fix POSIX building 2018-10-01 11:33:46 -04:00
Paul Hollinsky 399c72e61d Resolve merge conflicts master into devicesettings 2018-09-26 18:24:59 -04:00
Paul Hollinsky b0f5ad0f7f Refactor icsneoc to icsneo_functionName to avoid conflicts with legacy 2018-09-26 16:38:28 -04:00
Paul Hollinsky 4c45b235bc Merge branch 'master' of intrepidcs.homeip.net:paulhollinsky/icsneonext 2018-09-25 17:56:02 -04:00
Paul Hollinsky dec85a4c55 Lazily load PCAP DLL on Windows, keeping it cached afterwards 2018-09-25 17:55:59 -04:00
Paul Hollinsky 69773d6537 Check serial number on device open, get correctly for PCAP devices 2018-09-25 17:53:58 -04:00
Paul Hollinsky 28de70aa05 Refactor ICSChecksum and packetWrap into the Packetizer 2018-09-25 17:50:58 -04:00
Paul Hollinsky 2099ba9d1e Resolve macOS warnings and standardize style 2018-09-24 19:04:20 -04:00
Paul Hollinsky b634e6a443 Point macOS version towards the right dylib
This is super temporary

Eventually we'll decide where the library will go
2018-09-24 18:16:08 -04:00
Paul Hollinsky 95f3af3824 Added support for neoOBD2-SIM 2018-09-20 18:11:47 -04:00
Paul Hollinsky d6100f99d1 It is not necessary to set bitrate for the USB serial on POSIX
Additionally, this fixed build on macOS as they don't support up to `B500000` in their `termios.h` for some reason
2018-09-20 14:44:32 -04:00
Paul Hollinsky ef8d764aa6 Move platforms around, most of POSIX will be common implementation 2018-09-20 14:40:24 -04:00
Paul Hollinsky fb4a327891 Allow devices to be selectively included per platform
This way a platform does not have to be 100% implemented to be useful
2018-09-20 13:21:54 -04:00
Paul Hollinsky 30327dd12d Remove debugging printouts from the pcap driver 2018-09-19 13:52:12 -04:00
Paul Hollinsky 315be76034 Silence warnings 2018-09-18 17:01:37 -04:00
Paul Hollinsky 8343093708 Fixed an issue where Windows VCP data latency was bad at low traffic 2018-09-18 16:51:22 -04:00
Paul Hollinsky 8375a354af Add support for RADGalaxy and neoVI FIRE 2 over Ethernet 2018-09-18 16:50:42 -04:00
Paul Hollinsky f1f1cb1701 Change to the read buffer size on Windows for better performance 2018-09-13 19:40:09 -04:00
Paul Hollinsky e2e5017331 Initial commit 2018-09-10 20:28:29 -04:00