Unverified Commit 7b6b78a3 authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #7617 from DonLakeFlyer/WindowsDriverInstall

New versioned windows drivers install, update drivers
parents e2889674 7bc39e2f
......@@ -9,6 +9,7 @@ Note: This file only contains high level features or important fixes.
* Major rewrite and bug fix pass through Structure Scan. Previous version had such bad problems that it can no longer be supported. Plans with Structure Scan will need to be recreated. New QGC will not load old Structure Scan plans.
### 3.5.4 - Not yet released
* Update windows drivers
* Add support for FMUK66 flashing/connection
* Guard against null geometry coming from gstreamer which can cause crashes
* Add .apj file selection support to custom firmware flash
......
......@@ -73,7 +73,11 @@ Section
doinstall:
SetOutPath $INSTDIR
File /r /x ${EXENAME}.pdb /x ${EXENAME}.lib /x ${EXENAME}.exp ${DESTDIR}\*.*
File deploy\px4driver.msi
; Driver location is http://firmware.ardupilot.org/Tools/MissionPlanner/driver.msi
; Whenever this driver is updated in the repo QGCCURRENTDRIVERVERSION must be bumped by 1
File deploy\driver.msi
WriteUninstaller $INSTDIR\${EXENAME}-Uninstall.exe
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$\"$INSTDIR\${EXENAME}-Uninstall.exe$\""
......@@ -82,20 +86,39 @@ doinstall:
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\${EXENAME}.exe" "DumpType" 1
WriteRegExpandStr HKLM "SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\${EXENAME}.exe" "DumpFolder" "%LOCALAPPDATA%\QGCCrashDumps"
; Only attempt to install the PX4 driver if the version isn't present
!define DRIVERKEY "SOFTWARE\MichaelOborne\driver"
; QGC stores its own driver version key to prevent installation if already up to date
; This prevents running the driver install a second time which will start up in repair mode which is confusing
!define QGCDRIVERVERSIONKEY "SOFTWARE\QGroundControlUAVDrivers"
!define QGCCURRENTDRIVERVERSION 1
; If the drivers are already installed the key "HKCU/SOFTWARE\MichaelOborne\driver\installed" will be present and set to 1
SetRegView 64
!define DRIVERKEY "SOFTWARE\MichaelOborne\driver"
ReadRegDWORD $0 HKCU "${DRIVERKEY}" "installed"
IntCmp $0 1 found_provider notfound notfound
found_provider:
DetailPrint "USB Drivers already installed"
goto done
notfound:
DetailPrint "USB Driver not found... installing"
ExecWait '"msiexec" /i "px4driver.msi"'
IntCmp $0 1 driversInstalled driversNotInstalled driversNotInstalled
driversInstalled:
DetailPrint "UAV Drivers already installed. Checking version..."
; Check if the installed drivers are out of date.
; Latest version is tagged as 1. Missing key also indicates out of date driver install.
ReadRegDWORD $0 HKCU "${QGCDRIVERVERSIONKEY}" "version"
IntCmp $0 ${QGCCURRENTDRIVERVERSION} done driversOutOfDate done
driversOutOfDate:
DetailPrint "UAV Drivers out of date."
goto installDrivers
driversNotInstalled:
DetailPrint "UAV Drivers not installed."
; Delete abandoned possibly out of date version key
DeleteRegKey HKCU "SOFTWARE\QGroundControlUAVDrivers"
installDrivers:
DetailPrint "Installing UAV Drivers..."
ExecWait '"msiexec" /i "driver.msi"'
; Set current driver version value
WriteRegDWORD HKCU "${QGCDRIVERVERSIONKEY}" "version" 1
goto done
done:
......@@ -115,6 +138,7 @@ Section "Uninstall"
${Endif}
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\${EXENAME}.exe"
; NOTE: We specifically do not delete the driver version key since we need it to persist around uninstalls
SectionEnd
Section "create Start Menu Shortcuts"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment