Jump to content
The simFlight Network Forums
ckovoor

WidevieW (FSX) network-panning using FSUIPC4 and WideFS

Recommended Posts

Hi everyone, and especially WidevieW (FSX) users,
 
A neat additional feature of WidevieW X is the facility to pan the view laterally on the Clients, and also tilt the view downwards or upwards using a hat-switch on the Server. I find this very useful while sitting at the gate at an airport if I want to have a look at the activity around me, on the Climb when I want to have a look down at the terrain, and on Finals, because with the nose-high attitude of some heavy aircraft, one sometimes doesn't get an adequate view of the runway.
 
sar.jpg
 
So this is a great feature.........however, I found that in order to use it you have to ENABLE CONTROLLERS in FSX (i.e. FSX joystick assignments become active). Unfortunately, I have had to to disable that feature in FSX because (1) I make all my assignments through FSUIPC, and (2) although one can delete all the joystick assignments from FSX using the FSX menu or by editing the Standard.xml file, they usually reappear the next flight by some sort of black-magic, and start conflicting with one's FSUIPC assignments. And it is painful to have to delete these assignments from the menu, manually, at the beginning of every flight.
..............................................................................................................................................................................................................
Problem: In order to use WidevieW network-panning with a Hat-Switch on the SERVER, one needs to ENABLE CONTROLLERS in FSX. However, FSX has the nasty habit of randomly rearranging joystick assignments, so many users have switched to using FSUIPC exclusively to manage controllers, and so they DISABLE CONTROLLERS in FSX permanently. This however means that WidevieW's network-panning facilities will not be available any more.

Objective: With FSX CONTROLLERS DISABLED on the WidevieW SERVER, to be able to transmit view-panning commands to networked WidevieW CLIENTS.

Requirements: Registered FSUIPC4 and WideFS

Summary of Process: When a panning-command (via Hat-Switch button) is applied at the SERVER, FSUIPC-WideServer sends a KeySend number to all networked Clients. At each CLIENT, WideClient-FSUIPC receives the KeySend number and acts on it to pan the view locally. Certain options in the wideviewx.ini file at the CLIENTs and SERVER need to be set to ensure that it does not interfere. A new Camera Definition is also installed on the CLIENT(s) to keep this option separate.
______________________________________________________

(1) The WidevieW SERVER will require FSUIPC4 and WideFS-WideServer (both registered). On each WidevieW CLIENT we need to install FSUIPC4 and WideFS-WideClient as well (and because FSX is also running there we need to use a different Class Instance = 1). So the first few lines of the [Config] Section of each WideClient.ini looks like this:
[Config]
ServerName=SERVER
Protocol=TCP
ButtonScanInterval=20
ClassInstance=1
NetworkTiming=5,1
MailslotTiming=2000,1000
PollInterval=2000
Port=8002
Port2=9002

:
Note that each WideClient is linked to the SERVER FSUIPC

(2) On the SERVER, we set up the Hat-Switch to send KeySend numbers across the network (to activate panning at the the Clients). Here are the relevant entries in my FSUIPC.ini file on the SERVER, showing 5 buttons on my Sidewinder Joystick [left, right, up, down and trigger (for reset)] mapped to KeySends 2 through 6.
[Buttons]
43=RL,32,C1006,5     -{KEYSEND 5 for WideFS}-
44=RL,34,C1006,2     -{KEYSEND 2 for WideFS}-
45=RL,36,C1006,6     -{KEYSEND 6 for WideFS}-
46=RL,38,C1006,3     -{KEYSEND 3 for WideFS}-
47=PL,0,C1006,4     -{KEYSEND 4 for WideFS}-


(3) On each CLIENT, WideClient must receive these KeySend numbers, and transmit the mapped keystrokes to FSX-FSUIPC locally, so the WideClient.ini file at each Client has the following entries in its [User] section.
[User]
KeySend2=39,8,FS98MAIN
KeySend3=37,8,FS98MAIN
KeySend4=36,8,FS98MAIN
KeySend5=38,8,FS98MAIN
KeySend6=40,8,FS98MAIN


I have mapped the KeySends to the arrow (l/r/u/d) and home keys. Using FS98MAIN ensures that the keystrokes are sent to the FSX window.

(4) FSUIPC residing on the CLIENT must be primed to receive these keystrokes from WideClient, and send the appropriate FSX panning command (controls) to the local FSX via the [Keys] section:
[Keys]
12=39,8,65672,0     -{Right: Press=PAN_RIGHT }-
13=37,8,65671,0     -{Left: Press=PAN_LEFT }-
14=36,8,65875,0     -{Home: Press=PAN_RESET }-
15=38,8,65735,0     -{Up: Press=PAN_DOWN }-
16=40,8,65734,0     -{Down: Press=PAN_UP }-


Here each keystroke is mapped to a Standard FSX (panning) control: I got these from Pete's reference sheet.

(5) Okay, but we also need to ensure that WidevieW will not try to do the same thing. Since I came from a setup where WidevieW was previously doing the network-panning, I needed to go back into the wideviewx.ini file (on each Client) and change a few entries, till each airplane's section looked like this:

[WidevieW_Dummy Dash8-Q400]
ApplyCurrent=1
ApplyGlobal=0
RaiseLG=1
RaiseLGBy=18
p_headingdelta=45
p_pitchdelta=30
p_setviewangle=0
p_processreorientation=0
p_pitch=0
p_pitchf=0
p_heading=0
p_headingf=0
p_deltax=0
p_deltaxf=0
p_deltay=0
p_deltayf=0
p_deltaz=0
p_deltazf=0


The crucial lines are:
p_setviewangle=0
p_processreorientation=0


This ensures that WidevieW will not manipulate the view on the CLIENT, except for locating the aircraft correctly (which is its basic job). I did this for each airplane individually, rather than globally; above is my extract for the Majestic Dash 8 left-side-view Client.
 
Additionally within wideviewx.ini on the Wideview SERVER I set:
[Views]
HatEnableServer=0
HatEnableClient=0

to ensure no panning commands are sent out by WidevieW

(6) I also created a new Camera Definition and added it to the cameras.cfg on each CLIENT. This is because I wanted to keep this new technique separate from the old method:

[CameraDefinition.999]
Title = "WidevieW Virtual Cockpit"
Guid = {01021987-E220-6507-1024-46284
0738999}
Description = Specialised virtual cockpit view.
Origin = Virtual Cockpit
MomentumEffect = No
SnapPbhAdjust = Swivel
SnapPbhReturn = False
PanPbhAdjust = Swivel
PanPbhReturn = False
InitialPbh = 0.0, 0.0, -26.0
Track = None
ShowAxis = YES
AllowZoom = TRUE
InitialZoom = 0.7
SmoothZoomTime = 2.0
ZoomPanScalar = 1.0
ShowWeather = Yes
XyzAdjust = TRUE
ShowLensFlare=FALSE
Category = Cockpit
PitchPanRate=30
HeadingPanRate=75
PanAcceleratorTime=0
HotKeySelect=4


You will note that the Client's view must be a Virtual Cockpit view for the panning to work correctly. The initialPbh value shows that this is the left view at -26 degrees from centre.

I found the following documents helpful to understand camera definitions:
http://www.fstipsandaddons.com/tutorials/understanding-fsx-cameras.html
https://msdn.microsoft.com/en-us/library/cc526984.aspx#CameraConfigurationFileFormat

(7) I use saved flights for each WidevieW Client airplane. So for the Dash8 saved flight (.FLT) I ensured that this particular camera view was linked:
[Main]
Title=WVD D8Q400test
Description=""
AppVersion=10.0.61472
FlightVersion=1


[Window.1]
Order=0
Active=True
Undocked=False
Maximized=True
ScreenUniCoords=0, 0, 8191, 2600
UndocCoords=0, 0, 0, 0
CurrentCamera={01021987-E220-6
507-1024-462840738999}
:
:
[Camera.1.13]
Guid={01021987-E220-6507-1024-
462840738999}
Zoom=2.5567879676818848
Translation=0, 0, 0
Rotation=0, -26, 0
 
There are a couple of issues I need to iron out, and I think they relate to the settings in my cameras.cfg:
(1) I find that when I start a flight, the views are sometimes disorganized or not matched, on the clients, and I do need to press the pan-reset button once at the start to organize all the view angles correctly. With my native WidevieW setup this was not necessary.
(2) When I pan or tilt through large angles, I sometimes find adjacent views overlapping slightly or slightly misaligned....this points to the incremental angles not being uniformly applied. I am not sure whether this is a limitation of the panning method chosen (Swivel) or whether it is due to some incorrect setting.
 
Regards,

Chakko.

 
Edited by ckovoor
added panoramic screenshot of finals into LQSA

Share this post


Link to post
Share on other sites
On 8/7/2016 at 0:10 PM, ckovoor said:

(6) I also created a new Camera Definition and added it to the cameras.cfg on each CLIENT. This is because I wanted to keep this new technique separate from the old method:

[CameraDefinition.999]
Title = "WidevieW Virtual Cockpit"
Guid = {01021987-E220-6507-1024-46284
0738999}
Description = Specialised virtual cockpit view.
Origin = Virtual Cockpit
MomentumEffect = No
SnapPbhAdjust = Swivel
SnapPbhReturn = False
PanPbhAdjust = Swivel
PanPbhReturn = False
InitialPbh = 0.0, 0.0, -26.0
Track = None
ShowAxis = YES
AllowZoom = TRUE
InitialZoom = 0.7
SmoothZoomTime = 2.0
ZoomPanScalar = 1.0
ShowWeather = Yes
XyzAdjust = TRUE
ShowLensFlare=FALSE
Category = Cockpit
PitchPanRate=30
HeadingPanRate=75
PanAcceleratorTime=0
HotKeySelect=4


(7) I use saved flights for each WidevieW Client airplane. So for the Dash8 saved flight (.FLT) I ensured that this particular camera view was linked:
[Main]
Title=WVD D8Q400test
Description=""
AppVersion=10.0.61472
FlightVersion=1


[Window.1]
Order=0
Active=True
Undocked=False
Maximized=True
ScreenUniCoords=0, 0, 8191, 2600
UndocCoords=0, 0, 0, 0
CurrentCamera={01021987-E220-6
507-1024-462840738999}
:
[Camera.1.13]
Guid={01021987-E220-6507-1024-
462840738999}
Zoom=2.5567879676818848
Translation=0, 0, 0
Rotation=0, -26, 0
 
There are a couple of issues I need to iron out, and I think they relate to the settings in my cameras.cfg:
(1) I find that when I start a flight, the views are sometimes disorganized or not matched, on the clients, and I do need to press the pan-reset button once at the start to organize all the view angles correctly. With my native WidevieW setup this was not necessary.

Well, I have been able to sort out issue #1 by editing the Camera.1.13 settings in the .FLT file, thus:

[Camera.1.13]
Guid={01021987-E220-6507-1024-
462840738999}
Zoom=2.5567879676818848
Translation=0, 0, 0
Rotation=0, 0, 0

Earlier I was applying an additional rotation of -26 degrees via this setting in the .FLT, when the cameras.cfg had already established an initial heading of -26.0, resulting in a total rotation of -52 degrees on startup. But when I hit the pan_reset button, the view reverted to the initial heading set out in cameras.cfg. The .FLT is apparently referred to only at startup, for initial view orientations.

So here we are on startup at Guadelope, with the CLIENT views all perfectly aligned:

gua.jpg

Still searching for a solution to issue  #2. If you have experience with FSX cameras and have something to suggest, I am all ears!

Chakko.

 

Edited by ckovoor
added panoramic screenshot of gate startup from Guadelope

Share this post


Link to post
Share on other sites

Hi,

 

One short hint about the control assignments of FSX changing back to original state, when enabled. Try to set the configuration file read-only on Windows file base, when you have edited in the way you want it to be. This might help to avoid, that the standard settings come back. Not sure, if it works, but I always set the control configuration to read-only to avoid unwanted changes and never had any unwanted changes.

Rgds
Reinhard

 

Share this post


Link to post
Share on other sites

Hi,


For issue #2:

The Pan command is a time-based command. So it pans not in defined steps but based on how long you are pressing the key. Even when you generate the key press by program, you experience differences in how far the pan moves the camera.

You should look for FSUIPC offsets addressing the following Simconnect function: SimConnect_CameraSetRelative6DofByName
This works better than panning.

With that structure of offsets you are able to position single cameras/views exactly. In P3D v3 LM introduced obviously a small bug. But in FSX this should work.

I don't know, if this works also in an WideView environment. But maybe this is a better alternative than just panning.

Best regards
Reinhard

 

 

Share this post


Link to post
Share on other sites

Dear Reinhard,

Thank you for two excellent suggestions, which I will be trying out as soon as I can get back to my system.

(1) WidevieW-X provides options for rotating the views by an increment of one's choice, and it works flawlessly (i.e. without overlap/misalignment in both yaw and pitch) with both 2-D cockpit and VC views. I have no information about the internal mechanism involved, and do not know whether those involve SNAP or PAN methods. So if I am able to ENABLE CONTROLLERS without suffering any FSX interference in assignments, by applying READ-ONLY to the standard.xml file, then that would solve the problem completely.

(2) I did search for information on the Simconnect function: SimConnect_CameraSetRelative6DofByName.  This thread: http://forum.simflight.com/topic/79284-simconnect-wrapper/?page=1 and your own: http://forum.simflight.com/topic/80484-simconnect_camerasetrelative6dof-not-working-as-expected/#comment-486203 do refer to FSUIPC offsets 86A0 through 86B4. I could not find these in the FSUIPC4 offsets list, so I am not certain they will work with FSX, as they seem to have been written for P3D. Perhaps you could enlighten me, since Pete is not here.

(3) I also found the FSX controls:

VIEW_CAMERA_SELECT_0 66860
VIEW_CAMERA_SELECT_1 66851
VIEW_CAMERA_SELECT_2 66852
VIEW_CAMERA_SELECT_3 66853
VIEW_CAMERA_SELECT_4 66854
VIEW_CAMERA_SELECT_5 66855
VIEW_CAMERA_SELECT_6 66856
VIEW_CAMERA_SELECT_7 66857
VIEW_CAMERA_SELECT_8 66858
VIEW_CAMERA_SELECT_9 66859
VIEW_CAMERA_SELECT_START 66168

which I suppose are linked to the 10 hotkeys. Theoretically, each of these could be assigned a particular view orientation: at best 36 degrees apart (=360/10), and one could cycle through these views using a hat-switch and a related LUA script at each CLIENT. Or perhaps use 8 of these for lateral rotation at 45 degree increments (360/8 = 45) and use the remaining 2 for vertical rotation, say 30 degrees up and 30 degrees down. Would you have any comments on this?

Thank you for your interest in this.

Chakko.

Later: Okay I found this reference https://msdn.microsoft.com/en-us/library/cc526983.aspx#SimConnect_CameraSetRelative6DOF so I guess it should work in FSX after all.

Also finally found this in the latest FSUIPC Offsets Status:

86A0.jpg

These are references to the basic  CameraSetRelative6DOF function. But the CameraSetRelative6DOFByName function appears to be available only in P3D.

Edited by ckovoor
added details of FSUIPC offset 86A0 (image)

Share this post


Link to post
Share on other sites

Hello Reinhard,

Okay, so I'm back at my system and have tested things out:

(1) Applying the Read-Only attribute to my standard.xml file does generally prevent FSX from reassigning my buttons and axes, but my Saitek Pro-Flight yoke and my Virtual Joystick (Pokeys card?) seem to be exceptions, in that they retain assignments (that I have not made, and that I have previously erased) within the FSX menu, though they are not visible in the standard.xml file. So, as far as my system goes, this method does not seem to work. I cannot fully prevent the reappearance of unwanted assignments by making my standard.xml file Read-Only.

(2) So I switched over to using the SimConnect_CameraSetRelative6DOF  function. At each CLIENT I auto-started the the following LUA entitled networkrotation.lua to intercept key-presses sent by FSUIPC in response to the KeySend numbers received from WideClient:

-- initial values --
lX = 0.0
lY = 0.0
lZ = 0.0
lPitch = 0.0
lBank = 0.0
lHeading = 0.0


-- camera rotations --
function rotate_right ()
	lHeading = lHeading + 11.25
	set_eyepoint ()
end

function rotate_left ()
	lHeading = lHeading - 11.25
	set_eyepoint ()
end

function rotate_up ()
	lPitch = lPitch + 5
	set_eyepoint ()
end

function rotate_down ()
	lPitch = lPitch - 5
	set_eyepoint ()
end

function rotate_reset ()
	lPitch = 0.0
	lHeading = 0.0
	set_eyepoint ()
end


-- set the eyepoint --
function set_eyepoint ()
	ipc.writeStruct( 0x86A0 , "6FLT" , lX , lY , lZ , lPitch , lBank , lHeading ) -- X, Y, Z, P, B, H
end


-- events --
event.key ( 39, 8, "rotate_right" )
event.key ( 37, 8, "rotate_left" )
event.key ( 40, 8, "rotate_down" )
event.key ( 38, 8, "rotate_up" )
event.key ( 36, 8, "rotate_reset" )

And here are the relevant parts of the FSUIPC.ini:

[Auto]
2=Lua networkrotation

[LuaFiles]
4=networkrotation

 

So each movement of the hat-switch rotates the heading by +/- 11.25 degrees or the pitch by +/- 5 degrees, while the trigger button resets the original viewpoint. It works perfectly, and there is no more overlap or misalignment between adjacent views as these screenshots taken from a Dash8 Q400 at the gate at VOBL demonstrate:

0-1D-4R.jpg

I now suspect that WidevieW also uses this particular Simconnect function to achieve similarly perfect results. So, thank you, Reinhard, for sharing your knowledge and expertise in this area. I absolutely appreciate it!

Chakko.

Edited by ckovoor
inserted panoramic screenshots

Share this post


Link to post
Share on other sites

So here is the refined method:

Objective: With FSX CONTROLLERS DISABLED on the WidevieW SERVER, to be able to transmit view-panning commands to networked WidevieW CLIENTS.

Requirements: Registered FSUIPC4 and WideFS

Summary of Process: When a panning-command (via Hat-Switch button) is applied at the SERVER, FSUIPC-WideServer sends a KeySend number to all networked Clients. At each CLIENT, WideClient receives the KeySend number and sends a key-press to FSX-FSUIPC. An auto-started LUA script intercepts this key-press and rotates the view appropriately using the SimConnect_CameraSetRelative6DOF function. Certain options in the wideviewx.ini file at the CLIENTs and SERVER need to be set to ensure that it does not interfere. A new Camera Definition is also installed on the CLIENT(s) to keep this option separate.
______________________________________________________

(1) The WidevieW SERVER will require FSUIPC4 and WideFS-WideServer (both registered). On each WidevieW CLIENT we need to install FSUIPC4 and WideFS-WideClient as well (and because FSX is also running there we need to use a different Class Instance = 1). So the first few lines of the [Config] Section of each WideClient.ini looks like this:
[Config]
ServerName=SERVER
Protocol=TCP
ButtonScanInterval=20
ClassInstance=1
NetworkTiming=5,1
MailslotTiming=2000,1000
PollInterval=2000
Port=8002
Port2=9002

:
Note that each WideClient is linked to the SERVER FSUIPC

(2) On the SERVER, we set up the Hat-Switch to send KeySend numbers across the network (to activate panning at the the Clients). Here are the relevant entries in my FSUIPC.ini file on the SERVER, showing 5 buttons on my Sidewinder Joystick [left, right, up, down and trigger (for reset)] mapped to KeySends 2 through 6.
[Buttons]
43=RL,32,C1006,5     -{KEYSEND 5 for WideFS}-
44=RL,34,C1006,2     -{KEYSEND 2 for WideFS}-
45=RL,36,C1006,6     -{KEYSEND 6 for WideFS}-
46=RL,38,C1006,3     -{KEYSEND 3 for WideFS}-
47=PL,0,C1006,4     -{KEYSEND 4 for WideFS}-


(3) On each CLIENT, WideClient must receive these KeySend numbers, and transmit the mapped keystrokes to FSX-FSUIPC locally, so the WideClient.ini file at each Client has the following entries in its [User] section.
[User]
KeySend2=39,8,FS98MAIN
KeySend3=37,8,FS98MAIN
KeySend4=36,8,FS98MAIN
KeySend5=38,8,FS98MAIN
KeySend6=40,8,FS98MAIN


I have mapped the KeySends to the arrow (l/r/u/d) and home keys. Using FS98MAIN ensures that the keystrokes are sent to the FSX window.

(4) FSUIPC-LUA residing on the CLIENT intercepts these keystrokes from WideClient, and writes the rotated view-point to the appropriate FSUIPC offsets mapped to the SimConnect_CameraSetRelative6DOF function. Here is the LUA entitled networkrotation.lua:
-- initial values
lX = 0.0
lY = 0.0
lZ = 0.0
lPitch = 0.0
lBank = 0.0
lHeading = 0.0

-- increments
delHdg = 11.25
delPitch = 5


-- camera rotations
function rotate_right ()
	lHeading = lHeading + delHdg
	if lHeading >= 180 then
		lHeading = lHeading - 360
	end
	set_eyepoint ()
end

function rotate_left ()
	lHeading = lHeading - delHdg
	if lHeading <= -180 then
		lHeading = lHeading + 360
	end
	set_eyepoint ()
end

function rotate_up ()
	lPitch = lPitch + delPitch
	if lPitch > 90 then
		lPitch = 90
	end
	set_eyepoint ()
end

function rotate_down ()
	lPitch = lPitch - delPitch
	if lPitch < -90 then
		lPitch = -90
	end
	set_eyepoint ()
end

function rotate_reset ()
	lPitch = 0.0
	lHeading = 0.0
	set_eyepoint ()
end

-- set the eyepoint
function set_eyepoint ()
	ipc.writeStruct( 0x86A0 , "6FLT" , lX , lY , lZ , lPitch , lBank , lHeading ) -- X, Y, Z, P, B, H
end


event.key ( 39, 8, "rotate_right")
event.key ( 37, 8, "rotate_left")
event.key ( 40, 8, "rotate_down")
event.key ( 38, 8, "rotate_up")
event.key ( 36, 8, "rotate_reset")

You may notice that the LUA has been refined to allow continuous rotation (i.e. beyond +/-180 deg) in yaw, but limits the rotation in pitch to +/- 90 degree.

Here are the relevant sections of the Client's FSUIPC.ini:

[Auto]
2=Lua networkrotation

[LuaFiles]
4=networkrotation


(5) Okay, but we also need to ensure that WidevieW will not try to do the same thing. Since I came from a setup where WidevieW was previously doing the network-panning, I needed to go back into the wideviewx.ini file (on each Client) and change a few entries, till each airplane's section looked like this:

[WidevieW_Dummy Dash8-Q400]
ApplyCurrent=1
ApplyGlobal=0
RaiseLG=1
RaiseLGBy=18
p_headingdelta=45
p_pitchdelta=30
p_setviewangle=0
p_processreorientation=0
p_pitch=0
p_pitchf=0
p_heading=0
p_headingf=0
p_deltax=0
p_deltaxf=0
p_deltay=0
p_deltayf=0
p_deltaz=0
p_deltazf=0


The crucial lines are:
p_setviewangle=0
p_processreorientation=0


This ensures that WidevieW will not manipulate the view on the CLIENT, except for locating the aircraft correctly (which is its basic job). I did this for each airplane individually, rather than globally; above is my extract for the Majestic Dash 8 left-side-view Client.

 
Additionally within wideviewx.ini on the Wideview SERVER I set:
[Views]
HatEnableServer=0
HatEnableClient=0

to ensure no panning commands are sent out by WidevieW

(6) I also created a new Camera Definition and added it to the cameras.cfg on each CLIENT. This is because I wanted to keep this new technique separate from the old method:

[CameraDefinition.999]
Title = "WidevieW Virtual Cockpit"
Guid = {01021987-E220-6507-1024-46284
0738999}
Description = Specialised virtual cockpit view.
Origin = Virtual Cockpit
MomentumEffect = No
SnapPbhAdjust = Swivel
SnapPbhReturn = False
PanPbhAdjust = Swivel
PanPbhReturn = False
InitialPbh = 0.0, 0.0, -26.0
Track = None
ShowAxis = YES
AllowZoom = TRUE
InitialZoom = 0.7
SmoothZoomTime = 2.0
ZoomPanScalar = 1.0
ShowWeather = Yes
XyzAdjust = TRUE
ShowLensFlare=FALSE
Category = Cockpit
PitchPanRate=30
HeadingPanRate=75
PanAcceleratorTime=0
HotKeySelect=4


The initialPbh value in this case shows that this is the left view at -26 degrees from centre.
It is not necessary with this method that the Client's view be a Virtual Cockpit view; in a subsequent post I will show how it can work with 2-D cockpit views as well. But I prefer VC-views because in that case the SDK unequivocally states that the eye-point is as defined in the aircraft.cfg.

I found the following documents helpful to understand camera definitions:
http://www.fstipsandaddons.com/tutorials/understanding-fsx-cameras.html
https://msdn.microsoft.com/en-us/library/cc526984.aspx#CameraConfigurationFileFormat

(7) I use saved flights for each WidevieW Client airplane. So for the Dash8 saved flight (.FLT) I ensured that this particular camera view was linked:
[Main]
Title=WVD D8Q400test
Description=""
AppVersion=10.0.61472
FlightVersion=1


[Window.1]
Order=0
Active=True
Undocked=False
Maximized=True
ScreenUniCoords=0, 0, 8191, 2600
UndocCoords=0, 0, 0, 0
CurrentCamera={01021987-E220-6
507-1024-462840738999}
:
:
[Camera.1.13]
Guid={01021987-E220-6507-1024-
462840738999}
Zoom=2.5567879676818848
Translation=0, 0, 0
Rotation=0, -26, 0

Here are some more screenshots showing the near perfect alignment between views displayed on adjacent monitors in pitch and a combination of pitch and yaw. They are taken from a Dash8 Q400 parked at the Gate at VOBL:

0-2U-5L3U.jpg

Edited by ckovoor
inserted panoramic screenshots at VOBL

Share this post


Link to post
Share on other sites

Addendum:

With the earlier panning procedure using Swivel or Ordinal methods, I found it necessary to use Virtual Cockpit views to get full functionality. But the power of this SimConnect_CameraSetRelative6DOF method is that it works equally well with 2-D cockpit views. Here are some settings I used to test this with my A300B4-203 at VOML:

The Camera definition selected must contain an InitialPbh, in this case I have selected the left-of-centre view at -26 degrees:

[CameraDefinition.001]
Title = Cockpit
Guid = {B1386D92-4782-4682-A137-738E25D1BAB5}
Description = This is the description of the cockpit view
Origin = Cockpit
ShowPanel = Yes
SnapPbhAdjust = Ordinal
SnapPbhReturn = True
PanPbhAdjust = Ordinal
PanPbhReturn = True
InitialPbh = 0.0, 0.0, -26.0
Track = None
ShowAxis = FrontOnly
AllowZoom = TRUE
InitialZoom = 1.0
SmoothZoomTime = 0.0
ShowWeather = Yes
XyzAdjust = TRUE
ShowLensFlare=FALSE
Category = Cockpit
HotKeySelect=2

And the same camera is selected in the .FLT:

[Window.1]
Order=0
Active=True
Undocked=False
Maximized=True
ScreenUniCoords=0, 0, 8192, 6144
UndocCoords=0, 0, 0, 0
CurrentCamera={B1386D92-4782-4682-A137-738E25D1BAB5}

:

[Camera.1.1]
Guid={B1386D92-4782-4682-A137-738E25D1BAB5}
Zoom=2.5569632053375244
Translation=0, 0, 0
Rotation=0, 0, 0

And here are the screenshots:

A300voml24.jpg

You can see how the scenery views remain perfectly aligned even after rotating though 56.25 degrees to the right and 5 degrees down.

Chakko.

Edited by ckovoor
added screenshots of VOML (2-D cockpit views)

Share this post


Link to post
Share on other sites

Interesting thread, this! I think I'll move it to "the User Contributions" subforum, so that it becomes a reference for others.

Pete

 

Share this post


Link to post
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


×