Jump to content

DCS-BIOS Discussion Thread


FSFIan

Recommended Posts

As I understand the current support for button matrices and voltage dividers:

a) You can only have one button matrix per project

b) Voltage dividers can only be used for a single control, i.e a rotary switch.

 

Can we have support for more than one button matrix, and for buttons being chained on voltage dividers?

Link to comment
Share on other sites

  • 2 weeks later...

Hey Guys, i need help again.

 

I have the files to make the new F-16C work with bios.

 

But i need the correct name as screenshot.

like in this post:

https://forums.eagle.ru/showpost.php...&postcount=948

 

so if anybody can help, that would be nice

Link to comment
Share on other sites

Hey Guys, i need help again.

 

I have the files to make the new F-16C work with bios.

 

But i need the correct name as screenshot.

like in this post:

https://forums.eagle.ru/showpost.php...&postcount=948

 

so if anybody can help, that would be nice

 

Ya mean this?

F8mrTb5.jpg

Link to comment
Share on other sites

Hi guys! I'm having this problem

 

I have this ON OFF switch with only two screwed terminals. I'm using this line:

 

DcsBios::Switch2Pos hydContSw("HYD_CONT_SW", 3);

 

When i move the switch it works in both positions in DCS, but in the opposite positinon (ON in the switch, OFF in DCS. Switched to OFF, ON in DCS). Is there a way i can modify the code line to make it work the other way?

 

thanks!

Link to comment
Share on other sites

  • 2 weeks later...

hi guys , is it possible to change bcdwheel to switch2pos

 

for example

 

here is a tacan channel tuning knob.

DcsBios::BcdWheel tacCh10Sel("TAC_CH_10_SEL", PIN_A, PIN_B, PIN_C, PIN_D);

 

since i am in VR id just like to have a pothat so i can push left or right to change the channel.

 

i dont understand bcdwheel at all so im not sure if its possible.

Link to comment
Share on other sites

Hello is it normal that in the DED, the pointer is behind the number of point nav and not before?

In line 1 the small a.

 

Yeah there's something weird there.

 

The layout should be putting the up/down indicators before the Steerpoint so I'll have to have a look at what's going on later today.

Link to comment
Share on other sites

Hello is it normal that in the DED, the pointer is behind the number of point nav and not before?

In line 1 the small a.

 

Got it - I hadn't spotted that the ALOW and CMDS BINGO pages had identically name Steerpoint and Steerpoint Inc/Dec symbol items with different positions and the export was picking up the layout info from those items when displaying the CNI page.

 

I've updated my code to make sure those fields have unique names so that should go live in a future update but if you want the updated code in the meantime give me a shout

Link to comment
Share on other sites

Hi guys! I'm having this problem

 

I have this ON OFF switch with only two screwed terminals. I'm using this line:

 

DcsBios::Switch2Pos hydContSw("HYD_CONT_SW", 3);

 

When i move the switch it works in both positions in DCS, but in the opposite positinon (ON in the switch, OFF in DCS. Switched to OFF, ON in DCS). Is there a way i can modify the code line to make it work the other way?

 

thanks!

 

Hi patogn20,

 

Which module is it you are working on? The easiest way to deal with this is to mechanical turn you toggle switch 180º. Then you do not need to change any of the DCS-BIOS code.

 

Cheers

Hans

 

 

hi guys , is it possible to change bcdwheel to switch2pos

 

for example

 

here is a tacan channel tuning knob.

DcsBios::BcdWheel tacCh10Sel("TAC_CH_10_SEL", PIN_A, PIN_B, PIN_C, PIN_D);

 

since i am in VR id just like to have a pothat so i can push left or right to change the channel.

 

i dont understand bcdwheel at all so im not sure if its possible.

 

Sorry but which module are you working on?

 

Cheers

Hans

Link to comment
Share on other sites

Got it - I hadn't spotted that the ALOW and CMDS BINGO pages had identically name Steerpoint and Steerpoint Inc/Dec symbol items with different positions and the export was picking up the layout info from those items when displaying the CNI page.

 

I've updated my code to make sure those fields have unique names so that should go live in a future update but if you want the updated code in the meantime give me a shout

 

If i can trial the code for the ded, thanks

Link to comment
Share on other sites

 

 

Sorry but which module are you working on?

 

Cheers

Hans

 

hi Hansolo , its the M2000c however i downloaded the latest dcs-bios files and it is now a multiposition switch with a number of pins. i think id still like to try to get it to work with a left and right push button to change the channels if possible just to keep it as simple as possibe. cheers

Link to comment
Share on other sites

Great news about ded.

Now i hope you will find for the invert of the DED, datas for Chaft, Flares, UHF and Chan frequency.

And all eHSI informations and then Cockpit is ready for DCS Viper

 

I have inverted text working for the DED but only by using a custom font.

When I tried getting the Arduino to programatically turn on and off the inverted text it was taking so long the line was being updated before it completed printing so over the weekend I created a Custom version of the default Adafruit GFX font containing the inverted character.

 

Unfortunately this custom font isn't compatible with the custom font that DCS-BIOS contains because I'm using a different graphics library, but if you are set up to use the Adafruit GFX library I can pass you over what I have.

Link to comment
Share on other sites

I have inverted text working for the DED but only by using a custom font.

When I tried getting the Arduino to programatically turn on and off the inverted text it was taking so long the line was being updated before it completed printing so over the weekend I created a Custom version of the default Adafruit GFX font containing the inverted character.

 

Unfortunately this custom font isn't compatible with the custom font that DCS-BIOS contains because I'm using a different graphics library, but if you are set up to use the Adafruit GFX library I can pass you over what I have.

 

I am interested because I am looking to use DCS-BIOS with my own hardware and this one I can reprogram the LCD, so if I can look and if I can use it?

Link to comment
Share on other sites

I am interested because I am looking to use DCS-BIOS with my own hardware and this one I can reprogram the LCD, so if I can look and if I can use it?

 

the code I'm using in F-16C_50.lua to is

 

local generalReplacements = {
["a"] = "@",
["o"] = "^"
}
local formatReplacements = {
["*"] = "×",
[" "] = ";",
["0"] = "À",
["1"] = "Á",
["2"] = "#",
["3"] = "$",
["4"] = "%",
["5"] = "&",
["6"] = "\'",
["7"] = "+",
["8"] = ",",
["9"] = "-",
["."] = ">",
["a"] = "<",
["o"] = "°"
}
-----------
------------------------------------------------------------------DED Display Main Function-------------------------------------------------------------------------
local function buildDEDLine(line)
-- Get Layout Information for line being built
local DEDLayoutLine = DEDLayout[line]
-- Get Exported DED Objects
local DED_fields = parse_indication(6)
local layout
local label
local value

-- Base Output String
local dataLine ="                         "

-- Check for present of Objects that indicate Duplicate Key Names that need resolving
local guard = DED_fields["Guard Label"]
local mode = DED_fields["Mode label"]
local event = DED_fields["Event Occured"]
local alow =  DED_fields["ALOW label"]
local bingo = DED_fields["CMDS_BINGO_lbl"]

--Loop through Exported DED Objects
for k,v in pairs(DED_fields) do
-- Handle Duplicate Key Names on COM2 Guard page items        
	if guard ~= nil then
		label = guard.." "..k
-- Handle Duplicate Key Names on IFF STAT page items
	elseif mode ~= nil then
		label = mode.." "..k
-- Handle Duplicate Key Names on IFF POS & TIM page items
	elseif event ~= nil then
		label = event.." "..k
-- Handle Duplicate Key Names on ALOW page Line 1 items
	elseif alow ~= nil and line == 1 then
		label = alow.." "..k
-- Handle Duplicate Key Names on CMDS Bingo page Line 1 items
	elseif bingo ~= nil and line == 1 then
		label = bingo.." "..k
	else
		label = k
	end
--Get layout data associated with current key
	layout = DEDLayoutLine[label:gsub("_inv","",1):gsub("_lhs","_both",1)]
	if layout ~= nil then
		local tempValue
--If layout value 6 is present then use this value to override the value returned from DCS
		if layout[6] ~= nil then
			tempValue = layout[6]
		else
			tempValue = v
		end
--If layout value 5 is present then use this value to populate the Format section of the output otherwise return ""
		if layout[5] ~= nil and (layout[4] == "" or layout[4] == label:sub(#layout[4]*-1)) then
			if layout[5] == "I" then
				value = tempValue:gsub(".",formatReplacements):lower()
			end
		else
			value = tempValue:gsub(".",generalReplacements)
		end
		
-- Add Value to dataLine using mergeString because some values are are supposed to fit within others
		dataLine = mergeString(dataLine, value, layout[1])

--If layout value 3 > 0 we need to duplicate this item at position specific in value 3 (this is for "*"s marking enterable fields
		if layout[3] ~= nil and layout[3] > 0 then
			dataLine = mergeString(dataLine, value, layout[3])
		end
	end
end
   return dataLine
end

 

In practical terms it just checks that the data needs inverting (either the end of the label is "_inv" or the field is always inverted) and then substitutes characters in the string so I pick up the correct custom character from the custom font


Edited by Matchstick
Link to comment
Share on other sites

Thanks.

On BMS, there are 2 tables. 1 table for the DEDLines and another for the Inverted. When the Inverted has data in the same location as the DEDLine, it must be reversed.

With your code, you just have to give the correct code of the inverted character and it should work on the LCD Graphics... I'll see this, super thank you.

Link to comment
Share on other sites

Hi patogn20,

 

Which module is it you are working on? The easiest way to deal with this is to mechanical turn you toggle switch 180º. Then you do not need to change any of the DCS-BIOS code.

 

Cheers

Hans

 

 

 

I can't do that because is a specific honeywell switch. I cant turn it the other side! Thats why.

 

How can i solve whis?

Link to comment
Share on other sites

Hi guys! I'm having this problem

 

I have this ON OFF switch with only two screwed terminals. I'm using this line:

 

DcsBios::Switch2Pos hydContSw("HYD_CONT_SW", 3);

 

When i move the switch it works in both positions in DCS, but in the opposite positinon (ON in the switch, OFF in DCS. Switched to OFF, ON in DCS). Is there a way i can modify the code line to make it work the other way?

 

thanks!

 

 

I don't think it's documented anywhere yet, but the Switch2Pos class takes an optional "reverse" argument. Try this:

 

 

 


DcsBios::Switch2Pos hydContSw("HYD_CONT_SW", 3, true);

Link to comment
Share on other sites

Hello,

Return from DCS-BIOS V0.8.1 and DED on F-16C-50.

 

The bug is corrected, but i think i had found an another one :

 

When you select on ICP the pushbutton 4 - STRP.

 

The DED shom this :

DED line 1: STPT * 1*a MAN

DED line 2: LAT N 41o36.941'

DED line 3: LNG E044o02.274'

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

When with the 4-way stick you select down, the DED show this :

DED line 1: STPT 1 a MAN

DED line 2: LAT *N 41o36.941'*

DED line 3: LNG E044o02.274'

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

But in DCS-BIOS, it show this :

DED line 1: STPT 1 a MAN

DED line 2: LAT *N 41o36.941'*

DED line 3: LNG *E044o02.274'*

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

When with the 4-way stick you select down another, the DED show this :

DED line 1: STPT 1 a MAN

DED line 2: LAT N 41o36.941'

DED line 3: LNG *E044o02.274'*

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

But in DCS-BIOS, it show this :

DED line 1: STPT 1 a MAN

DED line 2: LAT N 41o36.941'

DED line 3: LNG E044o02.274'

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

there is an problem with "*" with line 2 and 3.

After is good, i had see this bug in another page of the DED.

 

For your code of Inversion, it works for me !!! very thanks

Link to comment
Share on other sites

Hello, do you think is it possible to add Chafts, Flares, Channel and UHF backup frequency for the F-16?

 

I'm guessing you are talking about the Numbers on the CMDS and Backup UHF Radio displays.

 

I've created the code for this and passed it along to be added to the main release.

 

In the meantime if you want to add the code manually you should add the following to the DCS-BIOS F16C_50.lua script (I put it at the bottom just about the Externals section)

 

------------------------------------------------------------------CMDS Display--------------------------------------------------------------------------------------
local CMDS_O1_Amount
local CMDS_O1_Amount
local CMDS_O2_Amount
local CMDS_CH_Amount
local CMDS_FL_Amount

moduleBeingDefined.exportHooks[#moduleBeingDefined.exportHooks+1] = function()
local cmds = parse_indication(17)
CMDS_O1_Amount = "    "
CMDS_O2_Amount = "    "
CMDS_CH_Amount = "    "
CMDS_FL_Amount = "    "
if not cmds then
	return
end
CMDS_O1_Amount 				= coerce_nil_to_string(cmds.CMDS_O1_Amount)
CMDS_O2_Amount 				= coerce_nil_to_string(cmds.CMDS_O2_Amount)
CMDS_CH_Amount 				= coerce_nil_to_string(cmds.CMDS_CH_Amount)
CMDS_FL_Amount 				= coerce_nil_to_string(cmds.CMDS_FL_Amount)
end

defineString("CMDS_O1_Amount", function() return CMDS_O1_Amount end, 4, "CMDS", "CMDS O1 Amount Display")
defineString("CMDS_O2_Amount", function() return CMDS_O2_Amount end, 4, "CMDS", "CMDS O2 Amount Display")
defineString("CMDS_CH_Amount", function() return CMDS_CH_Amount end, 4, "CMDS", "CMDS CH Amount Display")
defineString("CMDS_FL_Amount", function() return CMDS_FL_Amount end, 4, "CMDS", "CMDS FL Amount Display")

------------------------------------------------------------------UHF Display--------------------------------------------------------------------------------------
local function get_UHF_CHAN()
   local UHF = parse_indication(11)
if UHF and UHF.txtPresetChannel then
	return coerce_nil_to_string(UHF.txtPresetChannel)
else
	return "  "
end
end

defineString("UHF_CHAN_DISP", get_UHF_CHAN, 2, "UHF", "UHF CHAN Display")

local function get_UHF_FREQUENCY()
   local UHF = parse_indication(12)
   if UHF and UHF.txtFreqStatus then
       local UHF_Freq = UHF.txtFreqStatus
       local UHF_dot =  UHF.txtDot
       return UHF_Freq:sub(1,3)..UHF_dot..UHF_Freq:sub(4,6)
   else
       return "       "
   end
end

defineString("UHF_FREQ_DISP", get_UHF_FREQUENCY, 7, "UHF", "UHF Manual Frequency Display")

Link to comment
Share on other sites

Hello,

Return from DCS-BIOS V0.8.1 and DED on F-16C-50.

 

The bug is corrected, but i think i had found an another one :

 

When you select on ICP the pushbutton 4 - STRP.

 

The DED shom this :

DED line 1: STPT * 1*a MAN

DED line 2: LAT N 41o36.941'

DED line 3: LNG E044o02.274'

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

When with the 4-way stick you select down, the DED show this :

DED line 1: STPT 1 a MAN

DED line 2: LAT *N 41o36.941'*

DED line 3: LNG E044o02.274'

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

But in DCS-BIOS, it show this :

DED line 1: STPT 1 a MAN

DED line 2: LAT *N 41o36.941'*

DED line 3: LNG *E044o02.274'*

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

When with the 4-way stick you select down another, the DED show this :

DED line 1: STPT 1 a MAN

DED line 2: LAT N 41o36.941'

DED line 3: LNG *E044o02.274'*

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

But in DCS-BIOS, it show this :

DED line 1: STPT 1 a MAN

DED line 2: LAT N 41o36.941'

DED line 3: LNG E044o02.274'

DED line 4: ELEV 8000FT

DED line 5: TOS 00:00:00

 

there is an problem with "*" with line 2 and 3.

After is good, i had see this bug in another page of the DED.

 

For your code of Inversion, it works for me !!! very thanks

 

Cheers for that - I'd screwed up the item name for teh asterisks on Line 3 so they were being triggered by ths asterisks appearing on Line 2.

 

As with the CMDS and Backup UHF Radio the change has been sumbitted but if you want to make the fix yourself search for the line

DEDLayout_l3["STEERPOINT Latitude Asteriscs_both"] = {7,1,20,"","I"}

and replace it with

DEDLayout_l3["STEERPOINT Longitude Asteriscs_both"] = {7,1,20,"","I"}

Link to comment
Share on other sites

Cheers for that - I'd screwed up the item name for teh asterisks on Line 3 so they were being triggered by ths asterisks appearing on Line 2.

 

As with the CMDS and Backup UHF Radio the change has been sumbitted but if you want to make the fix yourself search for the line

DEDLayout_l3["STEERPOINT Latitude Asteriscs_both"] = {7,1,20,"","I"}

and replace it with

DEDLayout_l3["STEERPOINT Longitude Asteriscs_both"] = {7,1,20,"","I"}

 

Hello, thanks.

It works now with this correction.

 

For your excellent code with inversion, only the line 5 not works. an idea?

Thanks for your time.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...