Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Need help on TACAN radio

Featured Replies

Dear panel builders,I'm developing a TACAN radio for my F-16MLU aircraft and so far i succeded. I have a database containing 126 X channels and 126 Y channels (for instance TACAN CH20X = 108.30Mhz). I'm only able to access the first 27 channels after that the counter runs to up 126 but from CH 27 to CH 126 the frequency stays at 109.90 and doesn't change (doesn't read the database any further). Is this a limitation in the XML coding or am i missing something. If there is a easyier way of solving this problem i'am also very pleased. Please help me out.

<Gauge Name="AUX COMM PANEL" Version="1.0">   <Image Name="AUX COMM PANEL DAY.bmp" ImageSizes="267,174" Luminous="1"/>   <Update Hidden="No"/>   <Element>  	<Visible>(L:PANEL_LIGHTS_ON, enum) 1 ==</Visible>  	<Image Name="AUX COMM PANEL NIGHT.bmp" ImageSizes="267,174" Luminous="1"/>   </Element>   <Element>  	<Position X="28" Y="35"/>  	<Select>     	<Value>(L:IFF-MODE-SEL, enum)</Value>     	<Case Value="0">        	<Image Name="Knob IFF 00.bmp" ImageSizes="35,35"/>     	</Case>     	<Case Value="1">        	<Image Name="Knob IFF 01.bmp" ImageSizes="35,35"/>     	</Case>     	<Case Value="2">        	<Image Name="Knob IFF 02.bmp" ImageSizes="35,35"/>     	</Case>  	</Select>   </Element>   <Element>  	<Position X="184" Y="28"/>  	<Select>     	<Value>(L:CNI, enum)</Value>     	<Case Value="0">        	<Image Name="Knob_A-klein_04.bmp" ImageSizes="60,60"/>     	</Case>     	<Case Value="1">        	<Image Name="Knob_A-klein_06.bmp" ImageSizes="60,60"/>     	</Case>  	</Select>   </Element>      <Element>  	<Visible>(A:ELECTRICAL AVIONICS BUS VOLTAGE,volts) 24 > (A:PARTIAL PANEL AVIONICS,enum) 0 == &&</Visible>  	<Position X="100" Y="95"/>  	<Text X="64" Y="35" Bright="Yes" Length="3" Font="Quartz" Bold="Yes" Color="yellowgreen" Adjust="center" VerticalAdjust="center">     	<String>%((L:TACAN-CH,enum))%!03d!</String>  	</Text>   </Element>         <Element>  	<Position X="207" Y="104"/>  	<Select>     	<Value>(L:TACAN-MODE, enum)</Value>     	<Case Value="0">        	<Image Name="switch_off.bmp" ImageSizes="35,31"/>     	</Case>     	<Case Value="1">        	<Image Name="switch_on.bmp" ImageSizes="35,31"/>     	</Case>  	</Select>   </Element>   <!--	PRESET X CHANNEL SELECTION	-->  <Element>	<Select>  	<Value>(L:TACAN-MODE,enum) 1 == if{ 117.90																			117.80																			117.70																			117.60																			117.50																			117.40																			117.30																			117.20																			117.10																			117.00																			116.90																			116.80																			116.70																			116.60																			116.50																			116.40																			116.30																			116.20																			116.10																			116.00																			115.90																			115.80																			115.70																			115.60																			115.50																			115.40																			115.30																			115.20																			115.10																			115.00																			114.90																			114.80																			114.70																			114.60																			114.50																			114.40																			114.30																			114.20																			114.10																			114.00																			113.90																			113.80																			113.70																			113.60																			113.50																			113.40																			113.30																			113.20																			113.10																			113.00																			112.90																			112.80																			112.70																			112.60																			112.50																			112.40																			112.30																			112.20																			112.10																			112.00																			111.90																			111.80																			111.70																			111.60																			111.50																			111.40																			111.30																			111.20																			111.10																			111.00																			110.90																			110.80																			110.70																			110.60																			110.50																			110.40																			110.30																			110.20																			110.10																			110.00																			109.90																			109.80																			109.70																			109.60																			109.50																			109.40																			109.30																			109.20																			109.10																			109.00																			108.90																			108.80																			108.70																			108.60																			108.50																			108.40																			108.30																			108.20																			108.10																				108.00																			135.90																			135.80																			135.70																			135.60																			135.50																			135.40																			135.30																			135.20																			135.10																			135.00																			134.90																			134.80																			134.70																			134.60																			134.50																			134.40																			134.30																			126 (L:TACAN-CH,enum) case 100 * near 10000 % d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (> K:NAV2_RADIO_SET)																			}	  </Value>	</Select>  </Element><!--	PRESET Y CHANNEL SELECTION	-->  <Element>	<Select>  	<Value>(L:TACAN-MODE,enum) 1 (L:CH-XY-MODE, bool) 0 != && if{ 117.95																			117.85																			117.75																			117.65																			117.55																			117.45																			117.35																			117.25																			117.15																			117.05																			116.95																			116.85																			116.75																			116.65																			116.55																			116.45																			116.35																			116.25																			116.15																			116.05																			115.95																			115.85																			115.75																			115.65																			115.55																			115.45																			115.35																			115.25																			115.15																			115.05																			114.95																			114.85																			114.75																			114.65																			114.55																			114.45																			114.35																			114.25																			114.15																			114.05																			113.95																			113.85																			113.75																			113.65																			113.55																			113.45																			113.35																			113.25																			113.15																			113.05																			112.95																			112.85																			112.75																			112.65																			112.55																			112.45																			112.35																			112.25																			112.15																			112.05																			111.95																			111.85																			111.75																			111.65																			111.55																			111.45																			111.35																			111.25																			111.15																			111.05																			110.95																			110.85																			110.75																			110.65																			110.55																			110.45																			110.35																			110.25																			110.15																			110.05																			109.95																			109.85																			109.75																			109.65																			109.55																			109.45																			109.35																			109.25																			109.15																			109.05																			108.95																			108.85																			108.75																			108.65																			108.55																			108.45																			108.35																			108.25																			108.15																				108.05																			135.95																			135.85																			135.75																			135.65																			135.55																			135.45																			135.35																			135.25																			135.15																			135.05																			134.95																			134.85																			134.75																			134.65																			134.55																			134.45																			134.35																			126 (L:TACAN-CH,enum) case 100 * near 10000 % d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (> K:NAV2_RADIO_SET)																			}	  </Value>	</Select>  </Element>   <Mouse>  	<Area Left="25" Right="65" Top="35" Bottom="98">     	<Cursor Type="Hand"/>     	<Click Kind="WheelUp+WheelDown+LeftSingle+RightSingle">(M:Event) 'WheelUp' scmp 0 == (M:Event) 'LeftSingle' scmp 0 == || if{ (L:IFF-MODE-SEL, enum) ++ 2 min } els{ (L:IFF-MODE-SEL, enum) -- 0 max } (>L:IFF-MODE-SEL, enum)</Click>  	</Area>  	<Area Left="181" Right="221" Top="15" Bottom="56">     	<Cursor Type="Hand"/>     	<Click>(L:CNI, enum) 1 == if{ 0 (>L:CNI, enum) } els{ (L:CNI, enum) ++ (>L:CNI, enum) }</Click>  	</Area>  	<!-- ***************** MOUSE AREA UHF CH KNOB ******************** --><Area Left="114" Right="174" Top="122" Bottom="145">	 <Cursor Type="Hand"/>	 <Click Kind="WheelUp+WheelDown+LeftSingle+RightSingle">		(M:Event) 'WheelUp' scmp 1 == (M:Event) 'LeftSingle' scmp 1 == || if{ (L:TACAN-CH, enum) ++ 126 min } els{ (L:TACAN-CH, enum) -- 1 max } (>L:TACAN-CH, enum)	 </Click>	</Area>	  	<Area Left="210" Right="230" Top="100" Bottom="140">     	<Help ID="HELPID_Master Ext Light_SWITCH"/>     	<Cursor Type="Hand"/>     	<Click>(L:TACAN-MODE, bool) ! (>L:TACAN-MODE, bool) 0 (>K:NAV2_RADIO_SET)</Click>     	<Tooltip ID="">TACAN-MODE Switch</Tooltip>  	</Area>	  	<Area Left="176" Right="196" Top="122" Bottom="145">     	<Help ID="HELPID_Master Ext Light_SWITCH"/>     	<Cursor Type="Hand"/>     	<Click>(L:CH-XY-MODE, bool) ! (>L:CH-XY-MODE, bool) 0 (>K:NAV2_RADIO_SET)</Click>     	<Tooltip ID="">CH-XY-MODE Switch</Tooltip>  	</Area>   </Mouse></Gauge>

Greetings Slammer

Hi,1. may be there is a limit in the amount of frequency's you can use in the case statement.2. there is wrong code in your click:<Click Kind="WheelUp+WheelDown+LeftSingle+RightSingle"> (M:Event) 'WheelUp' scmp 1 == (M:Event) 'LeftSingle' scmp 1 == || if{ (L:TACAN-CH, enum) ++ 126 min } els{ (L:TACAN-CH, enum) -- 1 max } (>L:TACAN-CH, enum) </Click>should be:els{ (L:TACAN-CH, enum) -- 1 max (>L:TACAN-CH, enum) } You can also try something like, not tested:<Macro Name="BCD">100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + </Macro>and<Click Kind="LeftSingle+RightSingle" Repeat="Yes">(M:Event) 'LeftSingle' scmp 0 == if{ (L:tacan,number) 0.05 - 107.95 max (>L:tacan,number) (L:tacan,number) @BCD (>K:NAV2_RADIO_SET) }(M:Event) 'RightSingle' scmp 0 == if{ (L:tacan,number) 0.05 + 117.95 min (>L:tacan,number) (L:tacan,number) @BCD (>K:NAV2_RADIO_SET) } and read somewhere L:tacan,number.I think you can split this code yourself into the X and Y channels.Hope it helps,Jan

Jan

 

 

 

"Beatus ille qui procul negotiis..."

Hi,Correction! Misread your click code cause i always use something like:<Click Kind="LeftSingle+RightSingle" Repeat="Yes">(M:Event) 'LeftSingle' scmp 0 == if{ (L:TACAN-CH,enum) -- 1 max (>L:TACAN-CH,enum) } (M:Event) 'RightSingle' scmp 0 == if{ (L:TACAN-CH,enum) ++ 126 min (>L:TACAN-CH,enum) } Not familiar with yours, so it is probably ok for you?Sorry,Jan

Jan

 

 

 

"Beatus ille qui procul negotiis..."

I'm not familiar with TACAN but what I see in the list you posted is that:The channels go from 117.8* down to 108.0* and from 135.9* down to 134.3* in .1 increments.The X channels end with .*0 and the Y channels end with .*5.With that you could calculate the frequency from the TACAN channel.-Make the starting frequency 117.80-If the channelnumber was higher than 110 (that is where it changes from low to high frequency, right?), add 11.00 (=110/10) and add 18.10 (=135.90-117.80)-Now subtract the channelnumber divided by 10-If it is a Y channel, add .05

  • Author

Jan en Jeroen,Thanx for your reaction. Jan your macro did not do what is supposed to, if i hit the channel up-down button the channel displays 108.Jeroen, the memory start from bottom to top so channel 001X = 134.40Mhz and channel 126X= 117.90Mhz (it reads the first 27 channels)Greetz Eddy

Hi,Just for fun i tested (don't mind the coordinates and other logic) this code with your "click" and it worked somehow:<Macro Name="BCD">100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + </Macro><Element><Position X="871" Y="764"/><Text X="45" Y="14" Length="6" Bright="Yes" Fixed="Yes" Font="Quartz" FontWeight="600" Color="%('dkgray' 'gray' (A:CIRCUIT AVIONICS ON,bool) ?)" Adjust="center" VerticalAdjust="center" Multiline="No"><String>%((A:CIRCUIT AVIONICS ON,bool))%{if}%((L:tacan,enum) 108 <)%{if}---.--%{else}%((L:tacan,number))%!6.2f!%{end}%{else}888.88%{end}</String></Text></Element><Area Left="845" Right="951" Top="775" Bottom="820"> <Tooltip>%((A:Nav1 active frequency,MHz))%!6.2f!</Tooltip><Cursor Type="Hand"/><Click Kind="WheelUp+WheelDown+LeftSingle+RightSingle" Repeat="Yes"> (M:Event) 'WheelUp' scmp 1 == (M:Event) 'LeftSingle' scmp 1 == || if{ (L:tacan,enum) 0.05 + 117.95 min } els{ (L:tacan,enum) 0.05 - 107.95 max } (>L:tacan,enum) (L:tacan,enum) @BCD (>K:NAV1_RADIO_SET) </Click></Area>One strange thing:When you go down to 107,95 and then up to 117,95 one gets 108.19, 108.24 etc.After reaching 117.95 and the going back the frequency normalizes again.Back at 108.00 you could go to 107,95, but when you don't and go back to 117,95 the frequencies stay normal.No explanation for this phenomenon yet.May be useful,Jan

Jan

 

 

 

"Beatus ille qui procul negotiis..."

Hi,A more elaborate way is (not tested):<Macro Name="tacan">100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:NAV2_RADIO_SET)</Macro><Update>(L:TACAN-MODE,enum) 1 == if{ (L:TACAN-CH,enum) 1 == if{ 108.00 @tacan } (L:TACAN-CH,enum) 2 == if{ 108.10 @tacan } (L:TACAN-CH,enum) 3 == if{ 108.20 @tacan } (L:TACAN-CH,enum) 4 == if{ 108.30 @tacan } .........etc. (L:TACAN-CH,enum) 126 == if{ 134.40 @tacan } } (L:TACAN-MODE,enum) 1 (L:CH-XY-MODE, bool) 0 != and if{ (L:TACAN-CH,enum) 1 == if{ 108.05 @tacan } (L:TACAN-CH,enum) 2 == if{ 108.15 @tacan } (L:TACAN-CH,enum) 3 == if{ 108.25 @tacan } (L:TACAN-CH,enum) 4 == if{ 108.35 @tacan } .........etc. (L:TACAN-CH,enum) 126 == if{ 134.45 @tacan } } </Update>Jan

Jan

 

 

 

"Beatus ille qui procul negotiis..."

Hi,I tested, just for fun:<Macro Name="tacan">100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:NAV1_RADIO_SET)</Macro><Macro Name="tacancomm">100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:COM_RADIO_SET)</Macro><Update>(L:TACAN-CH,enum) 1 == if{ 108.00 @tacan } (L:TACAN-CH,enum) 2 == if{ 108.10 @tacan } (L:TACAN-CH,enum) 3 == if{ 108.20 @tacan } (L:TACAN-CH,enum) 4 == if{ 108.30 @tacan } (L:TACAN-CH,enum) 10 == if{ 108.40 @tacan } (L:TACAN-CH,enum) 30 == if{ 109.45 @tacan } (L:TACAN-CH,enum) 50 == if{ 110.50 @tacan } (L:TACAN-CH,enum) 70 == if{ 116.55 @tacan } (L:TACAN-CH,enum) 80 == if{ 117.59 @tacan } (L:TACAN-CH,enum) 110 == if{ 119.95 @tacancomm } (L:TACAN-CH,enum) 115 == if{ 127.60 @tacancomm } (L:TACAN-CH,enum) 118 == if{ 130.55 @tacancomm } (L:TACAN-CH,enum) 120 == if{ 134.60 @tacancomm } (L:TACAN-CH,enum) 122 == if{ 135.25 @tacancomm } (L:TACAN-CH,enum) 126 == if{ 135.95 @tacancomm } </Update><Click Kind="WheelUp+WheelDown+LeftSingle+RightSingle" Repeat="Yes"> (M:Event) 'WheelUp' scmp 1 == (M:Event) 'LeftSingle' scmp 1 == || if{ (L:TACAN-CH,enum) ++ 126 min } els{ (L:TACAN-CH,enum) -- 1 max } (>L:TACAN-CH,enum) </Click>and it worked.When you go further than 117.95 nav becomes comm.You need some code in the update.......Jan

Jan

 

 

 

"Beatus ille qui procul negotiis..."

  • Author

Jan,Many thanks for all your help so far!I've tried your last send code and i'm having the same problem that only the first 27 channels are recognized. I found code to convert channel number into freq and goes as follows:You need 4 keynumbers e.g. 1063 for X and 1063.5 for Y channel 17-59 and 1053 for X and 1053.5 for Y channel 70 to 126 (channel 1-16 run from 134.40Mhz - 135.95Mhz and channel 60-69 run from 133.30Mhz - 134.25Mhz and do not fit in the NAV1 or 2 radio)Example for CH20X: 20 + 1063 = 1083/10=108.30Mhz CH20Y: 20 + 1063.5 = 1083.5/10 = 108.35MhzExample for CH126X: 126 + 1053 = 1179/10 = 117.90Mhz CH126Y: 126 + 1053.5 = 11795/10 = 117.95MhzThe problem is how to work this around in XML code?Greetz Ed

Hi, Not sure what you want, but in xml try for example:CH20X: 20 1063 + 10 / 100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:NAV2_RADIO_SET) CH20Y: 20 1063.5 + 10 / 100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:NAV2_RADIO_SET) andCH126X: 126 1053 + 10 / 100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:COM_RADIO_SET) CH126Y: 126 1053.5 + 10 / 100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:COM_RADIO_SET) Btw. I don't understand the limitation of 27 channels.In my <update> code they all work.Probably there is a limit in the amount of factors in the case statement; never tried to find that limit.Jan

Jan

 

 

 

"Beatus ille qui procul negotiis..."

  • Author

Jan,Make your list with frequencies more than 27 and see what happens.Greetz Ed

Hi,Sorry for all those code, but....tested<Macro Name="tacan">100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:NAV1_RADIO_SET)</Macro><Macro Name="tacancomm">100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:COM_RADIO_SET)</Macro><Update>(L:TACAN-CH,enum) 1 == if{ 108.00 @tacan } (L:TACAN-CH,enum) 2 == if{ 108.10 @tacan } (L:TACAN-CH,enum) 3 == if{ 108.20 @tacan } (L:TACAN-CH,enum) 4 == if{ 108.30 @tacan } (L:TACAN-CH,enum) 5 == if{ 108.40 @tacan } (L:TACAN-CH,enum) 7 == if{ 108.50 @tacan } (L:TACAN-CH,enum) 8 == if{ 108.60 @tacan } (L:TACAN-CH,enum) 9 == if{ 108.70 @tacan } (L:TACAN-CH,enum) 0 == if{ 108.80 @tacan } (L:TACAN-CH,enum) 10 == if{ 108.90 @tacan } (L:TACAN-CH,enum) 11 == if{ 109.00 @tacan } (L:TACAN-CH,enum) 12 == if{ 109.10 @tacan } (L:TACAN-CH,enum) 13 == if{ 109.20 @tacan } (L:TACAN-CH,enum) 14 == if{ 109.30 @tacan } (L:TACAN-CH,enum) 15 == if{ 109.40 @tacan } (L:TACAN-CH,enum) 16 == if{ 109.50 @tacan } (L:TACAN-CH,enum) 17 == if{ 109.60 @tacan } (L:TACAN-CH,enum) 18 == if{ 109.70 @tacan } (L:TACAN-CH,enum) 19 == if{ 109.80 @tacan } (L:TACAN-CH,enum) 20 == if{ 109.90 @tacan } (L:TACAN-CH,enum) 21 == if{ 110.00 @tacan } (L:TACAN-CH,enum) 22 == if{ 110.10 @tacan } (L:TACAN-CH,enum) 23 == if{ 110.20 @tacan } (L:TACAN-CH,enum) 24 == if{ 110.30 @tacan } (L:TACAN-CH,enum) 25 == if{ 110.40 @tacan } (L:TACAN-CH,enum) 26 == if{ 110.50 @tacan } (L:TACAN-CH,enum) 27 == if{ 110.60 @tacan } (L:TACAN-CH,enum) 28 == if{ 110.70 @tacan } (L:TACAN-CH,enum) 29 == if{ 110.80 @tacan } (L:TACAN-CH,enum) 30 == if{ 110.90 @tacan } (L:TACAN-CH,enum) 31 == if{ 111.00 @tacan } (L:TACAN-CH,enum) 32 == if{ 111.10 @tacan } (L:TACAN-CH,enum) 33 == if{ 111.20 @tacan } (L:TACAN-CH,enum) 34 == if{ 111.30 @tacan } (L:TACAN-CH,enum) 35 == if{ 111.40 @tacan } (L:TACAN-CH,enum) 36 == if{ 111.50 @tacan } (L:TACAN-CH,enum) 37 == if{ 111.60 @tacan } (L:TACAN-CH,enum) 38 == if{ 111.70 @tacan } (L:TACAN-CH,enum) 39 == if{ 111.80 @tacan } (L:TACAN-CH,enum) 40 == if{ 111.90 @tacan } (L:TACAN-CH,enum) 41 == if{ 112.00 @tacan } (L:TACAN-CH,enum) 42 == if{ 112.10 @tacan } (L:TACAN-CH,enum) 43 == if{ 112.20 @tacan } (L:TACAN-CH,enum) 44 == if{ 112.30 @tacan } (L:TACAN-CH,enum) 45 == if{ 112.40 @tacan } (L:TACAN-CH,enum) 46 == if{ 112.50 @tacan } (L:TACAN-CH,enum) 47 == if{ 112.60 @tacan } (L:TACAN-CH,enum) 48 == if{ 112.70 @tacan } (L:TACAN-CH,enum) 49 == if{ 112.80 @tacan } (L:TACAN-CH,enum) 50 == if{ 112.90 @tacan } (L:TACAN-CH,enum) 51 == if{ 113.00 @tacan } (L:TACAN-CH,enum) 52 == if{ 113.10 @tacan } (L:TACAN-CH,enum) 53 == if{ 113.20 @tacan } (L:TACAN-CH,enum) 54 == if{ 113.30 @tacan } (L:TACAN-CH,enum) 55 == if{ 113.40 @tacan } (L:TACAN-CH,enum) 56 == if{ 113.50 @tacan } (L:TACAN-CH,enum) 57 == if{ 113.60 @tacan } (L:TACAN-CH,enum) 58 == if{ 113.70 @tacan } (L:TACAN-CH,enum) 59 == if{ 113.80 @tacan } (L:TACAN-CH,enum) 60 == if{ 113.90 @tacan } (L:TACAN-CH,enum) 61 == if{ 114.00 @tacan } (L:TACAN-CH,enum) 62 == if{ 114.10 @tacan } (L:TACAN-CH,enum) 63 == if{ 114.20 @tacan } (L:TACAN-CH,enum) 64 == if{ 119.30 @tacancomm } (L:TACAN-CH,enum) 65 == if{ 119.40 @tacancomm } (L:TACAN-CH,enum) 66 == if{ 119.50 @tacancomm } (L:TACAN-CH,enum) 67 == if{ 119.60 @tacancomm } (L:TACAN-CH,enum) 68 == if{ 119.70 @tacancomm } (L:TACAN-CH,enum) 69 == if{ 119.80 @tacancomm } (L:TACAN-CH,enum) 70 == if{ 119.90 @tacancomm } (L:TACAN-CH,enum) 51 == if{ 118.00 @tacancomm } (L:TACAN-CH,enum) 52 == if{ 118.10 @tacancomm } (L:TACAN-CH,enum) 53 == if{ 118.20 @tacancomm } (L:TACAN-CH,enum) 54 == if{ 118.30 @tacancomm } (L:TACAN-CH,enum) 55 == if{ 118.40 @tacancomm } (L:TACAN-CH,enum) 56 == if{ 118.50 @tacancomm } (L:TACAN-CH,enum) 57 == if{ 118.60 @tacancomm } (L:TACAN-CH,enum) 58 == if{ 118.70 @tacancomm } (L:TACAN-CH,enum) 59 == if{ 118.80 @tacancomm } (L:TACAN-CH,enum) 60 == if{ 118.90 @tacancomm } (L:TACAN-CH,enum) 61 == if{ 120.00 @tacancomm } (L:TACAN-CH,enum) 62 == if{ 120.10 @tacancomm } (L:TACAN-CH,enum) 63 == if{ 120.20 @tacancomm } (L:TACAN-CH,enum) 64 == if{ 120.30 @tacancomm } (L:TACAN-CH,enum) 65 == if{ 120.40 @tacancomm } (L:TACAN-CH,enum) 66 == if{ 120.50 @tacancomm } (L:TACAN-CH,enum) 67 == if{ 120.60 @tacancomm } (L:TACAN-CH,enum) 68 == if{ 120.70 @tacancomm } (L:TACAN-CH,enum) 69 == if{ 120.80 @tacancomm } (L:TACAN-CH,enum) 70 == if{ 120.90 @tacancomm } (L:TACAN-CH,enum) 71 == if{ 120.00 @tacancomm } (L:TACAN-CH,enum) 72 == if{ 120.10 @tacancomm } (L:TACAN-CH,enum) 73 == if{ 120.20 @tacancomm } (L:TACAN-CH,enum) 74 == if{ 120.30 @tacancomm } (L:TACAN-CH,enum) 75 == if{ 120.40 @tacancomm } (L:TACAN-CH,enum) 76 == if{ 120.50 @tacancomm } (L:TACAN-CH,enum) 77 == if{ 120.60 @tacancomm } (L:TACAN-CH,enum) 78 == if{ 120.70 @tacancomm } (L:TACAN-CH,enum) 79 == if{ 120.80 @tacancomm } (L:TACAN-CH,enum) 80 == if{ 120.90 @tacancomm } (L:TACAN-CH,enum) 81 == if{ 120.00 @tacancomm } (L:TACAN-CH,enum) 82 == if{ 120.10 @tacancomm } (L:TACAN-CH,enum) 83 == if{ 120.20 @tacancomm } (L:TACAN-CH,enum) 84 == if{ 120.30 @tacancomm } (L:TACAN-CH,enum) 85 == if{ 120.40 @tacancomm } (L:TACAN-CH,enum) 86 == if{ 120.50 @tacancomm } (L:TACAN-CH,enum) 87 == if{ 120.60 @tacancomm } (L:TACAN-CH,enum) 88 == if{ 120.70 @tacancomm } (L:TACAN-CH,enum) 89 == if{ 120.80 @tacancomm } (L:TACAN-CH,enum) 90 == if{ 120.90 @tacancomm } (L:TACAN-CH,enum) 91 == if{ 121.00 @tacancomm } (L:TACAN-CH,enum) 92 == if{ 121.10 @tacancomm } (L:TACAN-CH,enum) 93 == if{ 121.20 @tacancomm } (L:TACAN-CH,enum) 94 == if{ 121.30 @tacancomm } (L:TACAN-CH,enum) 95 == if{ 121.40 @tacancomm } (L:TACAN-CH,enum) 96 == if{ 121.50 @tacancomm } (L:TACAN-CH,enum) 97 == if{ 121.60 @tacancomm } (L:TACAN-CH,enum) 98 == if{ 121.70 @tacancomm } (L:TACAN-CH,enum) 99 == if{ 121.80 @tacancomm } (L:TACAN-CH,enum) 100 == if{ 121.90 @tacancomm } (L:TACAN-CH,enum) 101 == if{ 122.00 @tacancomm } (L:TACAN-CH,enum) 102 == if{ 122.10 @tacancomm } (L:TACAN-CH,enum) 103 == if{ 122.20 @tacancomm } (L:TACAN-CH,enum) 104 == if{ 122.30 @tacancomm } (L:TACAN-CH,enum) 105 == if{ 122.40 @tacancomm } (L:TACAN-CH,enum) 106 == if{ 122.50 @tacancomm } (L:TACAN-CH,enum) 107 == if{ 122.60 @tacancomm } (L:TACAN-CH,enum) 108 == if{ 122.70 @tacancomm } (L:TACAN-CH,enum) 109 == if{ 122.80 @tacancomm } (L:TACAN-CH,enum) 110 == if{ 122.90 @tacancomm } (L:TACAN-CH,enum) 111 == if{ 123.00 @tacancomm } (L:TACAN-CH,enum) 112 == if{ 123.10 @tacancomm } (L:TACAN-CH,enum) 113 == if{ 123.20 @tacancomm } (L:TACAN-CH,enum) 114 == if{ 123.30 @tacancomm } (L:TACAN-CH,enum) 115 == if{ 123.40 @tacancomm } (L:TACAN-CH,enum) 116 == if{ 123.50 @tacancomm } (L:TACAN-CH,enum) 117 == if{ 123.60 @tacancomm } (L:TACAN-CH,enum) 118 == if{ 123.70 @tacancomm } (L:TACAN-CH,enum) 119 == if{ 123.80 @tacancomm } (L:TACAN-CH,enum) 120 == if{ 123.90 @tacancomm } (L:TACAN-CH,enum) 121 == if{ 124.00 @tacancomm } (L:TACAN-CH,enum) 122 == if{ 124.10 @tacancomm } (L:TACAN-CH,enum) 123 == if{ 124.20 @tacancomm } (L:TACAN-CH,enum) 124 == if{ 124.30 @tacancomm } (L:TACAN-CH,enum) 125 == if{ 124.40 @tacancomm } (L:TACAN-CH,enum) 126 == if{ 124.50 @tacancomm } </Update><Area Left="845" Right="951" Top="775" Bottom="820"> <Tooltip>%((L:TACAN-CH,enum))%!d!</Tooltip><Cursor Type="Hand"/><Click Kind="WheelUp+WheelDown+LeftSingle+RightSingle" Repeat="Yes"> (M:Event) 'WheelUp' scmp 1 == (M:Event) 'LeftSingle' scmp 1 == || if{ (L:TACAN-CH,enum) ++ 126 min } els{ (L:TACAN-CH,enum) -- 1 max } (>L:TACAN-CH,enum) </Click></Area>and all 126 work.Btw. this is bad code cause it gives continuous firing of the last channel command, but that is not the issue now.Jan

Jan

 

 

 

"Beatus ille qui procul negotiis..."

Hi all, see here http://forum.avsim.n...__1#entry523450 for the limit on case values, it states that 0-27 will work, no more than that. I realize you're still in the development stages of this radio, something to point out. In all examples you will run into the "Constant Firing" dilemma so a channel change check should be made prior to assigning channel & switching modes.<Click> do all the tacan channel change stuff "and" 1 (>L:TacanChannelChange, bool)</Click>For the channel changing section have(L:TACAN-MODE,enum) 1 (L:CH-XY-MODE, bool) 0 != (L:TacanChannelChange, bool) 1 == & & & if{ 0 (>L:TacanChannelChange, bool) <!-- now do the frequency assignment, if still wanting to use case then split channels upinto chunks of 27 --> }Just a note on TACAN, TACAN IS NOT the same as VOR/DME or Comm - It actually runs in the GHz range, it is used only for navigation, not COMM. What is true is the pairings. A TACAN station can be paired up with a VOR/DME staion and/or a COMM station that provides TACAN NAV. Taking all the inputs from the responses in this thread below is a bit of code that should work, including the non constant firing, your conversion code and a little something extra in the tuning knob.. Comments provided. This is just a suggestion, I cannot test it, but hope it may help.Roman

<!-- Included is the non constant firing reset --><Macro Name="Tacan">100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:NAV2_RADIO_SET) 0 (>L:TacanChannelChange, bool) </Macro><Update><!-- On first aircraft load set channel to 17 -->(G:Var1) 0 == if{ 17 (>L:TACAN-CH, enum) 1 (>G:Var1) }(L:TacanChannelChange, bool) 1 == (L:TACAN-MODE,enum) 1 & if{<!-- Mode X  17-59 1063 -->(L:CH-XY-MODE, bool) 1 == (L:TACAN-CH, enum) 60 < & if{ (L:TACAN-CH, enum) 1063 + 10 / }<!-- Mode Y 17-59  1063.5-->(L:CH-XY-MODE, bool) 0 == (L:TACAN-CH, enum) 60 < & if{ (L:TACAN-CH, enum) 1063.5 + 10 / }<!-- Mode X  70-126 1053 -->(L:CH-XY-MODE, bool) 1 == (L:TACAN-CH, enum) 69 > & if{ (L:TACAN-CH, enum) 1053 + 10 / }<!-- Mode Y  70-126 1053.5 -->(L:CH-XY-MODE, bool) 0 == (L:TACAN-CH, enum) 69 > & if{ (L:TACAN-CH, enum) 1053.5 + 10 / }@Tacan }</Update> <!-- Code to make channel select "rotate" IE 17-59 to 70-126 to 17 and reverse. Included is the non constant firing trigger. --><Area Left="114" Right="174" Top="122" Bottom="145">          <Cursor Type="Hand"/>          <Click Kind="WheelUp+WheelDown+LeftSingle+RightSingle">                 (M:Event) 'WheelUp' scmp 1 == (M:Event) 'LeftSingle' scmp 1 == || if{ (L:TACAN-CH, enum) 59 == if { 70 } els{ (L:TACAN-CH, enum) 126 == if { 17 } els{ (L:TACAN-CH, enum) ++ } } } els{ (L:TACAN-CH, enum) 70 == if { 59 } els{ (L:TACAN-CH, enum) 17 == if { 126 } els{ (L:TACAN-CH, enum) -- } } } (>L:TACAN-CH, enum) 1 (>L:TacanChannelChange, bool)         </Click>         </Area><!-- Code so that radio does not reset itself when switching between X and Y modes --><Area Left="176" Right="196" Top="122" Bottom="145">         <Help ID="HELPID_Master Ext Light_SWITCH"/>         <Cursor Type="Hand"/>         <Click>(L:CH-XY-MODE, bool) ! (>L:CH-XY-MODE, bool) (L:TACAN-MODE,enum) 1 == if{ 1 (>L:TacanChannelChange, bool) }</Click>         <Tooltip ID="">CH-XY-MODE Switch</Tooltip>         </Area> 

20AUG21_Avsim_Sig.png?dl=1  FS RTWR   SHRS F-111   JoinFS   Little Navmap 
 

 

Hi,Looked at channels and frequency's.Knew about the case limitations and K firing.Tested this, no update necessary, no event-firing (Doug) and works ok!:<Macro Name="tacan">100 * 10000 % int d 10 % r 10 / int d 10 % r 10 / int d 10 % r 10 / int 16 * + 16 * + 16 * + (>K:NAV2_RADIO_SET)</Macro><String>%((L:TACAN-CH,enum) s0 59 > l0 70 < and)%{if}---%{else}%((L:TACAN-CH,enum))%!03d!%{end}%((L:CH-XY-MODE,bool))%{if}X%{else}Y%{end}</String><Click Kind="WheelUp+WheelDown+LeftSingle+RightSingle" Repeat="Yes"> (M:Event) 'WheelUp' scmp 1 == (M:Event) 'LeftSingle' scmp 1 == || if{ (L:TACAN-CH,enum) ++ 126 min } els{ (L:TACAN-CH,enum) -- 17 max } (>L:TACAN-CH,enum) (L:CH-XY-MODE,bool) (L:TACAN-CH,enum) 60 < and if{ (L:TACAN-CH,enum) 1063 + 10 / @tacan } (L:CH-XY-MODE,bool) ! (L:TACAN-CH,enum) 60 < and if{ (L:TACAN-CH,enum) 1063.5 + 10 / @tacan } (L:CH-XY-MODE,bool) (L:TACAN-CH,enum) 69 > and if{ (L:TACAN-CH,enum) 1053 + 10 / @tacan } (L:CH-XY-MODE,bool) ! (L:TACAN-CH,enum) 69 > and if{ (L:TACAN-CH,enum) 1053.5 + 10 / @tacan } </Click>and<Click>(L:CH-XY-MODE,bool) ! (>L:CH-XY-MODE,bool) (L:TACAN-CH,enum) 60 < if{ (L:CH-XY-MODE,bool) if{ (L:TACAN-CH,enum) 1063 + 10 / @tacan } els{ (L:TACAN-CH,enum) 1063.5 + 10 / @tacan } } els{ (L:TACAN-CH,enum) 69 > if{ (L:CH-XY-MODE,bool) if{ (L:TACAN-CH,enum) 1053 + 10 / @tacan } els{ (L:TACAN-CH,enum) 1053.5 + 10 / @tacan } } } } </Click>The Channel-display could be improved, cause you have to dial between 60-69 while --- remains visible.Jan

Jan

 

 

 

"Beatus ille qui procul negotiis..."

  • Author

Jan and Roman,Sorry for the late reaction to your exellent help, it cost me some time to figure things out. Finally it worked with the last post of Jan. I only have one other question:The readouts of the Channel numbers and frequencies are also displayed on the Data Entry Display which is located on the Main console and i have an UpArrow/DownArrow statement connected to that to change the TACAN Channels (e.g. CH20X Freq 108.30) The question is how to adjust this statement here's the old code:<Macro Name="TACANPRESET">(L:TACAN-CH, enum) 126 == if{ 0 (>L:TACAN-CH, enum) } els{ (L:TACAN-CH, enum) ++ (>L:TACAN-CH, enum) }</Macro><Macro Name="TACANPRESETDOWN">(L:TACAN-CH, enum) 0 == if{ 126 (>L:TACAN-CH, enum) } els{ (L:TACAN-CH, enum) -- (>L:TACAN-CH, enum) }</Macro><!-- ********* DED TOGGLE SWITCH ********** --><Area Left="46" Right="66" Top="168" Bottom="195"><Visible>(A:CIRCUIT AVIONICS ON, bool) 1 == </Visible><Tooltip>DED Toggle Switch</Tooltip> <Cursor Type="UpArrow" Repeat="Yes"/> <Click Repeat="Yes">(L:ICP-MODE,enum) 1 == (L:ICP-SEQ,enum) 2== && if{@UHFPRESET} (L:ICP-MODE,enum) 8 == if{@CRUS} (L:ICP-MODE,enum) 10 == if{@MARK} (L:ICP-MODE,enum) 4 == (L:ICP-LIST,enum) 12 == && (L:ICP-LIST-MISC,enum) 8 == && if{@BULL} (L:ICP-MODE,enum) 4 == (L:ICP-LIST,enum) 10 == && if{@HUDMODE} (L:ICP-MODE,enum) 0 == (L:ICP-SEQ,enum) 3 != && if{@STEERCONTROL} (L:ICP-MODE,enum) 0 == (L:UHF-MODE-KNOB,enum) 2 == && if{@UHFPRESET} (L:ICP-MODE,enum) 5 == (L:TACAN-MODE,enum) 1 == && if {@TACANPRESET} </Click> </Area> <!-- ********* DED TOGGLE SWITCH ********** --><Area Left="46" Right="66" Top="197" Bottom="220"><Visible>(A:CIRCUIT AVIONICS ON, bool) 1 == </Visible><Tooltip>DED Toggle Switch</Tooltip> <Cursor Type="DownArrow" Repeat="Yes"/> <Click Repeat="Yes">(L:ICP-MODE,enum) 1 == (L:ICP-SEQ,enum) 2== && if{@UHFPRESETDOWN} (L:ICP-MODE,enum) 8 == if{@CRUSDOWN} (L:ICP-MODE,enum) 10 == if{@MARKDOWN} (L:ICP-MODE,enum) 4 == (L:ICP-LIST,enum) 12 == && (L:ICP-LIST-MISC,enum) 8 == && if{@BULLDOWN} (L:ICP-MODE,enum) 4 == (L:ICP-LIST,enum) 10 == && if{@HUDMODEDOWN} (L:ICP-MODE,enum) 0 == (L:ICP-SEQ,enum) 3 != && if{@STEERCONTROLDOWN} (L:ICP-MODE,enum) 0 == (L:UHF-MODE-KNOB,enum) 2 == && if{@UHFPRESETDOWN} (L:ICP-MODE,enum) 5 == (L:TACAN-MODE,enum) 1 == && if {@TACANPRESETDOWN} </Click> </Area>This worked fine with the "older" code but i don't know how to change this macro statement with your new code, which is:<Area Left="114" Right="174" Top="122" Bottom="145"> <Cursor Type="Hand"/><Click Kind="WheelUp+WheelDown+LeftSingle+RightSingle" Repeat="Yes">(M:Event) 'WheelUp' scmp 1 == (M:Event) 'LeftSingle' scmp 1 == ||if{ (L:TACAN-CH,enum) ++ 126 min }els{ (L:TACAN-CH,enum) -- 17 max } (>L:TACAN-CH,enum)(L:CH-XY-MODE,bool) (L:TACAN-CH,enum) 60 < and if{ (L:TACAN-CH,enum) 1063 + 10 / @tacan }(L:CH-XY-MODE,bool) ! (L:TACAN-CH,enum) 60 < and if{ (L:TACAN-CH,enum) 1063.5 + 10 / @tacan }(L:CH-XY-MODE,bool) (L:TACAN-CH,enum) 69 > and if{ (L:TACAN-CH,enum) 1053 + 10 / @tacan }(L:CH-XY-MODE,bool) ! (L:TACAN-CH,enum) 69 > and if{ (L:TACAN-CH,enum) 1053.5 + 10 / @tacan }</Click></Area> Thank you both very much for your exellent help, really appriciate that!Greetz Ed

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.