Jump to content

Recommended Posts

  • Replies 194
  • Created
  • Last Reply

Top Posters In This Topic

Posted

Okay, so to get it working via lua mode, it's quite simple.

 

Just copy the config.lua and export.lua from your tfs3\plugins\dcs\a-10c warthog directory to your config\export directory in A10. Backup your existing files before overwriting. No need to modify either of them to get inteliVIBE working via the export.lua in this case.

 

Then just open the TFS3 Control Panel and load the A10 profile. Fire up your sim and away you go. The GAU rattles your teeth. :joystick:

 

I'm experimenting with the dofile command to see if I can get it to use multiple export files so Helios will function.

 

-Mack

Posted (edited)

I've done it!

 

Hey Guys!

 

I've done it! I managed to get Helios and IVibe both working with the export.lua file. It took some disecting of the lua files, but I've finally got it working! :thumbup:

 

It'd take forever to explain everything I had to modify, so I'm just going to provide you folks with a copy of my new lua file (see attached). Backup your existing export.lua file and rename this one to export.lua in your config/export directory of A10.

 

WARNING - Don't let TARS or Helios overwrite your export file or you'll lose these settings. If you want to add TARS support, just add this line to the bottom of the file: dofile("./Config/Export/TARSExportA10.lua")

 

FINAL WARNING - I haven't had time to completely test this so please use at your own risk. So far, I haven't had any issues but I've only flown with it single player for 10 mins...

 

The TFS3 works much better for me using this method.

 

I hope this helps someone,

Mack

Helios + iVibe.lua

Edited by MackTheKnight
  • Like 1
Posted

Sadly no, the landing gear doesn't seem to have much effect. I'm not sure if that is a function of the TFS3 profile in the control panel, or if it's something do with the lua export.

 

Perhaps someone with more experiance with this system can comment on that...

 

-Mack

Posted

TFS3 arived yesterday. Spent several hours to get it working. IT seems that I can't use my g35 headset with it. Headset cuts speakers off.

I would like to try the lua. export method out but can't figure it out.

Can someone explain how in detail? MY problem, I think, is how and where to place the TFS3 lua. file in DCS BS2 game file.

Thanks Mark.

Home built X-58FTW,i7 950, 3 x GTX570oc,

screens; 3 x 22", 19", 17", 9" :D

My pit. http://forums.eagle.ru/showthread.php?t=121598

Posted

Hi Mark,

 

Did you download and install the TFS3 Control Software from the TFS3 website? If so, proceed as follows:

 

Copy the export.lua & config.lua from:

"C:\Program Files\TFS3 Control Panel\Plugins\DCS\A10C" (Or blackshark 2, or whatever)

 

To

 

"C:\Program Files\Eagle Dynamics\DCS A10C\Config\Export" (This assumes you installed A10 to it's default directory... could be different on your PC)

 

Before starting your game, run the TFS3 Control Software and load the A10 or Blackshark profile (Depending on what game you're using). Make sure you leave this running in the background when your game is running.

 

Also make sure the control slider for AudioSense is in the off position on the TFS3 control box.

 

If you need to use AudioSense with other games and your headphones, you may want to try using the 1/8mm stereo jack y splitter that comes with the unit and plug your headphones into the one side of the split and the TFS3 into the other one.

 

Hope this makes sense,

Mack

Posted

Thanks Mack. Got the files moved and all seams to be working. Head set working too . G35 are USB connected and cut audio out when in use in my case.

The lua. method is far better than audio and I am very pleased with its performance. I need now to figuer out the settings . I see there are a lot

 

.

Home built X-58FTW,i7 950, 3 x GTX570oc,

screens; 3 x 22", 19", 17", 9" :D

My pit. http://forums.eagle.ru/showthread.php?t=121598

Posted

MacTheKnight.

I thank you for the a10 lua works fine.

I tried to adapt it for BS2 but with no luck, BS2 starts gets to the unpause screen then hangs, I can push through it and the game works but no helios or ivibe, did you come across this in your a10 version before you got it working ?..

AMD A8-5600K @ 4GHz, Radeon 7970 6Gig, 16 Gig Ram, Win 10 , 250 gig SSD, 40" Screen + 22 inch below, Track Ir, TMWH, Saitek combat pedals & a loose nut behind the stick :thumbup:

Posted (edited)

Glad the A10 one is working for you.

 

Never had such issues with A10. Alot of trial & error, but I never ended up with any freezes. Just helios or ivibe or both wouldn't work sometimes...

 

If I get time this weekend, I'll see if I can make one for BS2.

 

-Mack

 

Edit: G00dNight ----> I've never actually setup a Helios profile for BS2 as I wasn't flying it enough to need one. For some reason I can't get Helios to generate an Export.lua file for BS2. If you want to provide yours I can edit it to try and make it work with the TFS3.

Edited by MackTheKnight
Posted

Helios not working here aswell. Everything else running fine.I can see Helios display but it does not connect to game.

Im running BS2.

If anyone is running Helios with TSF3 and BS2, Could you post your export lua. file. Thanks.

By the way, seat is Fantastic! ITs the only way to fly.

Home built X-58FTW,i7 950, 3 x GTX570oc,

screens; 3 x 22", 19", 17", 9" :D

My pit. http://forums.eagle.ru/showthread.php?t=121598

Posted

Acemark, if you can get Helios working by itself with BS2, please post the export.lua file that you use to get helios working, and I'll modify it to work with InteliVibe as soon as I get the time.

Posted

Export lua for BS2 with HELIOS

 

gHost = "127.0.0.1"

gPort = 9089

gExportInterval = 0.067

gExportLowTickInterval = 1

gEveryFrameArguments = {[44]="%0.1f", [46]="%0.1f", [47]="%0.1f", [48]="%0.1f", [78]="%0.1f", [79]="%0.1f", [80]="%0.1f", [81]="%0.1f", [82]="%0.1f", [83]="%0.1f", [84]="%0.1f", [85]="%0.1f", [86]="%0.1f", [24]="%.4f", [100]="%.4f", [101]="%.4f", [102]="%0.1f", [109]="%0.1f", [107]="%.4f", [106]="%.4f", [111]="%.4f", [103]="%.4f", [526]="%.4f", [108]="%.4f", [87]="%.4f", [88]="%0.2f", [89]="%.4f", [112]="%.4f", [118]="%.4f", [124]="%.4f", [115]="%.4f", [119]="%0.1f", [114]="%0.1f", [125]="%0.1f", [117]="%0.4f", [527]="%0.4f", [528]="%0.4f", [127]="%.4f", [128]="%.4f", [116]="%0.1f", [121]="%0.1f", [53]="%.4f", [52]="%.4f", [94]="%.4f", [93]="%.4f", [95]="%0.1f", [92]="%0.1f", [51]="%.4f", [97]="%0.2f", [98]="%0.2f", [99]="%0.2f", [68]="%.4f", [69]="%.4f", [70]="%.4f", [75]="%0.1f", [72]="%.4f", [531]="%.4f", [73]="%.4f", [532]="%.4f", [142]="%.4f", [143]="%.4f", [144]="%.4f", [145]="%0.1f", [133]="%.4f", [134]="%.4f", [135]="%.4f", [136]="%.4f", [138]="%.4f", [137]="%.4f", [139]="%0.1f", [140]="%0.1f", [392]="%0.1f", [393]="%0.1f", [394]="%0.1f", [395]="%0.1f", [388]="%0.1f", [389]="%0.1f", [390]="%0.1f", [391]="%0.1f", [63]="%0.1f", [64]="%0.1f", [61]="%0.1f", [62]="%0.1f", [59]="%0.1f", [60]="%0.1f", [170]="%0.1f", [175]="%0.1f", [172]="%0.1f", [165]="%0.1f", [171]="%0.1f", [176]="%0.1f", [166]="%0.1f", [164]="%0.1f", [178]="%0.1f", [173]="%0.1f", [177]="%0.1f", [211]="%0.1f", [187]="%0.1f", [204]="%0.1f", [213]="%0.1f", [11]="%.4f", [12]="%.4f", [14]="%.4f", [167]="%0.1f", [180]="%0.1f", [179]="%0.1f", [188]="%0.1f", [189]="%0.1f", [206]="%0.1f", [212]="%0.1f", [205]="%0.1f", [181]="%0.1f", [190]="%0.1f", [207]="%0.1f", [183]="%0.1f", [182]="%0.1f", [191]="%0.1f", [208]="%0.1f", [184]="%0.1f", [200]="%0.1f", [209]="%0.1f", [185]="%0.1f", [202]="%0.1f", [201]="%0.1f", [210]="%0.1f", [186]="%0.1f", [203]="%0.1f", [159]="%0.1f", [150]="%0.1f", [161]="%0.1f", [15]="%0.1f", [16]="%0.1f", [17]="%0.1f", [18]="%0.1f", [19]="%0.1f", [20]="%0.1f", [21]="%0.1f", [22]="%0.1f", [23]="%0.1f", [50]="%0.1f", [25]="%0.1f", [28]="%0.1f", [26]="%0.1f", [27]="%0.1f", [31]="%0.1f", [32]="%0.1f", [33]="%0.1f", [34]="%0.1f", [582]="%0.1f", [541]="%0.1f", [542]="%0.1f", [315]="%0.1f", [519]="%0.1f", [316]="%0.1f", [520]="%0.1f", [317]="%0.1f", [521]="%0.1f", [318]="%0.1f", [313]="%0.1f", [314]="%0.1f", [522]="%0.1f", [319]="%0.1f", [320]="%0.1f", [321]="%0.1f", [322]="%0.1f", [323]="%0.1f", [330]="%0.1f", [332]="%0.1f", [331]="%0.1f", [333]="%0.1f", [334]="%0.1f", [375]="%0.1f", [419]="%0.1f", [577]="%.3f", [574]="%.2f", [575]="%.2f", [576]="%.2f", [437]="%0.1f", [438]="%0.1f", [439]="%0.1f", [440]="%0.1f", [441]="%0.1f", [163]="%0.1f", [162]="%0.1f", [168]="%0.1f", [169]="%0.1f", [174]="%0.1f", [6]="%.4f", [586]="%0.1f", [261]="%0.1f", [461]="%0.1f", [237]="%0.1f", [239]="%0.1f", [568]="%0.1f", [241]="%0.1f", [243]="%0.1f", [244]="%0.1f", [245]="%0.1f", [592]="%.4f", [234]="%0.2f", [235]="%0.2f", [252]="%.4f", [253]="%.4f", [254]="%.4f", [255]="%.4f", [256]="%.4f", [257]="%.4f", [469]="%0.1f", [470]="%0.1f", [471]="%.4f", [472]="%.4f", [473]="%.4f", [474]="%.4f", [475]="%.4f", [476]="%.4f", [342]="%0.1f", [339]="%0.4f", [594]="%0.4f", [337]="%0.4f", [596]="%0.4f"}

gArguments = {[110]="%.1f", [113]="%.1f", [54]="%1d", [56]="%1d", [57]="%1d", [55]="%.1f", [96]="%.1f", [572]="%.1f", [45]="%.1f", [230]="%1d", [131]="%.1f", [132]="%.1f", [616]="%.1f", [512]="%.1f", [513]="%.1f", [514]="%.1f", [515]="%.1f", [516]="%.1f", [523]="%.1f", [517]="%.3f", [130]="%0.1f", [8]="%.3f", [9]="%1d", [7]="%.1f", [510]="%0.1f", [387]="%1d", [402]="%.1f", [396]="%1d", [403]="%1d", [399]="%1d", [400]="%0.1f", [398]="%1d", [397]="%.1f", [404]="%1d", [406]="%.3f", [407]="%.3f", [405]="%.3f", [408]="%0.1f", [409]="%1d", [382]="%0.1f", [383]="%1d", [381]="%0.2f", [384]="%.1f", [385]="%.1f", [386]="%0.1f", [442]="%.1f", [65]="%1d", [66]="%1d", [67]="%1d", [146]="%0.1f", [147]="%0.1f", [539]="%1d", [151]="%1d", [153]="%1d", [154]="%0.1f", [156]="%.1f", [35]="%.1f", [583]="%1d", [584]="%.1f", [36]="%0.1f", [37]="%0.1f", [38]="%.1f", [39]="%.1f", [41]="%.1f", [43]="%.1f", [42]="%.1f", [40]="%.1f", [496]="%1d", [497]="%1d", [498]="%1d", [499]="%1d", [312]="%0.1f", [303]="%0.1f", [304]="%0.1f", [305]="%0.1f", [306]="%0.1f", [307]="%0.1f", [308]="%0.1f", [309]="%0.1f", [310]="%0.1f", [311]="%0.1f", [324]="%0.1f", [325]="%1d", [326]="%1d", [327]="%.3f", [328]="%0.1f", [329]="%0.1f", [335]="%0.1f", [336]="%0.1f", [355]="%.1f", [354]="%1d", [353]="%.3f", [356]="%1d", [357]="%0.1f", [371]="%0.1f", [372]="%.3f", [373]="%.1f", [374]="%1d", [376]="%.1f", [377]="%.1f", [378]="%.1f", [379]="%.1f", [380]="%1d", [418]="%.1f", [417]="%1d", [421]="%1d", [422]="%1d", [420]="%1d", [423]="%1d", [432]="%1d", [431]="%0.1f", [436]="%1d", [433]="%1d", [435]="%1d", [434]="%1d", [412]="%.1f", [413]="%.1f", [414]="%.1f", [415]="%0.1f", [416]="%0.1f", [428]="%0.2f", [554]="%1d", [555]="%1d", [556]="%1d", [301]="%0.1f", [224]="%.1f", [262]="%1d", [263]="%1d", [543]="%1d", [544]="%1d", [264]="%1d", [265]="%1d", [267]="%1d", [268]="%1d", [269]="%1d", [270]="%01.f", [271]="%1d", [272]="%1d", [273]="%1d", [274]="%1d", [275]="%1d", [276]="%1d", [277]="%1d", [278]="%1d", [279]="%1d", [280]="%1d", [281]="%1d", [282]="%1d", [283]="%1d", [284]="%1d", [285]="%1d", [286]="%1d", [287]="%1d", [288]="%1d", [289]="%1d", [547]="%1d", [548]="%1d", [214]="%1d", [215]="%1d", [216]="%1d", [217]="%1d", [462]="%0.1f", [460]="%.1f", [220]="%1d", [221]="%1d", [218]="%1d", [219]="%1d", [222]="%1d", [229]="%0.1f", [228]="%1d", [296]="%1d", [297]="%0.1f", [290]="%1d", [291]="%1d", [292]="%1d", [293]="%1d", [294]="%1d", [569]="%1d", [295]="%0.1f", [570]="%0.1f", [457]="%.1f", [458]="%.1f", [459]="%.1f", [300]="%1d", [299]="%1d", [298]="%1d", [236]="%.1f", [238]="%.1f", [240]="%.1f", [242]="%.1f", [248]="%0.1f", [249]="%0.1f", [250]="%1d", [246]="%1d", [247]="%1d", [258]="%0.1f", [259]="%1d", [483]="%0.1f", [484]="%0.1f", [485]="%1d", [486]="%1d", [489]="%.1f", [490]="%1d", [491]="%1d", [492]="%1d", [487]="%1d", [488]="%1d", [452]="%1d", [453]="%1d", [340]="%.3f", [341]="%1d", [338]="%.3f"}

 

-- Lookup tables for weapons store type display

gStationTypes = {["9A4172"] = "NC", ["S-8KOM"] = "HP", ["S-13"] = "HP", ["UPK-23-250"] = "NN", ["AO-2.5RT"] = "A6", ["PTAB-2.5KO"] = "A6",

["FAB-250"] = "A6", ["FAB-500"] = "A6" }

 

-- State data

gTrigger = 0

 

function ProcessHighImportance(mainPanelDevice)

 

end

 

function ProcessLowImportance(mainPanelDevice)

local lWeaponSystem = GetDevice(12)

local lEKRAN = GetDevice(10)

local lCannonAmmoCount = " "

local lStationNumbers = lWeaponSystem:get_selected_weapon_stations()

local lStationCount = " "

local lStationType = " "

local lTargetingPower = mainPanelDevice:get_argument_value(433)

local lTrigger = mainPanelDevice:get_argument_value(615)

if lTrigger == 0 then

gTrigger = 1

end

if lTrigger == -1 then

gTrigger = 0

end

 

if lTargetingPower == 1 then

lCannonAmmoCount = string.format("%02d",string.match(lWeaponSystem:get_selected_gun_ammo_count() / 10,"(%d+)"))

 

if #lStationNumbers ~= 0 and gTrigger == 0 then

lStationCount = 0

for i=1,#lStationNumbers do

lStationCount = lStationCount + lWeaponSystem:get_weapon_count_on_station(lStationNumbers)

end

 

lStationCount = string.format("%02d", lStationCount);

 

lStationType = gStationTypes[lWeaponSystem:get_weapon_type_on_station(lStationNumbers[1])]

if lStationType == nil then

lStationType = " "

end

end

end

 

local lEkranText = lEKRAN:get_actual_text_frame()

local lEkranSendString = string.sub(lEkranText,1,8).."\n"..string.sub(lEkranText,12,19).."\n"..string.sub(lEkranText,23,30).."\n"..string.sub(lEkranText,34,41)

 

SendData("2001",lStationType)

SendData("2002",lStationCount)

SendData("2003",lCannonAmmoCount)

SendData("2004",lEkranSendString)

end

 

os.setlocale("ISO-8559-1", "numeric")

 

-- Simulation id

gSimID = string.format("%08x*",os.time())

 

-- State data for export

gPacketSize = 0

gSendStrings = {}

gLastData = {}

 

-- Frame counter for non important data

gTickCount = 0

 

-- DCS Export Functions

function LuaExportStart()

-- Works once just before mission start.

 

-- 2) Setup udp sockets to talk to helios

package.path = package.path..";.\\LuaSocket\\?.lua"

package.cpath = package.cpath..";.\\LuaSocket\\?.dll"

 

socket = require("socket")

 

c = socket.udp()

c:setsockname("*", 0)

c:setoption('broadcast', true)

c:settimeout(.001) -- set the timeout for reading the socket

end

 

function LuaExportBeforeNextFrame()

ProcessInput()

end

 

function LuaExportAfterNextFrame()

end

 

function LuaExportStop()

-- Works once just after mission stop.

c:close()

end

 

function ProcessInput()

local lInput = c:receive()

local lCommand, lCommandArgs, lDevice, lArgument, lLastValue

 

if lInput then

 

lCommand = string.sub(lInput,1,1)

 

if lCommand == "R" then

ResetChangeValues()

end

 

if (lCommand == "C") then

lCommandArgs = StrSplit(string.sub(lInput,2),",")

lDevice = GetDevice(lCommandArgs[1])

if type(lDevice) == "table" then

lDevice:performClickableAction(lCommandArgs[2],lCommandArgs[3])

end

end

end

end

 

function LuaExportActivityNextEvent(t)

t = t + gExportInterval

 

gTickCount = gTickCount + 1

 

local lDevice = GetDevice(0)

if type(lDevice) == "table" then

lDevice:update_arguments()

 

ProcessArguments(lDevice, gEveryFrameArguments)

ProcessHighImportance(lDevice)

 

if gTickCount >= gExportLowTickInterval then

ProcessArguments(lDevice, gArguments)

ProcessLowImportance(lDevice)

gTickCount = 0

end

 

FlushData()

end

 

return t

end

 

-- Helper Functions

function StrSplit(str, delim, maxNb)

-- Eliminate bad cases...

if string.find(str, delim) == nil then

return { str }

end

if maxNb == nil or maxNb < 1 then

maxNb = 0 -- No limit

end

local result = {}

local pat = "(.-)" .. delim .. "()"

local nb = 0

local lastPos

for part, pos in string.gfind(str, pat) do

nb = nb + 1

result[nb] = part

lastPos = pos

if nb == maxNb then break end

end

-- Handle the last field

if nb ~= maxNb then

result[nb + 1] = string.sub(str, lastPos)

end

return result

end

 

function round(num, idp)

local mult = 10^(idp or 0)

return math.floor(num * mult + 0.5) / mult

end

 

-- Status Gathering Functions

function ProcessArguments(device, arguments)

local lArgument , lFormat , lArgumentValue

 

for lArgument, lFormat in pairs(arguments) do

lArgumentValue = string.format(lFormat,device:get_argument_value(lArgument))

SendData(lArgument, lArgumentValue)

end

end

 

-- Network Functions

function SendData(id, value)

if string.len(value) > 3 and value == string.sub("-0.00000000",1, string.len(value)) then

value = value:sub(2)

end

 

if gLastData[id] == nil or gLastData[id] ~= value then

local data = id .. "=" .. value

local dataLen = string.len(data)

 

if dataLen + gPacketSize > 576 then

FlushData()

end

 

table.insert(gSendStrings, data)

gLastData[id] = value

gPacketSize = gPacketSize + dataLen + 1

end

end

 

function FlushData()

if #gSendStrings > 0 then

local packet = gSimID .. table.concat(gSendStrings, ":") .. "\n"

socket.try(c:sendto(packet, gHost, gPort))

gSendStrings = {}

gPacketSize = 0

end

end

 

function ResetChangeValues()

gLastData = {}

gTickCount = 10

end

AMD A8-5600K @ 4GHz, Radeon 7970 6Gig, 16 Gig Ram, Win 10 , 250 gig SSD, 40" Screen + 22 inch below, Track Ir, TMWH, Saitek combat pedals & a loose nut behind the stick :thumbup:

Posted

@macktheknight:

 

Thank you for sharing, I just used your file, renamed it to export.lua , started the TFS3 Software with no profile and ... Rock n Roll !!

 

But is will be hard a decission which version to use:

IntelliVibe: Much smoother and I like the feeling while flying a turn, up and downs. The seat "rolls" with the machine. Thats what I miss on the exports-way.

 

export.lua: Much more feeling !! Vibrating all the time, true feeling ( I am sure the warthog will vibrate in flight) , trigger the gun .... jihaaa .... the seat is rumbling. But in flight it seems all over to be the same settings.

 

Very nice experience !

Posted

Hey Tom,

 

I still find the seat rolls with turns, when using the export method. However I am loading the profile in the InteliVIBE control panel. I thought that was a pre-requisite to make it work in the first place so maybe I'm doing it wrong... :music_whistling: Try loading your A10 profile in the control panel along with the export mode.... works for me.

 

-Mack

  • 3 months later...
Posted (edited)

Ok I have checked out DCS world with native ivibe support (no lua export enabled) and all I can say is wow! I like it. The device is awesome in all of the AC modules I have tested (A10-C, KA-50, P-51).

 

The Ivibe TFS3 has finally arrived for DCS fans.

 

"To enable native vibes in DCS World you would edit the config.lua file, the same way as for the other titles. Just have the following line:

intelliVIBE = true

 

you don't want the lua export active so check that

EnableExportScript = false

 

 

In summary, the config.lua file should look like the following:

EnableExportScript = false

intelliVIBE = true

 

That will enable support for all AC modules in DCS World."

 

Out

Edited by PoleCat
  • 2 months later...
Posted

Hello again Mate,

 

I have one. For driving sims it is the best thing ever. IMHO, it could be much better when it comes to using it with DCS (all I fly is the KA-50, so a plane with more G forces might be different).

 

It should start thumping as soon as the rotors do, but it does not. You need to acheive a certain speed for vibration effects like rotors and G forces to be felt.

 

Great for low back pain though :)

 

I would reccomend a tactile bass shaker instead with a powerful amp.

Posted

I just mine working in DCS W. I too am only flying Ka 50.

Very happy with it. The unit has a sophisticated method of adjustment, that I am still working with.Every time I altered a profile 2 or 3 times ,I would delete and start with the defalt."MORE TIME NEEDED HERE"

I would add that I dont want an amusment ride.I want to notice events happening.

I agree that the BS vibes are too low at slow flight, but at 200 KPH ITS too strong,I expect the bird to start self destructing.I think this can be overcome in time with tinkering the profile.

The cannon fire is awesum .

I have not tried any other tactile feedback devices.

Hope this helps.

Mark.

Home built X-58FTW,i7 950, 3 x GTX570oc,

screens; 3 x 22", 19", 17", 9" :D

My pit. http://forums.eagle.ru/showthread.php?t=121598

Posted

the other big advantage over a buttshaker is that it uses the lua exports not the sound output so the ingame voice dosn't affect it, since DCSW 1.2.1 the export part is already in DCSW so just start the little prog that you download from I-Vibe and play. it has profiles that you can adjust to your pref just remember not to save over the default.

AMD A8-5600K @ 4GHz, Radeon 7970 6Gig, 16 Gig Ram, Win 10 , 250 gig SSD, 40" Screen + 22 inch below, Track Ir, TMWH, Saitek combat pedals & a loose nut behind the stick :thumbup:

  • Recently Browsing   0 members

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