B4A, B4J, .NET or C?

RandomCoder

Well-Known Member
Licensed User
Longtime User
I've started a custom water cooled PC build and would like a front panel to show system temps, fan speeds and other useful info. Only problem being that the Panel I most like is only available for Asus ROG boards and mine isn't a ROG model...
x7ZxDqFrmF87q67E_setting_000_1_90_end_500.png

So now it's got me thinking if it's possible to create my own panel using a small Android phone or tablet? But whilst it will be easy to create a nice functional interface, I'm pretty sure it's going to be a nightmare getting the required system info. Ideally I would want the following data...
  • CPU speed
  • CPU load
  • RAM speed
  • RAM load
  • Fan speeds
  • System temps
  • Storage capacities
  • Network activity
From the research I've done so far it would appear that CPU and possibly some of the other info can be extracted using Windows WMI providers (https://msdn.microsoft.com/en-us/library/windows/hardware/dn904985(v=vs.85).aspx)
CPU info can be extracted using the Win32_Processor class
https://msdn.microsoft.com/en-us/library/windows/hardware/aa394373(v=vs.85).aspx

But my question is, what would be the most appropriate programming language to use? I'm guessing that B4A won't have any way of accessing the Windows System? But if I use B4J, .NET or C then I could run the App directly on the PC and send the info to a small screen.
Has anyone else tried something similar already?
Are you able to offer advice or pointers in what would be the best direction to take?

My PC will be running Windows 10 (64 bit), it's hopefully going to be a real power house. It's my first water cooled build!

Thanks,
RandomCoder
 

Roycefer

Well-Known Member
Licensed User
Longtime User
The jAWTRobot library already exposes some system and JVM performance data. I've also looked at exposing the other items on your list not already exposed by the jAWTRobot library and I figured that the best way (for me) to do it would be to write .dlls in Visual Studio and then wrap them into B4J libraries (using JNA/JNI). C# has some very nice APIs for accessing this info. Doing it natively (i.e. outside of .NET) is a nightmare. The Win32 API is an unholy mess if you're accessing it with unmanaged C or C++ code.

Once you have a B4J library wrapping this stuff, you could put it in a B4J server and monitor your system performance from anywhere.
 

Cableguy

Expert
Licensed User
Longtime User
Why not go with a stand-alone Java capable board, using b4j to communicate back and foward through USB serial?
That would be a very nice project for a pu-zero, I think
 
Top