It is currently October 17th, 2021, 4:00 pm

Argus Monitor plugin 1.1.0.1

Share and get help with Plugins and Addons
KingCreole
Posts: 1
Joined: August 25th, 2021, 7:23 pm

Re: Argus Monitor plugin 1.1.0.1

Post by KingCreole »

I've trying to "adapt" some modules of different rainmeter skins to work with this plugin, and everything is working except commands refered to GPU fan percentage. None of the variables, indicators, or whenever they're called, is working for me (GPUFanPercentPWM, GPUFanPercentPWMMin, GPUFanPercentPWMMax, indicating or not a number or device).
Can you have a look on it?

Thank you.

(Sorry for my english).

Edit: It's beacuse my Bios settings. Sorry.
quipex
Posts: 1
Joined: September 19th, 2021, 1:47 pm

Re: Argus Monitor plugin 1.1.0.1

Post by quipex »

argusmonitor wrote: August 9th, 2021, 6:02 pm Hi,
just a heads up. The new version of Argus Monitor 6.0.01 is currently in its final stages of testing. We hope to release it pretty soon. When using this version, the old pipe for communication will not work anymore and the Data API should be used to access all sensor data.
That's a pity. What an awful decision to break old compatibility with existing rainmeter skins via pipe... As a javascript monkey, I can't afford learning how to create my own rainmeter adapter in c++ for the new api. Can someone do a working example for rainmeter like Leo did, please?
stephenmhall
Posts: 2
Joined: October 15th, 2021, 4:10 pm

Re: Argus Monitor plugin 1.1.0.1

Post by stephenmhall »

How do we use the new Data Api in Rainmeter? I looked on the github page and there is just C code, do we not need a dll to put in the Plugins folder?
User avatar
argusmonitor
Posts: 14
Joined: January 16th, 2020, 4:36 pm

Re: Argus Monitor plugin 1.1.0.1

Post by argusmonitor »

Hi,

sorry for the requirement to break the Pipe API, but this was never intended to be used for anything other than internal communication and was also not documented. The reason is that we need it to communicate with the sidebar gadget and the pipe communication is a one-to-one connection, so the old Rainmeter plugin implementation was really an 'abuse' of this channel (Leo did that with our blessing though and with information that were not publicly available).
But we have to be able to modify this API as this is tied to internal data structures that are subject to change if we need to move things around for adding new stuff to the gadget.

Because we wanted to offer some stable and documented API, I set out to do just that and now we are free to change the pipe struct as required while at the same time can offer a stable and extensible interface to get to all internal data in a standardized way. I also announced that change long before it went live and also shared the BETA version for quite some time before 6.0.01 came out.

The new way is really MUCH simpler and I have posted a minimal example on how to get to the data here: https://github.com/argotronic/argus_data_api/issues/1

So, basically this is ALL you need to do:

Code: Select all

argus_monitor::data_api::ArgusMonitorDataAccessor data_accessor_{};
data_accessor_.Open();

auto const on_temperature_changed
    = [&callback_called](argus_monitor::data_api::ArgusMontorData const& new_sensor_data) { 
    
    // DO ALL THE PROCESSING HERE, ALL DATA IS IN new_sensor_data
    
};

data_accessor_.RegisterSensorCallbackOnDataChanged(on_temperature_changed);
You should be able add the header and then copy/paste these few lines into your program and then the lambda

Code: Select all

on_temperature_changed
is called everytime new data is available. Of course, this does not have to be a lambda, so you can actually do all the processing there. This was just ripped out of the suite of unit tests and I have added a comment on where to do the extraction.

Leo is aware of this and I thought he already added all the modifications required to make his plugin work with the API. But maybe he lost interest; at least I can't tell what the state is (maybe @LeoDavidson can give an update).
stephenmhall
Posts: 2
Joined: October 15th, 2021, 4:10 pm

Re: Argus Monitor plugin 1.1.0.1

Post by stephenmhall »

Thanks for the really prompt reply, I understand the theory and do speak some Python and Arduino related C but integrating to Rainmeter presumably needs a dll plugin which is way out of my knowledge base, hopefully @LeoDavidson will be updating the current ArgusMonitor.dll to work with the new system.
P!nkY
Posts: 18
Joined: April 9th, 2020, 3:14 pm

Re: Argus Monitor plugin 1.1.0.1

Post by P!nkY »

@argusmonitor

Would it be possible to provide an official Rainmeter plugin .DLL or add a gadget/sidebar reporting function to Win Registry in Argus (similar to what HWiNFO has implemented)?
User avatar
argusmonitor
Posts: 14
Joined: January 16th, 2020, 4:36 pm

Re: Argus Monitor plugin 1.1.0.1

Post by argusmonitor »

P!nkY wrote: Today, 7:32 am @argusmonitor

Would it be possible to provide an official Rainmeter plugin .DLL or add a gadget/sidebar reporting function to Win Registry in Argus (similar to what HWiNFO has implemented)?
Many things would be possible. We decided that it would be worth investing the time into an official API (using shared memory as this is what is behind all that, so you can also open the shared memory yourself and don't need the 'API'). But you could also open a file mapping called

Code: Select all

"Global\\ARGUSMONITOR_DATA_INTERFACE"
and read from there. This can be done in any language that has a way of calling into OpenFileMapping and MapViewOfFile from the Win32 API and does not require the use the C++ API example I provide. The API makes is just simpler as you don't have to take care of opening that shared memory region, polling it for changes or using a mutex to synchronize access. And it prevents everyone from bugs that could occur if any user would lock the mutex for too long. So, using the API is strongly recommended, but by far not required.

We cannot implement any Rainmeter Plugin-DLL ourselves and I guess will also not provide any additional API like writing anything to a volatile registry tree. I guess I have mentioned it and it is also most likely also more or less obvious, but making Argus Monitor is something we (2 HW/SW engineers) do in our spare time, next to full time job and family (that is why you see me posting on weekends and not so much during the week). Time for that is pretty limited and there are always more important things to do that would benefit more users (adding support for new hardware for instance). We cannot put more effort into that and with the current API (or the shared memory region) everything is there for any other tool (including Rainmeter) to access the data. And also much more than what was in the pipe communication struct before.
P!nkY
Posts: 18
Joined: April 9th, 2020, 3:14 pm

Re: Argus Monitor plugin 1.1.0.1

Post by P!nkY »

Thank you, I fully understand your position.
Unfortunately scripting some Rainmeter skins is far away from any programming experience :Whistle

Hopefully Leo can support, but he's off since 2 years now .....