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
8c774228bc
Disk: FAT: Fix Windows UNICODE compilation
2022-03-03 15:13:04 -05:00
Paul Hollinsky
478dfb3cb8
Platform: Windows: Create trampoline header
...
This way windows.h can be included if needed without a guard,
and we have a place to stub out defines for other platforms if
necessary.
2022-03-03 15:01:32 -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
453d3366af
Platform: Windows: Avoid windows.h
...
This way Windows.h doesn't pollute everything with random defines
2022-02-28 19:12:35 -05:00
Paul Hollinsky
caf5cca42f
Disk: Plasion: Fix bit-width issues
2022-02-28 19:11:39 -05:00
Paul Hollinsky
ae1b8d342e
Disk: Use std::chrono::seconds for CacheTime
...
This fixes an issue with MSVC
2022-02-28 19:11:27 -05:00
Paul Hollinsky
c314417277
Device: Find the VSA offset for Disk::Access::EntireDisk
2022-02-28 15:55:16 -05:00
Paul Hollinsky
1fadb85206
ThirdParty: Add FatFs
...
R0.14b
2022-02-28 15:54:38 -05:00
Paul Hollinsky
6bcd8e5637
Disk: Read driver for Plasion
2022-02-28 03:40:44 -05:00
Paul Hollinsky
4c9d6c5ee7
Disk: NeoMemory: Cache last read sector for one second
...
This prevents constant re-reads if reading in small chunks
2022-02-28 01:55:31 -05:00
Paul Hollinsky
4ef8fe8794
Disk: Predictable behavior for zero length reads
2022-02-28 01:54:21 -05:00
Paul Hollinsky
f8a46b7196
Device: Add logical disk size accessor
2022-02-28 01:49:50 -05:00
Paul Hollinsky
0b27e88da1
Disk: WriteDriver: Fix parameter shadowing
2022-02-25 01:14:57 -05:00
Paul Hollinsky
241502c2a2
Disk: Fix improper offset calculation
...
This would cause an underflow previously
2022-02-25 01:14:57 -05:00
Paul Hollinsky
242c7259ac
Disk: Proper error reporting for EOF
2022-02-25 01:14:57 -05:00
Paul Hollinsky
9d2d94d22b
Tests: Add disk driver tests
2022-02-25 01:14:57 -05:00
Paul Hollinsky
bb49ce039e
ThirdParty: Update included gtest
2022-02-25 01:14:57 -05:00
Paul Hollinsky
e52073c518
Tests: EthernetPacketizer: Fix typo
2022-02-25 01:14:57 -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
80cd4ae052
Disk: Fix out of bounds accesses in base ReadDriver
2022-02-25 01:14:57 -05:00
Paul Hollinsky
f8bfb243fa
Disk: Implement NeoMemoryDiskReadDriver
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
9e6970fd39
Windows: DynamicLib: Slim down Windows.h
...
This is important as it ends up being included in icsneoc.h
2022-02-24 16:37:13 -05:00
Paul Hollinsky
6cd821be2c
Build: Don't add libusb include until after libftdi
...
This fixes GH-46 and a regression caused by 82954d9 where the project
would fail to build until configured a second time on Unix-y platforms.
LibFTDI adds libusb, so we need to make sure that's included first.
Windows does not use libusb so it does not need the include directory.
2022-02-24 16:03:02 -05:00
Paul Hollinsky
6cc0f08e2b
Settings: The device can report when defaults were applied
2022-02-24 15:50:39 -05:00
Paul Hollinsky
80362e7f81
Event Manager: Refactor
2022-02-24 15:49:21 -05:00
Paul Hollinsky
d7d9c15a9f
Tests: Resolve MSVC x86 warnings
2022-02-22 10:49:49 -05:00
Paul Hollinsky
c326397bea
Examples: C Interactive: Resolve warnings
2022-02-22 10:49:49 -05:00
Paul Hollinsky
af152fe54a
CI: Also set warnings as errors in C code
2022-02-22 10:49:49 -05:00
Paul Hollinsky
d051d20db6
CI: Add Windows 32-bit
2022-02-22 10:49:49 -05:00
Paul Hollinsky
d0d279fdad
Windows: Disable unaligned on x86
...
Closes GH-44
2022-02-22 10:49:49 -05:00
Paul Hollinsky
c32d027b2d
MessageCallback: Tolerate being created with nullptr filter
...
Communication does this in waitForMessageSync if a filter
is not passed in.
This fixes a crash in icsneoWaitForRxMessagesWithTimeOut
for the legacy API.
For good measure, creation with an empty std::function will
immediately throw an std::bad_function_call back at the
caller, rather than letting that happen on the callback thread.
I'm also making the members const here so they are provably
always non-null (and not empty, for the function).
2022-02-21 22:55:49 -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
159c54b756
Legacy: Updates for the new neomessage_t API
2022-02-21 21:36:20 -05:00
Paul Hollinsky
416996b31d
CI: Warnings are errors
2022-02-21 21:36:20 -05:00
Paul Hollinsky
f37669139f
MSVC: Resolve warnings
2022-02-21 21:36:20 -05:00
Paul Hollinsky
7aedb673fd
Legacy: Fix icsneoGetVnetSimpleNetid
...
The NetID is written to the out* parameter, not returned.
2022-02-21 21:28:31 -05:00
Paul Hollinsky
52c7b5aaca
Legacy: Fix icsneoGetNetidforSlaveVNETs
...
The NetID is written to the out* parameter, not returned.
2022-02-21 21:28:31 -05:00
Paul Hollinsky
0f9bf83c89
Legacy: Formatting
2022-02-21 21:28:31 -05:00
Paul Hollinsky
dfd8768bbf
Legacy: Correct Ethernet message translation
...
* Fixes NetIDs over 255
* Fixes data lengths over 255
* Avoids writing unexpected messages to client
2022-02-21 21:28:31 -05:00
Paul Hollinsky
94e0ea1fe0
Legacy: Prevent incorrect access to NetID maps
2022-02-21 21:28:30 -05:00
Paul Hollinsky
58944a2523
Tests: Spaces to Tabs
2022-02-21 21:28:30 -05:00
Paul Hollinsky
be666e810d
CI: Add Windows
2022-02-21 21:28:30 -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
Paul Hollinsky
4fd65d85c8
Windows: PCAP: Fix WinPCAP loading
...
Used when LIBICSNEO_NPCAP_INCLUDE_DIR is not defined
2022-02-14 19:24:46 -05:00
Paul Hollinsky
0ded5508c1
Windows: Fix build issues with EthPhyRegPacket
2022-02-14 19:20:50 -05:00
Paul Hollinsky
6d92b7a03a
Windows: PCAP: Fix a race which could cause transmit delays
...
If you had a chain of packets being sent all at once, the latter
section of packets could be delayed, theoretically infinitely.
If queue1 was filled and enqueued for transmit, then queue2
had packets enqueued in it while queue1 was still transmitting,
we'd try to fill queue2 further rather than waiting for queue1's
transmit to finish.
However, in that case, we wouldn't check if we could transmit
queue2 again until the next packet. If the user application
was waiting for the response from something in queue2
before pushing more packets, it could hang indefinitely.
This also fixes a subtle bug where hitting the "not safe to try
to fit any more packets in this queue" limit would cause a
packet to drop, as it would be dequeued and then tossed.
Closes GH-42
2022-02-04 01:14:08 -05:00
Paul Hollinsky
890eb1e1bc
RAD-Galaxy: Update settings structure with new entries
2021-12-08 14:30:54 -05:00
Paul Hollinsky
96f18dcfd6
PCAP: Don't use pthread_cancel on Linux
...
It is not necessary and can cause a crash in libunwind
2021-12-08 14:30:02 -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
78747aa899
CMake: Set CXX_STANDARD to C++11 if not set elsewhere
...
We need at least C++11.
If we're statically compiling into an application, we want to be using the same
CXX_STANDARD as it for ABI compatibility (particularly with icsneo::optional),
hence having the check around it.
2021-11-16 20:04:12 -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
988289afc1
ValueCAN 4 Industrial: Disable 16-bit alignment over Ethernet
...
This is a continuation of a1a544045b
2021-11-16 20:03:02 -05:00
Paul Hollinsky
ac77fe2b56
POSIX: PCAP: Use EthernetPacketizer
2021-09-23 21:31:59 -04:00
Paul Hollinsky
1aa3828688
Ethernet Comm Devices: Disable unnecessary align16bit
2021-09-23 21:30:48 -04:00
Paul Hollinsky
0656cb568e
EthernetPacketizer: Coalesce small PC-to-device packets
2021-09-23 21:29:15 -04:00
Paul Hollinsky
6b37acf471
Encoder: Remove unused function
...
This is instead handled by an overloaded function in Communication
2021-09-21 00:23:32 -04: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
f129be34b5
C API: Resolve compilation against new icsneo::Messasge API
2021-09-20 23:24:19 -04:00
Paul Hollinsky
38f0022bb6
Communication: Support extended commands
2021-09-20 23:07:49 -04:00
Paul Hollinsky
1b13e2d6a4
MessageFilter: Ensure non-frames can be filtered by network type and ID
2021-09-20 19:38:00 -04:00
Paul Hollinsky
c847d68f3c
POSIX FTDI: Count LIBUSB_ERROR_IO as a disconnection
2021-09-20 19:30:59 -04:00
Paul Hollinsky
3764a2e814
Device: Wider tolerance for disconnections
2021-09-20 19:29:57 -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
27184a203f
Legacy: Use new layout for SDeviceSettings
...
This fixes issues where the settings values would be shifted.
2021-08-20 10:36:55 -04:00
Paul Hollinsky
c7e7222140
Legacy: Ensure stddef.h is present for size_t
...
Many compilers won't need this, but better to
have it so it's correct.
2021-08-05 15:07:02 -07:00
Paul Hollinsky
6241996a58
RAD-Star 2: Fix invalid serial numbers being reported
2021-07-06 19:38:41 -04:00
Paul Hollinsky
84c6b202c7
RAD-Star 2: Fix invalid serial numbers being reported
2021-07-06 19:31:44 -04:00
Paul Hollinsky
16b88b7787
macOS: PCAP: Fix typo
2021-07-05 23:55:22 -04:00
Paul Hollinsky
0c67cdf078
macOS: PCAP: Fix typo
2021-07-05 23:54:15 -04:00
Paul Hollinsky
bb65e37841
Merge branch 'master' into v0.3.0-dev
2021-06-17 21:07:50 -04:00
Paul Hollinsky
02c14aeb35
macOS: PCAP: Add code necessary for device discovery
...
You will still need chmod_bpf or similar to find devices
2021-06-17 21:07:22 -04:00
Paul Hollinsky
37d06807e4
POSIX: PCAP: Update inferface name to match Windows implementation
2021-06-15 19:09:13 -04:00
Paul Hollinsky
b13a33f0be
Windows: PCAP: Less verbose name for the interface
...
Fixing some tabs/spaces formatting here as well
2021-06-15 19:09:05 -04:00
Paul Hollinsky
3cff831c6b
Examples: C++: Correct compilation in a C++20 project
...
Otherwise nonstd::optional doesn't match std::optional
2021-06-14 14:42:37 -04:00
Paul Hollinsky
a8562aca60
API: Legacy: Make icsneoFindDevices edge cases match icsneo40
2021-06-14 14:41:54 -04:00
Paul Hollinsky
e5bf87ba7d
Merge branch 'master' into v0.3.0-dev
2021-06-11 18:54:36 -04:00
Paul Hollinsky
da4ab6ef62
API: Legacy: Fix MSVC build issues
2021-06-11 18:44:33 -04:00
Paul Hollinsky
a9840028ff
Windows: DynamicLib: DLLExport before _stdcall for Legacy
2021-06-11 18:43:33 -04:00
Paul Hollinsky
4b7cb28bdf
API: Legacy: Disable octal mappings for non-stubbed functions
2021-06-11 18:42:33 -04:00
Paul Hollinsky
c888aad5ae
VersionPacket: Use C++11 function signature
2021-06-11 18:40:50 -04:00
Paul Hollinsky
8c9d3a5e6a
Merge branch 'master' into v0.3.0-dev
2021-06-11 15:40:42 -04:00
Paul Hollinsky
4588cb55fa
POSIX: DynamicLib: Force visibility of exports in case of -fvisibility=hidden
2021-06-11 15:20:41 -04:00
Paul Hollinsky
9b2eae4a6c
API: Legacy: Fix icsneoFindDevices
2021-06-11 15:19:40 -04:00
Paul Hollinsky
45c879c2b6
API: Legacy: Update def file with the correct ordinals
2021-06-11 13:52:09 -04:00
Paul Hollinsky
a43c0117d6
API: C: Check nullptr in icsneo_serialStringToNum
...
Otherwise it will implicitly call the std::string constructor
and that constructor does not check nullptr.
2021-06-11 13:06:47 -04:00
Paul Hollinsky
f3e456e7ea
API: Legacy: Fix build issues caused by the merge
2021-06-11 13:05:39 -04:00
Paul Hollinsky
843fa92564
API: Legacy: Add standard DLLExport to LegacyDLLExport
2021-06-11 12:39:20 -04:00
Paul Hollinsky
34f7bfabd2
API: Legacy: Remove unused variable
2021-06-11 12:36:37 -04:00
Paul Hollinsky
4095f23ded
Settings: Make getBaudrateFor work for SWCAN and LSFTCAN
2021-06-10 15:18:31 -04:00
Paul Hollinsky
1b7db51a45
Windows: PCAP: Fix Npcap loading for _UNICODE
2021-06-10 15:18:23 -04:00
Paul Hollinsky
165eb0f8a2
Windows: Correct dynamic load helper when _UNICODE is defined
2021-06-10 15:18:13 -04:00
Paul Hollinsky
ed94012046
Examples: Interactive C: Fix initializers
2021-06-10 15:18:05 -04:00
Paul Hollinsky
7b7320bc27
Support the RAD-Epsilon
2021-06-10 15:17:57 -04:00