Kurt Wachowski
90e1aa223d
Packetizer:
2023-10-12 17:33:05 +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
Jonathan Schwartz
53e66b8772
Communication: Fix NetID VNET conflict
...
There exists a potential conflict with some existing NetIDs and VNET NetIDs in the 200 range. To resolve this there is now an additional optional "expand" argument in various functions that could conflict. In most situations this should be false, and is false for MessageFilters to retain the existing behavior.
2023-08-14 21:47:35 +00:00
Kyle Johannes
4cf35acf6c
LIN: Fix protected ID not assigned
2023-07-12 00:05:12 +00:00
Yasser Yassine
d9c12bffe7
Device: Add device binary export support
2023-05-30 21:22:53 +00:00
Jonathan Schwartz
1e773ba9ab
Communication: Fix loopLimit when parsing SupportedFeaturesPacket
2023-05-10 23:18:04 +00:00
Bryant Jones
f5096b879c
MDIO: Network support
2023-05-09 18:14:36 +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
Yasser Yassine
3ddb832708
A2B: Add additional examples
...
Device: Add coremini loading example
2023-04-12 16:29:48 +00:00
Kyle Johannes
63c81b1c3d
LIN: Legacy API
2023-04-05 15:43:26 +00:00
Yasser Yassine
ddee1254a0
A2B: Add A2B Tx streaming support
...
A2B: Add A2BDecoder for streaming wave to A2B device
RADA2B: Add functions to configure settings
2023-03-08 18:22:14 +00:00
Kyle Johannes
539cfa511b
LIN: Network support
2023-02-03 18:27:08 +00:00
Yasser Yassine
78465e0f20
A2B: Add A2BMessage transmit support
2022-12-02 12:14:44 -05:00
Emily Brooks
96fe8895fc
Device: Add isEncrypted to script status
2022-11-16 19:55:53 +00:00
Emily Brooks
0619c37a90
Decoder: Add break to end of Internal network switch case
2022-11-08 22:05:01 +00:00
David Rebbe
5ff1707c47
libicsneoc: Resolve DeviceCurrentlyClosed errors
2022-11-03 23:46:14 +00:00
Kyle Schwarz
0101467154
Communication: Atomic sync messages
...
If waitForMessageSync() is called in two threads for the same message
the callback for both will be invoked with the first send.
2022-10-21 14:49:03 +00:00
Yasser Yassine
7b2544864b
A2B: Add initial WAV streaming support
2022-10-19 18:44:05 -04:00
Kyle Johannes
9817887523
I2C: Network support
2022-10-18 00:12:16 +00:00
Emily Brooks
5b14ec7246
Device: Add start/stop/clear script, script status, and preload coremini commands
2022-10-11 14:48:39 -04:00
Yasser Yassine
3b80746fb8
A2B: Add A2B message initial support
2022-10-11 11:20:04 -04:00
Emily Brooks
124bd3b310
WiVICommandPacket: Remove length check
2022-10-05 14:08:39 +00:00
Kyle Schwarz
9ef01e2d3d
Optional: nonstd to std
2022-07-22 01:27:39 -04:00
Kyle Schwarz
0d0b7f00bd
Merge branch 'master' into v0.3.0-dev
2022-07-15 13:02:26 -04:00
Emily Brooks
b50706846c
WiVICommandPacket: Add missing cstring header
2022-06-08 16:49:39 -04:00
Paul Hollinsky
a928a1d879
Device: Implement Wireless neoVI Stack
...
This reverts commit cb47065a47 .
2022-06-07 13:48:51 +00:00
Paul Hollinsky
cb47065a47
WiVICommandPacket: Temporarily remove GetAll
2022-04-26 12:58:54 -04:00
Paul Hollinsky
55d7d5bf17
Device: Implement allowSleep for Wireless neoVI support
2022-04-26 12:48:17 -04:00
Paul Hollinsky
2e3b738e76
Extended Commands: Decode generic responses
2022-04-15 21:35:40 -04:00
Paul Hollinsky
5d4ed0f4cd
Driver: Add optional debug prints
2022-03-27 23:45:47 -04:00
Paul Hollinsky
2dd91325e6
FirmIO: Initial commit
2022-03-27 18:10:24 -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
f05fd5e201
EthernetPacketizer: Correct reassembly for RAD devices
...
The RAD devices will give us a packet size larger than the packet,
as they specify the size of the entire reassembly.
2022-03-03 20:34:46 -05:00
Paul Hollinsky
6bcd8e5637
Disk: Read driver for Plasion
2022-02-28 03:40:44 -05:00
Paul Hollinsky
f8a46b7196
Device: Add logical disk size accessor
2022-02-28 01:49:50 -05:00
Paul Hollinsky
f8bfb243fa
Disk: Implement NeoMemoryDiskReadDriver
2022-02-25 01:14:57 -05:00
Paul Hollinsky
6cc0f08e2b
Settings: The device can report when defaults were applied
2022-02-24 15:50:39 -05:00
Paul Hollinsky
f37669139f
MSVC: Resolve warnings
2022-02-21 21:36:20 -05:00
Paul Hollinsky
c620b2ee8b
MSVC: Resolve warnings
2022-02-21 21:16:15 -05:00
Paul Hollinsky
0ded5508c1
Windows: Fix build issues with EthPhyRegPacket
2022-02-14 19:20:50 -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
d5087c1ba5
Communication: Remove extra accidentally added logging
2021-12-06 05:41:27 -05:00
Paul Hollinsky
f8b5710a6c
Communication: Avoid MessageFilter type punning in waitForMessageSync
2021-12-02 15:00:13 -05:00
Paul Hollinsky
2d6004bed1
CANPacket: Remove unused byte from datastream
2021-11-16 20:04:12 -05:00
Paul Hollinsky
574530978c
Encoder: Add 1 to host-to-device long format packets
...
Vehicle Spy 3 does this, it's a long-standing firmware idiosyncrasy.
Due to the way the device handles packets, this didn't cause a loss of
communication, only a "host to device byte" app error under certain
circumstances.
2021-11-16 20:03:41 -05:00
Paul Hollinsky
d097fb9a74
CANPacket: Remove unused byte from datastream
2021-11-16 19:48:55 -05:00
Paul Hollinsky
9d5bad94d4
Encoder: Add 1 to host-to-device long format packets
...
Vehicle Spy 3 does this, it's a long-standing firmware idiosyncrasy.
Due to the way the device handles packets, this didn't cause a loss of
communication, only a "host to device byte" app error under certain
circumstances.
2021-11-16 19:35:20 -05:00
Paul Hollinsky
719dbcefc8
EthernetPacketizer: Coalesce small PC-to-device packets
2021-11-16 18:00:04 -05:00
Paul Hollinsky
0656cb568e
EthernetPacketizer: Coalesce small PC-to-device packets
2021-09-23 21:29:15 -04:00
Paul Hollinsky
38f0022bb6
Communication: Support extended commands
2021-09-20 23:07:49 -04:00
Paul Hollinsky
5f44986c1b
Merge branch 'master' into v0.3.0-dev
2021-08-22 13:15:54 -04:00
Paul Hollinsky
68715d515d
Decoder: Allow older ResetStatus packets without voltage or temperature
2021-08-22 13:12:36 -04:00
Paul Hollinsky
e5bf87ba7d
Merge branch 'master' into v0.3.0-dev
2021-06-11 18:54:36 -04:00
Paul Hollinsky
c888aad5ae
VersionPacket: Use C++11 function signature
2021-06-11 18:40:50 -04:00
Paul Hollinsky
d4f6c12394
CANPacket: Fix invalid length check
...
This case is already checked above, and further
was invalid since the length had already been
translated to the numeric (0-64) value.
2021-06-10 15:03:34 -04:00
Paul Hollinsky
ed5132e852
CANPacket: Ensure correct padding when padding by the DLC
2021-05-25 22:19:03 -04:00
Paul Hollinsky
76b6ecbf04
CANPacket: Fix invalid length check
...
This case is already checked above, and further
was invalid since the length had already been
translated to the numeric (0-64) value.
2021-05-25 17:23:41 -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
21e93d1f73
CAN: Honor the specified dlcOnWire for transmit
2021-05-21 17:38:00 -04:00
Paul Hollinsky
6f8e073fd1
MultiChannelCommunication: Resolve MSVC constexpr warning
2021-05-10 21:16:21 -04:00
Paul Hollinsky
0006f31844
Network: Mark Main51, OldFormat, and ReadSettings as Internal
2021-05-05 02:18:22 -04:00
Paul Hollinsky
595cc36545
Device: Implement version handling
2021-05-05 02:17:38 -04:00
Paul Hollinsky
72bc5914a6
EthernetPacket: Allow 1 extra byte at the end of the packet
...
ValueCAN 4-2EL sends an extra byte to pad the message
to an even byte count.
2021-05-04 23:25:36 -04:00
Paul Hollinsky
3d4e0a27e3
Decoder: Pass on short Device messages
2021-04-29 19:07:38 -04:00
Paul Hollinsky
8e2883bca9
MultiChannelCommunication: Use generic handleInput
...
This way redirection, and any other changes we
make to the packetizer/dispatch flow, apply to
MultiChannelCommunication as well.
2021-04-23 22:34:32 -04:00
Paul Hollinsky
f8355df770
Communication: Block destruction while inside redirectionFn
2021-04-23 22:33:32 -04:00
Paul Hollinsky
55ca6adee6
Communication: Allow redirection of reads
2021-04-23 17:00:37 -04:00
Paul Hollinsky
bb322ad190
neoVI FIRE 2: MiscIO and EMiscIO Support
2021-04-21 10:40:35 -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
Paul Hollinsky
18394d0cfb
Add transmit support for ISO 9141-2
2021-03-23 17:23:55 -04:00
Paul Hollinsky
f63c187ed3
Add receive support for ISO 9141-2
2021-02-18 23:19:33 -05:00
Paul Hollinsky
4d655da69d
Decoder: 64-bit shift to avoid UB
...
Shifting a value by more than the size of its type is UB.
This was actually causing mangled serial numbers with
optimization on using Clang 12 on Linux.
2021-01-29 17:32:07 -05:00
Kyle Schwarz
ffbb5e20c5
Add description field for messages
...
Closes https://github.com/intrepidcs/libicsneo/issues/28
2020-11-13 16:15:04 -05: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
7e714abfd1
EthernetPacketizer: Add missing include for GCC
2020-09-23 10:23:05 -04:00
Paul Hollinsky
2c55584962
Ethernet: Encode preemption enabled flag
2020-09-22 19:19:22 -04:00
Paul Hollinsky
1f4358af4b
Packetizer: Correct packet length check
...
AA(1) + Old format(1) + New Length(2) + New NetID(2) = 6
2020-09-22 19:17:12 -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
Kyle Schwarz
3e4b595fe4
Resolve signedness warnings on GCC
2020-08-18 15:37:05 -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
07e99515fa
Always send the ReadSettings command in short format
...
This is needed for FIRE
2020-08-10 12:30:30 -04:00
Paul Hollinsky
a759c1faa9
Communication: Fix issue where driver failing to open leaves dangling thread
2020-06-24 22:03:31 -04:00
Paul Hollinsky
67bd1e616a
MultiChannelCommunication: Fix issue where initial open fails
2020-06-24 21:38:57 -04:00
Paul Hollinsky
8260149cb8
Add bridging between neomessage_eth_t and EthernetMessage
...
This allows transmitting Ethernet from the C API
2020-05-18 17:23:40 -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
1cd817a16b
Fix race conditions with Communication::waitForMessageSync
2020-02-28 20:00:08 -05:00
Jeffrey Quesnelle
98bd7e9c55
add decoding of transmitted, error, and description fields for CAN packets
2020-02-19 09:36:28 -05:00
Paul Hollinsky
fe7c50f8a3
Correctly shift received data
2019-11-19 17:07:26 +01:00
Paul Hollinsky
4821a957dd
Properly decode incoming FlexRayPackets
2019-11-18 06:09:25 +01: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
9629864f1b
Fixed wait check in device online/offline
2019-08-07 10:06:33 -04:00