This are the (new) Support Forums for FSUIPC and related products.
These forums replace the old support forums which have been running for 20+ years. The old forums contain a wealth of information on all FSUIPC products, and are still available (until the end of the year) for read-only here.
At the moment these new forums are quite empty – I will be updating the FAQ section and copying across the User Contributions from the old forums in the next few months.
Please note that you will need to Register and Login to post for support, and also to download attachments. You can view these forums without registering.
Support is also available via Discord. Please use the following invite link to join the FSUIPC Discord server:
https://discord.gg/zjwUTrxmmE
WidevieW (FSX) network-panning using FSUIPC4 and WideFS
..............................................................................................................................................................................................................
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.
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
[CameraDefinition.999]
Title = "WidevieW Virtual Cockpit"
Guid = {01021987-E220-6507-1024-462840738999}
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.
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-6507-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:
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:
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.
[Originally contributed in old SimMarket support forums by user Chakko / ckovoor]
-
FlyChrono - Time management software for FSX/P3D16 hours ago
-
Approach Callouts for FSX and P3D17 hours ago
-
Landing Parameters for FSX and P3D17 hours ago
-
Throttle Manager to Allow Axis Forward/Reverse Toggle21 hours ago
-
Set Future Pause for P3Dv4 or P3Dv5 or FSX7 days ago
