小屋好讀版
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