Jump to content
The simFlight Network Forums

MSFS only as Visual Scenery


yindengxie

Recommended Posts

Hi,

We have been using FSUIPC4 and FSUIPC5 to add on FSX and P3D,

and the FSX and P3D are used only as the Visual Scenery for our simulators.

Our same program to communicate with FSUIPC4 to FSX or 

to communicate with FSUIPC5 to P3D, works very well.

It means that our program can send Lat, Lon, Altitude, Pitch, Bank, Heading to

locate FSX and P3D at any assigned  positions, once  FSX and P3D are started.

Likewise, we are now using FSUIPC7 with MSFS 2020,  and MSFS 2020 is 

used only as the Visual Scenery for our simulators.

Question:

After FSUIPC7 with MSFS 2020 is started,  our same program to communicate

with FSUIPC7 to MSFS 2020. Our program sends Lat, Lon, Altitude, Pitch, Bank,

Heading to FSUIPC7 with MSFS 2020 as Runway initial position , however MSFS

2020 Scenery can not well be located at the assigned Runway initial positions

(Lat, Lon, Altitude, Pitch, Bank, Heading).  

THANKS for your Help and Supports!

  

Link to comment
Share on other sites

After FSUIPC7 with MSFS 2020 is started, what status MSFS 2020 should be set

(operated) to wait for FSUIPC7 to input Lat, Lon, Altitude, Pitch, Bank, Heading?

In other words,  after FSUIPC7 with MSFS 2020 is started, what status MSFS 2020

should be set (operated) ?  then to start our program to begin to send  Lat, Lon,

Altitude, Pitch, Bank, Heading to FSUIPC7-> MSFS 2020?

THANKS for your Help and Supports!

Link to comment
Share on other sites

There are various offsets that you can use/monitor to determine the state of MSFS (connected or not, pause state, in main menu) and the aircraft state. Please check the documentation. If you need an aircraft loaded and ready before your program sends its lat, lon, etc (and to whatever that applies!), then you probably want to monitor the ready-to-fly indicator in offset 0x3364. Also see 0x03365. 

John  

Link to comment
Share on other sites

THANKS Mr. John Dowson!

You always answer my questions quickly and give me great help!

 "to determine the state of MSFS (connected or not, pause state,

 in main menu) and the aircraft state. "   What means your "main menu"?

 Is the "main menu" on MSFS ? 

 Best Regards!

Link to comment
Share on other sites

37 minutes ago, yindengxie said:

in main menu) and the aircraft state. "   What means your "main menu"?

 Is the "main menu" on MSFS ? 

The 'Main menu' is the initial (main) menu and the one that you go back to when you end a flight, containing access to the various features with the WELCOME page, the World map, Flight Training, etc. When connected to MSFS, you are either in the 'main menus' or are in a flight (which can be paused of course).

 

Link to comment
Share on other sites

THANKS Mr. John Dowson!

I  use the following program to get 0X3364 and 0X3365 values.

uint8 Indicator  = 8;
uint8 Indicator2 = 9;

if (!FSUIPC_Read(0x3364, 1, &Indicator, &dwResult)) 
 { 
  printf("Read Error \n");
 }
 else
 { 
  FSUIPC_Process(&dwResult);
  printf("Indicator = %d ", Indicator);
 }

 if (!FSUIPC_Read(0x3365, 1, &Indicator2, &dwResult)) 
 { 
  printf("Read Error \n");
 }
 else
 { 

22 hours ago, John Dowson said:

There are various offsets that you can use/monitor to determine the state of MSFS (connected or not, pause state, in main menu) and the aircraft state. Please check the documentation. If you need an aircraft loaded and ready before your program sends its lat, lon, etc (and to whatever that applies!), then you probably want to monitor the ready-to-fly indicator in offset 0x3364. Also see 0x03365. 

John  


  FSUIPC_Process(&dwResult);
  printf("Indicator2 = %d \n", Indicator2);
 }
---------------------------------------------------------------------------

After starting FSUIPC7 with MSFS, I get the MSFS WELCOME page:

WORLD MAP, FLIGHT TRAINING, ......,  My above-mentioned program 

reads FSUIPC7 and gets Indicator (0X3364)  = 0, Indicator2 (0X3365) = 0.

then, my program sends initial Runway positions Lat, Lon, Altitude, Pitch,

Bank, Heading to FSUIPC7=> MSFS 2020, however, MSFS 2020 no reaction

to the sending position.

What is my problem? Please you help me, THANKS! 

Link to comment
Share on other sites

14 hours ago, yindengxie said:

What is my problem? Please you help me, THANKS! 

I suggest that you should initially just log the values in those offsets. Here's what I see when I log those offsets when starting MSFS (and MSFS auto-starts FSUIPC7):

Quote

 ...
      750 Monitor IPC:3364 (U8) = 255
      750 Monitor IPC:3365 (U8) = 0
      750 Monitor IPC:3124 (U8) = 0
      750 Monitor IPC:0264 (U16) = 0x0
...
     8500 Monitor IPC:3124 (U8) = 110
     8500 Monitor IPC:0264 (U16) = 0x1
...
    53718 Monitor IPC:3365 (U8) = 1
    56000 Aircraft loaded: running normally now ...
    56000 Monitor IPC:3365 (U8) = 0
...
    56703 Aircraft="Airbus A320 Neo Asobo"
    64125 -------------------- Starting everything now ----------------------
    64125 Starting WideServer now ...
    64156 Monitor IPC:3364 (U8) = 0
...
    65468 Monitor IPC:0264 (U16) = 0x0
    65468 Monitor IPC:3365 (U8) = 1
 

As you can see, the flags change several times during start-up. This start-up sequence finishes when 0264 (pause indicator) contains 0 and 3365 (in-menu indicator) contains 1, and you will be in the main menu. 

Then, you set-up a flight and press the Fly button, you see these changes:

Quote

  1586156 Monitor IPC:3365 (U8) = 3
  1586156 Monitor IPC:0264 (U16) = 0x1
  1586156 Monitor IPC:3365 (U8) = 2
  1587484 Monitor IPC:3365 (U8) = 0
  1593937 Planned flight from LEVX to LEBB
  1593937 C:\USERS\JLDOW\APPDATA\ROAMING\MICROSOFT FLIGHT SIMULATOR\MISSIONS\CUSTOM\CUSTOMFLIGHT\CUSTOMFLIGHT.PLN
  1594047 C:\Users\jldow\AppData\Roaming\Microsoft Flight Simulator\MISSIONS\Custom\CustomFlight\CustomFlight.FLT
  1668547 Monitor IPC:0264 (U16) = 0x0
 

So the sim is set to a pause state (0264 (U16) = 0x1), the in-menu flag is cleared (3365 (U8) = 0) and then the sim is un-paused (0264 (U16) = 0x0).
You probably want to start sending your commands after the in-menu flag is cleared, and maybe also after the final un-pause.

John

Link to comment
Share on other sites

John:
 
 Very many thanks for your detailed answer.

I  will test our application according to your suggestion.

If it is convenient for you, I expect to get your further help
for the following questions:

 1) How to get your "Quote log"?  I also want to know the start-up
    sequence of MSFS.

 2) Just as I said before, MSFS 2020 is only used as the Visual Scenery
     for our simulators.  For P3D, after press "start", our program begins 
     to send Lat, Lon, Altitude, Pitch, Bank, Heading to FSUIPC6 => P3D, 
     to locate the initial runway (Scenery) at any positions in the world. 
     Then we start our simulation program to fly. Likewise, we want to 
     MSFS 2020 works in the same way.  After Starting MSFS with FSUIPC7, 
     we wait for the MSFS to enter the main-menu: WELCOME, WORLD MAP, 
     FLIGHT TRAINING,......! 

     Question: In this case (screen), now what sequence settings are needed 
     first to send to FSUIPC7 => MSFS? so that we can locate the initial runway 
     (Scenery) at any positions of MSFS in the world, then we start our simulation 
     program to fly.
    
     Should we send 0x0262 value 0 to set for un-pause?
   
     THANKS for your Help! 
 

Link to comment
Share on other sites

10 minutes ago, yindengxie said:

1) How to get your "Quote log"?  I also want to know the start-up
    sequence of MSFS.

use the Log->Offsets option to log the offsets that you want to monitor. If you keep the console window open, you can see the messages logged in real-time.

10 minutes ago, yindengxie said:

Likewise, we want to 
     MSFS 2020 works in the same way.

 

But you can't - its a different sim and works in a different way. You need to be out of the main menu before you send anything.

10 minutes ago, yindengxie said:

After Starting MSFS with FSUIPC7, 
     we wait for the MSFS to enter the main-menu: WELCOME, WORLD MAP, 
     FLIGHT TRAINING,......! 

But  when in the main menu, there is no aircraft, airport, lat, lon, etc. You set this up in the main menu.

10 minutes ago, yindengxie said:

     Should we send 0x0262 value 0 to set for un-pause?

Why? If you check the log extract I sent, you will see the pause is only temporary, and it is unset later when you are finally 'ready-to-fly'. This just seems to be part of the MSFS sequence it goes through when loading a flight.

I suggest you monitor those offsets and work out for yourself when your software needs to start acting - I can't do that for you!

John

 

Link to comment
Share on other sites

John said: "But when in the main menu, there is no aircraft, airport, Lat, Lon, etc. 
You set this up in the main menu."

Just as I said before, MSFS 2020 is only used as the Visual Scenery for our simulators.

We do not need the aircraft, airport, runway, Lat, Lon, Altitude, Pitch, Bank, Heading 

provided by MSFS or set on MSFS!  MSFS is only waiting for our program to send

the airport, runway, Lat, Lon, Altitude, Pitch, Bank, Heading at the Visual Scenery

(WITHOUT AIRCRAFT on the screen to fly).    FSX and P3D work in this way.

This only is the clarification for our application.

 THANKS John!  

Link to comment
Share on other sites

I understand...but you still need to wait for MSFS to be in the correct state to understand your requests....
I don't know how you app works, but be aware of the different changes to those offsets that you will see depending upon when FSUIPC7 is started. So you will see different values in those offsets depending upon when FSUIPC7 is started/connected, but the final state of the offsets should be the same and correct.

John

Link to comment
Share on other sites

John, Thanks for your reply!

Our application in FSX and P3D works in the following way:

1)  Press "Start"  FSX or P3D  (in the same time also start your add on FSUIPC6)

2)  FSX or P3D  (also your FSUIPC6 ) is waiting for .......

3) Start our small program (coped from your example program) to run
   on the Visual computer: The small program receives Lat, Lon, Altitude,
   Pitch, Bank and Heading from LAN (UDP) and immediately sends these 
   values (Lat, Lon, Altitude, Pitch, Bank, Heading) to your FSUIPC6 => FSX 
   or P3D. Note: Without Aircraft on the Screen (Scenery).

4) FSX or P3D continually receives the Lat, Lon, Altitude, Pitch, Bank, Heading

   to locate  the Visual Scenery (Runways) at assigned positions of our simulator.

We want to MSFS to work the same way.

-----------------------------------------------------------------------------

Using the above-mentioned complete same program (way), we also can

send  Lat, Lon, Altitude, Pitch, Bank, Heading to MSFS through your FSUIPC7
to see the Scenery movement. However, this initial process can NOT 
be started from our assigned initial Runway. 

    Best Regards!

    Dengxie


 

Link to comment
Share on other sites

42 minutes ago, yindengxie said:

I do not know how to set (operate) on MSFS to what case, so that MSFS is waiting

for our input values (Lat, Lon, Altitude, Pitch, Bank, Heading) through FSUIPC7 .

But that is what you have to decide! What state does the FS have to be in for your software to work? Probably when out of main menu with a plane loaded - if not, whatever you send will be ignored or reset when the user starts whatever flight he has chosen from the main menu.

MSFS is different from other FSs. You need to think how the user interacts with your software AND MSFS together. I do not know your software and cannot help you with this. 

John

Link to comment
Share on other sites

Hi John, You always give me great help, THANKS!

Indeed, MSFS is different with FSX and P3D. 

I have some test with MSFS and tell you as follows:

1)  Start MSFS with FSUIPC7.

2) Start our small program (coped from your example program) to run
   on the Visual computer: The small program receives Lat, Lon, Altitude,
   Pitch, Bank and Heading from LAN (UDP) and immediately sends these 
   values (Lat, Lon, Altitude, Pitch, Bank, Heading) to your FSUIPC7 => MSFS.

   In the meantime, the above-mentioned small program continually sends

   assigned runway initial position (Lat, Lon, Altitude, Pitch, Bank, Heading)

   to FSUIPC7=>MSFS.  Send, Send, Send to MSFS .......

  In the meantime, MSFS is also making some its initial settings. 

4) When Ready to Fly occurs on MSFS screen, Press Ready to Fly!

    In this moment, MSFS captures (receives) the assigned runway initial

   position (Lat, Lon, Altitude, Pitch, Bank, Heading) from FSUIPC7 and

   locates the runway  (scenery) at expected position. Then begin to fly

  according to our simulation program.

 Problem:  We do not need the aircraft on the screen (Scenery). However,

We do not know how to remove (turn off) the aircraft from the screen (Scenery).

Have you some ideas to remove (turn off ) the aircraft from the screen (Scenery)?

THANKS, John!

Dengxie

 

 

Link to comment
Share on other sites

15 minutes ago, yindengxie said:

We do not know how to remove (turn off) the aircraft from the screen (Scenery).

Have you some ideas to remove (turn off ) the aircraft from the screen (Scenery)?

No, I have no idea. I have heard/read of others using MSFS for scenery only but I don't know the details. Maybe try asking on the MSFS / Asobo forums.

Link to comment
Share on other sites

1 hour ago, yindengxie said:

Problem:  We do not need the aircraft on the screen (Scenery). However,

We do not know how to remove (turn off) the aircraft from the screen (Scenery).

Have you some ideas to remove (turn off ) the aircraft from the screen (Scenery)?

I think you would need to have an aircraft with no panels or graphics at all. I think this means either creating oyur own add-on aircraft for MSFS, or editing files related to an aircraft you choose and editing them accordingly.

But this is not at all the province of FSUIPC and neither John nor i are able to advise in any further detail. Perhaps you might get advice on the AVSIM MSFS or on the MS MSFS general forums? I do know it can be done because ProSim have just recently done it for their 738 model (ProSim provide all of the instrumentation on external modules).

One way does occur to me and I have seen it mentioned on one of those Forums, and that is to set the pilot's viewpoint forward of the aircraft. But don't ask me how that is done.

BTW I am staying with the excellent P3Dv5 until MSFS is mature enough (maybe in 2022? 😉 ).

Pete

 

Link to comment
Share on other sites

  • 2 weeks later...

Hello Pete and John,

Good Evening!

I want to ask you a simple question not related to FSUIPC. 
If it is convenient for you, please give me a help.

When P3D is started, your Add-on FSUIPC6 is also 
started and running in the same time. We have a program 
copied from your example program, this program communicates 
with your FSUIPC6.

Question:

How can our this communication program be set , so that
when P3D is started, also our this communication program
in the same time is started and running? 

 THANKS!

  Dengxie Yin

 

Link to comment
Share on other sites

13 hours ago, yindengxie said:

How can our this communication program be set , so that
when P3D is started, also our this communication program
in the same time is started and running? 

If you want P3D to start your program, you can use P3D's EXE.xml file (see the P3D documentation).

Alternatively, if your program needs FSUIPC, then it may be better to start your program from FSUIPC using FSUIPC's [Programs] section. See the Advanced User Guide, section Programs: facilities to load and run additional programs.

John

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.