Max Brombach
02f1b4592e
Device/Disk: Add VSA read and parse functionality
...
Implement ability to extract network traffic (CAN, LIN, Ethernet, etc.) from VSA message records on disk. Add a method to Device class that uses the VSAParser and the individual record types to extract messages from the VSA message records and pass them back to the communication system. This routes messages such that it appears as if they were discovered live instead of read from disk. The parse process (in Device) requires determination of metadata about the VSA file system on a device before it can begin extracting messages. This currently only handles data captured from the current coremini script on a device.
2023-11-15 16:02:47 +00:00
Yasser Yassine
4248c1a538
Device: Add CoreMini flashing support
2023-11-08 18:47:03 -05:00
Jonathan Schwartz
e0cef880f0
Firmio: Improve exit from Find loop
...
Device: Null check return from std::dynamic_pointer_cast
2023-10-03 16:24:28 +00:00
Kyle Schwarz
e97b307c4d
Device: Wait up to 1s for GetAll response
...
If there's an active disk read in progress the default 50ms timeout is too short.
2023-09-21 16:52:30 +00:00
Kyle Schwarz
0c436621a0
Disk: Refactor ExtExtractorDiskReadDriver
...
Reading disk data is currently accomplished by redirecting the raw input stream
for the duration of the acquisition, during which no other operation can be
carried out. This change moves disk data reading into the packetizer so the
familiar request/reply with message filters can be used. To accomplish this the
deprecated ISOPIC network type was dropped because the two messages share this
network ID.
Also fixes live data packet lengths which were off-by-one.
2023-09-18 15:44:28 +00:00
Kyle Johannes
8d704b1bbb
LiveData: Initial implementation
...
Add support for live data subscription via Device::subscribeLiveData() and
Device::unsubscribeLiveData(). The live data API can be used to subscribe to
individual "signals", a full list of which can be found in LiveDataValueType.
2023-08-22 16:20:48 -04:00
Emily Brooks
188a087c51
Device: Wait longer to receive message in heart beat thread
2023-08-15 19:43:08 +00:00
Kyle Schwarz
237bed1b72
Device: Wait for device response in setRTC()
2023-07-18 18:40:41 +00:00
Yasser Yassine
d9c12bffe7
Device: Add device binary export support
2023-05-30 21:22:53 +00:00
Jonathan Schwartz
32900ae263
Device: Add GetComponentVersions and GetSupportedFeatures commands
...
Driver: Fix re-open and failed open cases for TCP
Also enforces even length packets for the RED2, FIRE3, and FIRE3 FlexRay devices.
2023-05-08 21:07:43 +00:00
Kyle Schwarz
bbf348a6ab
Device: Add RADMoon2ZL
...
Also adds a base class for both Moon2 device types.
2023-04-24 22:39:35 +00:00
Kyle Schwarz
6b0c588a46
Driver: Add FTD3XX
2023-04-20 20:42:36 +00:00
Joseph Niksa
b3bbf91e8c
icsneolegacy: Implemented get() and set() RTC functions
2023-04-20 18:37:05 +00:00
Bryant Jones
af31aa23ad
RAD-Moon3: Add initial support
2023-04-20 17:14:22 +00:00
Bryant Jones
d9cdd03618
RAD-Comet: Add initial support
2023-03-28 20:58:12 +00:00
Yasser Yassine
bf6a059820
Device: Add Coremini script upload function
2023-03-08 18:58:38 +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
Emily Brooks
4229d8b66a
Device: Update the capture callback to include all of the wivi capture information
2023-01-18 23:17:59 +00:00
jschwartz
dc1c4ede9d
Device: Add FIRE3 Flexray device type and its settings
...
Device: Include FIRE3 Flexray in device finder
Device: Correct FIRE3 settings and add additional supported networks
Network: Add additional network enumerations
Communication: Add networks to all switch statements
2023-01-17 09:12:10 -05:00
Kyle Schwarz
41a569fc2d
Device: Consider VSA when calculating logical disk size
...
When the underlying disk driver has VSA access the total size must be
calculated with respect to the VSA offset.
2022-12-19 14:56:08 +00:00
Emily Brooks
c9d8a4f0a9
Device: Disk lock the script/wivi commands
2022-11-16 19:55:53 +00:00
Emily Brooks
96fe8895fc
Device: Add isEncrypted to script status
2022-11-16 19:55:53 +00:00
David Rebbe
5ff1707c47
libicsneoc: Resolve DeviceCurrentlyClosed errors
2022-11-03 23:46:14 +00:00
Jonathan Schwartz
4c0d49f09a
Device: Add a mutex against the diskLock to some commands that are on threads
2022-10-24 16:02:53 -04:00
Jonathan Schwartz
b32f58da38
Device: Add new method to mark collections as uploaded in CM root directory
2022-10-24 16:02:48 -04:00
Emily Brooks
17b3018499
Device: Continue script status loop if no response
2022-10-21 13:23:46 +00:00
Yasser Yassine
7b2544864b
A2B: Add initial WAV streaming support
2022-10-19 18:44:05 -04:00
Jonathan Schwartz
13ec2bca98
Merge remote-tracking branch 'origin/master' into js-add-fire3-to-finder
2022-10-12 10:55:56 -04:00
Jonathan Schwartz
711976cce0
DeviceFinder: Add serial match for FIRE3
2022-10-12 10:53:19 -04:00
Emily Brooks
e02203a974
Device: Creates script status thread, callback for each variable
2022-10-11 14:48:39 -04:00
Emily Brooks
5b14ec7246
Device: Add start/stop/clear script, script status, and preload coremini commands
2022-10-11 14:48:39 -04:00
Kyle Schwarz
9871430288
RAD-A2B: Initial support
2022-09-15 11:13:45 -04:00
Kyle Schwarz
9ef01e2d3d
Optional: nonstd to std
2022-07-22 01:27:39 -04:00
Kyle Schwarz
ab54697745
Device: Retain Device objects between FindAll() calls
...
FindAll() now retains a list of Devices that have already been created
and returns their existing object instead of a new one.
2022-07-15 16:03:54 -04:00
Paul Hollinsky
a928a1d879
Device: Implement Wireless neoVI Stack
...
This reverts commit cb47065a47 .
2022-06-07 13:48:51 +00:00
Paul Hollinsky
de3d8bf870
RAD-Jupiter: Add initial support
2022-05-28 14:42:09 -04:00
Paul Hollinsky
55d7d5bf17
Device: Implement allowSleep for Wireless neoVI support
2022-04-26 12:48:17 -04:00
Jonathan Schwartz
44ad06d4bb
Device: Add mutex for disk info requests to temporarily work around WiVIClient timeout issues
2022-04-22 17:30:53 +00:00
Paul Hollinsky
2dd91325e6
FirmIO: Initial commit
2022-03-27 18:10:24 -04:00
Paul Hollinsky
008a1620c8
Repo: Normalize source files to LF
2022-03-27 14:40:32 -04: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
0ff12300f3
RAD-Gigalog: Rename to RAD-Mars
2022-03-11 10:53:05 -05:00
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
ac7b2d5106
FlexRay: Automatically reconfigure for runtime-added message buffers
2022-02-21 21:40:46 -05:00
Paul Hollinsky
4dbb8f3956
FlexRay: Don't set default key slots to continuous
...
This way they will come out as NULL frames, which is likely
more appropriate for a default.
This only takes effect if you set a key slot, but then don't
configure a message buffer for it.
2022-02-21 21:40:46 -05:00
Paul Hollinsky
eace014494
FlexRay: Don't enforce key slot rules on non-keyslots
2022-02-21 21:40:46 -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
ffe2d34799
Settings: Make getBaudrateFor work for SWCAN and LSFTCAN
2021-06-01 22:40:26 -04:00
Paul Hollinsky
bda37e31f3
Support the RAD-Epsilon
2021-05-28 18:10:16 -04:00
Paul Hollinsky
04e7bfd1af
Support the neoVI RED 2
2021-05-27 22:47:36 -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
9ba7320fd3
MSVC: Fix build warnings
2021-05-05 12:51:52 -04:00
Paul Hollinsky
82113f1a67
Settings: Better handling of the checksum
2021-05-05 02:20: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
5733300de6
Extensions: Auto-add linked extensions
2021-04-27 21:12:24 -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
e82b5d15e0
Support software controllable termination
2021-04-11 22:13:51 -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
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
eda4a30dcd
Add ValueCAN 4 Industrial
2020-09-14 12:45:32 -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
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
a460e27657
Add RADGigalog for Windows
...
Ethernet communication with device only
2020-09-08 17:55:52 -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
Kyle Schwarz
3e4b595fe4
Resolve signedness warnings on GCC
2020-08-18 15:37:05 -04:00
Kyle Schwarz
afda617894
Remove trailing white-space
2020-08-11 13:42:13 -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
d2019c24df
reuse discovered pcap interfaces in DeviceFinder::FindAll()
2020-05-11 16:17:56 -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
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
724cc428d9
Properly specify the FlexRay CC registers
2019-11-20 16:24:20 +01:00
Paul Hollinsky
52b0b4c586
Properly set up transmit buffers
2019-11-19 17:07:48 +01:00
Paul Hollinsky
4821a957dd
Properly decode incoming FlexRayPackets
2019-11-18 06:09:25 +01:00