Commit Graph

34 Commits (liveDataSetValue)

Author SHA1 Message Date
David Rebbe f04cd16bee Platform: Improve Windows wstring support 2025-02-06 18:43:51 +00:00
Kurt Wachowski 75af3220b0 Driver: Block between read attempts
Driver:

* Refactored to limit accessibility of member fields;

Communication:

* readTask() now calls for a blocking wait;
2024-08-13 13:55:12 +00:00
Yasser Yassine 77928dc93d Driver: Add general predicate parameter for waitForRx 2024-05-28 18:21:22 +00:00
Yasser Yassine 659fcf633c Communication: Add pause feature
Removed redirect read
2024-05-23 21:23:45 +00:00
Jonathan Schwartz 63f0516318 Replace concurrentqueue with ringbuffer 2024-04-05 17:24:53 +00:00
Kyle Schwarz 9b46d486cb Driver: Add TCP support
Device: Close Driver in heartbeat thread on disconnection
2023-03-08 18:32:26 +00:00
Paul Hollinsky 781fc2c034 Drivers: Decouple from devices
This allows us to better implement alternative drivers
for devices, such as for device sharing servers or
talking to CoreMini processors within the same device.
2022-03-27 14:30:31 -04:00
Paul Hollinsky 453d3366af Platform: Windows: Avoid windows.h
This way Windows.h doesn't pollute everything with random defines
2022-02-28 19:12:35 -05:00
Paul Hollinsky 6d92b7a03a Windows: PCAP: Fix a race which could cause transmit delays
If you had a chain of packets being sent all at once, the latter
section of packets could be delayed, theoretically infinitely.

If queue1 was filled and enqueued for transmit, then queue2
had packets enqueued in it while queue1 was still transmitting,
we'd try to fill queue2 further rather than waiting for queue1's
transmit to finish.

However, in that case, we wouldn't check if we could transmit
queue2 again until the next packet. If the user application
was waiting for the response from something in queue2
before pushing more packets, it could hang indefinitely.

This also fixes a subtle bug where hitting the "not safe to try
to fit any more packets in this queue" limit would cause a
packet to drop, as it would be dequeued and then tossed.

Closes GH-42
2022-02-04 01:14:08 -05:00
Paul Hollinsky b13a33f0be Windows: PCAP: Less verbose name for the interface
Fixing some tabs/spaces formatting here as well
2021-06-15 19:09:05 -04:00
Tomasz Ziobrowski af2c30885b Added support for MinGW32 - to be working with qticsneo 2021-06-15 20:15:08 +02:00
Paul Hollinsky 6f0654c336 Windows: PCAP: Rework for Ethernet Packetizer and Performance 2020-09-22 19:22:40 -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 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
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
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
EricLiu2000 f41b5c4a79 Removed cancellation of error downgrading after closing, was causing read access violations. 2019-08-01 14:07:42 -04:00
EricLiu2000 66126b2b61 Downgraded non-user thread errors to warnings 2019-07-24 13:22:17 -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 6ffc364eba Transmits now block when the buffer fills 2019-05-02 16:33:44 -04: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 92d98f8bd5 Remove all debugging printouts to stdout 2018-10-30 15:02:01 -04:00
Paul Hollinsky 8e6b0d0b0e Refactor for a central include directory 2018-10-22 11:52:34 -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 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 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 8375a354af Add support for RADGalaxy and neoVI FIRE 2 over Ethernet 2018-09-18 16:50:42 -04:00