diff --git a/afsk/main.c b/afsk/main.c index 1c9e2b06..97280e28 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -25,6 +25,7 @@ #include "ax5043.h" #include "ax25.h" #include "spi/ax5043spi.h" +#include #define VBATT 15 #define ADC5 17 @@ -58,6 +59,9 @@ int main(void) { // rest is dummy CubeSatSim telemetry in AO-7 format // const char *str = "\x03\x0fhi hi 101 102 103 104 202 203 204 205 303 304 305 306 404 405 406 407 408 505 506 507 508 606 607 608 609\n"; + int devId = 0x40; // +X Panel current + int i2cDevice = wiringPiI2CSetup (devId) ; + /* Infinite loop */ for (;;) { sleep(2); @@ -106,20 +110,12 @@ int main(void) { vbat = strtof(mopower[VBATT], NULL); printf(" vbat: %f \n", vbat); int tlm_3a = (int)((vbat * 10) - 65.5); - + int tlm_6b = 0, tlm_2b = 99; + printf("TLM 3A = %d \n", tlm_3a); - char tlm_str[1000]; - sprintf(tlm_str, "\x03\x0fhi hi 101 102 103 104 202 203 2%d%d 205 3%d%d 300 300 300 404 405 406 407 408 505 506 507 508 606 607 608 609\n", - upper_digit(tlm_2c), lower_digit(tlm_2c), - upper_digit(tlm_3a), lower_digit(tlm_3a)); - printf("%s\n",tlm_str); - // Read current from I2C bus -/* - int devId = 0x40; // +X Panel current - int i2cDevice = wiringPiI2CSetup (devId) ; printf("\n\nI2C result: %d\n", i2cDevice); printf("Read: %d\n", wiringPiI2CRead(i2cDevice)) ; @@ -130,8 +126,49 @@ int main(void) { printf("Current: %d\n\n\n", currentValue); int tlm_1b = (int) (98.5 - currentValue/400); printf("TLM 1B = %d \n\n", tlm_1b); + int tlm_1a = 0, tlm_1c = 98, tlm_1d = 98, tlm_2a = 98, tlm_4a = 49; + +// Reading 5V voltage and current + + file = popen("sudo python /home/pi/CubeSatSim/python/readcurrent.py 2>&1", "r"); + + fgets(cmdbuffer, 1000, file); + pclose(file); + printf("Current buffer is:%s\n", cmdbuffer); + + char battery[3][14]; + i = 0; + data2 = strtok (cmdbuffer," "); + + while (data2 != NULL) + + { + strcpy(battery[i], data2); + printf ("battery[%d]=%s\n",i,battery[i]); + data2 = strtok (NULL, " "); + i++; + } + int tlm_3b = (int)(strtof(battery[0], NULL) * 10.0); + int tlm_2d = (int)(50.0 + strtof(battery[1], NULL)/40.0); + printf(" 2D: %d 3B: %d\n", tlm_2d, tlm_3b); + + char tlm_str[1000]; + sprintf(tlm_str, "\x03\x0fhi hi 1%d%d 1%d%d 1%d%d 1%d%d 2%d%d 2%d%d 2%d%d 2%d%d 3%d%d 3%d%d 300 300 4%d%d 400 400 400 400 500 500 500 500 600 6%d%d 600 651\n", + upper_digit(tlm_1a), lower_digit(tlm_1a), + upper_digit(tlm_1b), lower_digit(tlm_1b), + upper_digit(tlm_1c), lower_digit(tlm_1c), + upper_digit(tlm_1d), lower_digit(tlm_1d), + upper_digit(tlm_2a), lower_digit(tlm_2a), + upper_digit(tlm_2b), lower_digit(tlm_2b), + upper_digit(tlm_2c), lower_digit(tlm_2c), + upper_digit(tlm_2d), lower_digit(tlm_2d), + upper_digit(tlm_3a), lower_digit(tlm_3a), + upper_digit(tlm_3b), lower_digit(tlm_3b), + upper_digit(tlm_4a), lower_digit(tlm_4a), + upper_digit(tlm_6b), lower_digit(tlm_6b)); + printf("%s\n",tlm_str); + -*/ memcpy(data, tlm_str, strnlen(tlm_str, 256)); ret = ax25_tx_frame(&hax25, &hax5043, data, strnlen(tlm_str, 256));