We use your USB-to-Can V2 adapters and other IXXAT CAN solutions in our products which comprises various custom electronics boards that all communicate on bus and interface with custom software we write using your SDK for .NET. We have an application that is currently .NET Framework 4.8 that was written many years ago and is battle tested. It transfers a hex file over CAN to custom boards that have a bootloader that takes in the file and upgrades the firmware. The software is all done in-house and is used to interface with our hardware. We use the software internally and also supply production versions to our customers.
The issue is at some point earlier this year (2021) the software has had an unexplained slowdown in writing files to the target devices but only on Windows 10. I will outline some of my testing:
.NET Framework 4.8 x86 VB Windows Forms App. Simple one page.
<package id="Ixxat.Vci4.StrongName" version="4.0.436" targetFramework="net48" />
Windows 10 Pro 1.0.19073
- Average time to send the file 5min 20sec
- Average time to send can packets per row 4.2sec
Windows 7 Pro 6.1.7601 SP1
- Average time to send the file 60sec
- Average time to send can packets per row 0.6sec
Test File 403kB
USB-TO-CAN USED : HW447227, HW495229, HW37992
VCI 4 versions tested: 4.0.939.0 and 4.0.793.0
Variants .NET app | w10(793) w10(939) w7(793) w7(939)
1.1.1 x86 ---------> SLOW ---- SLOW ---- FAST ---- FAST
1.2.5 x86 ---------> SLOW ---- SLOW ---- FAST ---- FAST
1.2.7 x86 ---------> SLOW ---- SLOW ---- FAST ---- FAST
We happened to have the older driver installer 4.0.793.0 around since we bundle it with some of our installers. I tried other variations of Debug and Release and x64(not working since somewhere it is defaulting to the 32bit dll of vcinet).
- Windows 10 Update has changed something wrt the how the driver interact with the system.
- Windows 10 Update USB speed ?? I tested some but not likely
- Windows 10 .NET CLR change
- Update Changes how Win 10 interacts with 32bit code/drivers
I am getting the end of what I can test include many not shown. Internally we are doing some limiting because of firmware/hardware limitations but the change in speed happened without any software releases. The program has bee consistent on speed since it was developed. I know there have been many under-the-hood updates to windows 10 in preparation of Windows 11 and .NET 6 releasing but its just a guess. Also having access to older driver versions to test would be helpful.
I would like some advice on attempting to build for x64 or AnyCPU. It builds and runs but I get an exception when connecting as it is using the 32bit dll. This software was grandfathered to me and we have other apps that do use the 64bit version so this must be an implementation or build configuration problem or I need to upgrade to .NET core. I am looking at the documentation but any quick advice would be appreciated.
Side issue: On testing 4.0.939.0 versus 4.0.793.0 on windows7SP1 the windows detection of the USB devices became very unstable with the newer version. I was able to get it to work sometimes but once a device failed for a given USB port it would no longer detect the device at all. I seems windows update was thinking it was something else and trying to install a driver from the internet. Once I changed back it detected the device correctly with windows updating.
Last questions. Is there a newer version of the SDK available or about to be or Nuget packages I may try? I would assume there is a Windows 11 rc a some point?