Pantu Posted October 15, 2005 Report Share Posted October 15, 2005 Hi Pete, I try to use Aerosoft MCP´s expansion board to program 288 buttons in FSUIPC. According to Nico Kaan the varaibles.txt in MCP user data should be extended with following lines: Green,13120,1,1,0,1,0,0,JS64: but 0 Green,13120,1,2,0,1,0,0,JS64: but 1 Green,13120,1,4,0,1,0,0,JS64: but 2 Green,13120,1,8,0,1,0,0,JS64: but 3 Green,13120,1,16,0,1,0,0,JS64: but 4 Green,13120,1,32,0,1,0,0,JS64: but 5 Green,13120,1,64,0,1,0,0,JS64: but 6 Green,13120,1,128,0,1,0,0,JS64: but 7 Green,0,0,0,0,0,0,0, Yellow,13121,1,1,0,1,0,0,JS64: but 8 Yellow,13121,1,2,0,1,0,0,JS64: but 9 ..... Green,13155,1,128,0,1,0,0,JS64: but 7 Which in fact represents 288 buttons. Sofar all is clear, but when pushing buttons it happens that FSUIPC wouldn´t recognize them all, except using Nico´s variables.txt which looks like this: Green,13120,1,1,0,1,0,0,JS64: but 0 Green,13121,1,1,0,1,0,0,JS64: but 8 Green,13122,1,1,0,1,0,0,JS64: but 16 Green,13123,1,1,0,1,0,0,JS64: but 24 Green,0,0,0,0,0,0,0, Green,13124,1,1,0,1,0,0,JS65: but 0 Green,13125,1,1,0,1,0,0,JS65: but 8 This however is far less than 288 buttons. What´s wrong with my variables.txt that FSUIPC wouldn´t recognize a button other than 0;8;16;24 MCP however recognizes all buttons flawlessly. It seems FSUIPC only accepts 1 Bit per used Byte. Hope it is clear what I meant. Any hint highly appreciated. Thank you Best rgds Peter Link to comment Share on other sites More sharing options...
Pete Dowson Posted October 15, 2005 Report Share Posted October 15, 2005 What´s wrong with my variables.txt that FSUIPC wouldn´t recognize a button other than 0;8;16;24 I don't know any of these parameters you are showing me, but it sounds like whatever program it is does not use bit numbers or button numbers, but bit masks. FSUIPC offers 9 virtual joysticks (numbered 64-72) each with 32 buttons, numbered 0-31. The virtual joysticks are represented as 9 32-bit words, at offsets 3340, 3344, etc (these are in hexadecimal -- FSUIPC represents all offsets in hexadecimal, following the original FS6IPC tradition). 3340 in decimal is 13120, so it seems that the program you are using insists on using decimal instead. Additionally it may well want to refer to individual bytes, i.e. groups of 8 bits, instead of the conventional 32-bit words. So you will have 8 bits in each of 4x9 or 36 bytes, addresses 13120-13155 in decimal. In a byte you have 8 bits, numbered 0-7. But, again, you seem to need the VALUE of the bit, not its number or position. The value of bit 0 is 1, bit 1 is 2 and so on, up to 128 for bit 7. (2 to the power of the bit number). I would have thought that whatever program it is you were using would come with instructions which explained all this, and at least some examples. Did you check? Regards, Pete Link to comment Share on other sites More sharing options...
kiek Posted October 15, 2005 Report Share Posted October 15, 2005 Hi Pantu, Your example code is not correct, I'm afraid... You forgot the mask... If you use these lines instead, you will notice that you can program 288 buttons, that will be recognised by FSUIPC! (.. don't blame Pete .. ;-) ) Green,13120,1,1,0,1,0,0,JS64: but 0 Green,13120,1,2,0,2,0,0,JS64: but 1 Green,13120,1,4,0,4,0,0,JS64: but 2 Green,13120,1,8,0,8,0,0,JS64: but 3 Green,13120,1,16,0,16,0,0,JS64: but 4 Green,13120,1,32,0,32,0,0,JS64: but 5 Green,13120,1,64,0,64,0,0,JS64: but 6 Green,13120,1,128,0,128,0,0,JS64: but 7 Green,0,0,0,0,0,0,0, and so on... Regards, Nico Kaan Link to comment Share on other sites More sharing options...
Pantu Posted October 16, 2005 Author Report Share Posted October 16, 2005 Hi Pete and Kiko, thank you both very much for your help. Of course I would never blame Pete or his FSUIPC. We all have to be very, very thankful to Pete for his excellent work and support. Unfortunately the Aerosoft 747MCP does not bring too much of a description with it. It´s obviously enough for programmers but simply not for mainly Hardware oriented guys like me. Again thank you so much for your help. Best regards Peter Link to comment Share on other sites More sharing options...
Pantu Posted October 20, 2005 Author Report Share Posted October 20, 2005 Hi Nico, infact I forgot the mask, but it still didn´t do what it was expected to. So I experimented a bit and read Pete´s chapter about MCP747 button programming again and again and there he stated that there are 32bits per address. So I changed the value "No. of bytes in address" from 1 to 4 and voila the switches are nicely recognized by FSUIPC. Now all works like it should. Again thank you very much for your prompt and kind help. Best rgds Peter Link to comment Share on other sites More sharing options...
kiek Posted October 20, 2005 Report Share Posted October 20, 2005 Hi Pantu, There are several ways that lead to Rome... Indeed a joystick has 32 bits. But you can either reach a bit by: addressing its BYTE boundary and then mask one of the 8 bits in that byte, OR you can address its 32 bits WORD boundary and mask one of the 32 bits in that word! Both ways are valid. I find it easier to address each byte, because then the masks are not bigger the 128. Hope this makes things clear. Link to comment Share on other sites More sharing options...
kiek Posted October 20, 2005 Report Share Posted October 20, 2005 and as an example: Yellow,13121,1,1,0,1,0,0,JS64: but 8 OR Green,13120,4,256,0,256,0,0,JS64: but 8 will have the same effect. Cheers! Link to comment Share on other sites More sharing options...
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