Jump to content

Daisy-chained profile switching ?


Recommended Posts

Posted

I have to say that I am thoroughly enjoying using VIACOM with VA. Bought the promotion bundle pro licences and installed everything and working perfectly. I particularly like the excellent Kneeboard and the background chatter adds nicely to the realism.

 

I have successfully daisy-chained my generic DCS commands profile from the VIACOM one and also added a F-16C specific profile, which I use to send keyboard sequences to operate those 2 and 3 way Warthog switches which DCS doesn't support.

 

I note that VIACOM implements a number of exposed variables, one of which is Active Module Name. Is there a way to use that variable to automatically select a profile to be daisy-chained ? So that I could have an aircraft specific daisy-chained profile loaded dependent on active aircraft module ?

RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO

My DCS Apps:    Radio KAOS for DCS      KB Quick - Quick and Easy Kneeboards

Posted

I don't know whether that is currently possible or not - your best bet might be to jump on the VA discord and ask there

Windows 11 Home ¦ Z790 AORUS Elite AX motherboard ¦ i7-13700K ¦ 64GB Corsair Vengeance DDR5 memory @ 5600MHz ¦ Samsung 990 Pro 1TB SSD for OS, Samsung 980 Pro 2TB SSD for DCS ¦ MSI GeForce RTX 4090 Gaming X Trio 24GB ¦ Virpil WarBRD base with VFX grip, Thrustmaster A10c and F/A-18 grips ¦ VKB Gunfighter Mk4 and MCG Pro ¦ Thrustmaster Warthog Throttle ¦ VKB STECS Throttle ¦ Virpil TCS rotor base with Shark and AH-64D  grips ¦ MFG Crosswinds ¦ Total Controls Multi-Function Button Box ¦ Pimax Crystal

Posted

Yup I don't know either, if it is I'd be interested in doing it.

 

My workaround was to copy the exisitng Vaicom Profile in Voice Attack then make the copied Vaicom profile module specific.

 

So I have identical Vaicom profiles, but one Vaicom profile for each aircraft. I then appended/Daisy Chained my own module specific profile to the back of each of the Vaicom specific profiles.

 

For example I have a Vaicom profile named "Vaicom Pro Hornet" and another named "Vaicom Pro Viper" The only difference between the Vaicom profiles is that the "Vaicom Pro Hornet" has my own "DCS Hornet" profile appended to it and the "Vaicom Pro Viper" has my own "DCS Viper" profile appended to it.

 

With that setup I can use the exposed vairiable command to select the correct profile to match the module I'm in on DCS.

 

I've also got a command where I can flip into or out of Vaicom to run either my own profile appended to the Vaicom profile or just my own profile (stand alone) without Vaicom (it's hardly rocket science)

 

The downside is it takes (a little) more space and it means you need to update several profiles rather than just one if there is a keywords update.

 

Works great for me and it wasn't my idea originally I pinched it from someone else on the forum who told me how he had his setup

 

Just an idea as an alternative

Posted

That's an idea now. Ok, so I'm guessing you're using the Other|VoiceAttack Action|Switch to AnotherProfile command in a conditional statement interrogating the currentmodule.name variable. But I don't get what triggers that command to execute ?

 

 

RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO

My DCS Apps:    Radio KAOS for DCS      KB Quick - Quick and Easy Kneeboards

Posted
That's an idea now. Ok, so I'm guessing you're using the Other|VoiceAttack Action|Switch to AnotherProfile command in a conditional statement interrogating the currentmodule.name variable. But I don't get what triggers that command to execute ?

 

 

Couldn't you create a voice command to switch profiles? It's not quite as convenient as having the switch done automatically when you load a new module, but it should work.

I'm Softball on Multiplayer. NZXT Player Three Prime, i9-13900K@3.00GHz, 64GB DDR5, Win 11 Home, Nvidia GeForce RTX 4090 24GB, TrackIR 5, VKB Gunfighter III with MCG Ultimate grip, VKB STECS Standard Throttle, CH Pro pedals

Posted

Sure could, I was just curious to see if there was a way to automate it with the exposed variable. For that matter, it guess it would only take a few seconds to manually swap the daisy chained profile for the correct one for the aircraft.

 

 

RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO

My DCS Apps:    Radio KAOS for DCS      KB Quick - Quick and Easy Kneeboards

Posted
Currently got mine under a voice command but I'll try to see if it could be automated and report back

 

Here's a thought: What if, instead of your aircraft specific profiles being daisy chained from aircraft specific copies of the VIACOM profile, it was t'other way around ?

 

So top level profile is either DCS Hornet or DCS Viper and each of those has the common VIACOM profile daisy chained from it. That way, you'd only need a single version of the VIACOM profile, and would only need to update that single version's AI commands if anything was changed in VIACOM.

 

May be a non-starter if it's a requirement that the VIACOM profile is top level.

RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO

My DCS Apps:    Radio KAOS for DCS      KB Quick - Quick and Easy Kneeboards

Posted

I can't see an easy way of doing this off the bat

 

Adding the "module select command" to the Configuration Window would be a possbile work around, so as when the configuration window is triggered the correct module specific Vaicom profile is selected. I just tried that and it works fine but it would involve killing then reselecting the Vaicom window when jumping across profiles.

 

I don't know how you'd get the plug in to trigger VA to execute a command, don't even know if that's possible.

 

With my profiles I've got back ups in to tune to frequencies for the airfields for Caucasus, Nevada, Gulf and Syria as well as Tacan and ILS frequencies, these are all map specific using If statements. When I jump into a module I execute a reset to align the profile vairiables to the module and the map is selected automatically through a Vaicom exposed vairiable. With my own profiles I could expand them to select the module as well but that's not much use to you.

 

One for Hollywood I reckon

Posted

That's a good idea @shaun57

 

Just tried that and it seems to work that's just some rudimentary testing selecting radio frequencies airfields and comms, but Yeah that's another approach for sure.

Posted
I can't see an easy way of doing this off the bat

 

Adding the "module select command" to the Configuration Window would be a possbile work around, so as when the configuration window is triggered the correct module specific Vaicom profile is selected. I just tried that and it works fine but it would involve killing then reselecting the Vaicom window when jumping across profiles.

 

I don't know how you'd get the plug in to trigger VA to execute a command, don't even know if that's possible.

 

With my profiles I've got back ups in to tune to frequencies for the airfields for Caucasus, Nevada, Gulf and Syria as well as Tacan and ILS frequencies, these are all map specific using If statements. When I jump into a module I execute a reset to align the profile vairiables to the module and the map is selected automatically through a Vaicom exposed vairiable. With my own profiles I could expand them to select the module as well but that's not much use to you.

 

One for Hollywood I reckon

 

Do you know if Hollywood is amenable to small change requests ? ..

 

From the VA manual chapter on plugin support there's an "Exists" test and an "Execute" function usable from a plugin..

 

"

Exists(string CommandPhrase) – This Boolean function returns true if a command is available to the active profile with the spoken phrase specified in CommandPhrase.

 

Execute (string CommandPhrase, optional Boolean WaitForReturn, optional Boolean AsSubcommand, optional Action<Guid?> CompletedAction, optional PassedText, optional PassedIntegers, optional PassedDecimals, optional PassedBooleans, optional PassedDates) - This method will execute a VoiceAttack command in the active profile by the spoken phrase indicated in CommandPhrase

 

with the given example..

 

if (vaProxy.Command.Exists(“fire weapons”))

{

vaProxy.Command.Execute(“fire weapons”);

}

 

"

 

So I think we may just need a single statement in VIACOM, something like..

 

On load/change of module

if (vaProxy.Command.Exists(“Select Aircraft Profile”))

{

vaProxy.Command.Execute(“Select Aircraft Profile”);

}

 

 

Where "Select Aircraft Profile" is the name of your VA command which interrogates Active Module Name and switches the top level aircraft specific profile if necessary. You'd need a copy of it in each aircraft specific profile to ensure it's always found by the above "Exists" test.

 

No impact to other users as it would only execute if the user has created the "Select Aircraft Profile" command in VA.

Pretty sure that would give us a solid way to automatically switch aircraft specific profiles in VA on load/change of module though I may be oversimplifying the VIACOM side change required, only Hollywood would know ;)wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

 

RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO

My DCS Apps:    Radio KAOS for DCS      KB Quick - Quick and Easy Kneeboards

Posted

Ok I missed that @shaun57 so it looks like it's a possibility

 

To answer your question Yes I believe Hollywood is ammenable to making changes to Vaicom based on users requests, especially if he feels it's a positive addition and I reckon this would be.

 

He added the exposed vairiable for the regions specifically at my request which auto changes the maps in my personal profile when I complete a reset as I explained further up

 

It's not a biggie for me as normally I'm in the correct profile before starting DCS and if I change to a different module I just use the Voice command, but it is a nice idea as the more you can automate this sort of thing the better

 

I'd go the Vaicom website and then contact him via e-mail, in the past I've found Vaicom customer support very responsive and normally I'd get a reply within a day or two.

Posted

 

So I think we may just need a single statement in VIACOM, something like..

 

On load/change of module

if (vaProxy.Command.Exists(“Select Aircraft Profile”))

{

vaProxy.Command.Execute(“Select Aircraft Profile”);

}

 

Where "Select Aircraft Profile" is the name of your VA command which interrogates Active Module Name and switches the top level aircraft specific profile if necessary. You'd need a copy of it in each aircraft specific profile to ensure it's always found by the above "Exists" test.

 

I'm not sure what you mean by "in VAICOM" but it appears that this code could be run from inside the plugin itself. Is that what you mean? I would suggest that there might be other actions than switching profiles that someone would want to do when a new module is selected. So I would change the command phrase to something like "New Module Command" or similar rather than "Select Aircraft Profile."

 

It would be nice if rather than loading an entirely new profile you could just execute some VA commands that unload one daisy chained profile and load another. I do not see such fine control of profiles listed in the VA documentation, however.

 

Also, if you "included" the VAICOMPRO profile in each of your module specific profiles then you would only need to define the "New Module Command" once, in the VAICOM profile itself rather than create separate copies for each aircraft.

I'm Softball on Multiplayer. NZXT Player Three Prime, i9-13900K@3.00GHz, 64GB DDR5, Win 11 Home, Nvidia GeForce RTX 4090 24GB, TrackIR 5, VKB Gunfighter III with MCG Ultimate grip, VKB STECS Standard Throttle, CH Pro pedals

Posted
On 11/29/2020 at 8:06 PM, sthompson said:

It would be nice if rather than loading an entirely new profile you could just execute some VA commands that unload one daisy chained profile and load another. I do not see such fine control of profiles listed in the VA documentation, however.

I looked on the VoiceAttack forums and this was a feature request a couple of years ago but doesn't seem to have been taken up

Windows 11 Home ¦ Z790 AORUS Elite AX motherboard ¦ i7-13700K ¦ 64GB Corsair Vengeance DDR5 memory @ 5600MHz ¦ Samsung 990 Pro 1TB SSD for OS, Samsung 980 Pro 2TB SSD for DCS ¦ MSI GeForce RTX 4090 Gaming X Trio 24GB ¦ Virpil WarBRD base with VFX grip, Thrustmaster A10c and F/A-18 grips ¦ VKB Gunfighter Mk4 and MCG Pro ¦ Thrustmaster Warthog Throttle ¦ VKB STECS Throttle ¦ Virpil TCS rotor base with Shark and AH-64D  grips ¦ MFG Crosswinds ¦ Total Controls Multi-Function Button Box ¦ Pimax Crystal

Posted
On 11/29/2020 at 8:06 PM, sthompson said:

Also, if you "included" the VAICOMPRO profile in each of your module specific profiles then you would only need to define the "New Module Command" once, in the VAICOM profile itself rather than create separate copies for each aircraft.

 

Do you mean having Vaicom appended to a user/module profile rather than the other way around? I tried some rudimetary testing of that setup and it did appear to work but I wonder if I'd lose some functionality within Vaicom, by that I mean I don't know if all the Vaicom features would work.

 

I know that you need to be careful with the syntax of the voice commands as the primary profile will always execute first. For example if I'm using "confirm" in both profiles, whichever profile is primary will have the "confirm" command exectued and the secondary won't, ask me how I know this ;0)

 

In the MODS section there is thread on DCS Presence which outputs the aircraft type among other things to SRS, I've asked the question about how it works as it clearly has some way of extracting the module type from the game

 

https://forums.eagle.ru/topic/243833-dcs-presence/?tab=comments#comment-4497177

Posted
4 hours ago, Weegie said:

 

Do you mean having Vaicom appended to a user/module profile rather than the other way around? I tried some rudimetary testing of that setup and it did appear to work but I wonder if I'd lose some functionality within Vaicom, by that I mean I don't know if all the Vaicom features would work.

 

I know that you need to be careful with the syntax of the voice commands as the primary profile will always execute first. For example if I'm using "confirm" in both profiles, whichever profile is primary will have the "confirm" command exectued and the secondary won't, ask me how I know this ;0)

 

In the MODS section there is thread on DCS Presence which outputs the aircraft type among other things to SRS, I've asked the question about how it works as it clearly has some way of extracting the module type from the game

 

https://forums.eagle.ru/topic/243833-dcs-presence/?tab=comments#comment-4497177

Yes, that is what I meant. Understood about the potential issues. Regarding how these programs extract module information from the game, they communicate with the game using client server network protocols that are implemented on the game side by lua code that is hooked into DCS and so has access to the current state. The export.lua file is where the "hooking" gets set up. VAICOMPRO also gives commands to DCS, and this requires additional modifications of the DCS code to implement that. As far as I know, SRS does not give instructions to DCS and only uses info extracted from DCS and so does not require similar additional modifications.

I'm Softball on Multiplayer. NZXT Player Three Prime, i9-13900K@3.00GHz, 64GB DDR5, Win 11 Home, Nvidia GeForce RTX 4090 24GB, TrackIR 5, VKB Gunfighter III with MCG Ultimate grip, VKB STECS Standard Throttle, CH Pro pedals

Posted (edited)

Thanks for the info @sthompson, I agree Vaicom must inject commands to the game whereas SRS simply reads data from it.

 

I wondered if it was possible to extract the module data via DCS Export or by interregation of which Export.lua is active, however I'm not familiar enough with either lua coding or the Export scripting to write code to that level

 

It's not such a biggie for me anyway I simply use a voice comand to activate the exposed vairiable, it's not a command I reallly use that much. Granted though it would be nice to automate the process

 

Just seen this perhaps another application for auto selection of modules

 

https://forums.eagle.ru/topic/254389-per-aircraft-ptt-buttons/

Edited by Weegie
additional information
Posted

I did email Hollywood (Viacompro Support Team) and proposed the above mentioned change.

 

His response was that we should be able to achieve this within VA by

 

"

in the VAICOM profile edit a TX Press/Release command and add a conditional block that uses the currentmodule.name exposed variable. 

Inside the conditional block add a Switch Profile command via Other -> VoiceAttack Action -> Switch To Another Profile.

Now as soon as you press that TX button in the mission, the profile should instantly change to the one you selected.  

"

I guess it's a reasonable compromise. Whatever code you put in the block is only going to get executed if currentmodule.name differs from the currently loaded aircraft specific profile name. Though if you want code to also run on first load (and the loaded module happens to equal the initial aircraft profile you load) maybe always run it first time and set a flag to prevent it repeating until lchange of module. Either that or add your powers of persuasion to mine in asking Hollywood to consider the change (perhaps if I'd worded it as you suggest "New Module Command" rather than "Select Aircraft Profile." it would have made more sense to him.

 

 

RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO

My DCS Apps:    Radio KAOS for DCS      KB Quick - Quick and Easy Kneeboards

Posted

Am I reading that correctly @shaun57 That would mean that every time you pressed a PTT, I'd probably use Tx6, Vaicom would go look at what module was loaded and change to the appropriate module?

 

Seems a little OTT, but I'm rarely in the wrong module

 

If I get the time I'll drop Hollywod a request later for this as a New Module Command, the guy asking about changing PTT buttons for different modules could probably use it too a method of differentiating which profile to load

Posted
6 hours ago, Weegie said:

Am I reading that correctly @shaun57 That would mean that every time you pressed a PTT, I'd probably use Tx6, Vaicom would go look at what module was loaded and change to the appropriate module?

I think the idea is that every time you push the PTT then VA would (1) initialize a variable with the current module name if it is not already initialized. (2) Compare the current module name to the saved variable. (3) If they are different then update the saved variable and take other actions (which could be loading a new profile). The overhead for that would be pretty low since only (1) and (2) would be executed on every press of the PTT. But since the VAICOM plugin is probably doing those things already, the proposed modification of the plugin is probably slightly more efficient. 

 

But wouldn't it be easiest to just create a new voice command to do these things when requested, rather than on every PTT push? The advantage of making this automatic seem pretty low compared to just pushing TX6 and saying "Module Initialize" or the like, as needed, to invoke code that loads an appropriate profile for the current module. Personally, I sometimes go for days flying the same bird and so would prefer that the checking be done on demand rather than have the overhead of monitoring. The "Module Initialize" command could be in a separate profile that you include within each of your module specific profiles so that it only has to be updated once when you need to modify your module switching code (e.g. after installing a new module).

 

I'm Softball on Multiplayer. NZXT Player Three Prime, i9-13900K@3.00GHz, 64GB DDR5, Win 11 Home, Nvidia GeForce RTX 4090 24GB, TrackIR 5, VKB Gunfighter III with MCG Ultimate grip, VKB STECS Standard Throttle, CH Pro pedals

Posted

Makes sense to me @sthompson

 

I just included the same command into each of my profiles rather than generate another profile for that specific purpose, but I'm sure either would work fine.

 

My profiles are inefficient enough without adding and executing unecessary additional code hence the reason I probably wouldn't implement Hollywood's suggestion😉.

 

 

Posted

This may help someone here... I figured out a way to have different PTTs per aircraft and only have to have one VA profile:

 

 

DEFENSOR FORTIS

Spoiler

Systems: Falcon NW Talon: Ryzen 9 5950X @4.9GHz, 64GB DDR4, RTX 3090 FE; Falcon NW Mach V: Core i7 3930K @3.2GHz, 32GB DDR3, GTX 1080 FE

Cockpit: MonsterTech MTX F, 42" 4K TV, HP Reverb G2, Oculus Rift S, PointCTRL

Controls: RS F16SGRH CE, RS F18CGRH, VPC T-50CM2, VFX, WarBRD (Grips); VPC T-50CM2, RS FSSB R3L (Bases); Winwing F/A-18C, VPC T-50CM3, VPC T-50CM, TM Warthog, Cougar (Throttles); VPC ACE2 (Rudders)

 

  • Recently Browsing   0 members

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