Author Topic: EDBindTool: Generating VA profiles from Elite Dangerous .binds files  (Read 50810 times)

lavaeolus

  • Guest
I've written a small utility which reads .binds files from Elite Dangerous and generates a VA profile (.vap) from all commands found in the bindings. The generated VA profile can be used as a base VA profile or can be imported into another profile.
There is a commandline version and a "Windows" program.
For the commandline version run "edbindtool" in a command prompt to get the usage and parameters info.
If you have issues with the program, please let me know and I'll try to fix them.

Update: 18.12.2016 CLI v1.7.1 attached. No installer simply unpack to a directory. See my post on 18.12.2016 for info.
To avoid write access problems, do not unpack to program files or program files x86.
« Last Edit: December 18, 2016, 12:42:19 PM by lavaeolus »

Technomancer

  • Jr. Member
  • **
  • Posts: 98
  • I have a bad feeling about this...
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #1 on: August 13, 2016, 11:16:53 AM »
Nice!!  Good job!!  :D

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #2 on: August 13, 2016, 11:36:32 AM »
Glad you like it :)
I'm creating a simple GUI for it right now, which should make it a bit easier to use.
Let me know if there is any other output format you'd like to see.

BlackJack

  • Jr. Member
  • **
  • Posts: 68
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #3 on: August 13, 2016, 01:21:05 PM »
That is a very useful tool!

I have some questions about how to use it:
How do I generate the csv?

I copied the bind into the extraction folder and tried this:
Code: [Select]
EDBindTool -f=csv "MS Sidewinder Precision Pro.1.8.binds" Test.csvIt tells me, that the allowed formats are "csv,ttm,vap"!
What would be the correct command for the other formats?

The generated vap file contains only single key actions.
I have some modifiers in my bind. (<Modifier Device="Keyboard" Key="Key_LeftShift" />)
Is it possible to export them to?


lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #4 on: August 13, 2016, 08:07:48 PM »
Both issues you have with the tool are plain bugs  :( . The csv output was quite easy to fix, but the modifier issue requires a bit more work. But I'll try to upload a fixed version today.

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #5 on: August 16, 2016, 06:46:20 AM »
I have uploaded a new version of the program to the original post which fixes both issues.

Gary

  • Administrator
  • Hero Member
  • *****
  • Posts: 2832
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #6 on: August 16, 2016, 09:21:18 AM »
If this is all I think it is, this is fantastic :)

I won't be able to check it out til Sunday tho :(

Congrats!

BlackJack

  • Jr. Member
  • **
  • Posts: 68
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #7 on: August 16, 2016, 07:17:47 PM »
If this is all I think it is, this is fantastic :)
indeed, it is! Thanks to lavaeolus, it is possible to build elite profiles without key binding hassles.

I've made some Tests and almost all modifiers are in the vap now, but the 'Key_RightAlt' seems to be a problem:
Code: [Select]
Press Undefined : 0+K keys and hold for 0,01 seconds and release
There is some Text in the header of the vap/xml that VA don't like:
Code: [Select]
xmlns="http://tempuri.org/VoiceAttackProfile.xsdI can import the profile only, when I deleted it.

Is the LINQtoCSV.dll still necessary? Without I can not run the exe, but it is lost in the archive.
« Last Edit: August 16, 2016, 07:21:15 PM by BlackJack »

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #8 on: August 17, 2016, 02:14:18 PM »
I fixed the new issues with the tool. The vap/xml header no longer needs any editing. The RightAlt key is recognized and the LinqToCsv.dll should not be required anymore.
There is a new dll in the download "KeyConverterLib.dll" which is the first step to supply your own key mappings to the tool, to make it more useful with other keyboard layouts (at the moment it works best with a german keyboard layout).
There a new commandline options to customize the generated vap a bit.
Another new option allows to display a version number, so we know we talk about the same version. I will also include the version number in the download name.

BlackJack

  • Jr. Member
  • **
  • Posts: 68
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #9 on: August 20, 2016, 01:27:57 PM »
Very nice. Thanks lavaeolus!
I've made some tests with the new version. The only problem I still have with is the /ttm option. I get several crash and error screens when I run the exe with /ttm, but the file is generated. A possible reason could be that I have no Thrustmaster. :o I attached my bind, so you can use it for you own tests and a small batch file I've made, that generates all three files from every bind in your Elite options folder by a single click. Just copy the batch into your extraction folder and you'll have the files in a separate output folder.

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #10 on: August 20, 2016, 06:51:07 PM »
I have posted 2 new versions, an update for the commandline version and a first version with graphical user interface.
I used a setup wizard integrated into Visual Studiio, which does not allow to choose an installation directory. Sorry about that, but simply packing the executable and the libraries into a zip file does not work. I will be looking into this soon.

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #11 on: August 24, 2016, 10:02:51 AM »
The version 1.2.9 I uploaded today allows customizing the information generated in VoiceAttack and CSV files.

BlackJack

  • Jr. Member
  • **
  • Posts: 68
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #12 on: August 25, 2016, 04:54:06 PM »
perfect! No issues so far. ;D

TheThingIs

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 278
    • HCS Voicepacks
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #13 on: September 02, 2016, 10:08:44 AM »
Hi lavaeolus...excellent program, thank you so much for sharing it.

I've found a couple of things though

OrbitLinesToggle key is there but it isn't populated with my binding:
Press Undefined : 0 key and hold for 0.01 seconds and release

Silent running key seems to be missing - edit found it, it seems to be called ToggleButtonUpInput

could you also add the ability to change the key press time in the gui

Thanks,

TheThingIs
« Last Edit: September 02, 2016, 10:29:37 AM by TheThingIs »
The Singularity profile - One profile to rule them all and at HCS we bound them ;)

You see, TheThingIs, eventually you'll be allright.

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #14 on: September 02, 2016, 06:41:38 PM »
It is ToggleButtonUpInput.
The command names I use, are the ones used in the ED bindings files. I stumbled over this one myself before.
I will include a checkbox to map it to SilentRunningToggle in the next version and look into finding a more general solution for mapping command names in the future.
Including a preset for the key press time in the GUI should be no problem.
As for the OrbitalLinesToggle: This seems to be an issue with the key you are binding to it, so could you please tell me which key you assigned to it or attach your bindings file here?

TheThingIs

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 278
    • HCS Voicepacks
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #15 on: September 03, 2016, 02:21:18 AM »
I use the =+ key, the one left of backspace

here's my binds file:

https://1drv.ms/u/s!Aq_GRX4F7BIogxqM87-Z3LTH3U6H

I'd suggest keeping the names the way you are now. It'll keep it simpler for people and more compatible with future updates. As long as we know which key the bind refers to then it doesn't really matter what the name is.
« Last Edit: September 03, 2016, 04:09:07 AM by TheThingIs »
The Singularity profile - One profile to rule them all and at HCS we bound them ;)

You see, TheThingIs, eventually you'll be allright.

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #16 on: September 03, 2016, 03:41:41 PM »
The problem is different keyboard layouts. I have a german keyboard where left of backspace is  the [ยด`] key. I already have a internal feature to load a keymap from a file. What's missing is a function to get the names of keys pressed. In the commandline version there already is a function for it, but this can't be used in the GUI version. But I'm working on it.

sutex

  • Jr. Member
  • **
  • Posts: 91
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #17 on: September 04, 2016, 01:21:21 AM »
This is really good work, keep it up . There's a 'dev comm' discord,  https://discordapp.com/
people there are closely involved with FD API's, it may be a good source of bounding ideas off people in real time
Not apart of it myself , as my understanding of code , is it, has something to do with zero's & ones :)

TheThingIs

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 278
    • HCS Voicepacks
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #18 on: September 04, 2016, 09:59:01 AM »
Ah yes, I've fixed it simply by changing the bind to another key.

With regards to the key press timing. I've experimented for many hours with keypresses in Elite and the sweet spot is actually 0.03s. 0.01 and 0.02 will miss presses on occasion so if it's simpler you could just alter the default to 0.03. Also, I've found that the command line version is simpler to use so if it's possible to make the change to that too.

Sorry for sounding bossy but this little program you've written is brilliant and many, many people will find it useful. So much, I've actually rewritten my Multi-Crew profile to be compatible with it. Which means there's going to be 1000's of people that will want it as simple as can be.

TheThingIs
The Singularity profile - One profile to rule them all and at HCS we bound them ;)

You see, TheThingIs, eventually you'll be allright.

TheThingIs

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 278
    • HCS Voicepacks
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #19 on: September 04, 2016, 09:59:46 PM »
I seem to have found another issue. UseShieldCell is correct in the description as bound to # but the actual keybind is wrong. Same binds file that I linked to before.
The Singularity profile - One profile to rule them all and at HCS we bound them ;)

You see, TheThingIs, eventually you'll be allright.

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #20 on: September 04, 2016, 10:39:57 PM »
Ok I look into it, but it looks like another issue with the keyboard layout.
The use of different keymaps (layouts) should be easy, once I've completed it. After editing the keymap, which will be possible in the GUI or by simply using a text editor, you only have to rename the file to "DefaultKeyMap" and both the commandline and the gui version will load it automatically. The keymaps can be shared with all people using the same keyboard layout, so I will not try to create keymaps for other keyboard layout by myself. But i happily will include keymaps send to me  ;)
I am surprised that you find the cli version easier to use. It definitely is much easier to implement (apart from finding a letter for the options).
In general I will try to keep cli and gui in sync. As I implement features independent of the user interface, the main problem for the cli is finding a free and appropriate letter for the option.
I will set the default duration to 0.03s in the next version as you suggested, but also make it changeable.

Gangrel

  • Caffeine Fulled Mod
  • Global Moderator
  • Full Member
  • *****
  • Posts: 216
  • BORK FNORK BORD
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #21 on: September 05, 2016, 02:38:40 AM »
Cannot install the GUI version on Windows 10 (Anniversary Update) 64bit. Says that I need .Net 4.5.2 when I have .Net 4.6.2 installed, which is included with Anniversary Edition.

sutex

  • Jr. Member
  • **
  • Posts: 91
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #22 on: September 05, 2016, 02:46:43 AM »
Cannot install the GUI version on Windows 10 (Anniversary Update) 64bit. Says that I need .Net 4.5.2 when I have .Net 4.6.2 installed, which is included with Anniversary Edition.

I have it installed ,with latest Win 10 update ^^.. uninstall the last GUI version one if you have it first

TheThingIs

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 278
    • HCS Voicepacks
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #23 on: September 05, 2016, 11:36:01 AM »
for users, the cli is simpler as I can create a .bat to create the file how I need it for my profile. The user just puts their .bind file in the same folder, run the .bat and then import the created .vap. For individual people then the gui is better as they can change things how they want it but for a large user base then I need as little user errors as possible :) Yeah I was thinking it would be another kb layout problem. Thanks for changing the default to 0.0.3, that's awesome!
The Singularity profile - One profile to rule them all and at HCS we bound them ;)

You see, TheThingIs, eventually you'll be allright.

Gangrel

  • Caffeine Fulled Mod
  • Global Moderator
  • Full Member
  • *****
  • Posts: 216
  • BORK FNORK BORD
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #24 on: September 05, 2016, 01:28:18 PM »
Cannot install the GUI version on Windows 10 (Anniversary Update) 64bit. Says that I need .Net 4.5.2 when I have .Net 4.6.2 installed, which is included with Anniversary Edition.

I have it installed ,with latest Win 10 update ^^.. uninstall the last GUI version one if you have it first

Never had it installed in the first place... this was the first time I tried to install it.

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #25 on: September 05, 2016, 02:16:52 PM »
It should install without problems in Windows 10 Anniversary 64bits. I am developing it with exact the same version. I checked which .NET versions are installed on my system http://www.asoft.be/prod_netver.html I only have 2, 3.5 and 4.6 installed. But I am compiling for 4.5.2 so people with older windows versions can use it.
I'll try to  make a zip-file that can be used without installation.

TheThingIs

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 278
    • HCS Voicepacks
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #26 on: September 08, 2016, 03:38:28 PM »
any chance of the cli version being ready for Friday? As it is now will do but with the 0.03 default. I'm about to release my profile out to 40,000 people and would love to put this with it and credit you properly for it :) Tweaks and locale can come later.

Cheers
The Singularity profile - One profile to rule them all and at HCS we bound them ;)

You see, TheThingIs, eventually you'll be allright.

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #27 on: September 08, 2016, 04:25:10 PM »
I have just uploaded a new cli version 1.3 which uses 0.03 as default keypress duration. I've only checked the most basic function of this version, converting binds to vap. That at least, seems to be ok.
Please be aware that I removed all but three single letter options -h for help, -f for format and -v for version. All other option are now only reachable through the long option name. This was necessary because using a single letter option blocked using any other option starting with this letter, which would have left me with out possible options very soon, at least out of somewhate plausible option names. I'll try to avoid breaking the interface in the future.
As for new feature in this version, it will take me some time to prepare proper documentation. Especially on creating key maps. DefaultKeyMap.csv is already read if available but at this time is identical to the internal key map.
One new feature I like to mention is the -silent option. It allows to use another name for ToggleButtonUpInput. for example -silent=ToggleSilentRunning make the command easier to understand.
« Last Edit: September 08, 2016, 04:43:09 PM by lavaeolus »

Gangrel

  • Caffeine Fulled Mod
  • Global Moderator
  • Full Member
  • *****
  • Posts: 216
  • BORK FNORK BORD
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #28 on: September 08, 2016, 04:35:01 PM »
It should install without problems in Windows 10 Anniversary 64bits. I am developing it with exact the same version. I checked which .NET versions are installed on my system http://www.asoft.be/prod_netver.html I only have 2, 3.5 and 4.6 installed. But I am compiling for 4.5.2 so people with older windows versions can use it.
I'll try to  make a zip-file that can be used without installation.

Sorry for the wait, I just thought I would try it on my laptop, and again, no luck with it.

Using the tool that you have linked, I have .Net 2, 3, 3.5 and 4.6.2. This laptop was bought with Windows 10 64bit installed on it, and was upgraded to Anniversary on the day it was released.

lavaeolus

  • Guest
Re: EDBindTool: Generating VA profiles from Elite Dangerous .binds files
« Reply #29 on: September 08, 2016, 04:54:41 PM »
I am sorry that the program does not work for you. I probably release a new version early this weekend, which will use a new installer. This will hopefully solve your problem. If this does not help I will try to produce a .NET 4.6 version. But that requires switching all projects to 4.6 and afterwards back to 4.5 which, as I told before, I use, to avoid that people have to install a new .NET version to use my program.
« Last Edit: September 08, 2016, 05:21:09 PM by lavaeolus »