不懂C,自己只能改demo print出字符,想请大家帮忙改一下让屏幕显示系统信息,比如cpu,mem,net,storge等信息,或者提供个demo.
这是个raspbarry pi的oled库的demo,我自己把一些没用的部分去掉了。
源代码在这里
https://github.com/hallard/ArduiPi_OLED<code>
#include "ArduiPi_OLED_lib.h"
#include "Adafruit_GFX.h"
#include "ArduiPi_OLED.h"
#include <getopt.h>
#include <sys/sysinfo.h>
#include <stdio.h>
// Instantiate the display
ArduiPi_OLED display;
// Config Option
struct s_opts
{
int oled;
} ;
int sleep_divisor = 1 ;
// default options values
s_opts opts = {
OLED_SH1106_I2C_128x64 // Default oled
};
void testdrawchar(void) {
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
for (uint8_t i=0; i < 168; i++) {
if (i == '\n') continue;
display.write(i);
if ((i > 0) && (i % 21 == 0))
display.print("\n");
}
display.display();
}
void helloword() {
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(5,0);
display.clearDisplay();
display.print("Uptine: %ddays, %dhours \n");
display.display();
}
int main(int argc, char **argv)
{
int i;
// I2C change parameters to fit to your LCD
if ( !display.init(OLED_I2C_RESET,opts.oled) )
exit(EXIT_FAILURE);
display.begin();
display.clearDisplay();
// hello world.
helloword();
display.display();
sleep(5);
display.clearDisplay();
// draw the first ~12 characters in the font
testdrawchar();
display.display();
sleep(2);
display.clearDisplay();
// text display tests
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print("Hello, world!\n");
display.setTextColor(BLACK, WHITE); // 'inverted' text
display.printf("%f\n", 3.141592);
display.setTextSize(2);
display.setTextColor(WHITE);
display.printf("0x%8X\n", 0xDEADBEEF);
display.display();
sleep(2);
// horizontal bargraph tests loads
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
for ( i =0 ; i<=100 ; i++)
{
display.clearDisplay();
display.setCursor(0,0);
display.print("Gauge Graph!\n");
display.printf(" %03d %%", i);
display.drawHorizontalBargraph(0,16, (int16_t) display.width(),16,1, i);
display.display();
usleep(25000/sleep_divisor);
}
// vertical bargraph tests
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
for ( i =0 ; i<=100 ; i++)
{
display.clearDisplay();
display.setCursor(0,0);
display.print("Gauge !\n");
display.printf("%03d %%", i);
display.drawVerticalBargraph(114,0,8,(int16_t) display.height(),1, i);
display.display();
usleep(25000/sleep_divisor);
}
// Free PI GPIO ports
display.close();
}
</code>