Commit Graph

211 Commits (ks-refactor-docs)

Author SHA1 Message Date
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
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
EricLiu2000 b7288edd9a Finished adding error checking 2019-06-13 16:01:35 -04:00
EricLiu2000 8a6073a9cf Transmit and receiving messages now fails properly when the device is closed. Device closes when serial number initialization fails after 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 a16f2843d8 Added error reporting to idevicesettings 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
EricLiu2000 903615dadd Added icsneo_isOpen() functionality 2019-06-13 16:01:35 -04:00
Paul Hollinsky 56d191b438 Add support for RADPluto over USB 2019-05-14 15:29:03 -04:00
Paul Hollinsky 288ff3565e Make sure to close underlying com if we fail to open 2019-05-14 15:20:04 -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
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 7e9fbc4959 Basic introspection for device supported networks 2019-01-03 17:00:15 -05:00
Paul Hollinsky 603d532d2d Add support for RADStar2 settings 2018-12-21 20:28:25 -05:00
Paul Hollinsky e124ad28f4 Major improvements to the settings API
* Allow the raw structure to be manipulated from C and Legacy APIs

 * Structure is now split between what's on the device and what's on the client so changes will not be visible from read methods until apply()

 * Allow devices to connect which have slightly different firmware versions than the settings structure
2018-12-21 20:24:11 -05:00
Paul Hollinsky 3488e36f2a Added the ability to get the baudrate for networks 2018-12-10 14:57:43 -05:00
Paul Hollinsky 8a4e33c8df Allow version and supported devices to be printed at runtime 2018-11-20 10:41:42 -05:00
Paul Hollinsky 2ade9116eb Merge branch 'master' of intrepidcs.homeip.net:paulhollinsky/icsneonext 2018-11-20 09:42:29 -05:00
Paul Hollinsky 8ef2260fbe Add the ability to enumerate supported devices 2018-11-20 09:42:25 -05:00
Paul Hollinsky 07a5dc4118 Allow threads to reopen after closing 2018-11-16 17:08:53 -05:00
Paul Hollinsky 77d694c662 Added the ability to block on getMessages until a message arrives 2018-11-09 16:28:48 -05:00
Paul Hollinsky 1a9c907fea CAN FD baudrate settings 2018-10-30 15:38:15 -04:00
Paul Hollinsky 3a42372dcd Add error system 2018-10-26 20:53:30 -04:00
Paul Hollinsky a331a2afa8 Device component initialization done more intelligently 2018-10-26 19:28:09 -04:00
Paul Hollinsky 95dce1c429 Device describe 2018-10-24 12:51:04 -04:00
Paul Hollinsky 8044488bed Make a blank settings interface if one does not exist because segfaulting is bad 2018-10-22 17:23:13 -04:00
Paul Hollinsky 6456d4e261 Fix a bug where polling messages would not work properly 2018-10-22 16:19:20 -04:00
Paul Hollinsky 5a5d626225 Resolve a segfault when device did not ever receive reset status 2018-10-22 15:40:52 -04:00
Paul Hollinsky 8e6b0d0b0e Refactor for a central include directory 2018-10-22 11:52:34 -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 769c797a50 Detection for ValueCAN 4 models, as well as settings for each 2018-10-19 13:43:36 -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 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 ae5646dd78 Update devices to the new memory management model 2018-10-17 15:12:48 -04:00
Paul Hollinsky ba82c51914 Allow settings to be marked as readonly
In the case of the FIRE 2 ethernet, we're waiting on a bug fix in firmware before we re-enable writing.
In the meantime, setting settings over ethernet crashes the ethernet driver.
2018-10-10 16:28:00 -04:00
Paul Hollinsky b3184eb1ed Decode reset status messages 2018-10-09 13:38:54 -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 7d821b9745 Revamp the way that ethernet devices are found
Also add RADStar2 Ethernet support
2018-10-08 16:32:51 -04:00
Paul Hollinsky 600813b7e6 Remove some noisy debugging info 2018-10-08 15:09:50 -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 efe04128fb IDeviceSettings is now referenced by unique_ptr, rather than shared_ptr 2018-10-04 17:28:35 -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 d86f15ab4c Fix settings checksum issues 2018-10-04 12:31:04 -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 d7372bbd5a Incomplete device settings sending 2018-10-01 15:26:13 -04:00
Paul Hollinsky a8ef08fae4 Fix POSIX building 2018-10-01 11:33:46 -04:00
Paul Hollinsky 2b443ad83d The icsneolegacy API finds devices correctly now 2018-09-27 13:34:16 -04:00
Paul Hollinsky 06b7181492 Implement DeviceType and icsneo_getProductName 2018-09-26 20:43: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 a5b79167b9 Clean up DeviceType 2018-09-26 18:16:50 -04:00
Paul Hollinsky 8060b07eee Fix macOS compile errors 2018-09-26 18:16:05 -04:00
Paul Hollinsky bab9e0f020 Device types, not finished yet 2018-09-26 16:53:18 -04:00
Paul Hollinsky 650b46fad2 Fix structs for FIRE 2 settings 2018-09-25 18:41:05 -04:00
Paul Hollinsky 126c8efd2a Don't reuse the device object we use to get the serial 2018-09-25 18:15:50 -04:00
Paul Hollinsky 840fe54bcd Get rid of annoying warning 2018-09-25 18:00:52 -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 aa25ba1728 Communication uses instantiated Packetizers and Decoders now 2018-09-25 17:47:27 -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 95f3af3824 Added support for neoOBD2-SIM 2018-09-20 18:11:47 -04:00
Paul Hollinsky 22021bbd83 Remove unnecessary FTDI/Comm instantiation for FIRE 2 2018-09-20 16:02:19 -04:00
Paul Hollinsky fb4a327891 Allow devices to be selectively included per platform
This way a platform does not have to be 100% implemented to be useful
2018-09-20 13:21:54 -04:00
Paul Hollinsky b254ac991d Rename the USB_PRODUCT_ID to PRODUCT_ID as it is used for Ethernet as well 2018-09-18 16:59:59 -04:00
Paul Hollinsky 8375a354af Add support for RADGalaxy and neoVI FIRE 2 over Ethernet 2018-09-18 16:50:42 -04:00
Paul Hollinsky 6d4652f03f Add support for neoOBD2 PRO 2018-09-18 16:35:22 -04:00
Paul Hollinsky 63d13cdb88 Allow polling for messages from C 2018-09-13 19:40:23 -04:00
Paul Hollinsky e2e5017331 Initial commit 2018-09-10 20:28:29 -04:00