Jump to content
The simFlight Network Forums

HAT switch assignment


Recommended Posts

Hi,

I made my own joystick with hat switch (USB HID device). The HAT switch has a 360 positions. I'm trying to assign this HAT switch for heading angle (0 to 359 degrees) in FS9 by add this line on fs9.cfg

POV_MOVE_EVENT_00=HEADING_BUG_SET

But it didn't work, the heading always reset to 360 when I turn the HAT switch. Is it possible to assign the absolute value from the joystick to FS?

Could anyone tell me how to do this?

thanks.

Link to comment
Share on other sites

I'm trying to assign this HAT switch for heading angle (0 to 359 degrees) in FS9 by add this line on fs9.cfg

POV_MOVE_EVENT_00=HEADING_BUG_SET

But it didn't work, the heading always reset to 360 when I turn the HAT switch. Is it possible to assign the absolute value from the joystick to FS?

I've really no idea how FS POV assignments work at all. Sorry.

Does FSUIPC logging show what's happening at all?

For a normal Hat there's usually an "off" event which usually does something like restore the forward view. Could your device be sending something like that -- a -1 or 0 when you release it? If so, that could certainly do what you observe. Does it actually change the heading before you release it and it goes to 360?

Oh, one other thing. I think there can be two different hat resolutions, one which goes 0 to 360 and another which uses units which go to to 36000 (i.e. in 1/100ths). I'm writing from memory here so it may not be quite like that, but I do recall something like that. Possibly, if your device is configured (in the HID driver?) to give the wrong one the values would be out of range in any case?

Regards,

Pete

Link to comment
Share on other sites

Hi Pete,

Thank you for your reply,

For your question, my device didn't send any value when I released it. It always send the current position that stored in my hardware internal memory.

As you said, the HID report might give some value that out of range. So I tried to change the range from 0 to 35999, it didn't work. I also tried the value from 0 to 65536 (as suggested in Pelle's FS-Interrogate) and again didn't work.

I was sure that the HAT switch work as a common game controller since it showed the correct position when I looked in the Windows' Game Controller property. I think what happen is FS didn't get the RAW value from my joystick, it might translate the absolute value into something else. Is it possible that FS doesn't support the RAW value from POV? (it support only RAW value from Axis controls)

I've read your helpful document on FS controller and you suggested that POV can be used to set HEADING_BUG_SET by setting Axis 6. Have you tried that on any joystick before?

Thank you again,

Ake.

Link to comment
Share on other sites

I think what happen is FS didn't get the RAW value from my joystick, it might translate the absolute value into something else. Is it possible that FS doesn't support the RAW value from POV? (it support only RAW value from Axis controls)

I thought it was the reverse. It most certainly doesn't use RAW values for axes. But for POVs it must do, surely. I'm sorry, but I really don't understand what is going on.

I've read your helpful document on FS controller and you suggested that POV can be used to set HEADING_BUG_SET by setting Axis 6. Have you tried that on any joystick before?

Not since FS98/2000 days when I used EPIC. That's where that text comes from. Sorry. I think in those days there was no "POV_MOVE_EVENT" entry. But also, in those days, FS was using the standard joystick API in windows, and values went through more or less unmolested. Since they changed to DirectInput in FS2002 I'm afraid I lost interest somewhat and I don't really know what happens -- except that DirectInput seems to mess with values.

I still use the original Joy API in FSUIPC, and have the facility to read axes in RAW form in the Axes assignments section. But currently there's no POV support there. I suppose that is something I could add -- reading RAW POV values like an axis. It is possible, but not just at present as it isn't a trivial job (lots of table changes to accommodate another axis type after XYZRUV), and I don't have the time to spare at present. If you still haven't solved it by November, say, get back to me and I'll see what I can do.

For now I'm afraid it's a case of continued experimentation and debugging to find out what is going on. Sorry.

Regards

Pete

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.