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
EricLiu2000
3358241abe
Reordered error downgrading, order of going offline, and renamed locks
2019-08-06 10:32:19 -04:00
EricLiu2000
f9712a4bcd
Added error flag when packetizer and multichannelcommunication fail to read
2019-08-01 16:21:29 -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
c10224002a
Added message callback functionality in c and canceled error downgrading on user callbacks in communication as well
2019-07-30 10:22:27 -04:00
EricLiu2000
54b98ec9b4
Error downgrading now uses a map<threadid, bool>, and error downgrading is canceled during message callbacks
2019-07-29 15:16:35 -04:00
EricLiu2000
66126b2b61
Downgraded non-user thread errors to warnings
2019-07-24 13:22:17 -04:00
Paul Hollinsky
21c3fead4a
Error checking for Encoder::encode UpdateLEDState
2019-07-23 15:04:50 -04:00
EricLiu2000
50dba62a89
Event refactor builds on Windows
2019-06-24 17:59:45 -04:00
EricLiu2000
878d9e6dde
Implemented threaded error handling in errormanager and fixed compile error
2019-06-21 16:14:52 -04:00
EricLiu2000
a4a42c8704
Reworked updating LEDState to use sendCommand() instead of transmit()
2019-06-14 16:09:19 -04:00
EricLiu2000
44ca4d4db1
Removed extraneous error checking
2019-06-13 16:04:20 -04:00
EricLiu2000
b7288edd9a
Finished adding error checking
2019-06-13 16:01:35 -04:00
EricLiu2000
255e1e2b90
Added more error logging
2019-06-13 16:01:35 -04:00
EricLiu2000
dc4f96affb
Commands can now only be sent when the device is open
2019-06-13 16:01:35 -04:00
EricLiu2000
519e64fb17
Added error checking to functions called from Communication
2019-06-13 16:01:35 -04:00
EricLiu2000
965679c370
Added error checking and removed some redundancy from device isOpen()
2019-06-13 16:01:35 -04:00
Paul Hollinsky
b7dbeccaef
Lock before adding or removing message callbacks
2019-06-13 15:47:23 -04:00
Paul Hollinsky
7cf0ec5f4f
Rename timestampMultiplier to timestampResolution
...
We've also decided to leave it out of the message structures since, for most uses going forward, it will not be needed.
Anyone who wants the timestamp resolution can always make the inexpensive device call to get it.
2019-05-06 12:32:04 -04:00
Paul Hollinsky
d1cd34fb24
Merge remote-tracking branch 'drebbe-intrepid/master' into timestamp
2019-05-06 12:01:09 -04:00
Paul Hollinsky
6ffc364eba
Transmits now block when the buffer fills
2019-05-02 16:33:44 -04:00
Paul Hollinsky
5a6a1c990a
Support CAN FD Error State Indicator
2019-04-17 17:03:38 -04:00
Paul Hollinsky
37b83e0506
Automatically pad CAN FD messages out
2019-04-17 16:50:11 -04:00
David Rebbe
23c3cc3763
Implemented legacy icsneoGetTimeStampForMsg() function call.
...
Signed-off-by: David Rebbe <drebbe@intrepidcs.com>
2019-04-05 19:09:52 -04:00
Paul Hollinsky
ae78122cbe
Add LSFTCAN and SWCAN support
2019-01-22 13:14:28 -05:00
Paul Hollinsky
c94ace87f9
Timestamp information for CAN frames
2019-01-03 17:08:47 -05:00
Paul Hollinsky
d37d5bb23e
Support Ethernet and Broad-R Reach TX and RX
2018-12-21 20:32:27 -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
ccd26a3637
Fix a bug where settings were not read properly
2018-10-30 14:24:57 -04:00
Paul Hollinsky
3a42372dcd
Add error system
2018-10-26 20:53:30 -04:00
Paul Hollinsky
bc91796d15
Proper detection for RTR CAN frames
2018-10-22 18:25:01 -04:00
Paul Hollinsky
911871a1c7
Resolve GCC warning
2018-10-22 15:00:58 -04:00
Paul Hollinsky
8e6b0d0b0e
Refactor for a central include directory
2018-10-22 11:52:34 -04:00
Paul Hollinsky
12451def11
Add dlcOnWire to CAN
2018-10-22 11:13:07 -04:00
Paul Hollinsky
0f703f494f
CAN FD transmission on non CAN FD hardware now fails as would be expected
2018-10-19 17:00:40 -04:00
Paul Hollinsky
80bccb59a5
Remove unused struct
2018-10-19 16:58:59 -04:00
Paul Hollinsky
cb57f06564
Slight speed improvement for CAN transmit
2018-10-19 13:42:48 -04:00
Paul Hollinsky
d037709963
CAN and CAN FD transmit implemented
2018-10-18 17:39:37 -04:00
Paul Hollinsky
dd99f82324
Allow the decoder to fail
2018-10-18 14:06:58 -04:00
Paul Hollinsky
e5f1ba41b5
Resolve relevant Linux compile warnings
2018-10-18 13:49:56 -04:00
Paul Hollinsky
912b11ce30
Encoder allowed to fail, preparation for upcoming CAN transmit
2018-10-18 13:42:20 -04:00
Paul Hollinsky
b4fc3edd0f
LED state changing (Device LEDs work now)
2018-10-17 16:15:15 -04:00
Paul Hollinsky
4426334f3f
Resolve Linux build issues and warnings
2018-10-17 15:13:28 -04:00
Paul Hollinsky
5d4cfe4930
Decoding for CAN FD, RTR, and XTD ID
2018-10-10 16:25:09 -04:00
Paul Hollinsky
b3184eb1ed
Decode reset status messages
2018-10-09 13:38:54 -04:00
Paul Hollinsky
d50e6040b3
Resolve callback filter null pointer issues
2018-10-09 13:38:38 -04:00
Paul Hollinsky
ba9813021e
Legacy API can receive CAN now
2018-10-08 21:43:32 -04:00
Paul Hollinsky
b3471890eb
Allow returning to the default settings
2018-10-08 19:03:12 -04:00
Paul Hollinsky
600813b7e6
Remove some noisy debugging info
2018-10-08 15:09:50 -04:00
Paul Hollinsky
c56aa73b31
Fix communication commands failing
2018-10-04 17:27:39 -04:00
Paul Hollinsky
21f5badb0c
Use unique_ptr for increased ownership clarity of communication components
2018-10-04 13:13:44 -04:00
Paul Hollinsky
7e7a969f28
Resolve some MSVC warnings
2018-10-04 12:31:26 -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
dffae23e54
Testing the encoder for sending more complex messages
2018-10-03 14:33:30 -04:00
Paul Hollinsky
5bf50ddc00
Begin adding an encoder for messages
2018-10-01 16:16:49 -04:00
Paul Hollinsky
bbcc5b2d7b
Resolve macOS compile warnings
2018-09-26 18:30:06 -04:00
Paul Hollinsky
399c72e61d
Resolve merge conflicts master into devicesettings
2018-09-26 18:24:59 -04:00
Paul Hollinsky
8060b07eee
Fix macOS compile errors
2018-09-26 18:16:05 -04:00
Paul Hollinsky
650b46fad2
Fix structs for FIRE 2 settings
2018-09-25 18:41:05 -04:00
Paul Hollinsky
9f20d70102
Refactor MessageDecoder to Decoder
2018-09-25 18:00:16 -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
72773d9afa
Refactor MessageFilter and MessageCallback
2018-09-25 17:53:02 -04:00
Paul Hollinsky
28de70aa05
Refactor ICSChecksum and packetWrap into the Packetizer
2018-09-25 17:50:58 -04:00
Paul Hollinsky
aa25ba1728
Communication uses instantiated Packetizers and Decoders now
2018-09-25 17:47:27 -04:00
Paul Hollinsky
585abe7cbb
Communication::Packet refactored out to Packet
2018-09-25 17:40:33 -04:00
Paul Hollinsky
d27b516894
Communication::Command refactored out of Communication
2018-09-25 17:35:56 -04:00
Paul Hollinsky
2099ba9d1e
Resolve macOS warnings and standardize style
2018-09-24 19:04:20 -04:00
Paul Hollinsky
6284223650
Wait on the correct netid for the correct time for serial numbers
...
Serial number decoding not implemented yet
2018-09-24 18:54:45 -04:00
Paul Hollinsky
da4d9e46be
Start work on device settings communication
2018-09-24 16:57:14 -04:00
Paul Hollinsky
af4f4894f5
C++11 and CMake 3.2 compliance changes
2018-09-21 17:32:47 -04:00
Paul Hollinsky
1f65a03481
Struct packing
2018-09-20 16:02:40 -04:00
Paul Hollinsky
8435efb039
Resolve some compile errors and warnings that can arise under Linux
2018-09-20 14:26:59 -04:00
Paul Hollinsky
5b1a56ee6c
Renamed to avoid compiler warning
2018-09-18 16:36:04 -04:00
Paul Hollinsky
63d13cdb88
Allow polling for messages from C
2018-09-13 19:40:23 -04:00
Paul Hollinsky
9f43e9e39e
Separate MessageDecoder from Packetizer and optimize
...
This will, in the future, allow overriding of MessageDecoder per device as necessary.
2018-09-13 19:39:19 -04:00
Paul Hollinsky
e2e5017331
Initial commit
2018-09-10 20:28:29 -04:00