Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
mk47

Configtool Feature Request: minmal duration per solenoid

Recommended Posts

Hi,

I don't know if this is the right forum to ask for fetures for the config tool. But anyway, first of all thank you for the fantastic configtool!

Recently I swapped 4 of my solenoids/contactors i my cab for some old used ones which are are really heavy 🙂
They produce a much better sound, especially for bumpers. But unfortunately it turned out that they don't fire entirely in most cases.
they just do a minimal click 9 times out of ten.

It turned out that the simply require i little more time and DOF in general supports that adjustment. If I manually modify the configuration it works perfectly well!

For example I have to do modifications like this:

S15,S1/S2/S16

S15 100,S1 100/S2 100/S16 100

But adjusting all tables like this is an incredible amount of work that needs to be done again on every update.

The configtool already has global settings for the durations of targets and drop targets. But what I need isn't a global setting for specific items on the tables, but an individual setting for a specific toy that gets applied to any table during the generation of the config file. In my case 4 out of 10 solenoids/contactors require that extended duration, no matter what bumbers, targets or other effects are assigned to them for a table.

As a software developer I can for sure create a script that applies that modification for all tables automatically, but I think it makes sense to have it available for all in the configtool because other users asked related questions in the pinscape expansion port support thread.

 

 

Share this post


Link to post
Share on other sites
You can Make the changes on the website, then you only need to do it once per game...

After you make the changes on the site, go to the bottom of the page save configuration and then click on generate config and put those files Where you normally Put them...

Share this post


Link to post
Share on other sites

Thanks for the reply. But "once per game" is exactly what I want to avoid, because it will be the same for every game. And whenever an adjustment will be required, I want to do it in one place instead of touching all games again.

Share this post


Link to post
Share on other sites
You made it sound like you were changing things for every table update

Share this post


Link to post
Share on other sites

In my case I want to always add a duration of 100ms for the contactors attached to the ports 23 and 26 for every game, except if the effect is a globally configured target or drop target which have their own duration setting.
For example the setting S2/W20|W21|W22 @dt@/E12|E103 for port 23 for a specific game has to become S2 100/W20|W21|W22 @dt@/E12|E103 100.

I quickly hacked a php script that applies the required modifications for all games after downloading the configs:
 

<?php

$additional_durations = [
	#port => duration
	23 => 100,
	26 => 100,
];

$file = 'directoutputconfig/directoutputconfig51.ini';
	
list($head, $config) = explode('[Config DOF]', file_get_contents($file));
$games = [];
foreach (explode("\n", $config) as $game_row) {
	$game = str_getcsv($game_row);	
	foreach ($additional_durations as $port => $duration) {
		if (isset($game[$port])) {
			$triggers = explode('/', $game[$port]);
			foreach ($triggers as &$trigger) {
				$trigger = preg_replace('/([SWE]\d+$)/', '$1 ' . $duration, $trigger);
			}
			$game[$port] = implode('/', $triggers);
		}
	}
	$games[] = implode(',', $game);
}

file_put_contents($file, $head . '[Config DOF]' . implode("\n", $games));

 

Since the code of the configtool isn't public - or at least I'm not aware of it - I can't propose  a patch for it.

  • Like 1

Share this post


Link to post
Share on other sites

there is a parameter in the Global Configuration that adds a minimum duration, but it is for all the non rgb toys

in fact by default it is 60 ms, don't know if that can satisfy you?

<GlobalConfig>

<LedControlMinimumEffectDurationMs>60</LedControlMinimumEffectDurationMs>
<LedControlMinimumRGBEffectDurationMs>120</LedControlMinimumRGBEffectDurationMs>
<IniFilesPath>{DllDir}\config</IniFilesPath>
<CabinetConfigFilePattern>{DllDir}\config\cabinet.xml</CabinetConfigFilePattern>
<EnableLogging>true</EnableLogging>
<ClearLogOnSessionStart>false</ClearLogOnSessionStart>
<LogFilePattern>{DllDir}\DirectOutput.log</LogFilePattern>
</GlobalConfig>
  • Like 1

Share this post


Link to post
Share on other sites

Thanks for the reply! I experimented a bit and it turned out that 100ms is a good choice for the two contactors in question (60ms isn't).
Since my small script works well I'm of the opinion that it is the better choice compared to increasing the global default.

Share this post


Link to post
Share on other sites

I had a quick look at ledcontrol_pull. Now I can go on and do a full automatization.

Share this post


Link to post
Share on other sites

Currently for my purpose, but might be useful for others, too:

https://github.com/mkalkbrenner/dof_configtool_client

You can download use the client to download the configs via API and tweak them to your needs.
At the moment the only supported "tweak" is effect_duration to solve the issue I described in this thread. But everything else seems to achievable as well very easy, for example inverting an effect or anything else described at http://directoutput.github.io/DirectOutput/inifiles.html

Don't get me wrong! The Configtool is great. But whenever you need to make an individual adjustment for ALL tables for a specific port of an output controller, my tool might become useful 😉

If you have ideas, just open an issue at https://github.com/mkalkbrenner/dof_configtool_client/issues

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...