小屋好读版
https://home.gamer.com.tw/creationDetail.php?sn=3926974
嗨各位好,我是怪人
个人有一台罗技G27,但是在PS3挂点之后,已经两年还是三年没上电过了
而在之前的文章Switch硬件外挂完成一文中,
https://www.ptt.cc/bbs/NSwitch/M.1516637548.A.A0C.html
我有详细的写模拟摇杆的过程
不过那边主要控制主要是在微处理器端(STM32F429)
所以这次要将控制交给电脑端
这边我先放上成品
https://www.youtube.com/watch?v=vSb4KIuLlec
↑懒得拍更新了,CODE有优化很多
简单的流程是
C# (罗技SDK)→USB TO UART→STM32F429→USB HID→Switch
个人C#那边可能会有些错误,因为从零开始接触C#才一个礼拜= = 请多包涵
我们一开始要下载罗技的方向盘SDK,以及安装Logitech 游戏软件
https://www.logitechg.com/zh-tw/developers
http://support.logitech.com/zh_tw/product/g27-racing-wheel/downloads#
https://i.imgur.com/HIsnH3z.png
这边简单的就是把里面的LogitechGSDK.cs放入我们的专案
之后把SDK的
LogitechSteeringWheelEnginesWrapper.dll
放入我们的输出exe路径上
详细的涵式可以参考这里
罗技游戏方向盘软件开发工具包
首先用这个函式初始化
LogitechGSDK.LogiSteeringInitialize(true);
之后调用函式搜寻设备
while ((!LogitechGSDK.LogiIsModelConnected(device_index, 0)) && (device_index
<= 100))
其中0的地方是设备代号,因为我的设备是G27,这里为零
这样我们就知道device_index是哪一个了
而DIJOYSTATE2ENGINES 结构内,就是我们要的方向盘数值了
https://i.imgur.com/wTtK8jc.png
这边我简单的说明一下
图中的0.1.2.3.4是rgbButtons[128]的阵列位置,如果按下,阵列值为128
方向盘为1X,范围是-32768~32768
油门是 1Y,范围是-32768~32768
离合器是rglSlider[1] ,范围是-32768~32768
d-pad为 rgdwPOV[0] ,数值很奇怪,我也不知道为啥
上下左右分别为0,18000,27000,9000