Ошибка создания службы xinputgamepad при использовании контроллера XBOX для подключения Lego NXT к MRDS

#input #xbox #lego #mindstorms #robotics-studio

#ввод #Xbox #lego-мозговые штурмы #robotics-studio

Вопрос:

Я пытаюсь реализовать простой пример робототехники, подключающий мой Lego NXT к MRDS с помощью контроллера xbox (Microsoft Robotics Studio и Lego Mindstorms NXT)

Все компилируется нормально, но когда я захожу, чтобы запустить службу, я получаю следующую ошибку:

 *** Error creating service. Service type:http://schemas.microsoft.com/robotics/2006/09/xinputgamepad.user.html
 

Это результат сборки:

 Not processing file:c:usersmatthewmicrosoft robotics dev studio 4    betabinxinputgamepad.y2006.m09.dll
*   Contract directory cache refresh complete [10/25/2011 21:22:18][]
*** Could not load implementation assembly for: http://schemas.microsoft.com/robotics/2006/09/xinputgamepad.user.html [10/25/2011 21:22:18][]
*** Exception during service type creation: System.IO.FileNotFoundException: Could not load implementation assembly for: http://schemas.microsoft.com/robotics/2006/09/xinputgamepad.user.html
at Microsoft.Dss.Services.Constructor.ConstructService.Process() [10/25/2011 21:22:18][]
*** "TaskExecutionWorker:HandleException": Exception:System.IO.FileNotFoundException: Could not load implementation assembly for:      http://schemas.microsoft.com/robotics/2006/09/xinputgamepad.user.html
   at Microsoft.Dss.Services.Constructor.ConstructService.Process()
   at Microsoft.Dss.Services.Constructor.InternalConstructor.CreateNewServiceHandler(ConstructService Create)
at Microsoft.Ccr.Core.Task`1.Execute()
at Microsoft.Ccr.Core.TaskExecutionWorker.ExecuteTaskHelper(ITask currentTask)
at Microsoft.Ccr.Core.TaskExecutionWorker.ExecuteTask(ITaskamp; currentTask, DispatcherQueue p, Boolean bypassExecute)
at Microsoft.Ccr.Core.TaskExecutionWorker.ExecutionLoop()
*** Error creating service. Service type:http://schemas.microsoft.com/robotics/2006/09/xinputgamepad.user.html [10/25/2011 21:22:18][http://buzzman-pc.mex.com.au:40000/constructor]
 

Я запускаю Mircosoft Robotics Studio Beta 4, и я знаю, что образец был собран еще в 2007 году, так что там может быть путаница. Это мой партнерский кодекс:

 [Partner("drive", Contract=drive.Contract.Identifier, CreationPolicy=PartnerCreationPolicy.UseExisting)]
    private drive.DriveOperations _drivePort = new drive.DriveOperations();
    [Partner("XInputGamepad", Contract = gamepad.Contract.Identifier, CreationPolicy = PartnerCreationPolicy.CreateAlways)]
    private gamepad.XInputGamepadOperations _gamepadPort = new gamepad.XInputGamepadOperations();
 

Я вижу, что проблема, похоже, в том, что он ищет xinputgamepad.user , но ссылка в MRDS 4 — user.xinputgamepad.

Есть какие-нибудь идеи?

Ответ №1:

Я подозреваю, что у вас не установлена правильная версия XNA, учитывая 2006 год в контракте XInput.

В последнем выпуске Robotics Studio должен быть очень похожий код. Посмотрите здесь: http://msdn.microsoft.com/en-us/robotics/aa731520