diff --git a/afsk/telem.c b/afsk/telem.c index 0e956f0e..1ecc7113 100644 --- a/afsk/telem.c +++ b/afsk/telem.c @@ -49,6 +49,7 @@ #define MINUS_Z 6 #define BUS 7 #define OFF -1 +#define ON 1 int twosToInt(int val, int len); @@ -58,6 +59,7 @@ struct SensorConfig { int calValue; int powerMultiplier; int currentDivider; + char command[30]; }; struct SensorData { @@ -82,11 +84,30 @@ struct SensorData read_sensor_data(struct SensorConfig sensor) { struct SensorData data = { .current = 0, .voltage = 0, - .power = 0 }; + .power = 0 + }; if (sensor.fd < 0) { return data; } + + FILE* file = popen("python3 /home/pi/CubeSatSim/python/voltage.py 1 0x44", "r"); + char cmdbuffer[1000]; + fgets(cmdbuffer, 1000, file); + pclose(file); + data.voltage = atof(cmdbuffer); + + printf("current: %s \n", cmdbuffer); + + file = popen("python3 /home/pi/CubeSatSim/python/current.py 1 0x44", "r"); + fgets(cmdbuffer, 1000, file); + pclose(file); + + printf("current: %s \n", cmdbuffer); + + data.current = atof(cmdbuffer); + +/* // doesn't read negative currents accurately, shows -0.1mA wiringPiI2CWriteReg16(sensor.fd, INA219_REG_CALIBRATION, sensor.calValue); wiringPiI2CWriteReg16(sensor.fd, INA219_REG_CONFIG, sensor.config); @@ -107,7 +128,7 @@ struct SensorData read_sensor_data(struct SensorConfig sensor) { // power has very low resolution, seems to step in 512mW values delay(1); data.power = (float) wiringPiI2CReadReg16(sensor.fd, INA219_REG_POWER) * (float) sensor.powerMultiplier; - + */ return data; } @@ -152,7 +173,9 @@ struct SensorConfig config_sensor(char *bus, int address, int milliAmps) { printf("ERROR: %s bus has a problem \n Check I2C wiring and pullup resistors \n", bus); data.fd = OFF; return (data); - } + } + data.fd = ON; +/* data.fd = wiringPiI2CSetupInterface(bus, address); data.config = INA219_CONFIG_BVOLTAGERANGE_32V | @@ -177,7 +200,8 @@ struct SensorConfig config_sensor(char *bus, int address, int milliAmps) { // data.config, data.calValue, data.currentDivider, data.powerMultiplier); // printf("Sensor %s %x | ", bus, address); //#endif - return data; +*/ + return data; } struct SensorConfig sensorV;