Jump to content
The simFlight Network Forums
niberon

FSUIPC PMDG747v3 missing offsets

Recommended Posts

Hi!

When I query it PMDG 747 v3 his undermentioned values, 0 come back always. Is it possible to repair this?

 

// 747QOTSII data structure
struct PMDG_747QOTSII_Data
{
...

    // More additional variables
    //------------------------------------------
    bool            ELEC_annunBatteryOFF;                // OFF light in the elec battery switch
    bool            FIRE_annunCargoDEPRESS;                // Freighter only
    bool            MCP_panelPowered;
    bool            COMM_RadioPanelPowered[3];
    bool            COMM_AudioControlPanelPowered[3];
    bool            TCAS_ATC_panelPowered;

    bool            FIRE_HandleIllumination[5];            // [0..3]: Engines 1-4, [4]: APU
    bool            WheelChocksSet;

    unsigned char   reserved[160];                        
};

 

Thanks,

  Niberon

Share this post


Link to post
Share on other sites
7 hours ago, niberon said:

When I query it PMDG 747 v3 his undermentioned values, 0 come back always. Is it possible to repair this?

Where are you looking -- how are you trying to get them? Does this involve FSUIPC at all? I'm afraid you have to give more details.

Pete

 

Share this post


Link to post
Share on other sites

Hello Pete!

Excuse me for the little information.
I developing cockpit modules and to communication LUA I use it.

PMDG 747 MCP Example:

-- Don't work, return value always 0
local function mcpPowered_calc()
  local pwr = ipc.readUB(0x6C9F)  -- bool  MCP_panelPowered 
(PMDG_747QOTSII_SDK.h)
  return pwr  -- Error: always 0
end

-- Working, but not really
local function mcpPowered_calc()

  local tieSwitch = ipc.readUD(0x6453)  -- Bus Tie switch 1-4
  local genOff    = ipc.readUD(0x646D)  -- Gen 1-4 off annunciator
  if (logic.And(genOff, 0xFFFF00) ~= 0x010100) then
    -- Gen 2 or 3 not off
    return true
  end
  if (logic.And(tieSwitch, 0xFFFF00) ~= 0) then
    -- Bus Tie switch 2 or 3 on
    if ((logic.And(genOff, 0xFF) == 0) and (logic.And(tieSwitch, 0xFF) ~= 0)) or ((logic.And(genOff, 0xFF000000) == 0) and (logic.And(tieSwitch, 0xFF000000) ~= 0)) then
      -- ((Gen 1 not off) and (Bus Tie Switch 1 on)) or ((Gen 4 not off) and (Bus Tie Switch 4 on))
      return true
    end
    if (ipc.readUW(0x6465) ~= 0) or (ipc.readUW(0x6469) ~= 0) then
      -- (Ext.Power 1 or 2 on) or (APU Gen 1 or 2 on)
      return true
    end
  end
  return false
end

function Sync_mcpPowered(force)
  local pwr = mcpPowered_calc()
 
if (force or (pwr ~= mcpPowered)) then
    mcpPowered = pwr
    if (hdfsMCP_hnd ~= 0) then
      local str = string.char(0, 1)  -- ReportId
      if (mcpPowered) then
        str = str .. string.char(1)
      else
        str = str .. string.char(0)
      end
      com.writefeature(hdfsMCP_hnd, str, 2)
    end
  end
end

function hdfsMCP_disp(force)
  Sync_mcpPowered(force)
  Sync_mcpIASBlank(0x659D, ipc.readUB(0x659D), force)
  Sync_mcpHeading(0x659E, ipc.readUW(0x659E), force)
  Sync_mcpAltitude(0x65A0, ipc.readUW(0x65A0), force)
  Sync_mcpVertSpeedBlank(0x65A4, ipc.readUB(0x65A4), force)
end

 

FSUIPC Document: Offset Mapping for PMDG 747QOTSII.pdf

6C90    4    FLOAT32    FMC_DistanceToDest

6C94    9    STR [9]    FMC_flightNumber

6C9D    Last byte  of second reserved area for PMDG 747QOTSII
 

PMDG 747 SDK: PMDG_747QOTSII_SDK.h

    float            FMC_DistanceToDest;                    // nm; negative if n/a  ipc offset: 0x6C90
    char            FMC_flightNumber[9];  // ipc offset: 0x6C94

    // More additional variables
    //------------------------------------------
    bool            ELEC_annunBatteryOFF;                // OFF light in the elec battery switch  ipc offset: 0x6C9D
    bool            FIRE_annunCargoDEPRESS;                // Freighter only  ipc offset: 0x6C9E
    bool            MCP_panelPowered;                            // ipc offset: 0x6C9F
    bool            COMM_RadioPanelPowered[3];        // ipc offset: 0x6CA0
    bool            COMM_AudioControlPanelPowered[3];  // ipc offset: 0x6CA4
    bool            TCAS_ATC_panelPowered;  // ipc offset: 0x6CA8

    bool            FIRE_HandleIllumination[5];            // [0..3]: Engines 1-4, [4]: APU  ipc offset: 0x6CAC
    bool            WheelChocksSet;
  // ipc offset: 0x6CB1
    unsigned char   reserved[160];                        // ipc offset: 0x6CB2
};

I hope for it so already understandable my problem.
 
Thanks,
  Niberon
Edited by niberon

Share this post


Link to post
Share on other sites

You have

 local pwr = ipc.readUB(0x6C9F)  -- bool  MCP_panelPowered

but 6C9F is not part of the Offsets provided. Where are you getting that information from. Please use the 747QOTSII offsets list provided! As it shows, the last byte provided is at offset 6C9C.

Pete

 

Share this post


Link to post
Share on other sites

Hello Pete!

Yes. I know that he is not provided. I ask it to be provide. PMDG recorded these few fields later, and it FSUIPC truncate the data structure currently.

PMDG is not in dubbing and it FSUIPC data structure. PMDG added on some fields meanwhile.
I calculated it anyway the 0x6C9F value. I believed it I try it. He did not succeed.☹️

I attach it current PMDG header file.

 

Thanks,

  Niberon

PMDG_747QOTSII_SDK_h.rar

Edited by niberon

Share this post


Link to post
Share on other sites
4 hours ago, niberon said:

Yes. I know that he is not provided. I ask it to be provide. PMDG recorded these few fields later, and it FSUIPC truncate the data structure currently.

I did not know about the added data in a later release. PMDG don't tell me these things. So yours in the first mention.

You didn't make a request for more data to be added, just a problem report that you were getting zero. Surely you should have referred to the punlished list of offsets before trying to use them, and make your request for extension then in a proper manner.

4 hours ago, niberon said:

I attach it current PMDG header file.

Thank you. We will see about adding the extra data in a future release, but you should understand that at present there is a more immediate need to resolve any outstanding problems which may be discovered with P3Dv5, it being a rather premature release (in our opinion).

When we have a version of FSUIPC with the additional data we shall supply you with a test version and ask you to check that all the fields are correct. To this end could you please send me an Email (it is easier then for me to mark it for attention): petedowson@btconnect.com.

Note that you'll need to be using a registered install of FSUIPC6.

Pete

 

Share this post


Link to post
Share on other sites

Hello Pete!

 

Thank you for you answer.

18 minutes ago, Pete Dowson said:

You didn't make a request for more data to be added, just a problem report that you were getting zero. Surely you should have referred to the punlished list of offsets before trying to use them, and make your request for extension then in a proper manner.

Very much were a task when I realised the problem and the priority of the problem was very low. I induced it through an other function temporarily it'll be fun. But I got a claim for the correction. I have to deal with him in the immediate future because of this.

24 minutes ago, Pete Dowson said:

We will see about adding the extra data in a future release, but you should understand that at present there is a more immediate need to resolve any outstanding problems which may be discovered with P3Dv5, it being a rather premature release

All right, thanks, I wait for it. Onto so much not it's urgent.

I try it with pleasure naturally. My public email: niberon@freemail.hu

I have FSUIPC6 registration.

Thanks and best regards,

Niberon

Share this post


Link to post
Share on other sites

Hello John,

I tested all of the new variables under FSInterrogate and LUA. He worked well everywhere. They work the offset events.

Thanks,

Niberon

Share this post


Link to post
Share on other sites

Hi Niberon,

do you use (or did you try) the offset area for the CDU screen data? This has also changed, with an additional 3 items (bytes) added to the structure. I'm looking at this now, but it looks like the new structure doesn't fit in the available offsets, so I may have to move these 3 new additional items to a different area. Just wondered if you have used/tested these.

John

Share this post


Link to post
Share on other sites

John,

I did not tested it CDU data structure. I do not use it. Yet. CDU screen PMDG draws it who, the button events ipc.control() they get in with his usage. I did not notice the new fields 🙂.

Thank you for the fast support,

Niberon

Share this post


Link to post
Share on other sites

Dear Pete and John,

I operate the PMDG B747-400 QOTS II v3 on FSX-SP2 and Win 7 x64 with registered FSUIPC4. The B744v3 from PMDG does not come with 2-D panels so I constructed my own working 2-D panel sets with my own XML gauge code and FSUIPC4-LUA scripts. I also built a hardware MCP+EFIS+DSP unit using Arduino Megas and FSUIPC4-LUA. Of course Pete's documentation for the FSUIPC offsets and the PMDG 747 SDK for Control Event ID's are the backbone of this implementation. You can see the system in operation here: https://www.youtube.com/watch?v=saFJ_xGBDTs

Anyway, all was going well with FSUIPC 4.974b until a few days ago when I saw a newer version FSUIPC 4.975a and decided to install it. And immediately thereafter, the B747v3 stopped working properly. Specifically, the inputs and outputs to and from my Hardware and XML gauges were not being read or linked properly to the PMDG software. Replacing the FSUIPC4 DLL with the earlier version 4.974b immediately solved the problem and everything started working again. I switched the modules back and forth a few times, so I can confirm that something has broken, at least as far as the B747v3 in FSX is concerned, in the move from FSUIPC 4.974b to 4.975a.

I have posted this report in this thread, because I suspect it may have something to do with the modifications that have been discussed here, which may or may not have been necessary for the FSX version of the B747v3, for which development ceased several months ago.

For the time being I am reverting to FSUIPC 4.974b in order to be able to fly this wonderful airplane again.

Would you please investigate?

Thanks and Regards,

Chakko.

Share this post


Link to post
Share on other sites
8 hours ago, ckovoor said:

For the time being I am reverting to FSUIPC 4.974b in order to be able to fly this wonderful airplane again.

Since FSUIPC4 ceased development a while back, and that recent change was only to do with the recognition of different ways that SimConnect gets installed with some Windows 10 installations, I think you are okay sticking to 4.974a since that works for you.

8 hours ago, ckovoor said:

Would you please investigate?

I'm afraid I don't have any PMDG aircraft and only have access to FSX-SE these days, so I doubt I'll be able to do that. Was 4.975a working well for you otherwise?  If not you'd need to supply Install and run-time Logs for us to check.

You also say 

8 hours ago, ckovoor said:

I suspect it may have something to do with the modifications that have been discussed here, which may or may not have been necessary for the FSX version of the B747v3

but of course this thread was concerned with FSUIPC6, not FSUIPC4.

Pete

 

Share this post


Link to post
Share on other sites

Dear Pete,

Apart from this problem with the PMDG B747-400 v3, FSUIPC 4.975a appeared to be functioning normally, but then that is only after a few days of testing, and not with all the aircraft that I fly. I need to do more extensive testing with all the other airplanes I fly before I can be certain.

So, I shall stick with FSUIPC 4.974b for the time being, but will sometime soon re-test 4.975a and supply you with Install and Run-Time Logs for you to check. But I will open a separate thread for that.

Thanks and Regards,

Chakko.

Share this post


Link to post
Share on other sites

I've checked the code in FSUIPC and as far as the PMDG aircraft are concerned I can't see any changes up to version 4.975a which could stop this data being seen.

I don't have those aircraft to test with, but I'll try to check further. Please get me some logging. Add these lines to the [General] section of the FSUIPC4.INI file:

Debug=Please
TestOptions=x400

run the sim and select you PMDG 737, 747 or 777 (one after the other if you have all three.

Then close and ZIP up the FSUIPC4.INI, FSUIPC4.LOG, and the Options INI files from the PMDG aircraft used.

I can't guarantee to solve this, but i'll take a look.

You can try this version of FSUIPC. 

 FSUIPC4974b.zip

If that works please let me know. 

Pete
 

Share this post


Link to post
Share on other sites

Dear Pete,

First, thank you very much for looking into this.

I shall be loading FSUIPC 4.975a and test-logging with the PMDG 737, 747 and 777, as I have all three, and will provide you with the zipped files, soon.

I am not sure why you have provided the FSUIPC 4.974b (dll), as I already have that, and I have mentioned in this thread that the problem does not occur with that version. The problem is only with FSUIPC 4.975a, and simply replacing that DLL with FSUIPC 4.974b clears the issue.

Also, as mentioned in the other thread concerning the B777 at : https://forum.simflight.com/topic/90304-pmdg-777-fsuipc-offsets-not-updating/?do=findComment&comment=546961 ,   the same problem occurs with the B777,  but not the B737. That is, the B737 functions normally with FSUIPC 4.975a, but the B777 does not.

Anyhow, I'll work on getting you the logs now.

Thanks,

Chakko.

Share this post


Link to post
Share on other sites

Dear Pete,

I started FSX and loaded the PMDG 737v1.2, waited for it to complete initializing systems, then after about a minute loaded the PMDG 747-400v3.0.  A PMDG popup immediately warned that it is not a good idea to load a second PMDG aircraft in succession, but I went on nevertheless, and the 747v3 completed loading. Again, after a minute or so, I tried loading the PMDG 777v1.1, and again ignored the PMDG warning ..... but the 777 did not load completely, i.e. all panels were not displayed, and the menu options stopped working. So I had to shut down FSX. I tried a second time with similar results.

It seems that the maximum number I can load in succession is 2 PMDG aircraft.

So would it be okay if I sent you a separate log for each aircraft, with the sim restarted each time? Or would you want me to load them in pairs, like 737-747, 747-777 and 737-777?

I await your instructions.

Chakko.

 

Share this post


Link to post
Share on other sites

Dear Pete,

I attach separate zip folders for each of PMDG B737v1.2, B747v3.0 and B777v1.1, with the simulator restarted each time, and running FSUIPC 4.975a. Please note that I did not connect the Arduino-based MCP/EFIS/DSP hardware each time, so the log files may contain the LUA error: bad COM handle, which can be ignored.

Please let me know if I can provide any further information.

Chakko.

B737v1.2.zip B747v3.0.zip B777v1.1.zip

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • 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.