Assert Posted February 4, 2014 Report Posted February 4, 2014 I'm implementing my own aerodynamics for FS9, and i need wind variation\gust\turbulance values at aircraft position for my own computations. Looking for offsets in FSUIPC, i found that 0E90 to 0E98 is exacly what i want. As i can understand, this is a values, interpolated in some way to aircraft position. But only 0E90 and 0E92 not equal to 0 in any cases. All settings in wind FSUIPC dialog are unchecked, no interpolation, no suppresion... but turbulence, gust and wind variation goes to wind velocity and wind direction variations. I don't need this, i wont to compute my own 3D turbulance and share effects based on gust\turbulence scalars. My quiestion is: how i can get wind velocity, direction, variation, gust, and turbulance values without any modifications, as this values was set in FS dialog, and how i can get this values in most compatible way, to support external programs like ActiveSky?
Pete Dowson Posted February 4, 2014 Report Posted February 4, 2014 My quiestion is: how i can get wind velocity, direction, variation, gust, and turbulance values without any modifications, as this values was set in FS dialog, and how i can get this values in most compatible way, to support external programs like ActiveSky? The weather in FS is dynamic. If there is any wind at all, the weather moves and changes. How can it not? The weather set by the weather menus or by external programs applies initially, at the weather stations they populate, and then the weather operates, as in the real world, changing all the time. Furthermore, the weather BETWEEN the stations is interpolated based on nearby weather stations. And even if a "global" mode is used, trying to set all stations to the same weather, the actual weather at each station gradually changes from that, and each separately. On top of all this, effects such as turbulence and variance are applied locally, at the aircraft, independently of the interpolated conditions but according to probabilities based on those conditions. So, summarising, there is no point in knowing what weather was set. You surely want the weather AT the aircraft? If it is only the wind vectors you need for your computations, then you should really look at offsets 2DC8-2DD8. Pete
Assert Posted February 4, 2014 Author Report Posted February 4, 2014 You mean that offsets: 0E94 2 Wind gusting value at aircraft 0E96 2 Wind directional variation at aircraft 0E98 2 Wind turbulence value at aircraft do't work as expected, or have other meaning, not weather conditions AT aircraft? Wind vectors is not a good solution for me, i found a topic where someone trying to get "triggered turbulance" in FSX, and a solution was "compute amplitude and frequiencies from wind vector"... this is very-very backup variant, and i will use it, if i can't get pure values in any way, with or without FSUIPC. Local wind vector is computed by FS in some way... from some settings. There is a complex weather set (winds, clouds etc...) at each station, (or for all station at once in global mode), where user, or external program can set turbulence, gusting, and share parameters for evry layer. You implemented NWI to access this parameters. "C000 - read only, maintains current interpolated weather at aircraft", including turbulence, gust, and other values... by some misunderstanding, i thought, that offsets 0E90-0E98 store values from C000 with respect to aircraft altitude. If NWI works OK, i can get what i need by processing this structure for aircraft elevation... but maybe, there is a way to get postprocessed values by simple offsets like 0E90-0E98, or there is a more comatible way to get weather at aircraft lat\lon\alt?
Pete Dowson Posted February 4, 2014 Report Posted February 4, 2014 You mean that offsets: 0E94 2 Wind gusting value at aircraft 0E96 2 Wind directional variation at aircraft 0E98 2 Wind turbulence value at aircraft do't work as expected, or have other meaning, not weather conditions AT aircraft? No, I'm not saying that. You asked: My question is: how i can get wind velocity, direction, variation, gust, and turbulance values without any modifications, as this values was set in FS dialog, and how i can get this values in most compatible way, to support external programs like ActiveSky? and the main part of my answer was explaining that you never actually get "values without any modifications, as this values was set in FS dialog". Did you not understand that part, that the weather varies across the entire simulated world and is changing all the time? Since you previous statement to that implied you wanted to do something regarding aircraft performance I naturally assumed that the actual wind vectors at the aircraft would be the most important. I can't see how the rather crude values about levels of turbulence and so on actually set in the FS parameters, rather than the values actually emanating from these, would be of use in computing any sort of performance figures. But still, if that's all you want -- what is precisely your problem with using offsets 0E94 etc, or those from weather "at aircraft" read using the NWI offsets?. Local wind vector is computed by FS in some way... from some settings It is dynamically changing. The initial settings only enable it to generate the starting conditions at each station, as I said. There is a complex weather set (winds, clouds etc...) at each station, (or for all station at once in global mode), where user, or external program can set turbulence, gusting, and share parameters for evry layer. You implemented NWI to access this parameters. "C000 - read only, maintains current interpolated weather at aircraft", including turbulence, gust, and other values... by some misunderstanding, i thought, that offsets 0E90-0E98 store values from C000 with respect to aircraft altitude. If NWI works OK, i can get what i need by processing this structure for aircraft elevation... but maybe, there is a way to get postprocessed values by simple offsets like 0E90-0E98, or there is a more comatible way to get weather at aircraft lat\lon\alt? You can use any of these methods. Since you know about them, WHAT exactly is your real question? You seemed to come here asking why the values provided are not equal to the values set in dialogues or by the weather program, and i explained that. What else is it which concerns you? I don't understand what it is you now want to know. Pete
Assert Posted February 4, 2014 Author Report Posted February 4, 2014 (edited) I am sorry for misunderstanding, this is my english problem. I wrote in my first post, that i ALWAYS have zeros in offsets 0E94-0E98 regardless of settings in FS dialog and wind tab in FSUIPC. I am understand that weather is dynamic, i know this, but start point must be a start point, and i except that some valid data will be recived... not exact same as i set, but something. Not zeros every time. So, I can rewrite my questions as "What is 0E94-0E98, how it works, and how i can get resonable values from them? Can this values help me get what i need (current conditions at aircraft position as turbulance\variation\share magnitude scalar) or i must implement my own interpolator based on NWI? Is NWI offset C000 reflects dynamic changes, and is it the actual weather at aircraft at current time, and is this offset reflects changes that make external programs like ActiveSky?". I am trying to find a way, how i can get wing parameters at aircraft for my model im most safe and compatible way throu FSUIPC, can you help me? I have done a big work to disconnect native flight model from sim by patching of computation functions in SIM1.DLL on fly (very accurate, i am sure that i don't broken any other stuff in sim or FSUIPC), and now, i can control position and orientation of the aircraft without entering in slew mode and have problems with controls and other stuff. My aerodynamic model, is not a point model as default model for FS, it work's like XPlane flight model, with computation of individual forces at some points on the wing. This means, that at every point of aircraft, i have individual relative air speed and angles that depend on linear and angular speeds of the aircraft, and evironment conditions. Turbulance is simulated by making 3D grid with wind variation values and passing aircraft throu this grid as it flyies. Result is much more realistic than changing main wind vector for whole aircraft at one point. That's why i need to know separate turbulance magnitude as scalar... to generate turbulance grid. Edited February 4, 2014 by Assert
Pete Dowson Posted February 4, 2014 Report Posted February 4, 2014 I wrote in my first post, that i ALWAYS have zeros in offsets 0E94-0E98 regardless of settings in FS dialog and wind tab in FSUIPC. As far as I know those offsets work fine in FS9, though they were really developed in FSUIPC4 for FSX and "bolted" back into FSUIPC3 at a later date. I've had no feedback that says they don't work, but perhaps you'd better clarify exactly which version of FSUIPC you are using. You say "3.9" but if that isn't just an abbreviation for 3.999z8 or 3.999z9, then you are way out of date and this may explain it. Those offsets were not supported until 3.999, released in February 2012. Turbulance is simulated by making 3D grid with wind variation values and passing aircraft throu this grid as it flyies. Result is much more realistic than changing main wind vector for whole aircraft at one point. That's why i need to know separate turbulance magnitude as scalar... to generate turbulance grid. Hmmm. In that case what about cloud turbulence too, a MUCH more common phenomenon. The wind turbulence is rare -- CAT (Clear Air Turbulence can occur at high altitude, and you might get turbulence in surface wind layers is certain circumstances. But cloud turbulence occurs in many cloud types. That's offset 0E88 which you didn't even mention. Also, the problem with cloud turbulence readings is that they really only apply when you are IN the cloud, but you can't tell when that is so -- if you have "few" or "scattered" clouds there are places where the aircraft is not in the clouds and therefore would not suffer turbulence. So, I still come back to the wind vectors. Isn't it better to detect turbulence by fluctuations in those? Regards Pete
Pete Dowson Posted February 5, 2014 Report Posted February 5, 2014 Okay, I've just run FS9 and can get values reported in those offsets very easily. I think either you are using an old version of FSUIPC or you are making some mistake in your code. All I did was load FS9 up with the aircraft on the ground, went into the weatrher dialogue and selected the major thunderstorm theme. Immediately the wind turbulence offsets were populated, as proven both in FSInterogate and using FSUIPC's logging (just put 0E88, 0E94, 0E96 and 0E98 as the four monitored values on the right-hand side of the Logging tab, all as type U16, and check "normal log" and, if immediate feedback is required, Advdisplay for a screen display) Here's an extract from that log when still on the ground: 1100867 Monitor IPC:0E88 (U16) = 0 1100867 Monitor IPC:0E94 (U16) = 28 1100867 Monitor IPC:0E96 (U16) = 1820 1100867 Monitor IPC:0E98 (U16) = 128 these corresponded to the reported surface winds at the aircraft: 1000762 Results: FS98 Wind0: ground (256ft) to 3215ft AGL, dir 331M, vel 18, gust 28, turb 128 Slewing up into the cloud layer: 1123909 Monitor IPC:0E88 (U16) = 252 corresponding to the lowest cloud setting reported: 1000762 Results: FS98 Tstorm: type=10, from 1896ft to 15020ft (+/- 100ft), cover 8, turb 252, ice 0 Slewing up further, once out of that surface wind layer (ie > 3215 feet AGL), the values returned to zero: 1129416 Results: FS98 AmbientWind at PlaneAlt=3543: dir 315T, vel 22 1129416 Monitor IPC:0E94 (U16) = 0 1129416 Monitor IPC:0E96 (U16) = 0 1129416 Monitor IPC:0E98 (U16) = 0 Seems to me to work perfectly! Pete
Assert Posted February 5, 2014 Author Report Posted February 5, 2014 Thanks alot, for you help and time. I am using older version, because 3.999z9 and published SDK (UIPC_SDK_C) from http://www.schiratti.com/dowson.html do not match. After i'am installing 3.999z9 and calling FSUIPC_Open(SIM_ANY, &result) from new lib downloaded with SDK, result is FSUIPC_ERR_VERSION, FSUIPC version is 0x00000002, LIB version is 0x000007D2. Surprised, that offsets 0E94-0E98 is a "latest feature" described in docs of my older version. As i understand, tubulance value at offset 0E98 do not include cloud turbulence? But FS9 computes wind vectors based on information are we actually in cloud or not? This computation happens in WEATHER.DLL, and internal structures of WEATHER.DLL knows where clouds actually placed? Ok, i think that offsets are unusable for me, and i need another way. May be i will try to reverse procedures that computes wind vectors in WEATHER.DLL... As my thanks for your help, if you intrested in, i can send you info about how to get stable access to full internal structures of tuned navaids, including markers and ADF's. I think this is can be helpful for making compatibility features with FSX, where user can access ADF's lat\lon\alt for example.
Assert Posted February 5, 2014 Author Report Posted February 5, 2014 Make a test, and found that FS9 do not compute cloud turbulance based on individual cloud position, just compute turbulance for whole layer, and hardly cutts off it when aircraft leaving this layer... so i can compute native FS9 turbulance effects from NWI. But i still intrested in cloud based turbulance... may be i will try to find where clouds are placed in internal structures later... i am already intercepts graphics engine at D3D layer for other needs, and possibly can find cloud vertex\index arrays, and point when FS generates them... then find a way to get information about clouds position...
Pete Dowson Posted February 5, 2014 Report Posted February 5, 2014 Thanks alot, for you help and time. I am using older version, because 3.999z9 and published SDK (UIPC_SDK_C) from http://www.schiratti.com/dowson.html do not match. The SDK isn't updated very frequently. The update information is instead included in the History document supplied in the package, and in the "Changes" document from there on. After i'am installing 3.999z9 and calling FSUIPC_Open(SIM_ANY, &result) from new lib downloaded with SDK, result is FSUIPC_ERR_VERSION, FSUIPC version is 0x00000002, LIB version is 0x000007D2. Not sure why that should be -- I have lots of utilities compiled with the same library. What language is this with? My stuff is all C. I only know C and ASM, so all the other packets are supplied by other users and generally unmaintained. For C the source is provided in the SDK so it is easy to both debug and correct if you need changes. All that code is on the application side of the SDK. As i understand, tubulance value at offset 0E98 do not include cloud turbulence? Of course not -- that value is in 0E88 as I pointed out, and showed an example of earlier. (I've no idea what happens when you have both cloud and wind turbulence -- maybe the greater takes precedence, or maybe they are added. I'm not presuming one or the other). As my thanks for your help, if you intrested in, i can send you info about how to get stable access to full internal structures of tuned navaids, including markers and ADF's. I think this is can be helpful for making compatibility features with FSX, where user can access ADF's lat\lon\alt for example. These are provided in offsets already for FSX. I'm no longer interested in updating FSUIPC3 -- it's for an 11 year old product! FSX is old enough, but at least it is now coming into its own with today's hardware and really good add-on sceneries, weather programs (ASN is fantastic), and aircraft. And the future is P3DV2 with maybe a 64 bit version in due course. I'm afraid FSUIPC3 is frozen. Sorry. may be i will try to find where clouds are placed in internal structures later. Well, good luck. It's a great shame you are not applying your talents to FSX which would really be of much more interest and future use. Incidentally, ASN places clouds precisely and provides files mapping them and files providing proper WX radar data (precipitation/water density rather than just cloud maps). It also performs its own turbulence simulation, suppressing FSX's (much like FSUIPC4 does if its wind smoothing is enabled). Regards Pete
Assert Posted February 5, 2014 Author Report Posted February 5, 2014 Language is C\C++, MSVC2010 compiler... i saw native interface for FSUIPC throug file mapping, and i can look precisely what happens with latest version later... FSUIPC is a backup interface for me, only few features are used, and maybe i make everything without FSUIPC later... I am making aircraft, and universal platform for aircraft development with existing sims. At this moment, my aircraft can fly in XPlane, FSX, FS9 and possibly P3D. This platform includes some general improvments in graphics through intercepting D3D\OpenGL drawing (mainly for fast cockpit displays drawing, and dynamic textures generation), my own physics\dynamics and aerodynamics with interface to MATLAB for model verification, modeling and exporting tools for 3dsMAX, navigation database converter, etc... i was focused on main features of platform and aircraft systems, but now, i can integrate in sim ports rear features like precise weather, and i starting with FS9. I will make improvement in FSX port later... and P3D2 in also will be supported, but it based on D3D11 and i need to write one more graphic interface...
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