Tom_G_2010 Posted October 7, 2011 Report Posted October 7, 2011 Pete, (pardon typos I'm replying from my phone) What I know of lua I'm learning from reading your documentation and threads in the forum. This is my first venture using it though. I fear I'm trying your patients and wearing out my welcome. For that I apologize!!! I have taken the documentation with me for my road trip and will be reading over it again this weekend so I am better equipped when I get back home and can continue work on this. I am self taught on a handful of programming and scripting languges so this shouldn't be the difficult exercise I've managed to make it. Hopefully my study time this weekend and continued efforts come Tuesday will fill in the obvious gaps in my knowledge. Many thanks! Tom G.
Pete Dowson Posted October 8, 2011 Report Posted October 8, 2011 What I know of lua I'm learning from reading your documentation and threads in the forum. This is my first venture using it though. I fear I'm trying your patients and wearing out my welcome. For that I apologize!!! Not a problem, though i'm still a little mystified. The lua script you are using was designed for someone who tested it for me (i don't have the means to test it properly here). It isn't an example I support or provide anywhere, so I assume you got it from that original thread? If so, were there instructions there on how to use it? When you started this thread you appeared to know what you were doing, which is why I was getting more and more mystified as things changed inexplicably. I have taken the documentation with me for my road trip and will be reading over it again this weekend so I am better equipped when I get back home and can continue work on this. I am self taught on a handful of programming and scripting languges so this shouldn't be the difficult exercise I've managed to make it. Hopefully my study time this weekend and continued efforts come Tuesday will fill in the obvious gaps in my knowledge. If you use the script exactly as I supplied to the original tester, and you have the fully tested and working version, then really there is no more programming needed. It should work, though you may need to adjust timings and, of course, the device details and button numbers used. The main thing you seem to be getting wrong is starting it. As I said ipcReady.lua is the name of the script which is always started by FSUIPC when FS is ready. Really all you need to read is the introductory document. The library document is for reference when actually programming, and only gives the ADDITIONS to Lua provided in FSUIPC (and mostly in WideClient too). The language and main bulk of lua is described and defined in books you can purchase, or view less comfortably on-line at the Lua website. Regards Pete
AK Mongo Posted October 8, 2011 Author Report Posted October 8, 2011 Not a problem, though i'm still a little mystified. The lua script you are using was designed for someone who tested it for me (i don't have the means to test it properly here). It isn't an example I support or provide anywhere, so I assume you got it from that original thread? If so, were there instructions there on how to use it? When you started this thread you appeared to know what you were doing, which is why I was getting more and more mystified as things changed inexplicably. If you use the script exactly as I supplied to the original tester, and you have the fully tested and working version, then really there is no more programming needed. It should work, though you may need to adjust timings and, of course, the device details and button numbers used. Regards Pete Pete, I am the original tester. I did not get a chance to test your 2nd version of the script due to some life changes, so cannot confirm whether it actually works with the hardware the way you intended. I neglected to follow up and tell you that and am sorry. I hope that omitted information is not causing communication problems between you and Tom_G. Reid
Pete Dowson Posted October 8, 2011 Report Posted October 8, 2011 I am the original tester. I did not get a chance to test your 2nd version of the script due to some life changes, so cannot confirm whether it actually works with the hardware the way you intended. I neglected to follow up and tell you that and am sorry. I hope that omitted information is not causing communication problems between you and Tom_G. Not really, but it thickens the plot somewhat! We'll see what we can do when Tom_G has more time. Now I know the score it should be clearer. Thanks for commenting. Regards Pete
Tom_G_2010 Posted October 11, 2011 Report Posted October 11, 2011 Pete, Sorry, I didn't realize there was confusion on who started the thread vs. when I joined in. That behind us though, I have, as promised, re-read all the documentation, and started from scratch on this with a bodnar board that only has the single encoder installed and tested, the lua script has been re-entered and verified line by line based on the posted update in this thread. I did add the logging lines to it that you asked for as well. I don't want to chance leaving out an details so I am posting all three logs in this post, the IPCReady.lua script, and the buttons portion of the FSUIPC Config. I ran FSX launched the HidDemo (via Joy 2 btn 2). I then rotated the encoder (joy 3 btn's 31 and 30) 2 clicks ccw and 2 clicks cw and captured the result in the logs below. In FSX I can observe the heading bug responding to the ccw clicks but not the cw clicks. This is as it was before I inadvertently introduced the other problems. If I understand what the logs are telling me the script is seeing the inputs from the encoder in both directions but not acting on the cw inputs. Before going further I wanted to post this much and get your feedback. I'm trying to figure out the next best point in the code to pull some log entries from to see where it's not working. Here's what the HidDemo log shows: ********* LUA: "HidDemo" Log [from FSUIPC version 4.734] ********* 41980 System time = 11/10/2011 08:08:47, Simulator time = 08:08:15 (12:08Z) 41980 LUA: beginning "C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\Modules\HidDemo.lua" 42121 LUA: Device has 1 x Hat axis, Max= 7 42230 LUA: Hat = 15 0 0 0 47877 LUA: Buttons= 40000000 0 0 0 0 0 0 0 47986 LUA: Buttons= 0 0 0 0 0 0 0 0 49624 LUA: Buttons= 40000000 0 0 0 0 0 0 0 49687 LUA: Buttons= 0 0 0 0 0 0 0 0 51543 LUA: Buttons= 80000000 0 0 0 0 0 0 0 51574 LUA: Buttons= 0 0 0 0 0 0 0 0 52744 LUA: Buttons= 80000000 0 0 0 0 0 0 0 52853 LUA: Buttons= 0 0 0 0 0 0 0 0 57409 LUA: ended "C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\Modules\HidDemo.lua" 57409 System time = 11/10/2011 08:09:03, Simulator time = 08:08:30 (12:08Z) ********* LUA execution terminated: Log Closed ********* Here's what the lua log shows: ********* LUA: "ipcReady" Log [from FSUIPC version 4.734] ********* 36863 System time = 11/10/2011 08:08:42, Simulator time = 08:08:10 (12:08Z) 36863 LUA: beginning "C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\Modules\ipcReady.lua" 47846 LUA: Datalength=6 Buttons=1073741824 PrevButtons=0 47877 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 47908 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 47939 LUA: Datalength=6 Buttons=0 PrevButtons=1073741824 49546 LUA: Datalength=6 Buttons=1073741824 PrevButtons=0 49577 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 49624 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 49655 LUA: Datalength=6 Buttons=0 PrevButtons=1073741824 51481 LUA: Datalength=6 Buttons=2147483648 PrevButtons=0 51512 LUA: Datalength=6 Buttons=2147483648 PrevButtons=2147483648 51543 LUA: Datalength=6 Buttons=0 PrevButtons=2147483648 52682 LUA: Datalength=6 Buttons=2147483648 PrevButtons=0 52713 LUA: Datalength=6 Buttons=2147483648 PrevButtons=2147483648 52760 LUA: Datalength=6 Buttons=2147483648 PrevButtons=2147483648 52791 LUA: Datalength=6 Buttons=0 PrevButtons=2147483648 121276 LUA: ended "C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\Modules\ipcReady.lua" 121276 System time = 11/10/2011 08:10:07, Simulator time = 08:09:28 (12:09Z) ********* LUA execution terminated: Log Closed ********* Here's what the FSUIPC log shows: ********* FSUIPC4, Version 4.734 by Pete Dowson ********* User Name="Tom Gauvin" User Addr="tom@thegauvins.com" FSUIPC4 Key is provided WIDEFS7 not user registered, or expired Running inside FSX on Windows 7 Module base=61000000 Wind smoothing fix is not installed DebugStatus=15 500 System time = 11/10/2011 08:08:06 500 FLT path = "C:\Users\Tom and Judy\Documents\Flight Simulator X Files\" 531 Trying to connect to SimConnect Acc/SP2 Oct07 ... 546 FS path = "C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\" 890 LogOptions=E0000000 0000001D 890 SimConnect_Open succeeded: waiting to check version okay 890 Trying to use SimConnect Acc/SP2 Oct07 4353 Running in "Microsoft Flight Simulator X", Version: 10.0.61637.0 (SimConnect: 10.0.61259.0) 4353 Initialising SimConnect data requests now 4353 FSUIPC Menu entry added 4384 Ready Flags: Ready-To-Fly=N, In Menu=Y, In Dlg=Y 4384 C:\Users\Tom and Judy\Documents\Flight Simulator X Files\KTRG 172.FLT 4384 C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\SimObjects\Airplanes\C172\Cessna172SP.AIR 4509 *** EVENT: Cntrl= 66416 (0x00010370), Param= -1 (0xffffffff) PAN_VIEW 23837 *** EVENT: Cntrl= 66514 (0x000103d2), Param= 0 (0x00000000) ATC_MENU_CLOSE 35849 Ready Flags: Ready-To-Fly=N, In Menu=N, In Dlg=N 35881 Button changed: bRef=0, Joy=1, Btn=6, Pressed 35881 [Buttons] 11=P1,6,C66286,0 35881 FS Control Sent: Ctrl=66286, Param=0 35881 *** EVENT: Cntrl= 66286 (0x000102ee), Param= 0 (0x00000000) TOGGLE_DME 36661 System time = 11/10/2011 08:08:42, Simulator time = 08:08:10 (12:08Z) 36676 Aircraft="Cessna Skyhawk 172SP Paint2" 36863 Starting everything now ... 36895 Ready Flags: Ready-To-Fly=Y, In Menu=N, In Dlg=N 41980 Button changed: bRef=0, Joy=2, Btn=2, Pressed 41980 [Buttons] 27=P2,2,CL2:R,0 42214 WRITElua 3BBE, 2 bytes: 92 08 .. 47877 WRITElua 3340, 4 bytes: 01 00 00 40 ...@ 47877 WRITElua 3340, 1 bytes: 01 . 47877 Button changed: bRef=0, Joy=64, Btn=0, Pressed 47877 [Buttons] 51=P64,0,C65880,0 47877 FS Control Sent: Ctrl=65880, Param=0 47877 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC 47971 WRITElua 3340, 4 bytes: 01 00 00 00 .... 47971 WRITElua 3340, 1 bytes: 01 . 49577 WRITElua 3340, 1 bytes: 00 . 49577 Button changed: bRef=0, Joy=64, Btn=0, Released 49577 [Buttons] 52=U64,0,C65880,0 49577 FS Control Sent: Ctrl=65880, Param=0 49577 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC 49609 WRITElua 3340, 4 bytes: 00 00 00 40 ...@ 49687 WRITElua 3340, 4 bytes: 01 00 00 00 .... 49687 WRITElua 3340, 1 bytes: 01 . 49687 Button changed: bRef=0, Joy=64, Btn=0, Pressed 49687 [Buttons] 51=P64,0,C65880,0 49687 FS Control Sent: Ctrl=65880, Param=0 49687 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC 51543 WRITElua 3340, 4 bytes: 00 00 00 80 .... 51543 Button changed: bRef=0, Joy=64, Btn=0, Released 51543 [Buttons] 52=U64,0,C65880,0 51543 FS Control Sent: Ctrl=65880, Param=0 51543 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC 51574 WRITElua 3340, 4 bytes: 00 00 00 00 .... 52744 WRITElua 3340, 4 bytes: 00 00 00 80 .... 52853 WRITElua 3340, 4 bytes: 00 00 00 00 .... 56956 Button changed: bRef=0, Joy=2, Btn=2, Released 56956 [Buttons] 74=U2,2,CL2:K,0 57409 LUA: "HidDemo.lua": killed 115254 *** EVENT: Cntrl= 65732 (0x000100c4), Param= 0 (0x00000000) EXIT 115285 Ready Flags: Ready-To-Fly=Y, In Menu=Y, In Dlg=Y 115285 Sim stopped: average frame rate for last 79 secs = 29.7 fps 122789 System time = 11/10/2011 08:10:08, Simulator time = 08:09:28 (12:09Z) 122789 *** FSUIPC log file being closed Average frame rate for running time of 79 secs = 29.7 fps Memory managed: 46 Allocs, 46 Freed ********* FSUIPC Log file closed *********** Here's the lua script as presently entered: Vendor = "Leo Bodnar" Product = "BU0836A Interface" Device = 0 -- Multiple devices of the same name need increasing Device numbers. -- Use separate Lua plug-ins for separate cards! -- NOTE: this can handle up to 16 rotaries only, using the first 64 "virtual buttons" -- List the pairs here: Rotaries = {31, 30} -- Example { 31, 30, 25, 22 } would be 31+30 for one, 25+22 for the next, and so on -- Which is clockwise and which counterclockwise doesn't matter -- you'll get -- fast and slow of each in any case dev, rd, wrf, wr, init = com.openhid(Vendor, Product, Device, Report) if dev == 0 then ipc.log("Could not open HID") ipc.exit() end -- Set the boundary time in milliseconds between -- "fast" (shorter) and "slow" (longer) signalling FastTimeLimit = 60 -- Adjust to taste -- Polling time in milliseconds: should be much shorter than -- the boundary time Pollrate = 20 -- same as 50 times per second -- Initialise variables used to keep track of things LastTimes = {} Buttons = 0 PrevButtons = 0 Diff = 0 -- This function will be called by a time event, set at the end of the program before exit. function poll(Time) -- read any data available from the device (only need most recent report) data, n = com.readlast(dev, rd) if n ~= 0 then -- Data was returned, so get the status of all the possible "buttons" we are using -- one value of 32 bits Buttons = com.gethidbuttons(dev, data) -- See if any changes occurred: Diff = logic.Xor(Buttons, PrevButtons) if (Buttons ~= 0) or (PrevButtons ~= 0) then ipc.log("Datalength=" .. n .. " Buttons=" .. Buttons .. " PrevButtons=" .. PrevButtons) end PrevButtons = Buttons if Diff ~= 0 then offset = 0x3340 buttonbit = 1 j = 1 while Rotaries[j] ~= nil do mask = logic.Shl(1, Rotaries[j]-1) if logic.And(Diff,mask) ~= 0 then -- This one changed -- See if changed in less than the "boundary" time thisbutton = buttonbit if (LastTimes[j] ~= nil) and ((Time - LastTimes[j]) < FastTimeLimit) then thisbutton = buttonbit + buttonbit -- Use next higher button for fast end LastTimes[j] = Time -- Toggle a virtual button accordingly ipc.togglebitsUB(offset, thisbutton) end j = j + 1 buttonbit = 4 * buttonbit if logic.And(j,15) == 0 then buttonbit = 1 offset = offset + 4 end end end end end event.timer(Pollrate, "poll") And here's the buttons portion of my FSUIPC Config: JoyNames] AutoAssignLetters=No 2=Saitek Pro Flight TPM System 2.GUID={FD845DF0-45C1-11E0-8001-444553540000} 0=CH FLIGHT SIM YOKE USB 0.GUID={666AE7F0-0E11-11E0-8001-444553540000} 1=Logitech Extreme 3D 1.GUID={138A7360-1BEB-11E0-8001-444553540000} 3=BU0836A Interface 3.GUID={F6F16B00-E561-11E0-8001-444553540000} [Buttons] ButtonRepeat=20,10 1=H0,0,K20,8 3=P1,1,C65580,0 4=U1,1,C65580,0 5=P1,0,C66375,0 6=U1,0,C66375,0 7=P1,34,C65956,0 8=P1,32,C65957,0 9=P1,36,C65958,0 10=H1,38,K81,10 11=P1,6,C66286,0 12=U1,6,C66286,0 17=R0,4,C65662,0 18=R0,5,C65663,0 19=R0,6,C65879,0 20=R0,7,C65880,0 21=P2,0,C66023,0 22=U2,0,C66023,0 23=P2,1,C65930,0 24=H2,3,K66,8 25=U2,3,K68,8 26=U2,1,C66026,0 27=P2,2,CL2:R,0 29=P2,4,C66513,0 30=U2,4,C66514,0 31=P2,5,C66199,0 32=U2,5,C66199,0 33=P2,7,C65908,0 34=U2,7,C65908,0 35=P2,8,C65914,0 36=U2,8,C65914,0 37=P2,6,C65907,0 38=U2,6,C65907,0 41=P1,7,C66477,0 44=P1,5,C66465,0 45=P1,2,C66464,0 46=P1,4,C66463,0 47=P0,1,K113,8 48=U0,1,K32,10 51=P64,0,C65880,0 52=U64,0,C65880,0 53=P64,1,C1024,0 54=U64,1,C1024,0 55=P64,2,C65879,0 56=U64,2,C65879,0 57=P64,3,C1025,0 58=U64,3,C1025,0 74=U2,2,CL2:K,0
Pete Dowson Posted October 11, 2011 Report Posted October 11, 2011 I don't want to chance leaving out an details so I am posting all three logs in this post, the IPCReady.lua script, and the buttons portion of the FSUIPC Config. I ran FSX launched the HidDemo (via Joy 2 btn 2). I then rotated the encoder (joy 3 btn's 31 and 30) 2 clicks ccw and 2 clicks cw and captured the result in the logs below. In FSX I can observe the heading bug responding to the ccw clicks but not the cw clicks. But they were all seen. Let's see: HidDemo log: 47877 LUA: Buttons= 40000000 0 0 0 0 0 0 0 47986 LUA: Buttons= 0 0 0 0 0 0 0 0 49624 LUA: Buttons= 40000000 0 0 0 0 0 0 0 49687 LUA: Buttons= 0 0 0 0 0 0 0 0 51543 LUA: Buttons= 80000000 0 0 0 0 0 0 0 51574 LUA: Buttons= 0 0 0 0 0 0 0 0 52744 LUA: Buttons= 80000000 0 0 0 0 0 0 0 52853 LUA: Buttons= 0 0 0 0 0 0 0 0 Both buttons, twice. lua log: 47846 LUA: Datalength=6 Buttons=1073741824 PrevButtons=0 47877 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 47908 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 47939 LUA: Datalength=6 Buttons=0 PrevButtons=1073741824 49546 LUA: Datalength=6 Buttons=1073741824 PrevButtons=0 49577 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 49624 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 49655 LUA: Datalength=6 Buttons=0 PrevButtons=1073741824 51481 LUA: Datalength=6 Buttons=2147483648 PrevButtons=0 51512 LUA: Datalength=6 Buttons=2147483648 PrevButtons=2147483648 51543 LUA: Datalength=6 Buttons=0 PrevButtons=2147483648 52682 LUA: Datalength=6 Buttons=2147483648 PrevButtons=0 52713 LUA: Datalength=6 Buttons=2147483648 PrevButtons=2147483648 52760 LUA: Datalength=6 Buttons=2147483648 PrevButtons=2147483648 52791 LUA: Datalength=6 Buttons=0 PrevButtons=2147483648 I should have put those numbers out in Hex, not Decimal. nevertheless they are correct, 0x40000000 and 0x80000000 respectively. FSUIPC log: 42214 WRITElua 3BBE, 2 bytes: 92 08 .. 47877 WRITElua 3340, 4 bytes: 01 00 00 40 ...@ 47877 WRITElua 3340, 1 bytes: 01 . 47877 Button changed: bRef=0, Joy=64, Btn=0, Pressed 47877 [Buttons] 51=P64,0,C65880,0 47877 FS Control Sent: Ctrl=65880, Param=0 47877 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC That's one of your rotary turns. I see two virtual buttons, 30 (the '40' value) and 0 (the '01' value) are being set, at slightly different times. What is setting virtual button 30? Nothing in the Lua you've shown me does, but some Lua is doing it! 47971 WRITElua 3340, 4 bytes: 01 00 00 00 .... 47971 WRITElua 3340, 1 bytes: 01 . 49577 WRITElua 3340, 1 bytes: 00 . 49577 Button changed: bRef=0, Joy=64, Btn=0, Released 49577 [Buttons] 52=U64,0,C65880,0 49577 FS Control Sent: Ctrl=65880, Param=0 49577 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC Button 30 is released, then 0. so far so good. This is repeated, but with a subtle difference: 51543 WRITElua 3340, 4 bytes: 00 00 00 80 .... 51543 Button changed: bRef=0, Joy=64, Btn=0, Released 51543 [Buttons] 52=U64,0,C65880,0 51543 FS Control Sent: Ctrl=65880, Param=0 51543 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC 51574 WRITElua 3340, 4 bytes: 00 00 00 00 .... 52744 WRITElua 3340, 4 bytes: 00 00 00 80 .... 52853 WRITElua 3340, 4 bytes: 00 00 00 00 .... The button press of 31 is seen (the '80'), but it is cleared so soon. So, something else -- another Lua program -- is writing to the same virtual button offsets at the same time, but using buttons 30 and 31 instead of your 0 and 1. This is interacting with your Lua inputs and so destroying some of the results. And stopping the rotary one working. i notice this in your FSUIPC button assignments: 74=U2,2,CL2:K,0 This appears to be running a Lua program, number 2 in the list in the INI file (which you omitted). And you are pressing that button and getting that Lua running just before you do the test: 41980 Button changed: bRef=0, Joy=2, Btn=2, Pressed 41980 [buttons] 27=P2,2,CL2:R,0 Why? What is this you are doing? Pete
Tom_G_2010 Posted October 11, 2011 Report Posted October 11, 2011 So, something else -- another Lua program -- is writing to the same virtual button offsets at the same time, but using buttons 30 and 31 instead of your 0 and 1. This is interacting with your Lua inputs and so destroying some of the results. And stopping the rotary one working. I'll go back through everything this evening and make sure there aren't any other lua scripts in modules folder. There should not be anything beyond IPCReady, IPCDebug, and HIDDemo since I've never used lua before, but I'll make sure. i notice this in your FSUIPC button assignments: 74=U2,2,CL2:K,0 This appears to be running a Lua program, number 2 in the list in the INI file (which you omitted). And you are pressing that button and getting that Lua running just before you do the test: 41980 Button changed: bRef=0, Joy=2, Btn=2, Pressed 41980 [buttons] 27=P2,2,CL2:R,0 Why? What is this you are doing? Pete That was how I launched the HidDemo lua script based on one of your earlier posts. Since it seems that has now proven the buttons are sending correctly I'll assume I can stop using it. Tests this morning with or without HidDemo running still had no cw activity so I don't think it was interfering. While re-reading my post from this morning I also just noticed that I had not added one update line to the FSUIPC Config Buttons section that you also earlier suggested, "IgnoreThese=3.30, 3.31". I will add that back in and retest before posting again. One other quick question. Above you commented, "I should have put those numbers out in Hex, not Decimal. nevertheless they are correct, 0x40000000 and 0x80000000 respectively." How hard is it to modify the logging statement to do that? It would seem that would make it easier to follow.
Tom_G_2010 Posted October 11, 2011 Report Posted October 11, 2011 I've removed the button assignment that launched the HIDDemo from the FSUIPC config and added the "IgnoreThese = 3.31, 3.30" back in. I also removed the HIDDemo and IPCDebug scripts from the modules folder. I re-launched FSX and repeated the test of two clicks ccw and two clicks cw. No change, still only decrimenting with ccw and no action with cw. The IPCReady log and FSUIPC log are below. I may try to place a couple other log statements in to look at some of the other variables to see if I can understand more of the script myself. Any further thoughts? ********* LUA: "ipcReady" Log [from FSUIPC version 4.734] ********* 30248 System time = 11/10/2011 18:11:58, Simulator time = 18:11:32 (22:11Z) 30248 LUA: beginning "C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\Modules\ipcReady.lua" 34913 LUA: Datalength=6 Buttons=1073741824 PrevButtons=0 34944 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 34975 LUA: Datalength=6 Buttons=0 PrevButtons=1073741824 36285 LUA: Datalength=6 Buttons=1073741824 PrevButtons=0 36317 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 36348 LUA: Datalength=6 Buttons=1073741824 PrevButtons=1073741824 36379 LUA: Datalength=6 Buttons=0 PrevButtons=1073741824 37892 LUA: Datalength=6 Buttons=2147483648 PrevButtons=0 37923 LUA: Datalength=6 Buttons=2147483648 PrevButtons=2147483648 38001 LUA: Datalength=6 Buttons=0 PrevButtons=2147483648 39218 LUA: Datalength=6 Buttons=2147483648 PrevButtons=0 39265 LUA: Datalength=6 Buttons=2147483648 PrevButtons=2147483648 39296 LUA: Datalength=6 Buttons=2147483648 PrevButtons=2147483648 39327 LUA: Datalength=6 Buttons=0 PrevButtons=2147483648 49733 LUA: ended "C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\Modules\ipcReady.lua" 49733 System time = 11/10/2011 18:12:17, Simulator time = 18:11:46 (22:11Z) ********* LUA execution terminated: Log Closed ********* ********* FSUIPC4, Version 4.734 by Pete Dowson ********* User Name="Tom Gauvin" User Addr="tom@thegauvins.com" FSUIPC4 Key is provided WIDEFS7 not user registered, or expired Running inside FSX on Windows 7 Module base=61000000 Wind smoothing fix is not installed DebugStatus=15 546 System time = 11/10/2011 18:11:28 546 FLT path = "C:\Users\Tom and Judy\Documents\Flight Simulator X Files\" 592 Trying to connect to SimConnect Acc/SP2 Oct07 ... 592 FS path = "C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\" 1138 LogOptions=E0000000 0000001D 1138 SimConnect_Open succeeded: waiting to check version okay 1138 Trying to use SimConnect Acc/SP2 Oct07 3868 Running in "Microsoft Flight Simulator X", Version: 10.0.61637.0 (SimConnect: 10.0.61259.0) 3868 Initialising SimConnect data requests now 3868 FSUIPC Menu entry added 3915 Ready Flags: Ready-To-Fly=N, In Menu=Y, In Dlg=Y 3915 C:\Users\Tom and Judy\Documents\Flight Simulator X Files\KTRG 172.FLT 3915 C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\SimObjects\Airplanes\C172\Cessna172SP.AIR 4040 *** EVENT: Cntrl= 66416 (0x00010370), Param= -1 (0xffffffff) PAN_VIEW 13369 *** EVENT: Cntrl= 66514 (0x000103d2), Param= 0 (0x00000000) ATC_MENU_CLOSE 29219 Ready Flags: Ready-To-Fly=N, In Menu=N, In Dlg=N 30061 System time = 11/10/2011 18:11:57, Simulator time = 18:11:32 (22:11Z) 30077 Aircraft="Cessna Skyhawk 172SP Paint2" 30248 Starting everything now ... 30264 Ready Flags: Ready-To-Fly=Y, In Menu=N, In Dlg=N 34944 WRITElua 3340, 1 bytes: 01 . 34944 Button changed: bRef=0, Joy=64, Btn=0, Pressed 34944 [Buttons] 51=P64,0,C65880,0 34944 FS Control Sent: Ctrl=65880, Param=0 34944 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC 35006 WRITElua 3340, 1 bytes: 00 . 35006 Button changed: bRef=0, Joy=64, Btn=0, Released 35006 [Buttons] 52=U64,0,C65880,0 35006 FS Control Sent: Ctrl=65880, Param=0 35006 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC 36317 WRITElua 3340, 1 bytes: 01 . 36317 Button changed: bRef=0, Joy=64, Btn=0, Pressed 36317 [Buttons] 51=P64,0,C65880,0 36317 FS Control Sent: Ctrl=65880, Param=0 36317 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC 36410 WRITElua 3340, 1 bytes: 00 . 36410 Button changed: bRef=0, Joy=64, Btn=0, Released 36410 [Buttons] 52=U64,0,C65880,0 36410 FS Control Sent: Ctrl=65880, Param=0 36410 *** EVENT: Cntrl= 65880 (0x00010158), Param= 0 (0x00000000) HEADING_BUG_DEC 45037 *** EVENT: Cntrl= 65732 (0x000100c4), Param= 0 (0x00000000) EXIT 45177 Ready Flags: Ready-To-Fly=Y, In Menu=Y, In Dlg=Y 51261 System time = 11/10/2011 18:12:19, Simulator time = 18:11:46 (22:11Z) 51261 *** FSUIPC log file being closed Average frame rate for running time of 16 secs = 29.8 fps Memory managed: 25 Allocs, 25 Freed ********* FSUIPC Log file closed ***********
Pete Dowson Posted October 11, 2011 Report Posted October 11, 2011 I've removed the button assignment that launched the HIDDemo from the FSUIPC config and added the "IgnoreThese = 3.31, 3.30" back in. I also removed the HIDDemo and IPCDebug scripts from the modules folder. It wasn't necessary to do any of that. The Lua files don't run unless you tell them to. All you needed to do was not push the button to start HidDemo -- you certainly don't want that running at the same time as the Rotaries one. As they stand they conflict. If you want to run both together I can tell you how to change one of them so they don't conflict. I re-launched FSX and repeated the test of two clicks ccw and two clicks cw. No change, still only decrimenting with ccw and no action with cw. The IPCReady log and FSUIPC log are below. The Lua log shows: 34913 Button 30 pressed 34975 Button 30 released 36285 Button 30 pressed 36379 Button 30 released 37892 Button 31 pressed 38001 Button 31 released 39218 Button 31 pressed 39327 Button 31 released So that's fine. The FSUIPC4 log shows the first 4 events, 34944 WRITElua 3340, 1 bytes: 01 . 35006 WRITElua 3340, 1 bytes: 00 . 36317 WRITElua 3340, 1 bytes: 01 . 36410 WRITElua 3340, 1 bytes: 00 . each occurrence being only around 30 mSecs after the Lua logged it. But then nothing for button 31. Now the one glaring error here is that in your Lua program, button 31 is listed BEFORE button 30. So button 31 should be joystick 64, button 0 and button 30 should be button 1. But we are seeing button 0 for 30 and nothing for 31. So it looks like the error is in the Lua code (untested as we now know, at least before you started using it!). Button 31 is probably trying to be button -1. ie. the code is one out. Interestingly, if you'd used buttons 30 and 29 (etc) you'd have been fine and we'd never have discovered this bug. Only buttons 31 (and probably 0) would go wrong. So, the error is in this line: mask = logic.Shl(1, Rotaries[j]-1) This is written assuming you count button numbers from 1. But we don't. Your buttons 31, 30 are the last two -- the first would be 0. Obviously we don't subtract 1 from 0 to compute a shift to the left! I think this mistake arose from the mixture between thinking in "C" (my native prograsmming language) and in "Lua" (which is certainly not). Lua always counts from 1. "C" alsways counts from 0! The correct line is: mask = logic.Shl(1, Rotaries[j]) Now please tell me this works! ;-) Note that this will reverse the rotary action. Rather than reprogram it in FSUIPC you might want to simply swap the button numbers over. i.e. Rotaries = {30, 31} Then we need to find other postings of the code and correct those. Can you tell me the source you found, please? Regards Pete
Tom_G_2010 Posted October 12, 2011 Report Posted October 12, 2011 THAT'S DONE IT! ALL IS WORKING NOW!! Then we need to find other postings of the code and correct those. Can you tell me the source you found, please? Pete, the Code came from post #25 of this thread, your 14 June 2011 - 06:58 AM reply post I had a little bit of a time getting the fast timing limit set to trigger fast movement, but did get it. I threw in some logging lines to show me the time difference when the if statement triggered and experimented until I had a comfortable timing. It's at 100 now but that's on the test bench so I may fine tune that further when I get the encoders installed in the real panel and as I gain experience. THANKS!!! For all your help and patience. Tom G.
Pete Dowson Posted October 12, 2011 Report Posted October 12, 2011 THAT'S DONE IT! ALL IS WORKING NOW!! Good! Sorry it took so long -- a lot of red herrings on the way! Pete, the Code came from post #25 of this thread, your 14 June 2011 - 06:58 AM reply post Okay, thanks. I had a little bit of a time getting the fast timing limit set to trigger fast movement, but did get it. I threw in some logging lines to show me the time difference when the if statement triggered and experimented until I had a comfortable timing. It's at 100 now but that's on the test bench so I may fine tune that further when I get the encoders installed in the real panel and as I gain experience. I'm thinking of providing the code as one of the samples in the Lua plug-ins package. Should I change the timing in that do you think? I assume you mean this line: FastTimeLimit = 60 -- Adjust to taste Better at 100? Thsnks, Pete
Tom_G_2010 Posted October 12, 2011 Report Posted October 12, 2011 I'm thinking of providing the code as one of the samples in the Lua plug-ins package. Should I change the timing in that do you think? I assume you mean this line: FastTimeLimit = 60 -- Adjust to taste Better at 100? Thsnks, Pete Pete, I've been doing some more experimenting back and forth in a range between 80 and 100. I found 70 too short, and a bit more experimentation is showing me that 100 may be a bit long as it occasionally catches a tail end click as a fast when I'm slowing down to zero in in a specific heading. I would go with 90 as a starting point. Tom G.
Pete Dowson Posted October 12, 2011 Report Posted October 12, 2011 I've been doing some more experimenting back and forth in a range between 80 and 100. I found 70 too short, and a bit more experimentation is showing me that 100 may be a bit long as it occasionally catches a tail end click as a fast when I'm slowing down to zero in in a specific heading. I would go with 90 as a starting point. Thanks. I've left it as a round 100 for now as I think it will be pretty dependent on the system you use it on and the type of rotary, so it'll always need experimentation in any case. Regards Pete
AK Mongo Posted October 13, 2011 Author Report Posted October 13, 2011 Tom and Pete, You guys are both brilliant! Thanks for this contribution to the flight sim community! Reid PS Pete--how can I email you privately?
Pete Dowson Posted October 13, 2011 Report Posted October 13, 2011 PS Pete--how can I email you privately? petedowson@btconnect.com. But I am off on holiday after today, till 25th. Regards Pete
egkkman Posted October 18, 2011 Report Posted October 18, 2011 Hi There, I have followed this thread with interest and have been able to get the 'Joystick 64' to work on one BU0836 card. The problem is I have three of these cards and need to add a second one to the Lua script arrangment. I copied the original Lua script and gave it a different name. ipcready1.lua and it appears in the FSUIPC drop down list. I have tried assigning increasing Device numbers starting from 1 and going up to 7, which is the total number identified using the HID programme. I have added the paired outputs within the curly brackets but no luck. Any advice on how I can get a second card to work would be very welcome. Thanks in advance. My regards Dave
Pete Dowson Posted October 25, 2011 Report Posted October 25, 2011 I have followed this thread with interest and have been able to get the 'Joystick 64' to work on one BU0836 card. The problem is I have three of these cards and need to add a second one to the Lua script arrangment. That would be pretty complicated. Best to have one Lua for each. I copied the original Lua script and gave it a different name. ipcready1.lua and it appears in the FSUIPC drop down list. I have tried assigning increasing Device numbers starting from 1 and going up to 7, which is the total number identified using the HID programme. I have added the paired outputs within the curly brackets but no luck. The name "ipcReady.lua" is special in that it is automatically loaded and run by FSUIPC as soon as FS is ready to fly. That won't occur with "ipcReady1.lua". To run several Lua plug-ins automatically there are two ways. But first name the Lua files something other than "ipcReady.lua" -- eg BU0836_1.lua, BU083621.lua, and BU0836_3.lua in your case, or something more descriptive if they have specific roles. The first way is to create and ipcReady.lua which has the sole job of running other Luas, thus: RunLua("BU0836_1") RunLua("BU0836_2") RunLua("BU0836_3") The second way it to edit the FSUIPC INI file and add a new section: [Auto] 1=Lua BU0836_1 2=Lua BU0836_2 3=Lua BU0836_3 If you use the latter method don't forget to remove the ipcReady.lua file you are currently using. Regards Pete
egkkman Posted October 25, 2011 Report Posted October 25, 2011 Hi Pete, Thanks very much for your reply, much appreciated. I will setup Lua/FSUIPC as you describe and report back. Hope you had a good holiday. My regards Dave
egkkman Posted November 3, 2011 Report Posted November 3, 2011 Hi Pete, I've tried not to come back with silly questions but I'm afraid I have failed! I have created two lua files, BU0836X_0.lua and BU0836X_1.lua each with the same content as the ipcready.lua file I used previously and placed them both in the modules folder of FSX. In FSUIPC.ini I have placed the entry: [Auto] 1=Lua BU0836X_0 2=Lua BU0836X_1 When FSX runs I can both Lua files listed in FSUIPC. I need two of the three BU0836X cards I have to operate the virtual joystick, these are Joytick B & H. These are also designated 0 and 7 in FSUIPC.ini. At the start of the lua files I have inserted 0 in one and 7 in the other as the device; thus: Vendor = "Leo Bodnar" Product = "BU0836X Interface" Device = 0 -- Multiple devices of the same name need increasing Device numbers and Vendor = "Leo Bodnar" Product = "BU0836X Interface" Device = 7 -- Multiple devices of the same name need increasing Device numbers I have the pairs listed within the curly brackets thus for dveice 0: Rotaries = {31,30,29,28,27,26} And thus for device 7 Rotaries = {31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0} I am sure these pairings are correct. In FSUPC Device 0 (joystick B) the pairs 30+31 and 28+29 are showing joystick 64 but pair 27+26 are not. None of the pairs for device 7 (joytick H) are showing the virtual joystick. I have tried using device 0 and device 1 with pretty much the same outcome. Any guidance as to where I am going wrong would be most welcome. Thanks in advance. Dave
Pete Dowson Posted November 3, 2011 Report Posted November 3, 2011 I need two of the three BU0836X cards I have to operate the virtual joystick, these are Joytick B & H. These are also designated 0 and 7 in FSUIPC.ini. How can they be 0 and 7? To get to 7 you'd have to have 8 cards connected! In FSUPC Device 0 (joystick the pairs 30+31 and 28+29 are showing joystick 64 but pair 27+26 are not. None of the pairs for device 7 (joytick H) are showing the virtual joystick. Well 7 isn't surprising until you add the intervening 6 cards. As for 27+26 it really must be your connections because if the first two pairs are okay there's nothing stopping any others. What normal button numbers are you getting? I have tried using device 0 and device 1 with pretty much the same outcome. You said you had 3 cards -- what if your second card is 2? They have to be 0,1 and 2 with three cards, there's no other option. Pete
egkkman Posted November 3, 2011 Report Posted November 3, 2011 (edited) Hi Pete, I do have eight cards connected and showing in FSUIPC but they are not all BU0836X types, the first one is and the last two. So, you are saying I should number the BU0836X devices as if they are the only cards attached and not follow the numbering in FSUIPC? The normal button numbers are 26 and 27 showing in FSUIPC. I'll check connections but the joystick shows up as 'B' and the button numbers as 26 & 27, the ones that work show up as Joystick 'B' button numbers 28 & 29 and 30 & 31. (just tried numbering 0, 1 & 2 with same result) Thanks Dave Edited November 3, 2011 by egkkman
Pete Dowson Posted November 3, 2011 Report Posted November 3, 2011 I do have eight cards connected and showing in FSUIPC but they are not all BU0836X types, the first one is and the last two. So, you are saying I should number the BU0836X devices as if they are the only cards attached and not follow the numbering in FSUIPC? What "numbering in FSUIPC"? Are you referring to the Windows IDs used for Windows-recognised joystick devices? Those are absolutely nothing to do with what we are doing in these Lua plug-ins. The plugin is accessing the USB device directly, as a USB HID device, not via any Windows joystick facilities. As described in the comment in the plug-in, each device OF THE SAME VENDOR AND PRODUCT NAME is numbered in sequence. When the vendor and product names are different, they start from 0 again. Is is simply a sequence number for identical devices. If all the devices were different they'd all be number 0. The normal button numbers are 26 and 27 showing in FSUIPC. I'll check connections but the joystick shows up as 'B' and the button numbers as 26 & 27, the ones that work show up as Joystick 'B' button numbers 28 & 29 and 30 & 31.(just tried numbering 0, 1 & 2 with same result) Well, the latter is completely mystifying as you should at least get the same results with two identical cards wired up in an identical manner. It makes no sense otherwise. From what i know of the BU0836 cards they deliver Windows-compatible button and analogue inputs and drive outputs too, and are configurable in how you connect stuff. But they directly-read inputs may be much more dependent on the actual physical configurations than that. If i had your cards here I'd use a USB monitoring program to see what they are doing, but I strongly suspect that the button numbers provided by Windows' joystick drivers are not the same as the bits seen by the direct HID reading code used in the plug-ins. So your assumptions about button numbers might not be correct. All I can suggest is using HidScanner first of all to check what the properties of the three cards are -- to see that they are in fact identical in their button arrangements. And also then to use the "HidDemo.lua" plug-in supplied as one of the examples in your FSUIPC installation to log all of the results from all of your connected buttons or dials. I've a feeling that you are really outreaching your technical skills in these matters, but I'll try to help ... take a look at those two things first. Regards Pete
egkkman Posted November 3, 2011 Report Posted November 3, 2011 Pete, I am refering to this list: [JoyNames] AutoAssignLetters=Yes 0=BU0836X Interface 0.GUID={A0B7CCE0-90D8-11DF-8006-444553540000} 1=GoFlight GF-RC Rudder Control 1.GUID={A0B7A5D0-90D8-11DF-8004-444553540000} 2=SideWinder Precision 2 Joystick 2.GUID={D75A1460-97F9-11DF-8001-444553540000} 3=CH FLIGHT SIM YOKE USB 3.GUID={D93B5780-97F9-11DF-8002-444553540000} 4=GF-TQ6 Throttle System 4.GUID={DB39E6A0-97F9-11DF-8003-444553540000} A=GoFlight GF-RC Rudder Control A.GUID={A0B7A5D0-90D8-11DF-8004-444553540000} B=BU0836X Interface B.GUID={A0B7CCE0-90D8-11DF-8006-444553540000} C=CH PRO PEDALS USB C.GUID={339B9670-B83E-11DC-8001-444553540000} D=CH FLIGHT SIM YOKE USB D.GUID={D93B5780-97F9-11DF-8002-444553540000} E=GF-TQ6 Throttle System E.GUID={DB39E6A0-97F9-11DF-8003-444553540000} 5=CH PRO PEDALS USB 5.GUID={339B9670-B83E-11DC-8001-444553540000} F=SideWinder Precision 2 Joystick F.GUID={D75A1460-97F9-11DF-8001-444553540000} G=BU0836X Interface H=BU0836X Interface H.GUID={775ED880-B7F4-11DC-8001-444553540000} 6=BU0836X Interface 6.GUID={FC794690-E793-11E0-8001-444553540000} 7=BU0836X Interface 7.GUID={775ED880-B7F4-11DC-8001-444553540000} I did begin by numbering 0 and 1 but had the probolem described. I have three BU0836X cards but only two have encoders attached, those named in the above list as 'B' and 'H'. I did not realise thyis was a windows ID list. I assumed it was the list that identified the joysticks as seen in FSUIPC. I did use the HIDScanner here is the log : ********* HidScanner, Version 2.00 by Pete Dowson ********* Device at "\\?\hid#vid_045e&pid_0038#7&34e3140e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=045E, Product=0038 (Version 1.8) Manufacturer= Microsoft Product= SideWinder Precision 2 Joystick Serial Number= SideWinder Precision 2 Joystick Usage Page: 1 Input Report Byte Length: 7 Output Report Byte Length: 0 Feature Report Byte Length: 0 Number of Link Collection Nodes: 2 Number of Input Button Caps: 1 Number of InputValue Caps: 5 Number of InputData Indices: 13 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 Buttons range 1 -> 8 at indices 4 -> 11 Value Y at index 0, range 0 -> 255, using 8 bits Value X at index 1, range 0 -> 255, using 8 bits Value Sldr at index 2, range 0 -> 255, using 8 bits Value R/RZ at index 3, range 0 -> 255, using 8 bits Value POV at index 12, range 0 -> 7, using 4 bits ************************************************************************** Device at "\\?\hid#vid_05fe&pid_1011&mi_00#9&22543caa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=05FE, Product=1011 (Version 3.0) Manufacturer= Device Product= USBice Serial Number= Device is a keyboard Usage Page: 1 Input Report Byte Length: 9 Output Report Byte Length: 2 Feature Report Byte Length: 0 Number of Link Collection Nodes: 1 Number of Input Button Caps: 2 Number of InputValue Caps: 0 Number of InputData Indices: 173 Number of Output Button Caps: 1 Number of Output Value Caps: 0 Number of Output Data Indices: 5 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 ************************************************************************** Device at "\\?\hid#vid_05fe&pid_1011&mi_01&col01#9&3a17c8ef&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=05FE, Product=1011 (Version 3.0) Manufacturer= Device Product= USB Device Serial Number= Device is a mouse Usage Page: 1 Input Report Byte Length: 6 Output Report Byte Length: 0 Feature Report Byte Length: 0 Number of Link Collection Nodes: 2 Number of Input Button Caps: 1 Number of InputValue Caps: 4 Number of InputData Indices: 9 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 Buttons range 1 -> 5 at indices 0 -> 4 Value Wh at index 5, range -127 -> 127, using 8 bits Value Y at index 6, range -127 -> 127, using 8 bits Value X at index 7, range -127 -> 127, using 8 bits Value Wh at index 8, range -127 -> 127, using 8 bits ************************************************************************** Device at "\\?\hid#vid_05fe&pid_1011&mi_01&col02#9&3a17c8ef&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=05FE, Product=1011 (Version 3.0) Manufacturer= Device Product= USB Device Serial Number= Usage Page: 1 Input Report Byte Length: 2 Output Report Byte Length: 0 Feature Report Byte Length: 0 Number of Link Collection Nodes: 1 Number of Input Button Caps: 1 Number of InputValue Caps: 0 Number of InputData Indices: 3 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 ************************************************************************** Device at "\\?\hid#vid_05fe&pid_1011&mi_01&col03#9&3a17c8ef&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=05FE, Product=1011 (Version 3.0) Manufacturer= Device Product= USB Device Serial Number= Usage Page: C Input Report Byte Length: 4 Output Report Byte Length: 0 Feature Report Byte Length: 8 Number of Link Collection Nodes: 1 Number of Input Button Caps: 24 Number of InputValue Caps: 0 Number of InputData Indices: 24 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 1 Number of Feature Data Indices: 1 ************************************************************************** Device at "\\?\hid#vid_068e&pid_00f2#7&b0f9b87&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=068E, Product=00F2 (Version 0.0) Manufacturer= CH PRODUCTS Product= CH PRO PEDALS USB Serial Number= Usage Page: 1 Input Report Byte Length: 4 Output Report Byte Length: 0 Feature Report Byte Length: 0 Number of Link Collection Nodes: 2 Number of Input Button Caps: 0 Number of InputValue Caps: 3 Number of InputData Indices: 3 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 Value Z at index 0, range 0 -> 255, using 8 bits Value Y at index 1, range 0 -> 255, using 8 bits Value X at index 2, range 0 -> 255, using 8 bits ************************************************************************** Device at "\\?\hid#vid_068e&pid_00ff#8&765ce72&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=068E, Product=00FF (Version 0.0) Manufacturer= CH PRODUCTS Product= CH FLIGHT SIM YOKE USB Serial Number= Usage Page: 1 Input Report Byte Length: 8 Output Report Byte Length: 0 Feature Report Byte Length: 0 Number of Link Collection Nodes: 2 Number of Input Button Caps: 1 Number of InputValue Caps: 6 Number of InputData Indices: 18 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 Buttons range 1 -> 12 at indices 6 -> 17 Value V/RY at index 0, range 0 -> 255, using 8 bits Value U/RX at index 1, range 0 -> 255, using 8 bits Value Z at index 2, range 0 -> 255, using 8 bits Value Y at index 3, range 0 -> 255, using 8 bits Value X at index 4, range 0 -> 255, using 8 bits Value POV at index 5, range 1 -> 8, using 4 bits ************************************************************************** Device at "\\?\hid#vid_06c2&pid_004c#7&c8feb02&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=06C2, Product=004C (Version 1.0) Manufacturer= Phidgets Inc. Product= PhidgetLED Serial Number= 159572 Usage Page: FFA0 Input Report Byte Length: 42 Output Report Byte Length: 9 Feature Report Byte Length: 0 Number of Link Collection Nodes: 1 Number of Input Button Caps: 0 Number of InputValue Caps: 1 Number of InputData Indices: 1 Number of Output Button Caps: 0 Number of Output Value Caps: 1 Number of Output Data Indices: 1 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 Value 0x02 at index 0, range 0 -> 1, using 8 bits ************************************************************************** Device at "\\?\hid#vid_09f3&pid_0100#8&3434ff53&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=09F3, Product=0100 (Version 1.1) Manufacturer= GoFlight Product= GoFlight GF-RC Rudder Control Serial Number= Usage Page: 1 Input Report Byte Length: 4 Output Report Byte Length: 0 Feature Report Byte Length: 0 Number of Link Collection Nodes: 2 Number of Input Button Caps: 0 Number of InputValue Caps: 3 Number of InputData Indices: 3 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 Value Z at index 0, range 0 -> 255, using 8 bits Value Y at index 1, range 0 -> 255, using 8 bits Value X at index 2, range 0 -> 255, using 8 bits ************************************************************************** Device at "\\?\hid#vid_09f3&pid_0200#6&3304c94e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=09F3, Product=0200 (Version 1.0) Manufacturer= GoFlight Product= GF-TQ6 Throttle System Serial Number= Usage Page: 1 Input Report Byte Length: 8 Output Report Byte Length: 0 Feature Report Byte Length: 0 Number of Link Collection Nodes: 2 Number of Input Button Caps: 1 Number of InputValue Caps: 6 Number of InputData Indices: 10 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 Buttons range 1 -> 4 at indices 6 -> 9 Value R/RZ at index 0, range 0 -> 255, using 8 bits Value V/RY at index 1, range 0 -> 255, using 8 bits Value U/RX at index 2, range 0 -> 255, using 8 bits Value Z at index 3, range 0 -> 255, using 8 bits Value Y at index 4, range 0 -> 255, using 8 bits Value X at index 5, range 0 -> 255, using 8 bits ************************************************************************** Device at "\\?\hid#vid_18ea&pid_0004#6&2d5ed5c4&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=18EA, Product=0004 (Version 1.0) Manufacturer= Product= Serial Number= Usage Page: FFA0 Input Report Byte Length: 65 Output Report Byte Length: 65 Feature Report Byte Length: 0 Number of Link Collection Nodes: 1 Number of Input Button Caps: 0 Number of InputValue Caps: 1 Number of InputData Indices: 1 Number of Output Button Caps: 0 Number of Output Value Caps: 1 Number of Output Data Indices: 1 Number of Feature Button Caps: 0 Number of Feature Value Caps: 0 Number of Feature Data Indices: 0 Value 0xA6 at index 0, range -128 -> 127, using 8 bits ************************************************************************** Device at "\\?\hid#vid_1dd2&pid_1001#6&3129063&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=1DD2, Product=1001 (Version 1.36) Manufacturer= Leo Bodnar Product= BU0836X Interface Serial Number= B20826 Usage Page: 1 Input Report Byte Length: 8 Output Report Byte Length: 0 Feature Report Byte Length: 18 Number of Link Collection Nodes: 3 Number of Input Button Caps: 1 Number of InputValue Caps: 2 Number of InputData Indices: 34 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 1 Number of Feature Data Indices: 1 Buttons range 1 -> 32 at indices 1 -> 32 Value X at index 0, range 0 -> 4095, using 16 bits Value POV at index 33, range 0 -> 7, using 4 bits ************************************************************************** Device at "\\?\hid#vid_1dd2&pid_1001#6&376360e3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=1DD2, Product=1001 (Version 1.36) Manufacturer= Leo Bodnar Product= BU0836X Interface Serial Number= B20825 Usage Page: 1 Input Report Byte Length: 12 Output Report Byte Length: 0 Feature Report Byte Length: 18 Number of Link Collection Nodes: 3 Number of Input Button Caps: 1 Number of InputValue Caps: 4 Number of InputData Indices: 36 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 1 Number of Feature Data Indices: 1 Buttons range 1 -> 32 at indices 3 -> 34 Value U/RX at index 0, range 0 -> 4095, using 16 bits Value Z at index 1, range 0 -> 4095, using 16 bits Value X at index 2, range 0 -> 4095, using 16 bits Value POV at index 35, range 0 -> 7, using 4 bits ************************************************************************** Device at "\\?\hid#vid_1dd2&pid_1001#7&1a6493e9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" Vendor=1DD2, Product=1001 (Version 1.35) Manufacturer= Leo Bodnar Product= BU0836X Interface Serial Number= B10154 Usage Page: 1 Input Report Byte Length: 6 Output Report Byte Length: 0 Feature Report Byte Length: 18 Number of Link Collection Nodes: 3 Number of Input Button Caps: 1 Number of InputValue Caps: 1 Number of InputData Indices: 33 Number of Output Button Caps: 0 Number of Output Value Caps: 0 Number of Output Data Indices: 0 Number of Feature Button Caps: 0 Number of Feature Value Caps: 1 Number of Feature Data Indices: 1 Buttons range 1 -> 32 at indices 0 -> 31 Value POV at index 32, range 0 -> 7, using 4 bits ************************************************************************** You say "I've a feeling that you are really outreaching your technical skills in these matters" You maybe correct, but then this whole hobby has been a steep learning curve, that's what makes it enjoyable. You also say "I'll try to help" for that I am very grateful. Rest assured I do not come for help unless I have tried every avenue I can think of. I'll get stuck into the "HidDemo.lua", but will read up on it's use first. Thanks Dave I
Pete Dowson Posted November 4, 2011 Report Posted November 4, 2011 I am refering to this list: [JoyNames] Yes, that is the list of joystick IDs which are assigned by Windows and recorded in the Registry. As I said, that has nothing whatsoever to do with the individual sequence numbers differentiating identicasl devices scanned in the USB list, many of which may not even be Joysticks as far as Windows is concerned. I honestly don't understand how you could get so confused. After all the comment in the Lua for your information did say: Device = 0 -- Multiple devices of the same name need increasing Device numbers. Where is the ambiguity in that? I have three BU0836X cards but only two have encoders attached, those named in the above list as 'B' and 'H'. I did not realise thyis was a windows ID list. I assumed it was the list that identified the joysticks as seen in FSUIPC. It is both of those. But neither of those is what is described as the device number in the Lua HID device access. HID devices do NOT equate to joysticks only. For instance all of the individual Goflight modules are HID devices which can be programmed in Lua as such, but few of the normal modules show up as joysticks in Windows (the TQ6 being one notable exception). I did use the HIDScanner here is the log Okay. I've extracted the details for the three BU0836X boards you have connected, and they are all different: They will be devices 0, 1 and 2, but their inputs in the Luas will all be different. Here is a side by side comparison to show this clearly: Input Report Byte Length: 8 OR 12 OR 6 Number of InputValue Caps: 2 OR 4 OR 1 Number of InputData Indices: 34 OR 36 OR 33 Buttons range 1 -> 32 at indices 1 -> 32 OR 3-> 34 OR 0->31 More tellingly are the differences in the analogue inputs shown: Device 0: Value X at index 0, range 0 -> 4095, using 16 bits Value POV at index 33, range 0 -> 7, using 4 bits Device 1: Value U/RX at index 0, range 0 -> 4095, using 16 bits Value Z at index 1, range 0 -> 4095, using 16 bits Value X at index 2, range 0 -> 4095, using 16 bits Value POV at index 35, range 0 -> 7, using 4 bits Device 2: Value POV at index 32, range 0 -> 7, using 4 bits So, either all these are different, or you've wired them up differently and they then give different configuration information automatically. i honestly do not know which, but I'd guess the latter. All of your buttons WILL be there somewhere, I guess, but you cannot assume they are the same numbers as those you see in Windows (and therefore in FSUIPC assignments). Quite honestly, the only way to proceed to is to find out. I'd do it using special tools. The only tool you have at your disposal is the HidDemo plug-in, with logging (which you'll need to ernable. But don't run it at the same time as any of the others. You'll have to adopt a methodical approach, operating each button or knob and noting what happens in the log for each in turn, and do this for each device, separately. I'll get stuck into the "HidDemo.lua", but will read up on it's use first. I'm afraid there's not much to "read up on". These Lua plug-ins were supplied as examples for programmers, not tools for beginners I'm afraid. Hopefully thee's enough in the way of comments to help. Regards Pete
Delta14Sierra Posted December 9, 2011 Report Posted December 9, 2011 Pete, I have been tinkering with HidDemo.lua & rotaries.lua trying to increase the polling rate on a GoFlight GF-166. However, I have not made any headway at all in accomplishing this. I am recalling that GF rotaries interact through GFDev.dll so I am assuming that is where my roadblock lies. Nonetheless, is there a way that you know of whereby I can alter the polling rate of a GF-166? Although the rotary speed is just fine when using GoFlight software, the rotary speed is terribly slow when working with Lua. Have a great day! Dan
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now