After thinking about it all day, I ended up just brute forcing it with AHK and mouse move/mouse click operations. (Fanatec App can't be navigated with keyboard commands... wtf)
I did some process monitoring and saw that the Fanatec App is sending TCP commands to the wheel base. I tried for a minute to capture these to package and resend on demand, but I couldn't get it to work. So I moved onto RPA.
If anyone is interested, this is what I came up with:
Open App, Nav to base config, adjust rotation and FFB, Nav to Pedals, adjust 'combined pedals" option. It uses screen color detection to detect what state things are currently in.
CoordMode, Mouse, Screen
if WinExist("ahk_exe Fanatec.exe")
{
WinActivate
WinMaximize
}
else
{
Run, "C:\Program Files\Fanatec\FanatecUI\UI\Fanatec.exe"
WinWait, ahk_exe Fanatec.exe
WinActivate, ahk_exe Fanatec.exe
WinMaximize, ahk_exe Fanatec.exe
}
Sleep, 6500
WinWaitActive, ahk_exe Fanatec.exe
; -------------------------
; Select Wheel Base Section
; -------------------------
MouseMove, 194, 169
sleep, 100
click
; Set Tuning Mode to Advanced
; ---------------------------
MouseMove, 490, 222
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
targetX := 490
targetY := 222
offColor2 := 0x0D0D0D
onColor2 := 0xFFFF00
PixelGetColor, color, targetX, targetY, RGB
if (color = offColor2)
{
MouseMove, targetX, targetY, 0
Click
}
else
{
}
Sleep, 3500
; Select Profile 1
; ----------------
MouseMove, 702, 222
sleep, 100
click
MouseMove, 696, 328
sleep, 100
click
; Adjust Sensitivity (Wheel Travel)
; ---------------------------------
CoordMode, Mouse, Screen
; Start position
startX := 1051
startY := 354
; End position
endX := 420
endY := 354
; Move to start position
MouseMove, %startX%, %startY%, 0
; Click & hold at start position
MouseClick, left, %startX%, %startY%, 1, 0, D
Sleep, 200
; Drag to end position smoothly
MouseMove, %endX%, %endY%, 10
Sleep, 100
; Release click at end position
MouseClick, left, %endX%, %endY%, 1, 0, U
; Adjust FFB Power
; ----------------
CoordMode, Mouse, Screen
; Start position
startX := 741
startY := 459
; End position
endX := 1146
endY := 459
; Move to start position
MouseMove, %startX%, %startY%, 0
; Click & hold at start position
MouseClick, left, %startX%, %startY%, 1, 0, D
Sleep, 200
; Drag to end position smoothly
MouseMove, %endX%, %endY%, 10
Sleep, 100
; Release click at end position
MouseClick, left, %endX%, %endY%, 1, 0, U
; ---------------------
; Select Pedals Section
; ---------------------
MouseMove, 194, 572
sleep, 100
click
; Toggle Combined Pedals Option
; -----------------------------
MouseMove, 1612, 292
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
targetX := 1612
targetY := 292
offColor := 0x1D1D1D
onColor := 0xF4F84A
PixelGetColor, color, targetX, targetY, RGB
if (color = offColor)
{
MouseMove, targetX, targetY, 0
Click
}
else
{
}
WinClose, ahk_exe Fanatec.exe