Commit Graph

846 Commits (c31d883b51eab1ada3f27d7aa30f10096de03236)

Author SHA1 Message Date
Paul Hollinsky ad07af160c MSVC: Variable shadowing 2021-05-22 11:31:19 -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 b97f358a0f Settings: Extra Ethernet settings on ValueCAN 4 and RAD-Pluto 2021-05-10 21:17:31 -04:00
Paul Hollinsky 6f8e073fd1 MultiChannelCommunication: Resolve MSVC constexpr warning 2021-05-10 21:16:21 -04:00
Paul Hollinsky 07afbebc6d Settings: Resolve MSVC structure warnings 2021-05-10 21:15:54 -04:00
Paul Hollinsky 9ba7320fd3 MSVC: Fix build warnings 2021-05-05 12:51:52 -04:00
Paul Hollinsky f752924a36 Unaligned: Use correct MSVC define 2021-05-05 12:32:29 -04:00
Paul Hollinsky 295ba490aa Settings: Mark termination enables as an unaligned ptr
Unfortunately, the termination enables are not always at an aligned
boundary, and MSVC needs to taint the ptr type with __unaligned
in that case.
2021-05-05 03:38:58 -04:00
Paul Hollinsky 1bb114004e Remove unused parameters
These can cause warnings (which we treat as errors) on MSVC
2021-05-05 02:40:00 -04:00
Paul Hollinsky e99107c1bc Device: Allow different Question options for OpenStatus 2021-05-05 02:21:15 -04:00
Paul Hollinsky 82113f1a67 Settings: Better handling of the checksum 2021-05-05 02:20:36 -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 8be3bbaee5 CMake: Use CMAKE_CXX_STANDARD_REQUIRED 2021-05-05 02:16:01 -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 eca1110305 ValueCAN 4-2EL: Allow the Ethernet network while communicating over it
All frames except for the CAB1/CAB2 communication are reported
2021-05-04 23:08:34 -04:00
Paul Hollinsky b104b34919 Device: Report whether the current driver supports DFU 2021-05-04 22:53:28 -04:00
Paul Hollinsky 805ff4f549 ValueCAN 4-2EL: Device reqires PCAP to enumerate over Ethernet 2021-05-04 22:39:33 -04:00
Paul Hollinsky 78e3eb18df Drivers: Rename STM32 to CDC ACM
This is much more descriptive of what the driver actually is
2021-05-04 22:37:16 -04:00
Paul Hollinsky 6d22b1e001 POSIX: STM32: Check re-enumeration by inode
This is much more stable than waiting for a set amount of time
We still timeout at 5s, if we see that being hit it can be increased
2021-05-04 22:22:30 -04:00
Paul Hollinsky b7c7d4349a Device: Extend open() API for long-running tasks 2021-04-29 19:08:31 -04:00
Paul Hollinsky 3d4e0a27e3 Decoder: Pass on short Device messages 2021-04-29 19:07:38 -04:00
Paul Hollinsky 0ce52f064b Event: Better error message for USB powered devices 2021-04-29 18:15:56 -04:00
Paul Hollinsky f629125e67 Build: Allow inheritance of the C++ standard
This fixes symbol name incompatibilities when linking with icsneo::optional
between C++ standards.
2021-04-29 18:08:01 -04:00
Paul Hollinsky a63d701839 Event: More user-friendly message for the packet decoding error 2021-04-29 18:07:08 -04:00
Paul Hollinsky 622c5ee57a POSIX: STM32: Handle re-enumeration when changing modes 2021-04-27 21:12:59 -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 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 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 6c1cbc9db8 Optional: Move optional-lite to the include/third-party directory
This fixes the use case of adding the include folder
manually to an outside project.
2021-04-23 20:01:53 -04:00
Paul Hollinsky b7ce9819bd POSIX STM32: Handle large write payloads failing with O_NONBLOCK 2021-04-23 17:06:16 -04:00
Paul Hollinsky 55ca6adee6 Communication: Allow redirection of reads 2021-04-23 17:00:37 -04:00
Paul Hollinsky bb7719d185 POSIX Drivers: Clear disconnected status when closing
This allows us to properly re-open if we were
previously disconnected.
2021-04-23 16:59:48 -04:00
Paul Hollinsky 4b12d3aa4d EventCallback: Convert indentation to tabs 2021-04-22 13:29:56 -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 3b6b4f0541 C API: Expose icsneo_getNetworkByNumber 2021-04-12 20:20:48 -04:00
Paul Hollinsky 40be68e744 C API: Add typedefs for neonetid_t and neonettype_t 2021-04-12 20:20:07 -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 c8bf1f26da Examples: C Interactive: Initialize product description to empty string
This is a guard in case the icsneo_describeDevice call were to
fail for some reason, and is just good practice regardless.
2021-04-11 22:00:12 -04:00
Paul Hollinsky 9ba21d5dc7 C API: Digital IO function use stdbool.h
This requirement is already in place and makes the API more consistent
2021-04-11 20:54:59 -04:00
Paul Hollinsky eb5a84132a EtherBADGE: Device only has one CAN channel 2021-04-08 15:51:56 -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