Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Warn if other light-setting tools are running #11

Open
tylerszabo opened this issue Apr 18, 2018 · 5 comments
Open

Warn if other light-setting tools are running #11

tylerszabo opened this issue Apr 18, 2018 · 5 comments
Labels
enhancement New feature or request

Comments

@tylerszabo
Copy link
Owner

Attempt to detect if other tools (like RGBFusion) are running to avoid conflicts.

@tylerszabo
Copy link
Owner Author

Process list: SelLed, MBLed, SelLedV2

@windows2000bug
Copy link

I did happen to notice that after I shut down my system some LEDs were still on. I am wondering if the on board LEDs might be 5v as when the power is off none of my 12v LEDs attached to the header work. Though I do have 5v analog RGBs that I are connected to the cathodes of the RGB 12v header, while I plug the common anode into the 5v Digital header for power. These stay lit. I do know that the motherboard has 5v supplied to it via the PSU, even with the system is off.

I started to play with it and after a few times I got this again.

RGBFusionTool.exe -c red
Usage: RGBFusionTool.exe [OPTION]...
Set RGB Fusion motherboard LEDs

Options:
-v, --verbose
-c, --color, --static=VALUE
set static color
--cycle, --colorcycle[=SECONDS]
cycle colors, changing color every SECONDS
-b, --brightness=VALUE brightness (0-100)
-l, --list list zones
-z, --zone=VALUE set zone
-?, -h, --help show help and exit

Error: GLedApiDotNet.Raw.GLedAPIv1_0_0Exception: dllexp_SetLedData returned ERROR_INSUFFICIENT_BUFFER
at GLedApiDotNet.Raw.GLedAPIv1_0_0Wrapper.CheckReturn(String apiFunction, UInt32 result)
at GLedApiDotNet.Raw.GLedAPIv1_0_0Wrapper.SetLedData(IEnumerable`1 settings)
at GLedApiDotNet.RGBFusionMotherboard.MotherboardLedSettingsImpl.WriteToApi(GLedAPIv1_0_0Wrapper api)
at GLedApiDotNet.RGBFusionMotherboard.Set(Int32[] divisions)
at GLedApiDotNet.RGBFusionMotherboard.SetAll(LedSetting ledSetting)
at RGBFusionTool.RGBFusionMain.LazyMotherboard.SetAll(LedSetting ledSetting)
at RGBFusionTool.Application.Main(String[] args)

#killed SelLedV2 process in TM

ps | select-string -Pattern SelLed, MBLed, SelLedV2

#Started RGB Fusion via app manger

ps | select-string -Pattern SelLed, MBLed, SelLedV2
System.Diagnostics.Process (SelLedV2)

#LEDs not controllable via RGB Fusion, will kill main power to fix it.

@windows2000bug
Copy link

windows2000bug commented Apr 21, 2018

I have been playing with it for the past couple of hours, and it looks like if the commands are executed about a ~1sec or less, then the buffer error comes up. I haven't had the issue with the lights not responding. If I give it enough time it is fine. At the same time I haven't launched the RGB Fusion UI, nor have I killed any processes.

I wrote a quick and dirty power shell script to test the proof of concept of using your *.exe to set the colors based on games. I am not a programmer, though a Linux admin. Please excuse my poor use of powershell. I am not even sure if it is recommended to use it in this way. I noticed that the CPU usage is very low, until it runs the exe to change the lights. I am going to add a few more things into it to improve it. As I do scripting primary, I don't use a repository. Should I do a fork of your tool and add the powershell script to it?

#Zones for Gigabyte Z370 Gaming 7
#0 = VRM
#1 = RAM
#2 = Chepset + Bar
#3 = PCIe
#4 = 12vRGBW Header
#5 = NA
#6 = NA
#7 = Digital LED ?
#8 = Digltal LED ?

$games = "Overwatch","FarCry5"
$path = $PSScriptRoot + "\RGBFusionTool.exe"
$c=0

while ($true) {
$x=0
$z=0
$y=0
ForEach ($check in $games) {
$process = get-process $check -ErrorAction SilentlyContinue

    if ($process -ne $null ) {
        write-host "Game Running, $check"
        if ($check -eq "Overwatch") {
            $colors = "orange","white","orange","blue","blue"
        } ElseIf ($check -eq "FarCry5") {
            $colors = "blue","white","red","white","blue"
        }

        if ($c -eq 0) {
            ForEach ($setColor in $colors) {
                write-host "changing color"
                & $path -c  $setColor -z $z
                $z+=1
                #Sleeping exec commands to quickly can overload the buffer
                sleep 1.25
            }
            $c=1
        }
    } Else {
        $y+=1
    }
    $x+=1
}

if ($x -eq $y ) {
    write-host "No games running"
    $c=0
}

write-host "Sleeping to check for app running"
sleep 3

}

@tylerszabo
Copy link
Owner Author

I'm really excited that you've scripted with it - this is exactly why I wrote this tool. So it sounds like there's a race condition somewhere in Gigabytes API.

I've created issue #16 to track this issue; thanks for getting a repro for it, too.

@tylerszabo tylerszabo modified the milestone: 1.0 Apr 26, 2018
@tylerszabo
Copy link
Owner Author

Not sure if this should be on the 1.0 bar; removing for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants