Paul Hollinsky
d45d708446
FirmIO: Stable communication
2022-03-27 23:57:44 -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
008a1620c8
Repo: Normalize source files to LF
2022-03-27 14:40:32 -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
0ff12300f3
RAD-Gigalog: Rename to RAD-Mars
2022-03-11 10:53:05 -05:00
Paul Hollinsky
f4e16025c1
Disk: ExtendedExtractor: Implement retries
2022-03-10 18:04:12 -05:00
Paul Hollinsky
fef6f363f1
ThirdParty: FatFs: Use standard C++ for MSVC 2017+
...
This prevents unicode issues with TCHAR, because we
don't want to import windows.h.
2022-03-07 12:49:03 -05:00
Paul Hollinsky
f367fcecca
Disk: NeoMemory: Implement writing
2022-03-03 20:34:46 -05: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
adad9b3761
Disk: ExtendedExtractor: Better header parsing
2022-03-03 20:34:46 -05:00
Paul Hollinsky
0a15adbe91
Disk: Allow mismatched access for Read and Write drivers
...
This will cause the driver to fall back to the least common
denominator.
2022-03-03 20:29:13 -05:00
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