~vcs-imports/lcd4linux/trunk

« back to all changes in this revision

Viewing changes to plugin_raspi.c

  • Committer: volker
  • Date: 2013-03-10 19:43:13 UTC
  • Revision ID: svn-v4:3ae390bd-cb1e-0410-b409-cd5a39f66f1f:trunk:1196
disable plugin sensors if not found

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
#include <stdio.h>
45
45
#include <string.h>
46
46
#include <errno.h>
 
47
#include <unistd.h>
47
48
 
48
49
#ifdef WITH_DMALLOC
49
50
#include <dmalloc.h>
53
54
#define RASPI_FREQ_PATH   "/sys/devices/system/cpu/cpu0/cpufreq/"
54
55
#define RASPI_FREQ_VALUE  "cpuinfo_cur_freq"
55
56
#define RASPI_FREQ_IDFILE "scaling_driver"
 
57
#define RASPI_FREQ_ID     "BCM2835 CPUFreq"
56
58
#define RASPI_TEMP_PATH   "/sys/class/thermal/thermal_zone0/"
57
59
#define RASPI_TEMP_VALUE  "temp"
58
60
#define RASPI_TEMP_IDFILE "type"
132
134
{
133
135
    char checkFile[128];
134
136
 
135
 
    AddFunction("raspi::cpufreq", 0, my_cpufreq);
136
 
    AddFunction("raspi::cputemp", 0, my_cputemp);
137
 
 
138
137
    snprintf(checkFile, sizeof(checkFile), "%s%s", RASPI_TEMP_PATH, RASPI_TEMP_IDFILE);
139
138
    if (strncmp( readStr(checkFile), RASPI_TEMP_ID, strlen(RASPI_TEMP_ID) ) != 0) {
140
139
        error("Warning: no raspberry pi thermal sensor found: value of '%s' is '%s', should be '%s'",
141
140
              checkFile, readStr(checkFile), RASPI_TEMP_IDFILE);
142
141
    }
143
142
 
 
143
    snprintf(checkFile, sizeof(checkFile), "%s%s", RASPI_TEMP_PATH, RASPI_TEMP_VALUE);
 
144
    if (0 == access(checkFile, R_OK)) {
 
145
        AddFunction("raspi::cputemp", 0, my_cputemp);
 
146
    } else {
 
147
        error("Error: File '%s' not readable, no temperature sensor found", checkFile);
 
148
    }
 
149
 
 
150
    snprintf(checkFile, sizeof(checkFile), "%s%s", RASPI_FREQ_PATH, RASPI_FREQ_IDFILE);
 
151
    if (strncmp( readStr(checkFile), RASPI_FREQ_ID, strlen(RASPI_FREQ_ID) ) != 0) {
 
152
        error("Warning: no raspberry pi frequence sensor found: value of '%s' is '%s', should be '%s'",
 
153
              checkFile, readStr(checkFile), RASPI_FREQ_IDFILE);
 
154
    }
 
155
 
 
156
    snprintf(checkFile, sizeof(checkFile), "%s%s", RASPI_FREQ_PATH, RASPI_FREQ_VALUE);
 
157
    if (0 == access(checkFile, R_OK)) {
 
158
        AddFunction("raspi::cpufreq", 0, my_cpufreq);
 
159
    } else {
 
160
        error("Error: File '%s' not readable, no frequency sensor found", checkFile);
 
161
    }
 
162
 
144
163
    return 0;
145
164
}
146
165