Paul Hollinsky
0a15adbe91
Disk: Allow mismatched access for Read and Write drivers
...
This will cause the driver to fall back to the least common
denominator.
2022-03-03 20:29:13 -05:00
Paul Hollinsky
1118428250
Device: Only allow one disk transaction at a time
...
Most drivers will not gracefully handle more than one transaction
2022-03-03 16:20:51 -05:00
Paul Hollinsky
8aa5bef7dc
Disk: Implement Extended Extractor Driver
...
This is the high speed driver used for RED 2, FIRE 3, and many
of the RAD-family devices.
2022-03-03 00:03:37 -05:00
Paul Hollinsky
c314417277
Device: Find the VSA offset for Disk::Access::EntireDisk
2022-02-28 15:55:16 -05:00
Paul Hollinsky
f8a46b7196
Device: Add logical disk size accessor
2022-02-28 01:49:50 -05:00
Paul Hollinsky
0dcd950092
Device: Add disk write driver framework
...
At the moment, no drivers are implemented, so all devices have Access::None.
2022-02-25 01:14:57 -05:00
Paul Hollinsky
fe4d5e0c15
Device: Add disk read driver framework
...
Allow access to the device's logical disk.
At the moment, no drivers are implemented, so all devices have Access::None.
2022-02-25 01:14:57 -05:00
Paul Hollinsky
44e48182bf
Device: Don't try to deduce lock_guard template parameters
...
This improves compatibility with older C++ standards
2022-02-14 19:32:12 -05:00
Kyle Johannes
2d1bb381f6
Device: Implement Ethernet PHY MDIO Communication
...
The following fixups were added during the squash/merge:
Fix formatting in EthPhyMessage and EthPhyRegPacket
Device: Use std::make_shared when creating the EthPHYControl filter
Network: Create NetID String for EthPHYControl
EthPhyRegPacket: Constants in PascalCase
2021-12-08 19:07:07 -05:00
Paul Hollinsky
f8b5710a6c
Communication: Avoid MessageFilter type punning in waitForMessageSync
2021-12-02 15:00:13 -05:00
Paul Hollinsky
df9827fb2c
Device: Don't allow suppressDisconnects during a heartbeat request
...
See the comment block for an explanation
2021-09-20 23:39:45 -04:00
Paul Hollinsky
3764a2e814
Device: Wider tolerance for disconnections
2021-09-20 19:29:57 -04:00
Paul Hollinsky
21bc4eeff2
Message: Create a type system so non-frame data can be represented
...
This change breaks existing code, hence the version bump, but it's
going to be much less error prone going forward.
2021-05-22 01:58:36 -04:00
Paul Hollinsky
595cc36545
Device: Implement version handling
2021-05-05 02:17:38 -04:00
Paul Hollinsky
b7c7d4349a
Device: Extend open() API for long-running tasks
2021-04-29 19:08:31 -04:00
Paul Hollinsky
0ce52f064b
Event: Better error message for USB powered devices
2021-04-29 18:15:56 -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
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
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
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
7fdae15aed
Network: Update DeviceStatus define to match the standard style
2021-04-07 00:38:49 -04:00
Paul Hollinsky
a6c8acd8e9
Ethernet (DoIP) Activation Line support
2021-04-06 22:50:25 -04:00
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
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
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
Paul Hollinsky
dcc44d99ea
Fix an issue where the FIRE could not be opened
2020-06-17 15:11:57 -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
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
37778d7891
Implement FlexRay transmit, configuration, and cold start
2019-11-12 20:38:47 -05:00
Paul Hollinsky
2f9844df92
Begin work on FlexRay support
2019-10-16 16:43:31 -04:00
Paul Hollinsky
0607986114
Resolve merge conflicts
2019-08-12 11:17:28 -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
Jeffrey Quesnelle
781b23c0e7
std::chrono::seconds::duration should just be std::chrono::seconds
2019-08-06 17:35:44 -04:00
EricLiu2000
3358241abe
Reordered error downgrading, order of going offline, and renamed locks
2019-08-06 10:32:19 -04:00
EricLiu2000
71176137ca
Added waits to ensure going online and offline succeed before returning
2019-08-05 15:35:44 -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
50dba62a89
Event refactor builds on Windows
2019-06-24 17:59:45 -04:00
EricLiu2000
92368f70a5
Added error checking for polling
2019-06-18 11:38:12 -04:00
EricLiu2000
2b34c82382
Added error checking to Device::getMessages()
2019-06-18 10:34:50 -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