Jump to content

Configtool Feature Request: minmal duration per solenoid


mk47

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.

 

 

Link to comment
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...

Link to comment
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.

Link to comment
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.

Link to comment
Share on other sites

  • Content Provider

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>
Link to comment
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.

Link to comment
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

 

Link to comment
Share on other sites

  • 1 month later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...