News:

Precision Simulator update 10.182 (25 June 2025) is now available.
Navburo update 13 (23 November 2022) is now available.
NG FMC and More is released.

Main Menu

RealTraffic 1.0 beta and updated Foreflight 2.0 beta

Started by Balt, Sun, 18 Jan 2015 15:39

Hardy Heinlin

#100
Hi,

do VisualPSX and XView require TfcVel data from PSX in addition to TfcPos data? I think, when PSX is in external mode and receives TfcPos data only, the server will distrubute just that; it will not generate TfcVel data ejections as each PSX client computes the velocities on its own.


Cheers,

|-|ardy

Balt

I think you're on to something there Hardy... if the addon doesn't get the velocity vectors it'll be even more of a guessing game to interpolate. Perhaps you could output those always, regardless of who controls traffic? You're only sending those at 0.2 Hz anyway, no?

Cheers

- Balt

Garry Richards

Hi Balt,

TrafficPSX already interpolates PSX traffic output to generate smoothly flying AI aircraft in FSX. You can see this working by using any of the PSX traffic scenarios. If it is not happening when your software is injecting traffic into PSX then perhaps PSX does not send traffic to addons when it is receiving traffic from one of them.

Perhaps I misunderstood your earlier posts. I thought you were saying that all your traffic should be injected directly into FSX by my TrafficPSX while you select 7 to inject into PSX.

Cheers,
Garry

Website: flightsim.garryric.com

Garry Richards

It appears that we are all on line right now and my last post crossed yours. I don't have access to my source code at present and can't remember whether I use velocity data or not. I had to do a lot of smoothing to have the AI aircraft fly smoothly and accurately to match the TCAS display.
Garry

Website: flightsim.garryric.com

Balt

Hi Garry,

I suspect the critical question here is this: Are you making use of the TfcVel data to interpolate the positions? If you are, then it is clear why it doesn't work with RealTraffic: because PSX does not re-broadcast the TfcVel that I am feeding into it. It only sends TfcVel to its clients when it is making its own traffic.

In regards to the misunderstanding with "implementing your own traffic": I don't know how much traffic FSX/P3D can display, but I suspect its many more than 7. If you want all traffic to be displayed, simply listen to the network traffic on UDP port 49002 and follow my earlier post to decode the messages. You would then be able to display not only where the traffic is, but also what type, callsign, where it's coming from and where it's going to! That could be fun?

That's probably something for much later, first and foremost now it would be good to get the 7 PSX traffics (whether injected or now) showing correctly in FSX/P3D.

While I have your attention... :-)

I've noticed that FSX runs much smoother than P3D on my visual system machine. The takeoffs in P3D are actually quite ugly, it feels as if the aircraft is sticking to the ground, then suddenly jumps in the air at the same time as it pitches up, which is well after pitch up commands have been issued (and shown to work on the ADI/PFD).

Cheers

- Balt

Hardy Heinlin

#105
Quote from: Balt... because PSX does not re-broadcast the TfcVel that I am feeding into it.
Please disregard my last comment. I forgot that RealTraffic 1.0 does inject TfcVel. So PSX distributes both TfcPos and TfcVel. And I think the scenery generators do receive both TfcPos and TfcVel from the PSX server.

PSX actually does not need TfcVel if it already receives periodic TfcPos updates. TfcVel is designed for steering inputs. When traffic is externally steered, TfcPos updates are not necessary.

When PSX receives steering commands, it doesn't need position commands.
When PSX receives position commands, it doesn't need steering commands.

Sending velocity (steering) data to PSX makes sense only when the sender knows that a vector is changing, i.e. when a turn rate, groundspeed, or V/S is changing. If the sender doesn't know that, and just interpolates position data, then TfcVel injections are superfluous because PSX does the same job internally. You may consider this to relieve the network.


Cheers,

|-|ardy

Balt

Ok, I'll remove the TfcVel injection in the next release then. Thanks for pointing this out.

Cheers

- Balt

Balt

#107
The first non-beta release is out. Please download your updates http://www.inside.net/ss/

Changes:
- Removed end of January expiration date
- Now displays and injects ground traffic
- Does not inject TfcVel any longer, just TfcPos.

Hardy: How many previous points are you using to interpolate traffic positions?

Cheers

- Balt

Hardy Heinlin


Britjet

Hi Balt,

Why do you want to inject ground traffic? Real TCAS doesn't show it...

Britjet

Balt

@Britjet: So the scenery generators can show them. Helps when sequencing yourself for takeoff I'd imagine. Someone requested it (OmniAtlas I think?)

The TCAS algorithm on what to display on the ND is written by Hardy. I don't know whether he considers ground traffic. Based on what I've seen, it does show on the ND, which I think you are correct does not happen in the real plane. Perhaps Hardy can simply not display traffic in the TCAS display that is moving slower than 30kts or so?

I could filter all these things accordingly as well. Maybe I need to look into writing my own scenery traffic injector code, the current ones don't seem to work anyway.

Cheers

- Balt

OmniAtlas

Quote from: Balt@Britjet: So the scenery generators can show them. Helps when sequencing yourself for takeoff I'd imagine. Someone requested it (OmniAtlas I think?)


- Balt

Yes, it is helpful, thank you for the update. Aircrafts do not suddenly 'disappear' into thin air now.

Injection of aircraft (visual) does not work with XP10, but I think that may lie more on the XVIEW programing side. I will test with VisualPSX.

Regards.

Britjet

#112
Hi Balt,

I see, that makes sense and I thought that might be the case.
If the scenery generators can be made to work it might indeed be good to see the aircraft on the taxiways etc. Either that or AI traffic on the ground and RW traffic when airborne..
As you say, a speed filter might be the answer...it really needs something that correctly emulates the real TCAS, I think? I imagine that the real TCAS doesn't allow targets to be shown if your own aircraft is "on the ground" and the target is showing less than (say) 200 ft above you...? It's probably not a speed filter...
I look forward to seeing the real aircraft, it will make the whole thing so much more realistic, and LiveTraffic works perfectly with it..

I don't see the FSX/P3D 9-second "flashes" any more with the new release, by the way..no doubt intentional..

Cheers

Britjet

Hardy Heinlin

#113
In PSX the traffic never lands, that's why this ground check hasn't been a requirement until now.

I'll add this check to 10.0.2.


|-|

Balt

I have no idea why VisualPSX and all the other scenery injectors are not correcly showing the traffic. The TCAS in PSX is. And the traffic does get correctly re-broadcast as evidenced by my other program, the DFDR, correctly playing back traffic from DFDR files.

I've sent the details on how to implement even better traffic from the data RealTraffic provides, but I think Garry is away at the moment and can't work on it, and I haven't heard from the other ones.

Cheers

- Balt

Garry Richards

The first thing to do is determine why PSX is not sending correct traffic data to addons when RealTraffic is injecting into it. Apparently there has been some improvement with your latest release. Try monitoring PSX output to confirm that all fields are being sent correctly. As you have noted, I can't check this myself for a while yet, but as nothing has changed in TrafficPSX there must be a glitch with PSX traffic output when RealTraffic is running.
Garry

Website: flightsim.garryric.com

Balt

Looking at the data is interesting. When PSX creates the traffic data, it sends a Qs450 every 5 seconds. Each of the airplane positions changes. If we're looking at this from the recorded data, that's what it looks like:


Qs450=0.6549857109708508;-2.134206123095403;59276;31357;0.653265667228483;-2.1474918018750317;60427;6470;0.6495558449936808;-2.139686180255598;42274;1753;0.6505521338880729;-2.1381692556528193;58059;1048;0.6482496279859017;-2.1319077039460144;62277;33782;0.6590267191943513;-2.1277241401414333;52371;25668;0.6514053660412621;-2.13673783233455;61115;120;
t=0.012s
Qs450=0.6549857109708508;-2.134206123095403;59276;31357;0.653265667228483;-2.1474918018750317;60427;6470;0.6495558449936808;-2.139686180255598;42274;1753;0.6505521338880729;-2.1381692556528193;58059;1048;0.6482496279859017;-2.1319077039460144;62277;33782;0.6590267191943513;-2.1277241401414333;52371;25668;0.6514053660412621;-2.13673783233455;61115;120;
t=2.626s
Qs450=0.6550748175729859;-2.134324208522493;59264;31357;0.6532911813013398;-2.1474238002396264;60415;6470;0.6496129139109835;-2.1396635359266956;42261;1753;0.6506182204419384;-2.1381538828084246;58047;1048;0.6483046464585882;-2.1319358424272563;62264;33782;0.6590108808819751;-2.127808801677147;52359;25668;0.6514647263532861;-2.136736257038234;61103;120;
t=7.656s
Qs450=0.6552462472208882;-2.1345514124451324;59241;31357;0.6533402670976561;-2.147292970098574;60392;6470;0.6497227071722795;-2.1396199683873673;42238;1753;0.6507453624768887;-2.1381243052565244;58024;1048;0.6484104949279826;-2.1319899805471767;62241;33782;0.6589804100043127;-2.127971676668487;52335;25668;0.6515789279635275;-2.1367332261700307;61079;120;
t=12.710s
Qs450=0.6554180518363079;-2.1347791433710164;59218;31357;0.6533894602590554;-2.1471618488582864;60368;6470;0.6498327405857601;-2.1395763019053753;42215;1753;0.6508727826112912;-2.1380946601361606;58000;1048;0.6485165749210091;-2.1320442414410223;62218;33782;0.6589498724758203;-2.1281349040618363;52312;25668;0.651693379368502;-2.1367301884074594;61056;120;
t=17.727s
Qs450=0.6555895837457529;-2.1350065428289637;59194;31357;0.6534385753360022;-2.1470309308204536;60345;6470;0.6499425993430206;-2.139532701092425;42191;1753;0.651000000491506;-2.1380650592014288;57977;1048;0.6486224865330795;-2.1320984205585756;62194;33782;0.6589193834194916;-2.1282978685131173;52288;25668;0.6518076491045817;-2.1367271552021254;61032;120;
t=22.744s
Qs450=0.6557606725152342;-2.1352333846839944;59171;31357;0.6534875635281054;-2.1469003461020897;60322;6470;0.6500521742841902;-2.1394892092947355;42168;1753;0.6511268897087932;-2.1380355318827657;57954;1048;0.6487281245265075;-2.132152464038108;62171;33782;0.6588889731341427;-2.1284604081197323;52265;25668;0.6519216236287043;-2.136724129569581;61009;120;
t=27.775s
Qs450=0.6559320680750724;-2.1354606632532445;59147;31357;0.6535366395639528;-2.1467695223086602;60298;6470;0.6501619457134651;-2.1394456358745026;42145;1753;0.6512540064619748;-2.1380059487529692;57930;1048;0.6488339519482926;-2.1322066087686906;62148;33782;0.658858508315658;-2.1286232353518697;52242;25668;0.6520358025303342;-2.1367210982475546;60986;120;


On the other hand when RealTraffic injects the data, PSX seems to echo the data twice (why is it doing that?) and it only updates every 9 seconds (whenever RealTraffic injects new positions).


t=0.023s
Qs450=0.6564757875813882;-2.136118063742696;0;27753;0.6564483348564225;-2.136070920296789;0;20577;0.656563194;-2.135968845;0;10847;0.6565560725870722;-2.1359415686449825;0;25442;0.6600121571120922;-2.135806699505176;105377;33780;0.658179034402288;-2.133286014521878;-6;31073;0.6582720267832636;-2.133149650668699;0;11707;
Qs450=0.6564757875813882;-2.136118063742696;0;27753;0.6564483348564225;-2.136070920296789;0;20577;0.656563194;-2.135968845;0;10847;0.6565560725870722;-2.1359415686449825;0;25442;0.6600121571120922;-2.135806699505176;105377;33780;0.658179034402288;-2.133286014521878;-6;31073;0.6582720267832636;-2.133149650668699;0;11707;

t=7.384s
Qs450=0.660080032;-2.135836200;105750;33800;0.656475928;-2.136117198;0;24100;0.656446257;-2.136071820;0;20300;0.656563194;-2.135968845;0;25500;0.656557958;-2.135937429;0;26100;0.657373027;-2.135066510;18200;4300;0.658181114;-2.133289765;0;30900;
Qs450=0.660080032;-2.135836200;105750;33800;0.656475928;-2.136117198;0;24100;0.656446257;-2.136071820;0;20300;0.656563194;-2.135968845;0;25500;0.656557958;-2.135937429;0;26100;0.657373027;-2.135066510;18200;4300;0.658181114;-2.133289765;0;30900;

t=16.469s
Qs450=0.660310416;-2.135932193;109250;34300;0.656465456;-2.136111962;0;17100;0.656442766;-2.136073565;0;19800;0.656563194;-2.135968845;0;7400;0.656557958;-2.135935684;0;25500;0.657456803;-2.134984479;19890;4200;0.658195077;-2.133310709;0;31200;
Qs450=0.660310416;-2.135932193;109250;34300;0.656465456;-2.136111962;0;17100;0.656442766;-2.136073565;0;19800;0.656563194;-2.135968845;0;7400;0.656557958;-2.135935684;0;25500;0.657456803;-2.134984479;19890;4200;0.658195077;-2.133310709;0;31200;

t=25.432s
Qs450=0.660399428;-2.135956628;111000;34700;0.656465456;-2.136111962;0;17100;0.656563194;-2.135968845;0;25500;0.656439276;-2.136071820;0;16400;0.656557958;-2.135933939;0;24400;0.657456803;-2.134984479;19890;4200;0.658200313;-2.133315945;0;31500;
Qs450=0.660399428;-2.135956628;111000;34700;0.656465456;-2.136111962;0;17100;0.656563194;-2.135968845;0;25500;0.656439276;-2.136071820;0;16400;0.656557958;-2.135933939;0;24400;0.657456803;-2.134984479;19890;4200;0.658200313;-2.133315945;0;31500;


I have upped the refresh rate of the RealTraffic data to 5 seconds for testing earlier, but that didn't make a difference, traffic still didn't show up via VisualPSX. I suspect the double sending of the data might be tricking VisualPSX into thinking the traffic isn't moving? Just a wild guess.

Cheers

- Balt

Hardy Heinlin

Hi Balt, what do you mean by "to echo"? Where is that "echo"?


|-|

Balt

#118
The DFDR is recording everything PSX sends. When PSX makes its own traffic, the Qs450 strings are sent once every 5 seconds, as per above. But when RealTraffic is connected and injecting traffic, two copies of identical Qs450 string are sent separated by less than 10ms (the timing resolution I have arbitrarily chosen in DFDR to mark timestamps) and a maximum of 23ms. This looks like an "echo" to me. Maybe echo is the wrong word... it looks like PSX retransmits the traffic messages twice.

Cheers

- Balt

Hardy Heinlin

#119
Quote from: Balttwo copies of identical Qs450 string are sent
Sent to which program?

To the DFDR?

Are you sure the double injection is generated by PSX and not by RealTraffic?


|-|