sxa1376 Posted January 4, 2010 Report Posted January 4, 2010 Hello Pete this is George again and i need your help now for two things. First i want to assign some buttons assignements of the nd2 of project magenta. I have assign the pilot effis of the airbus through FSUIPC " buttons + swittches " section all the Pm nd section and it is working fine but when i tried to do the same with the Pm nd2 section for the co-pilot none of the buttons is working. I have search as usuall to the "Pm fsuipc offsets" and i have found the following lines: " 04F4 2 Glass Cockpit ND Modes (Write Only) (*was* Read as well) Sending 100+(value) controls First Officer Display (e.g. 170 enables weather on Copilot ND) Only last three digits are used, you can use the thousands to indicate the key has been pressed again (state change), i.e. 2150 and 5150 do the same Please note, these commands go directly to the Glass Cockpit, if you do not want the MCP or FCU to override them, then please use the MCP commands in 0x4F2 or 0x5520. (Values, not bits!) Airbus 1 MAP (Captain Side, 101 F/O side) 2 NAV (Captain Side, 102 F/O side) 3 VOR (Captain Side, 103 F/O side) 4 PLAN (Captain Side, 104 F/O side) 5 ILS Mode Boeing 'Classic Modes' 1 MAP ARC 2 MAP CTR 3 VOR 4 MAP PLAN New ND Modes (!) 1 MAP 3 VOR 4 PLN 5 APP 6 CTR Pushbutton 7 Force display to 8 Modes (APP/VOR/MAP/PLN) 8 Show Controls in EICAS/ECAM 9 Hide Controls in EICAS/ECAM 10 PFD/ND -> PFD -> ND (like pressing F4,F1,F2 in GC) 11 PFD/EICAS 70 Show WXR 71 Hide WXR 72 Toggle WXR 73 VORADFL OFF 74 ADFL ON 75 VORL ON 76 VORADFR OFF 77 ADFR ON 78 VORR ON 80 Terrain Display On 81 Terrain Display Off 82 Toggle Terrain Display 83 Terrain Type Change 84 Terrain Colour/Mode Change 85 Terrain Size Change 86 Terrain 3D 90 STA 91 VOR 92 NDB 93 WPT 94 ARPT 95 DATA 96 POS 321 Decrease Synoptic/System Display Page 322 Increase Synoptic/System Display Page Project Magenta FSUIPC Offsets http://www.projectmagenta.com/resources/PMOffsets.html[8/11/2009 9:58:51 πμ] 12 EICAS with Standby 13 EICAS without Standby 14 FPV (Boeing) 15 Standby Displays OFF 16 Sets EICAS on ND in F4 and F5 pages 19 Toggle Controls in EICAS/ECAM 20 Incr Engine Page 21 Decr Engine Page 22 Toggle No Smoking 23 Toggle Seatbelts 24 Toggle Overview Page 25 Toggle RMI/HSI display in Boeing-Type ND MAP ARC 26 Metric Toggle 28/29 ND Mode INC/DEC for Airbus 30 Engine Page (Primary) 0 31 Engine Page 1 32 Engine Page 2 .. 39 Engine Page 9 (if defined) 40 Range 5 NM (added Aug 27 '03) 41 Range 10 NM 42 Range 20 NM 43 Range 40 NM 44 Range 80 NM 45 Range 160 NM 46 Range 320 NM 47 Range 640 NM 48 Range DEC 49 Range INC 50 TCAS Off 51 TCAS Alt 52 TCAS Callsign 53 TCAS All 54 Toggle TCAS Off/Alt 55 Show MCP Values in EICAS (Boeing) (Special PFC Display) 56 Hide MCP Values in EICAS (Boeing) (Special PFC Display) 57 PLAN mode next waypoint 58 PLAN mode previous waypoint 60 Show Overview Page in ND 61 Hide Overview Page in ND 62 Set/Reset Timer (AB Glass Cockpit) Boeing 737 331 - 336 Upper Engine page direct selection 340 Increment Upper Engine page by 1 (Airbus) Secondary EICAS pages and functions AB 301 ENG 302 BLEED 303 PRESS 304 ELEC (A330/340 EL/AC) 305 HYD 306 FUEL 307 APU 308 COND 309 DOOR 310 WHEEL 311 F/CTL 313 ALL 314 CLR 315 STS 316 RCL 317 CLR 318 EL/DC (A330/340) 319 C/B (A330/340) (Boeing) Secondary EICAS pages and functions 747 301 ENG 302 STAT 303 ELEC 304 FUEL 305 ECS 306 HYD 307 DRS 308 GEAR 318 CANC 319 RCL (Boeing) Secondary EICAS pages and functions 777 301 ENG 302 STAT 303 ELEC 304 HYD 305 FUEL 306 AIR 307 DOORS 308 GEAR 309 FCTL 318 CANC 319 RCL (Boeing) 401 Caution On (see 0x4FE) 402 Caution Reset 411 Show FuelUsed Toggle 412 ShowFuelUsed On 413 ShowFuelUsed Of 414 Reset FuelUsed = 0 (Both) 421 Toggle No Smoking 422 No Smoking On 423 No Smoking Off 424 Toggle Seatbelts 425 Seatbelts On 426 Seatbelts OfF Main Boeing-Type Display Unit Captain Captain Main DU 600 + switch position from 0 Copilot Main DU 610 + switch position from 0 Captain Engine DU 620 + switch position from 0 Copilot Engine DU 630 + switch position from 0 Works on F6 page Expanded Airbus Page Switch 601 Captain PFD/ND normal 602 Captain PFD/ND switched 621 Copilot PFD/ND normal 622 Copilot PFD/ND switched If i have understand corect i must put the 04F4 and for the mask the value of 101 for the F/O side? I dont't now how to do this and i have also download the fsuipc sdk but to tell you the truth i didn't understand anything. I am civil engineer in real life but in programing i know less than a kid so can you send me a tutorial based on fsuipc offsets if i have the offset and the size of any button that i want to assign how i will determine the correct mask for this each time? I am asking you this because i don't want to bother you any time i will have the same difficulties.
Pete Dowson Posted January 5, 2010 Report Posted January 5, 2010 First i want to assign some buttons assignements of the nd2 of project magenta. I have assign the pilot effis of the airbus through FSUIPC " buttons + swittches " section all the Pm nd section and it is working fine but when i tried to do the same with the Pm nd2 section for the co-pilot none of the buttons is working. I have search as usuall to the "Pm fsuipc offsets" and i have found the following lines: Really there is no need to reproduce the whole of the PM stuff here. The only part you needed to notice was: Sending 100+(value) controls First Officer Display (e.g. 170 enables weather on Copilot ND) If i have understand corect i must put the 04F4 and for the mask the value of 101 for the F/O side What's the "mask"? Where's that mentioned anywhere, and why 101? Just assign to the FSUIPC control "Offset word set" with offset 04F4 and a parameter of 100 + the value from the list for the switch you want. can you send me a tutorial based on fsuipc offsets if i have the offset and the size of any button that i want to assign how i will determine the correct mask for this each time? I am asking you this because i don't want to bother you any time i will have the same difficulties. Sorry, I don't do tutorials, and I cannot undertake to support PM which is not even my program. For FSUIPC offset controls all you need to know is that a BYTE is 8 bits and is 1 byte long, a WORD is 16 bits and is 2 bytes long, a DWORD is 32 bits and is 4 bytes long. If you need to manipulate bits, remember that bit 0 is the lowest bit, worth 1, bit 1 is worth 2 and so on, doubling each time. I recommend you go to the MyCockpit PM forums for PM assistance. There are lots of cockpit builders there using PM: http://www.mycockpit.org/forums/forumdi27981&f=99 Regards Pete
sxa1376 Posted January 21, 2010 Author Report Posted January 21, 2010 Hi Pete i understand. Nevermind i need your help for another thing i have. I want to change the order of my joysticks in the fsuipc.cfg but when i do this and after i save the file i start the fsx but i still have the joysticks in the order before i change them. Do you know how to do this? Here i have the order of joysticks before and after but i want the second configuration. [JoyNames] AutoAssignLetters=No 0=CH PRO PEDALS USB 1=CH THROTTLE QUADRANT 2=Saitek Cyborg Evo 3=Saitek Pro Flight Rudder Pedals 4=Saitek Cyborg Evo [JoyNames] AutoAssignLetters=No 0=Saitek Cyborg Evo 1=Saitek Cyborg Evo 2=CH PRO PEDALS USB 3=Saitek Pro Flight Rudder Pedals 4=CH THROTTLE QUADRANT
Pete Dowson Posted January 21, 2010 Report Posted January 21, 2010 I want to change the order of my joysticks in the fsuipc.cfg but when i do this and after i save the file i start the fsx but i still have the joysticks in the order before i change them. Do you know how to do this? Here i have the order of joysticks before and after but i want the second configuration. The numbers for each joystick are assigned by Windows, not by FSUIPC. The only way to get them changed is to plug them into different USB sockets. A much better alternative is to use the facilities to letter the joysticks instead. Then they will auto-reconfigure if you move them. FSUIPC matches the names to the letters and uses the numbers assigned by Windows, as it must. Regards Pete
sxa1376 Posted January 29, 2010 Author Report Posted January 29, 2010 Hi Pete and thanks for your help. I have changed the usb sockects but they still appear in the same order. Then i have applied the lettering and i managed to change the order of joysticks inside of FS but this is not that i want to do. I need to change the order of joysticks inside the windows. I have run the dxdiag and i saw in the inputs tab that the joysticks always they keep a specific id. Do you have any idea how i will modify this?
Pete Dowson Posted January 29, 2010 Report Posted January 29, 2010 Hi Pete and thanks for your help. I have changed the usb sockects but they still appear in the same order. Hmm. That's unusual. Mine don't. But it may depend whether you swap between one pair of USB sockets and another pair (USB sockets always seem to be paired). Maybe also it needs a ssytem re-boot without them connected in order to clear the assignment tables, possibly made in the BIOS at boot time. Then i have applied the lettering and i managed to change the order of joysticks inside of FS but this is not that i want to do. I need to change the order of joysticks inside the windows. Sorry, I don't understand. What windows? And why would the order matter to you? I have run the dxdiag and i saw in the inputs tab that the joysticks always they keep a specific id. Do you have any idea how i will modify this? Only by trying what I say above. But I am puzzled as to what the actual number of a device matters if you aren't using it. Regards Pete
sxa1376 Posted February 1, 2010 Author Report Posted February 1, 2010 Hello Pete and thanks for your try to help. I am using windows xp x86 professional. I need to change the order id of my joysticks because i want to use them with an auto trim utility called "FBW" from "Stall fliers team". The problem with this software is that is only accepts device 0 and 1 and as you see below to attachement the devices i want to use are the devices 0 and 2. I have tried all the above but nothing. Any ideas? I need your help also for this. I have gather all the project magenta FSUIPC OFFSETS for my cockpit and i need your help for one simple ( i think ) but very basic thing. I have for each fsuipc offset the Offset Read in (hex), the Offset Writing in (hex) and the Offset Size in (Bytes). How i will determine the parameter each time? Is there any formula or something for if i have the above values each time to estimate the correct parameter for each assignement? Here i send you an example of some assignements to have an idea. ***************************************BTN:ALT Push Offset Read (hex) 0Offset Writing (hex) 5414Offset Size (Bytes) 4[5414 MCP/FCU Buttons B32-63 (Read/Write)AALI Bit24 (AB Altitude Button push - managed altitude mode)AALO Bit25 (AB Altitude Button pull)]****************************************BTN:Metric Offset Read (hex) 0Offset Writing (hex) 541cOffset Size (Bytes) 4 [541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)METRIC Bit24]******************************************BTN: APPR ON/OFF Offset Read (hex) 0Offset Writing (hex) 5410Offset Size (Bytes) 4[5410 MCP/FCU Buttons B00-31 (Read/Write)LOC Bit28APP Bit29]******************************************BTN: ND CSTR Offset Read (hex) 0Offset Writing (hex) 541COffset Size (Bytes) 4[541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)VOR Bit12NDB Bit13WPT Bit14]*******************************************BTN:ND-LS Mode Offset Read (hex) 0Offset Writing (hex) 541COffset Size (Bytes) 4[541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)ILS Bit0 (reserved for Airbus ILS mode)MAP Bit1 (Captain Side ND controls)CTR Bit2 ]********************************************BTN: ND CSTR [ FIRST OOFICER SIDE ]Offset Read (hex) 0Offset Writing (hex) 5420Offset Size (Bytes) 4[541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)VOR Bit12NDB Bit13WPT Bit14]*********************************************BTN:ND-LS Mode [ FIRST OOFICER SIDE ]Offset Read (hex) 0Offset Writing (hex) 5420Offset Size (Bytes) 4[541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)ILS Bit0 (reserved for Airbus ILS mode)MAP Bit1 (Captain Side ND controls)CTR Bit2 ]Many thanks.
Pete Dowson Posted February 2, 2010 Report Posted February 2, 2010 I need to change the order id of my joysticks because i want to use them with an auto trim utility called "FBW" from "Stall fliers team". The problem with this software is that is only accepts device 0 and 1 and as you see below to attachement the devices i want to use are the devices 0 and 2. I have tried all the above but nothing. Any ideas? No, other that to try uninstalling any drivers you have for all your joysticks, then re-boot, and try plugging only those two devices in, checking their numbers and retrying until you find the right sockets which will give you what you want. As far as I am aware, there is really no outside control anyone can exert on windows to force any different ID assignment than that which it, or possibly the BIOS, chooses. (You see I don't even know where it is done!). A better bet would be to get the authors of the software you want to use to change it so it accepts any valid joystick ID. Only accepting 0 and 1 seems really daft. How i will determine the parameter each time? For writing to Project Magenta? They are all documented in the PM offsets documentation -- you need to go to the PM website. Is there any formula or something for if i have the above values each time to estimate the correct parameter for each assignement? Sorry, I don't understand. Are you simply saying you don't understand the documentation they provide? Here i send you an example of some assignements to have an idea. Sorry, I've no idea what your problem is nor whether there's even a question here. If you don't understand some term, just be specific, ask that question. It is not up to me to rewrite Project Magenta documentation for you, I do not write their software or documentation. If there's some term or phrase you don't understand, just ask. But if you want help in using Project Magenta you really need their Support. Regards Pete
sxa1376 Posted February 2, 2010 Author Report Posted February 2, 2010 Hi Pete i tried several times to open the web site of the easyfbw module to ask for assistance but it is not loaded at all. I will try as you said to unistall all the joysticks drivers and play with the sockets to find a combination that is working. Now about of how to calculate the correct parameter each time i have contact you before for other buttons assignements and you have give me the solution. Here i am sending you one of the previous posts as an example to understand for what i want your help. "The simFlight Network Forums • View topic - PM Airbus co-pilot EFFIS control" In this topic i wanted to assign two buttons for the airbus effis ( the co-pilot side ),the "AB LS Button" and the "AB TRKFPA Button" so i have send you these values: OFFSET SIZE USE 5414 4 MCP/FCU Buttons B32-63 (Read/Write) --- Bit12-Bit15 (free) ALS Bit16 (AB LS Button First Officer) ATFP Bit29 (AB TRKFPA Button). You have answered me that i must find the fsuipc control "Offset DWORD togglebits" and to use the x5414 for the offset value and the only i need to do is to put to parameter each time for these to work for "bit 16 = x10000" and for "bit 29 = x20000000" so i did this and its worked. The only thing i want for you is to explain me how you calculate the value "10000" for bit 16 and how you calculate the value "20000000" for bit 29. As i told you above i have all the pm staff i need for my cockpit but i dont know how to calculate the correct parameter each time.
Pete Dowson Posted February 2, 2010 Report Posted February 2, 2010 The only thing i want for you is to explain me how you calculate the value "10000" for bit 16 and how you calculate the value "20000000" for bit 29. As i told you above i have all the pm staff i need for my cockpit but i dont know how to calculate the correct parameter each time. Oh, you want a lesson in numbers? I'll have a go, but I am not a good teacher I'm afraid. You'll probably find better lessons in a Wiki article or via Google. BINARY Binary numbers, the ones actually used in computers, are made up of "bits". Each bit can only be "on" (1) or "off" (0). So, with one bit you can only count 0 then 1. With 2 bits you can count from 0 to 3, via the combination of the two bits, thus: 00 = 0 01 = 1 10 = 2 11 = 3 A binary number can have as many bits as you need, but computers generally have addressable groups of bits, as follows: BYTE = 8 bits, running from 00000000 to 11111111 (decimal 0 to 255). WORD = 16 bits DWORD = 32 bits The addresses known in FSUIPC as "offsets" actually point to BYTES, but any size data may start at that byte address. Note that in decimal, each higher digit in a number is worth 10 times the adjacent one. So Decimal 245 = (2 x 10 x 10) + (4 x 10) + (5 x 1) In Binary the same sort of thing is true, but now each digit is only worth 2 x the adjacent one. So Binary 1101 = (1 x 2 x 2 x 2) + (1 x 2 x 2) + (0 x 2) + (1 x 1) = decimal 13. Okay so far? BIT NUMBERS Documentation like that for Project Magenta often refers to "bit numbers", like "bit 0" or "bit 17". All this refers to is the position of the bit in the overall number. Most usually (but not always) bits are numbered from the bottom, the bit of value 0 or 1. So, in the example of decimal 13 above: 1 1 0 1 the bits, left to right are bits 3, 2, 1 and 0. Using this system of numbering, the VALUE of that bit in the number can be computed as 2 to the power of the bit number, like 2^N (the power should be superscripted, but i don't know how to do that here -- the ^ convention is used in programming languages). Thus. If 2^3 means "2 x 2 x 2", the 13 could be written as 2^3 + 2^2 + 2^0 (note that mathematical convention dictates that a number to the power of zero is always 1). HEXADECIMAL Writing numbers in binary all the time is laborious and error prone, so often a different number system is used -- octal (base 8) and hexadecimal (base 16). In today's PCs hex is better because most units are made up of multiple of 4 bits, and 4 bits, as we saw, have the capacity to count from 0 to 15: so 16 values in all. So, whilst you can treat hex numbers as base 16 numbers, with each more significant digit being worth 16 times the adjacent one, in cases where you are really handling bits, as here, you merely need to think of the binary number being divided into groups of 4 bits. The different values of 4 bits, from 0 to 15, are represented in hex like this: Binary 0 0 0 0 = Hex 0 = Decimal 0 Binary 0 0 0 1 = Hex 1 = Decimal 1 Binary 0 0 1 0 = Hex 2 = Decimal 2 Binary 0 0 1 1 = Hex 3 = Decimal 3 Binary 0 1 0 0 = Hex 4 = Decimal 4 Binary 0 1 0 1 = Hex 5 = Decimal 5 Binary 0 1 1 0 = Hex 6 = Decimal 6 Binary 0 1 1 1 = Hex 7 = Decimal 7 Binary 1 0 0 0 = Hex 8 = Decimal 8 Binary 1 0 0 1 = Hex 9 = Decimal 9 Binary 1 0 1 0 = Hex A = Decimal 10 Binary 1 0 1 1 = Hex B = Decimal 11 Binary 1 1 0 0 = Hex C = Decimal 12 Binary 1 1 0 1 = Hex D = Decimal 13 Binary 1 1 1 0 = Hex E = Decimal 14 Binary 1 1 1 1 = Hex F = Decimal 15 So, to convert a binary number to hex you simply divide it into groups of 4 bits (from the bottom, least significant part) and use the above equivalences. For example Binary 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 becomes 1 0 1 0 1 1 1 10 0 1 0 1 1 0 1 so it is hex AF2D. The reverse conversion works too. YOUR EXAMPLES You asked how we get the hex value "10000" for bit 16 and how you calculate the value "20000000" for bit 29. Now it should be easy for you: Bit 16 is the 16th bit up counting from 0, so in binary it must be (I've already divided it into 4's to save time): 1 0000 0000 0000 0000. which you can convert to hex as I showed above ---> 10000 Bit 29 is likewise the 29th bit up counting from 0: 10 0000 0000 0000 0000 0000 0000 0000 So, hex 20000000. Of course you don't need to write down all the bits. 29 divided by 4 (the number of bits in a group) is 7 remainder 1, so it has 7 hex 0's after a 2^1 group, and 2^1 = 2. CONCLUSION With my poor teaching skills I'm afraid that's as basic and clear as I can make it. If you still don't understand I hope someone else will jump in to help. Regards Pete
sxa1376 Posted February 2, 2010 Author Report Posted February 2, 2010 Hi Pete about the joysticks i have not succed to change the order id but fortunately i have solved this issue i had. I have activate the fbw module fsx offers in my arcraft.cfg ( i have add in the aircraft.cfg in the [airplane_geometry] section the command "fly_by_wire = 1"). Then i have assign the two joysticks ( captain elevator and alieron axis and co-pilot elevator and alieron axis ) inside fsx controls section and all the rest axis of the other joysticks ( captain rudder and toe brakes, co-pilot rudder and toe brakes, throttles, flaps, spoilers and gear axis) inside the FSUIPC "axis assignements" section, i have calibrate them inside FSUIPC and everything working great. I have finally managed to have a FBW module with the Project Magenta software working fine. Now about the tutorial you send me this was all i wanted. Now i can be able to calculate everything i want and i can start to working seriously with hardware assignements (buttons, swithes, rotary encoders e.t.c). I only want to say for one more time that FS without PETE DOWSON would be just another game. Many many many thanks!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :D
Pete Dowson Posted February 2, 2010 Report Posted February 2, 2010 Now about the tutorial you send me this was all i wanted. So it was easy to understand? If so, maybe I should make a permanent copy in the Announcements section? Regards Pete
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