Jump to content
The simFlight Network Forums

Offset 0898 - (Eng 1 N1 %) bug?


Recommended Posts

(Using FSUIPC 4.416 in FSX)

Pete,

I'm trying to read the "Eng 1 N1" for the default 206 helicopter in FSX from offset 0898. This works in FS9 but FSX always returns 100.

However, if I read offset 2000 "Turbine N1 %" and *then* read 0898 it reads the correct value. But if read it again it's back to 100%.

I realise I can just read 2000 to get the N1 %, but i thought I'd report it since the behaviour differs from FS9.

Also, 08F0 "Eng 1 Turbine Temp" does not work in FSX (again, using the Bell 206.) It just reports a static value 518 regardless of what the engine's doing. In FS9 this varies as the N1 does.

Regards,

Si

Link to comment
Share on other sites

I'm trying to read the "Eng 1 N1" for the default 206 helicopter in FSX from offset 0898. This works in FS9 but FSX always returns 100.

However, if I read offset 2000 "Turbine N1 %" and *then* read 0898 it reads the correct value. But if read it again it's back to 100%.

Since your reads are "passive" in FSUIPC4, merely reading whatever was last provided by SimConnect, there is actually no way possible for the read of one location to affect the value read from another. The code fulfilling your requests merely copies the values in its memory, which are replenished by SimConnect, asynchronously, when they change (and only when they change).

Also, 08F0 "Eng 1 Turbine Temp" does not work in FSX (again, using the Bell 206.) It just reports a static value 518 regardless of what the engine's doing. In FS9 this varies as the N1 does.

Hmm. Shame you provide no logs to show this. it is easy enough to see values in real time -- simply add them to the monitor in FSUIPC's logging tab. You can show them on screen ("FS display" checked) and in the "normal log". With the log option checked, fSUIPC will actually show the relevant SimConnect variable being read, the raw value from which the offset version is computed.

Here's an extract of the logged results, with the 206 loaded. I don't pretend to know what these values mean when it comes to helos -- FS is notoriously odd in how it simulates them. Sometimes they are like prop planes, sometimes not. Trying to map the right values to the old FS98-compatible offsets (the 08xx-0Axx region) is well nigh impossible to do consistently.

I've annotated the log entries for you. Maybe you can advise me what SHOULD actually be provided in each of these offsets, for the 206, and how I can make that work for other helos too when they all differ?

   348110 \\LEFT\G\FSX\SimObjects\Rotorcraft\Bell206B\Bell_206B_JetRanger.AIR
   349078 SimRead: 0896="TURB ENG N2:1" [also 2008]
            FLT64: 99.9853181016  [i]<<<<<< offsets 0896 and 2008 populated from the same SimVar "TURB ENG N2"[/i]
   349078 SimRead: 0898="TURB ENG N1:1" [also 2000]
            FLT64: 79.0117452359  [i]<<<<<< offsets 0898 and 2000 populated from the same SimVar "TURB ENG N1"[/i]
   349078 SimRead: 08F0="TURB ENG ITT:1"
            FLT64: 15.0111111111  [i]<<<<<< offsets 08F0 populated from SimVar "TURB ENG ITT"[/i]

Okay so far, but then:

   349078 SimRead: 2400="GENERAL ENG RPM:1" [also 0898] [also 08C8]
            FLT64: 394.900097939  [i]<<<<<< offsets 0898, 08C8 and 2400 populated from the same SimVar "GENERAL ENG RPM"[/i]
   349078 SimRead: 2408="GENERAL ENG PCT MAX RPM:1" [also 0896] [also 0898]
            FLT64: 0.999853181016 [i]<<<<<< offsets 0896, 0898 and 2408 populated from the same SimVar "GENERAL ENG PCT MAX RPM"[/i]

Note how both of these would change the value for 0898 already read!

(Actually it isn't quite like that. Some of those links are used to compute the RPM scaler, again to match FS98 offsets).

Now as far as I knew, only one of these would be actually CHANGING for any one aircraft. I thought this was the case for the original helicopters investigated. If the 206 model is actively changing both, this would explain the varied values you read -- not the fact that you also read 2000. That cannot have anything to do with it!

The end result of the one cycle you see above is:

   349594 Aircraft="Bell 206B JetRanger"
   351625 Monitor IPC:0896 (U16) = 16382
   351625 Monitor IPC:0898 (U16) = 12945
   351625 Monitor IPC:08F0 (S32) = 245942
   351625 Monitor IPC:2000 (FLT64) = 79.0117

which seems okay, though I do see that the ITT value in 08F0 isn't changing after this initial reading. Does the 206 sport an ITT read-out? You compare it with FS9 -- is the same aircraft in FS9?

One thing, though. Some of this stuff got changed in the recent interim updates to suit another facilty I put in (the one to "spoof" the engine values) and there may be bugs in it in any case. You say you are using FSUIPC 4.416. Could you just try the release version, 4.40 (delete the FSUIPC4.DLL from the FSX modules folder then re-run the 4.40 installer, please). Let me know if you see the same there.

But please, please, do use the logging facilities. That's what they are for.

If there are conflicting values being used to populate the same offsets, I'd need to try to resolve those somehow. But how do I tell which to choose when they are all or both changing? Testing the name to be the "206" isn't enough, and it doesn't appear to be enough to detect helo against prop against jet. Any ideas?

I think much of this problem arises from the need to try to force-match all the new model types onto the original FS98 offsets. I wish I could get away from that, but too many cockpit hardware setups and gauges depend on them. Probably for helos, because they were not supported in FS98 in any case, folks should use the newer variables, and I can add other new ones if more are needed and available -- for instance the ITT equivalent on the 206.

Regards

Pete

Link to comment
Share on other sites

I will try it again tonight and record a log.

With 4.40, you mean, to make sure I've not messed something up between 4.40 and 4.416? I don't want logs now for 4.416.

Please try 4.421, just posted in the Updates announcement. I now don't overwrite 0896 and 0898 with other values IF the aircraft type (0609) says "Helo". That didn't seem to matter with the other helos.

I can find no SimConnect variable which supplies any varying ITT or TIT in any units for the 206. I can't see where the gasuge is to even check it. Are you sure this aircraft is so equipped? Is the value in FS9 the same as one of the newer upper-offsets -- maybe I can get it if i knew which it was, but there's nothing named in SimConnect as a "temperature" which seems to work. If you do find it, please let me know.

Regards

Pete

Link to comment
Share on other sites

Pete,

I just wrote this whilst you were obviously typing your reply. I'll post it anyway for your information and then try what you suggest:

---

Pete,

Here's a quick log, performed using FSInterrogate and FSUIPC 4.40.

As you can see, the first read of 0898 returns a valid value (about 79%) but if I immediately call it again, it returns 16384 (100% N1.)

Then I read 2000 and it returned 79% in 8-byte float format.

Then I called 0898 again, and this is where it didn't behave exactly as I found last time because it read 100% again a couple of times.

Then I went back and read 2000 and tried 0898 again at which point it read 79% again.

  • ********* FSUIPC4, Version 4.40 by Pete Dowson *********
    FSUIPC4 Key is provided
    WIDEFS7 not user registered, or expired
    [Continuation log requested by user]
    Running inside FSX (SimConnect Acc/SP2 Oct07)
    Module base=61000000
    Wind smoothing fix is fully installed
    628172 System time = 17:48:33, FSX time = 11:03:47 (16:03Z)
    651297 READ0 0898, 2 bytes: 2B 33 +3
    655844 READ0 0898, 2 bytes: 00 40 .@
    668375 READ0 2000, 8 bytes: 12 BC E2 5C 88 F9 53 40 ...\..S@
    675515 READ0 0898, 2 bytes: 00 40 .@
    679437 READ0 0898, 2 bytes: 00 40 .@
    688890 READ0 2000, 8 bytes: 93 3D 68 1C 8E F9 53 40 .=h...S@
    698234 READ0 0898, 2 bytes: 23 33 #3
    711828 READ0 0898, 2 bytes: 00 40 .@
    715859 READ0 0898, 2 bytes: 00 40 .@
    725234 READ0 2000, 8 bytes: 76 B1 E9 32 97 F9 53 40 v..2..S@
    732703 READ0 0898, 2 bytes: 23 33 #3
    736953 READ0 0898, 2 bytes: 00 40 .@
    741469 Sim stopped: average frame rate for last 113 secs = 19.1 fps

The value in 2000 is always correct, as you are reading the correct SimConnect variable "TURB ENG N1" for it. The only reason I'm reading 0898 is that i'm trying to debug a friend's SimKits gauges which don't show N1 correctly in FSX. A scan of an FSUIPC log he recorded shows that they're reading 0898, which as demonstrated here, is unreliable.

I can get around it by reading 2000 and spoofing that value into 0898, but I just thought i'd let you know there may be a problem.

With regards to the helicopter turbine temperature variable, "ENG TURBINE TEMPERATURE" is the correct simulation variable, but the variables list in the FSX SDK says this is applicable to the Bell helicopter (and thus those derived from it also) only. Reading FSUIPC offset 08F0 in FS9 yields the correct value (Deg C * 16384) but in FSX it always reads around 15 * 16384. (Edit - I mean the sim var reads correctly via SimConnect, but the offset that did work in FS9 doesn't in FSX.)

Regards,

Si

Link to comment
Share on other sites

       349078 SimRead: 2400="GENERAL ENG RPM:1" [also 0898] [also 08C8]
                FLT64: 394.900097939  [i]<<<<<< offsets 0898, 08C8 and 2400 populated from the same SimVar "GENERAL ENG RPM"[/i]
       349078 SimRead: 2408="GENERAL ENG PCT MAX RPM:1" [also 0896] [also 0898]
                FLT64: 0.999853181016 [i]<<<<<< offsets 0896, 0898 and 2408 populated from the same SimVar "GENERAL ENG PCT MAX RPM"[/i]

If "GENERAL ENG RPM:1" returns 394 for the 206 then it's reporting the down-geared output shaft RPM, not the engine RPM (which is about 29,000 RPM at full chat.)

I assume that "GENERAL ENG PCT MAX RPM:1" is the percentage 394 of max 395. (But scaled to 1 and not 100.)

So, these values shouldn't be used to effect 0898 and 0896. They come from "TURB ENG N1" and "TURB ENG N2" alone.

The "ENG ROTOR RPM" also returns about 394 but it differs from the "GENERAL ENG RPM:1" value because if you roll off the throttle the rotor free-wheels (and RPM can be maintained during auto-rotation) and so the rotor RPM can be higher than the engine gearbox output shaft RPM.

Si

Link to comment
Share on other sites

Here's a quick log, performed using FSInterrogate and FSUIPC 4.40.

Why use FSInterrgogate when you can get detailed logging, including the source SimConnect values being used, directly in FSUIPC's Monitor, as I suggested?

As you can see, the first read of 0898 returns a valid value (about 79%) but if I immediately call it again, it returns 16384 (100% N1.)

Then I read 2000 and it returned 79% in 8-byte float format.

Then I called 0898 again, and this is where it didn't behave exactly as I found last time because it read 100% again a couple of times.

Then I went back and read 2000 and tried 0898 again at which point it read 79% again.

All this to'ing and fro'ing in FSInterrogate is completely unnecessary if you used the monitor as it will show all these changes, all the ones you'd be missing too -- and live on screen if you wanted.

Anyway, that's exactly the same as in 4.416, so it will probably have been the same since 4.000. At least it isn't something I've mucked up recently.

The value in 2000 is always correct, as you are reading the correct SimConnect variable "TURB ENG N1" for it.

I know. We've been through this before. I am also reading another value into it. Because SimConnect only supplies values when they change, this works perfectly when one value is changed in some aircraft and the other in others. I thought this to be true of these values for 0898 -- but it evidently isn't -- but only for the 206!

I don't want to mess the values up for al the other aircraft, which is why I've done what I said.

I can get around it by reading 2000 and spoofing that value into 0898, but I just thought i'd let you know there may be a problem.

Yes, you explained that too. There's no need to repeat things, I do remember! ;-)

With regards to the helicopter turbine temperature variable, "ENG TURBINE TEMPERATURE" is the correct simulation variable

Ah. I hadn't spotted that one, or thought it not the relevant one. I'll see if that works.

Regards

Pete

Link to comment
Share on other sites

With regards to the helicopter turbine temperature variable, "ENG TURBINE TEMPERATURE" is the correct simulation variable

Ah. I hadn't spotted that one, or thought it not the relevant one. I'll see if that works.

Okay, I think everything is now okay, 0898 and 08F0, if you could double check for me -- FSUIPC version 4.424, now available in the Updates announcement.

Thanks,

Pete

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.