Jump to content
The simFlight Network Forums

tim arnot

Members
  • Posts

    2,866
  • Joined

  • Last visited

About tim arnot

  • Birthday 01/01/1970

Contact Methods

  • Website URL
    http://www.tasoftware.co.uk

Profile Information

  • Location
    England. Just past the bus stop, on the left.

tim arnot's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Hi Tim do you need an internet connection to run this, and does it run with FS or seperately

    Regards

    Charles

  2. There are some optimisations left to do, such as a check against wxstationlist.BIN, but yes, all is now tickety boo. Thanks. :) Tim
  3. Actually that's not the immediate problem. I think the confusion arose from seeing C000 coming back in the log file, and I just ended up getting muddled in this conversation. The code at this time is only reading the B800 block for FSX data (but it will need to look at the CC00 block for FS9, so you have at least saved a repeat match! :lol: ) That I think is the crux of the matter. Sometimes it takes another pair of eyes (and big writing) to spot what is staring you in the face :wink: It's the gnawing belief that I haven't got something right, and I know it has to be somewhere in this area, so I question everything, even if it's "obvious" and something will eventually fall out. If I hadn't pushed the issue, the answer wouldn't have come out (at least not so quickly). I don't care if it makes me look like an idiot - all I'm doing is trying to get my code working, and if that means looking like an idiot, well I'm thick skinned, and I've been called much worse :wink: Cheers Tim
  4. Ok, so I learn these are interpolated values. Now I can figure out what to do with them. Because my program is not interested in interpolated data, and so I don't request it. It's not what I want, so I don't use it. As for "I'm not sure why you would not know this", like 99.9% of all developers I don't know the intimate minutae of every function that I don't use, and neither can I be expected to. That's why support forums were invented. Out of sync with itself. I make a call that requests data for weather station "AAAA", and watch the timestamp change, and I've got back, say, "????" (purely for the sake of argument). I wait for maybe 10 seconds just to see if anything happens, but no. Then I call again for station "BBBB", and immediately back comes data for "AAAA" Because Simconnect behaves differently, and that's where I've come from. Now I understand that FSUIPC gives me interpolated data, I can deal with it appropriately. Oh but I have. Backwards, forwards, printed, upside down. Nothing that I click on lets me type or change anything. Which is why I asked. It can be inferred, but it isn't stated. Because this piece of code isn't working right, everything is suspect and open to query. "Logic" can be faulty, and what isn't stated must be assumed, and we all know where assuptions can get us. Rule one in aviation is "there are no stupid questions", and this should also be applied to support. Planes have crashed and people have been killed because someone didn't query something that somebody else thought should be bleedin' obvious. I'm not suggesting this is anything as momentous, but no amount of intimidation or questioning my logic is going to stop me asking a "dumb" question if I think something isn't clear. BTW, you didn't answer, if I'm writing to CC00 and reading from C000 (I infer, since the B800 Metar data is "just a bonus"), do I monitor the CC timestamp or the C0 timestamp? Is it the writer or the reader? :wink: Cheers Tim
  5. Poor editing on my part -sorry. The nature of the question changed during the writing I am reading it from the B800 "FSX Extended METAR" block. The data is also reproduced in FS9 format in the C000 block. Here are examples of the two FSX returns: 18:18:56 WX Start time stamp: 34234669 18:18:56 Raising PLAN WX Event: EGBE&amp;A86 041239Z 26208KT&amp;D304NG 228V296 32128KT&amp;A828MG 32127KT&amp;A1742NG 32122KT&amp;A2657NG 34523KT&amp;A3571NG 05731KT&amp;A5400NG 22438KT&amp;A7229NG 32750KT&amp;A9058LG 33451KT&amp;A10277NG 32237KT&amp;A11801LG 80KM&amp;B-1586&amp;D2652 2ST035&amp;ST001FNMN000N 06/02 -2/-17&amp;A828 -5/-10&amp;A1742 -11/-21&amp;A2657 -17/-31&amp;A3571 -28/-32&amp;A5400 -36/-49&amp;A7229 -41/-49&amp;A9058 -45/-49&amp;A10277 -46/-49&amp;A11801 Q1000 @@@ 30 -2 321 28 | 60 -5 321 27 | 90 -11 321 22 | 120 -17 345 23 | 180 -28 57 31 | 240 -36 224 38 | 300 -41 327 50 | 340 -45 334 51 | 390 -46 322 37 | 18:18:58 WX Start time stamp: 34238959 18:18:58 Raising PLAN WX Event: ????&amp;A0 041253Z 01100KT&amp;D310NG 80KM&amp;B-1500&amp;D2748 1ST040&amp;ST001FLMN000N 03/01 Q1001 I've never had a "????" return from SimConnect - it only ever throws a Weather not available exception if you ask it for data that's not at a weather station It implies, and I seek confirmation. You have been neck-deep in FSUIPC for many years and such things to you seem blindingly obvious. For someone who is just starting out, that is not the case. I am also approaching from the opposite direction, namely that I have an existing working connection with SimConnect, but have been asked to add support via FSUIPC. Which is why I'm trying to work with the newer FSX data rather than old compatible stuff. Yes. I already have code to decode the FSX extended METAR, so it makes sense to use it. Yes I did. Read my code again. The "" is the waypoint value that is passed in to this code from outside. It's significance is "no waypoint" and triggers to code to look for the nearest weather to the aircraft. If the id is "", then it calls FSUIPC with "<??>" which is clearly documented as "give me the nearest weather station to the user aircraft". And this is working fine. When the id is specified, if I think it might be a weather station (a simplistic test - just checks for a 4 character length string), it will use the value directly. Otherwise it uses four spaces " ". This is where I'm getting problems -- specifying four spaces only ever brings back the "????" result shown above. Specifying an ICAO does get the right data, but it gets very out of sync. Which is why I have this test. I started off just using the lats / lons, and " ", but that never got me back anything other than ???? How do you make WEATHERSET2 bring back data from an arbitary station or lat/lon? All the display appears to be read only and there are no boxes to type these thing in to. Yes but the FSX-format data comes back in the B800 zone, which does NOT have a timestamp. Hence me not being sure which one to use. I'm using the CC00 block one on the basis that that is where the lat/lon is written. But if the data comes back in B000... Or am I supposed to read the FS9 format data first from C000 (would I then use the timestamp from the Read block or the write block?) and *then* read the FSX data?
  6. I'm trying to read the weather at the nearest weather station, but getting myself into somewhat of a muddle in the process. I'm using Paul's managed DLL, and FSX (the code will also need to cope with FS9, but one thing at a time...) The scenario is: My plane is parked at Wellesbourne. I request the nearest weather, which should be Coventry (EGBE), and that appears to be fine. But I also want to get weather information about my planned route. And so I try passing in my route details, and here it comes unstuck. Sometimes I et back EGBE, sometimes I get back ???? (presumably that's the 'global' weather, and occasionally I get back the weather station I was after (although not till the following call!) Now there has to be something that I haven't understood, given that the 'New Weather Interface' doc only talks about FS9, and the only FSX reference I can find is a bried comment under the B000/C000 offsets The offsets referenced are: Offset wxFSX = new Offset("Weather", 0xB800, 2048); // Weather Reporting Area (FSX only) Offset wxSetICAO = new Offset("Weather", 0xCC08, 5); // Set ICAO Offset wxSetLat = new Offset("Weather", 0xCC10); // Set Latitude Offset wxSetLon = new Offset("Weather", 0xCC18); // Set Longitude Offset wxTimeStamp = new Offset("Weather", 0xCC24); // Time Stamp This has been mashed about a bit in trying ti get it to work, but hopefully you can understand the gist of it... The snippet is called from a timer. It's passed a lat, lon and an ID code. The ID code is "" for "nearest weather to user", otherwise it is a waypoint identifier, which may be an airport ICAO, VOR id etc. if (FSUIPCConnection.FlightSimVersionConnected == FlightSim.FSX ) { FSUIPCConnection.Process("Weather"); uint timeStamp = wxTimeStamp.Value; uint ts2=0; LogEvent(this, new LogEventArgs("WX Start time stamp: " + timeStamp)); if (wptID == "") { wxSetICAO.Value = "&lt;??&gt;"; // Nearest station to user } else { if (wptID.Length == 4) wxSetICAO.Value = wptID; else wxSetICAO.Value = " "; // Nearest station to waypoint? wxSetLat.Value = Lat; wxSetLon.Value = Lon; } wxSignature.Value = 0; FSUIPCConnection.Process("Weather"); ts2 = wxTimeStamp.Value; LogEvent(this, new LogEventArgs("WX time stamp: " + ts2)); while (timeStamp == ts2) { System.Threading.Thread.Sleep(20); FSUIPCConnection.Process("Weather"); LogEvent(this, new LogEventArgs("Nearest WX to " + wptID + " (LAT " + Lat.ToString() + " LON " + Lon.ToString() + "): " + wxFSX.Value.ToString())); ts2 = wxTimeStamp.Value; LogEvent(this, new LogEventArgs("WX time stamp: " + ts2)); } if (wxFSX.Value != "") { Weather wx = new Weather(wxFSX.Value); WeatherReportEvent(this, new WeatherReportEventArgs(wx, wptID == "" ? false : true)); } } It's hard to post logs, since they run into megabytes very quickly, but If you could point me in the right direction, I'd be very grateful -- this is driving me bald! One area of concern is the time stamp. I'm not sure if this is needed for FSX - sometimes it doesn't seem to change for several seconds. I'm not even sure I'm referencing the right timestamp, since there seems to be one associated with each Cxxx block. Any light you can shed will be a great help. Thanks Tim
  7. You'll be best off asking your questions in Pete Dowson's FSUIPC forum, which is further down the list, in the Commercial Support Forums section. There will be people there who can help you.
  8. My Garmin 296 provides facilities far beyond those in the FS internal GPS - roads, towns, obstacles, VRPs, user waypoints, terrain warnings, vertical nav profile, next heading alerts, etc, etc. Driving the 296 from FS helps keep me current on the device without the £110+/hour cost of renting a plane, and the potential danger of being distracted by the GPS at a critical time inside a real cockpit. The extra information means I can identify my position as Shipston-on-Stour, instead of 10 miles South of EGBW -- very important for situational awareness, particularly if you're a RW pilot (which is likely, given the cost of these things!). I even can program the 296 to work like an ILS, but there's no way I'm going to teach myself how it works in a real plane! In summary, the internal FS GPS is feature poor, and not even close to a simulation of a Garmin 295, despite what it says on the skin. As regards GPSOut, the FSX version is better than FS9. The functionality might be the same, but it is more stable. In FS9, it would glitch from time to time, and throw out a position report that was somewhere completely different (like maybe in the middle of the ocean), which could unsettle the GPS, and cause it to flag the current leg as completed when it wasn't. In FSX, the output is rock stable. The one feature I'd like to see that isn't present, is the ability to transfer flight plans back and forth. The FSX planner may be able to use user waypoints, but it's useless for trying to route via a town (say) if you have no indication of where that town is. I can accurately and quickly set up the flightplan on the Garmin (or retrieve it from stored memory), it would just be nice to have the ability to transfer it to FS. or vice versa even.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.