Почему моя консольная программа может подключить колесо g29, но не может прочитать данные колеса? - PullRequest
2 голосов
/ 26 марта 2019

Я строю симулятор вождения в VS2017, используя G29.Официальная демоверсия может работать правильно.Но мой код может только заставить LogiSteeringInitializeWithWindow () и LogiUpdate () возвращать «ИСТИНА».LogiGetState () и LogiGetStateENGINES () не могут вернуть никаких данных.

Я прочитал код SteeringWheelSDKDemo, но ничего не нашел.Гугл настолько плох для колеса g29.

#include <iostream>
#include <stdio.h>
#include "map"
#include "string"
#pragma comment(lib, "LogitechSteeringWheelLib.lib")
#include "LogitechSteeringWheelLib.h"


int main()
{
    DIJOYSTATE2 *controller_state = NULL;
    DIJOYSTATE2ENGINES  *last_state = NULL;
    std::map<std::string, int> current_state_map;
    int controller_idx = 0;
    HWND h_wnd = FindWindow(_T("ConsoleWindowClass"), NULL);
    while (!LogiSteeringInitializeWithWindow(true, h_wnd)) {
        printf("try again.\n");
    }
    while (true) {
        if (!LogiUpdate()) {
            continue;
        }

        while (LogiIsConnected(controller_idx)) {
            std::cout << LOGI_MAX_CONTROLLERS << std::endl;
            wchar_t deviceName[128];
            LogiGetFriendlyProductName(controller_idx, deviceName, 128);
            std::cout << deviceName << std::endl;
            std::cout << "wheel " << LogiIsDeviceConnected(controller_idx, LOGI_DEVICE_TYPE_WHEEL) << std::endl;
            std::cout << "Joystick " << LogiIsDeviceConnected(controller_idx, LOGI_DEVICE_TYPE_JOYSTICK) << std::endl;

            controller_state = LogiGetState(controller_idx);
            last_state = LogiGetStateENGINES(controller_idx);
            std::cout << "-------------" << std::endl;
            std::cout << controller_state->lX << std::endl;
            std::cout << controller_state->lY << std::endl;
            std::cout << controller_state->lRz << std::endl;
            std::cout << "-------------" << std::endl;
            std::cout << last_state->lX << std::endl;
            std::cout << last_state->lY << std::endl;
            std::cout << last_state->lRz << std::endl;
            std::cout << "-------------" << std::endl;
            system("cls");

        }
        std::cout << "unconnected\n";
    }

}

Я ожидаю, что будут данные колеса, но это 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...