davekatzma Posted April 5, 2003 Report Posted April 5, 2003 Hello, I am new to the SDK but have been working with it pretty well. My problem is whenever I have my program enable the autopilot altitude hold the value currently set in the autopilot altitude hold level resets. The same happens for the opposite; when I set the value for the level it disables itself. As you can see this goes in an endless loop causing an annoyance since once I set the level it shuts off and vice versa. My question is what can I do about this? BTW i am programming in C# Thanks, Dave Katzman davidkatzman@attbi.com
Chris Brett Posted April 6, 2003 Report Posted April 6, 2003 Do you have your code to post here? It will be easier to debug if you can post what you are doing to perform the alt hold function. Chris
davekatzma Posted April 6, 2003 Author Report Posted April 6, 2003 Here is just the code for setting the autopilot alt hold: fsuipc.FSUIPC_Write(iOffset,lVal,ref token,ref dwResult); translateResultCode(dwResult); fsuipc.FSUIPC_Process(ref dwResult); where iOffset = 0x07D4 lVal = 1 for on or 0 for off ref token = -1 and ref dwResult is an int to hold the result WHat happens is if i had previously set the alt hold altitude through my program, if i next call this then the value i set before gets set to 00000 and it gets enabled, and vice versa.
Guest hsors Posted April 6, 2003 Report Posted April 6, 2003 Hi Dave It seems in your code you made a confusion between AP altitude hold value at 0x7D4 which is not 0 or 1 but is a long coded as meters x 65536 (as an example 2000 ft is 39950746) and.. AP altitude lock flag at 0x7D0, also a long, which enables (1) or disables (0) the AP altitude hold function The 2 offsets appear to be independant..so you should first write the desired AP locked altitude at 0x7D4 (after making the necessary conversion) and then enable the alt function by writting 1 at 0x7D0..or vice versa since processing the 2 calls all together only takes a few ms.. Hervé
davekatzma Posted April 6, 2003 Author Report Posted April 6, 2003 my fault, the code i sent u was wrong, but in my prog i do have it do the conversion first, and the 1 val is for the other function which i also have at the same time as u thought i should, still no dice however. Dave
Chris Brett Posted April 7, 2003 Report Posted April 7, 2003 Dave, I don't know much about C#, but if you could post your variable declarations for iOffset, lVal, token and dwResult (ie. their types) that could help us. Have you tried a simple test program that does just the 2 functions in a similar manner as you think you are currently using them in your main program? Have you checked the actual values you are passing to FSUIPC_Write each time? Perhaps debug it by flagging any value of lVal which is not 0 and not 1 for 0x7D0, and flag values <2 for lVal when passed to 0x7D4? Chris
davekatzma Posted April 7, 2003 Author Report Posted April 7, 2003 I did what you said and it helped a ton :D . What I did was make another application that just dealt with those two variables and entered the data right into the write command. It seems my problem lies somewhere in my other code when the values get converted from what they are to the write values. I am going to start from scratch and make functions for each different function. BTW just in case anyone was wondering what I was doing, I am building a voice commander for the autopilot. It will be totally controllable through voice. If anyone would like to be able to test this once I am finished please e-mail me at davidkatzman@attbi.com. Also, any other suggestions are welcome as to what other functions to include besides autopilot or what else to add. Dave
Chris Brett Posted April 7, 2003 Report Posted April 7, 2003 Hi Dave, I'm glad you sorted your problem. You may be interested to know there is a program called SpeechBuddy which allows speech control of any FS function and is scriptable, with source. If you want to check it out it is at: http://www.x-plane.info/billy/speechbuddy.html Chris
davekatzma Posted April 7, 2003 Author Report Posted April 7, 2003 Thanks for the info, but mine is going to have a little more program specific information in it. I am going to re-develop it with a whole new approach. If I have any suggestions as to what to include, or add please, please let me know. ANY input is appreciated! Dave
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