-
-
Notifications
You must be signed in to change notification settings - Fork 23
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
Curve functions: sum, difference #192
Comments
Hey @starsforeveryone , glad you like the project! ❤️ Thx for the detailed description 👍 In the case of the curve function, addition and substraction of other curve values could be implemented in a "sum" and "difference" function type. I am not sure how intuitive the usage of such functions would be due to the fact that the sum of two curves at 50% will already max out a sum curve based on them. The same is already the case for the I would really like some kind of UI for all of this to make it easier for the user to figure out what is going on, but I can't invest the time into developing it. Maybe some day the API will be used by an ambitious developer 🤞 I don't think multiply and divide doesn't make a whole lot of sense for now, since no use case has come up for them (yet), so there is need to implement anything like that. We can always add it when it becomes necessary. |
…ence_function_types Feature/#192 sum and difference function types
@starsforeveryone I have merged #194, please update fan2go and give it a try 🤓 |
Thank you very much! :) I tried to apply the sum function and it seems to work flawlessly! The fact that the sum of two 50% curves will already create a 100% curve is actually exactly what I'd expect from a sum function. It should add curves A + B. If the given PWM values p are p(A) = 110 and p(B) = 145, the sum should be 255. This means the fan would rotate on max, but that's what the sum is. |
Perfect 👍 🥳 |
Dear developers,
first of all: Thank you for creating this awesome piece of software! (so much better than the old "fancontrol"...)
I have an idea on how to make it even better.
In my case (I mean the actual metal case), because of the inverted mainboard tray and generally the way I've designed the hardware positioning, increasing the GPU airflow adds to the CPU airflow. This means that whenever the GPU core temperature rises above its threshold, the GPU fans start spinning, and pump additional air down into the bottom of the case. This has physical reasons because of the way ASUS designed my graphics card: It doesn't exhaust all the warm air via the back of the card, but a significant portion goes straight through the GPU cooler and exists the card on the other side via an opening in the backplate. This warm GPU exhaust air is then stuck in the lower part of my case, and has to be transported outside by the rear case fan. This creates said situation where the airflow from the GPU is physically added to the already existing airflow (CPU -> rear case fan), which creates a need to make the rear case fan speed up accordingly, in order to exhaust the greater air volume.
I therefore need a curve function "add" that would allow me to add the rpm from the gpu curve to the rear fan curve. So that whenever the GPU fans speed up, the rear fan speeds up as well by the same amount (mathematical "add"), in order to get rid of the additional warm air.
Since general mathematical curve functions seem to be useful because they're so versatile / multi-purpose, I suggest implementing "substract", "multiply" and "divide" too. They might be useful to some people with more complex fan structures.
I would have implemented it myself, but sadly, I suck at programming. At least I could narrow it down: The new functions would have to be added to internal/curves/functional.go inside the switch structure from line 33 to 64. There seems to be some array mathematics going on there - this is where the new functions would have to be implemented.
Thank you very much!
The text was updated successfully, but these errors were encountered: