Jump to content

Archived

This topic is now archived and is closed to further replies.

budsurf

Traffic Radar

Recommended Posts

Does anyone know how to "fix" the TrafficRadarXML.dll module provided by Arne?  It's available from Avsim, called  'trafficradarxml201.zip'.

The download also has gauge examples and source code.  I'm running Fs9.

I've managed to integrate it into Ken Mitchell's A320 panel MFD and it works and looks great 'til the dreaded "TICK18 time rollover" when it locks up.  I've found the following info:

 

Up with a fresh newsPosted Image there is a small story: recently i was sitting on the apron after another Arne's TCAS gauge test flight. 1 hour "in-flight" has passed long away and suddenly i've decided to resize main panel. and voila! the TCAS gauge was working again!:Hug:So, i became well assured that this is time rollover as i mentioned previously. And where is the problem?ok, look at this part of Arne's code:

 

void MyGaugeCDrawable::Update(void){ lookup_var(&m_tick18); if(m_radar==NULL) return; if(m_owner==NULL)

 

return; if(m_tick18.var_old.n+TICK_MODULO>m_tick18.var_value.n) return; m_recalced =

 

true; m_radar->QueryAiData((int)m_maxnum_act,m_max_range_nm, m_owner-

 

>GetTimeSepTA(),m_owner->GetTimeSepRA(), m_owner->GetDistanceSepTA

 

(),m_owner->GetDistanceSepRA(), m_owner->GetAltitudeSepTA(),m_owner-

 

>GetAltitudeSepRA() ); m_tick18.var_old = m_tick18.var_value;}]

 

=================================================

This is from XMLCCallbacks.cpp If you look presicely you will see (in line 8) that if m_tick18.var_value.n would oddly become zero again, 

 

the essential thing of Update call - m_radar->QueryAiData would never happen because m_tick18.var_old.n+TICK_MODULO - (1 time per 

 

second updating) would always be greater than that rollovered MS messAnyway, all you need is to add checking for m_tick18.var_value.n 

 

and reset the m_tick18.var_old.njust like this...

 

void MyGaugeCDrawable::Update(void){ lookup_var(&m_tick18); if(m_radar==NULL) return; if(m_owner==NULL)

 

return; //additional checking against rollover :) if (m_tick18.var_value.n<m_tick18.var_old.n)     m_tick18.var_old =

 

m_tick18.var_value; if(m_tick18.var_old.n+TICK_MODULO>m_tick18.var_value.n) return; m_recalced =

 

true; m_radar->QueryAiData((int)m_maxnum_act,m_max_range_nm, m_owner-

 

>GetTimeSepTA(),m_owner->GetTimeSepRA(), m_owner->GetDistanceSepTA

 

(),m_owner->GetDistanceSepRA(), m_owner->GetAltitudeSepTA(),m_owner-

 

>GetAltitudeSepRA() ); m_tick18.var_old = m_tick18.var_value;}

 

==========================

But.. there was the other side of the coin . After panel resizing XML variable P:Absolute time rollovers also. Meaning that your favourite 

 

clock gauge will show you pretty nice zeros :sad:

===============================================

 

'dragonflightdesign', on 25 Sept 2010 - 12:47 PM, said:

You might want to remove the rollover checks completely. There was an undocumented update with FS2K2 when the original UINT16 time limit of 65535 was changed to a 32-bit integer; the rollover period now is in excess of 7.5 years. ACES forgot to update the SDK. ESP also still states 65535, IIRC.-Dai

So this means TICK18 has been an UINT32 since FS2K2? Wow, seems to be new to me. Then again, I don't do gauges more than every once in a while, haha. Posted Image Thanks for the "update" despite the dusty thread. :Party:RegardsEtienne 

 

===============================================

 

I'm hoping someone can shed some light on this.  Working with dll and C programing are way beyond my ken.  Thanks.

 

Share this post


Link to post
Share on other sites

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
  • Donation Goals

    AVSIM's 2020 Fundraising Goal

    Donate to our annual general fundraising goal. This donation keeps our doors open and providing you service 24 x 7 x 365. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. We reset this goal every new year for the following year's goal.


    33%
    $8,485.00 of $25,000.00 Donate Now
×
×
  • Create New...