реклама на сайте
подробности

 
 
> не опознает hid уст-во
whale_nik
сообщение Nov 19 2011, 19:46
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 364
Регистрация: 25-09-08
Пользователь №: 40 483



Сделал преобразователь для джойстика от playstation в usb по схеме из радио 2007 №1
на старых компах отлично определяется как hid и работает а н новой относительно плате для которой он и нужен винда не могет его определить пишет "не опознано",
в чем проблемма ?
- пробовал запускать hid input service (хотя не других и без этой службы работало)
- копался в настройках биоса на предмет usb
- пытался чего там в реестре менять

пока резалта нет crying.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Spider
сообщение Nov 20 2011, 14:36
Сообщение #2


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



я писал джойстик на гцц. Как я это делал есть на радиокоте
Go to the top of the page
 
+Quote Post
whale_nik
сообщение Nov 20 2011, 15:42
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 364
Регистрация: 25-09-08
Пользователь №: 40 483



мне бы че нить по проще, невозможно все изучить.
Вот есть такой код, джойстик определяет, кол-во кнопок итд но
почему то все время (если не трогать конпки/рычаги) шлет сообщение UpdCoord и координаты не меняются при движении рычагами.
Хотя в свойствах в панели управления винды все отлично меняется, те данные джойстик присылает верные.
CODE

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <ImgList.hpp>
#include <Buttons.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:
TMemo *Memo1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall UpdButton(TMessage &msg);
void __fastcall UpdCoord(TMessage &msg);
private:
int jnum;
JOYCAPS JoyCaps;
bool connect;


public:
__fastcall TForm1(TComponent* Owner);

BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(MM_JOY1BUTTONDOWN,TMessage,UpdButton)
MESSAGE_HANDLER(MM_JOY1BUTTONUP,TMessage,UpdButton)
MESSAGE_HANDLER(MM_JOY1MOVE,TMessage,UpdCoord)
MESSAGE_HANDLER(MM_JOY2BUTTONDOWN,TMessage,UpdButton)
MESSAGE_HANDLER(MM_JOY2BUTTONUP,TMessage,UpdButton)
MESSAGE_HANDLER(MM_JOY2MOVE,TMessage,UpdCoord)
END_MESSAGE_MAP(TForm)
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

//================================================================================
====

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <mmsystem.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{

MMRESULT jr;
JOYINFOEX JoyInfo;
int joycount=joyGetNumDevs();
if (joycount==0) Memo1->Lines->Add("Драйверы джойстика не установлены");
else
{
connect=false;
jr=joyGetPosEx(JOYSTICKID1,&JoyInfo);
if (jr ==JOYERR_NOERROR)
{
connect=true;
jnum= JOYSTICKID1;
}
else if (jr == MMSYSERR_INVALPARAM)
ShowMessage("Ошибка определения наличия джойстика");
else if((jr=joyGetPosEx(JOYSTICKID2,&JoyInfo)) == JOYERR_NOERROR)
{
connect = true;
jnum= JOYSTICKID2;
}
}
joyGetDevCaps(jnum,&JoyCaps, sizeof(JOYCAPS));
if (connect) Memo1->Lines->Add("Джойстик подключен") ;
else Memo1->Lines->Add("Джойстик не подключен");

Memo1->Lines->Add("Номер устройства - "+ IntToStr(jnum));
Memo1->Lines->Add("Наименование - " + AnsiString(JoyCaps.szPname));
Memo1->Lines->Add("Число кнопок - " + IntToStr(JoyCaps.wNumButtons));


if (connect)
jr=joySetCapture(Handle,jnum,500,FALSE);



}

//---------------------------------------------------------------------------

void __fastcall TForm1::UpdButton(TMessage &msg)
{

Memo1->Lines->Add("КНОПКА");

}
//---------------------------------------------------------------------------

void __fastcall TForm1::UpdCoord(TMessage &msg)
{

int x = msg.LParamLo;


Memo1->Lines->Add("x= "+IntToStr(x));

}
//---------------------------------------------------------------------------


Сообщение отредактировал IgorKossak - Nov 20 2011, 19:34
Причина редактирования: [codebox]
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016