#include #include #include #include #include #include #include #include #include #include "lm75.h" #include "hih61xx.h" extern void lm75_list_all(void); extern void lm75_read_all(const char *opts); extern void lm75_read_one(const char *opts); extern void hih61xx_list_all(void); extern void hih61xx_read_all(const char *opts); extern void hih61xx_read_one(const char *opts); int file; void (*list_all)(void) = NULL; void (*read_all)(const char *opts) = NULL; void (*read_one)(const char *opts) = NULL; void print_help(void) { printf ("Usage:\n" " i2sensor ()\n" "Aviable options: \n" " list_all -- list all measured parameters off device\n" " read_all -- read all measured parameters from device\n" " read_one -- read the selected parameters from device\n" "Exmples:\n" " i2sensor read_all
\n" " i2sensor read_one
\n" " i2sensor read_all 1 lm75 0x4f -1.35,\n" " i2sensor read_one 1 lm75 0x4f 01,-1.35\n" "" "\n"); } void bus_err(int ern) { printf("I2C communication(rd) error. errno: %d\n",errno); } void preinit(const char *dev_type) { if(!strcmp("lm75", dev_type)) { list_all = lm75_list_all; read_all = lm75_read_all; read_one = lm75_read_one; } else if(!strcmp("hih61xx", dev_type)) { list_all = hih61xx_list_all; read_all = hih61xx_read_all; read_one = hih61xx_read_one; } } int main(int argc, char *argv[]) { // >> i2sensor () // >> i2sensor read_all 0 lm75 4f 1,-1.0;2,+0.2;3,+10;4,-2 // read_all, list_all, // ...read_all..., // read_one..., // ...read_reg_hex... , // ...read_reg_dec... , // ...set_param... , // ...set_reg... , if(4 < argc && 7 > argc) //Minimal 5 argument passed { char filename[32]; int i; preinit(argv[3]); for(i=0;i