From c8cf6463ea7208f8bc266ac176fd4f528eaa4716 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Jan 2025 23:01:47 -0500 Subject: [PATCH] Update main.c more FC telem --- main.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/main.c b/main.c index d2f46596..9859e9b2 100644 --- a/main.c +++ b/main.c @@ -2304,20 +2304,31 @@ void get_tlm_fc() { memset(source_bytes, 0x00, sizeof(source_bytes)); source_bytes[0] = 0b00000001 ; // 10100000 10000001 01000001 10000001 10000001 - source_bytes[1] = 0b10000010 ; +// source_bytes[1] = 0b10000010 ; // printf("Volt: %f Int: %d \n", voltage[map[BAT]], (unsigned int)(voltage[map[BAT]] * 1000)); // printf("Amps: %f Int: %d \n", current[map[BAT]], (unsigned int)(current[map[BAT]] * 1)); - - source_bytes[9] = 0xff & (((unsigned int)(voltage[map[BAT]] * 1000) >> 8)); // mV - source_bytes[10] = 0xff & ((unsigned int)(voltage[map[BAT]] * 1000)); - source_bytes[11] = 0xff & (((unsigned int)(current[map[BAT]] * 1) >> 8)); // mA - source_bytes[12] = 0xff & ((unsigned int)(current[map[BAT]] * 1)); - source_bytes[13] = 0xff & (((unsigned long int)reset_count >> 8)); - source_bytes[14] = 0xff & ((unsigned long int)reset_count); - source_bytes[50] = 0xff & ((unsigned long int)sequence >> 16); // Sequence number - source_bytes[51] = 0xff & ((unsigned long int)sequence >> 8); - source_bytes[52] = 0xff & (unsigned long int)sequence++; + + source_bytes[EPS + 0] = 0xff & (((unsigned int)((voltage[map[PLUS_X]] + voltage[map[MINUS_X]]) * 1000) >> 8)); // mV + source_bytes[EPS + 1] = 0xff & ((unsigned int)((voltage[map[PLUS_X]] + voltage[map[MINUS_X]]) * 1000)); + source_bytes[EPS + 2] = 0xff & (((unsigned int)((voltage[map[PLUS_Y]] + voltage[map[MINUS_Y]]) * 1000) >> 8)); // mV + source_bytes[EPS + 3] = 0xff & ((unsigned int)((voltage[map[PLUS_Y]] + voltage[map[MINUS_Y]]) * 1000)); + source_bytes[EPS + 4] = 0xff & (((unsigned int)((voltage[map[PLUS_Z]] + voltage[map[MINUS_Z]]) * 1000) >> 8)); // mV + source_bytes[EPS + 5] = 0xff & ((unsigned int)((voltage[map[PLUS_Z]] + voltage[map[MINUS_Z]]) * 1000)); + unsigned int total_solar_current = (unsigned int) (current[map[PLUS_X]] + current[map[MINUS_X]] + + current[map[PLUS_Y]] + current[map[MINUS_Y]] + + current[map[PLUS_Z]] + current[map[MINUS_Z]]); + source_bytes[EPS + 6] = 0xff & total_solar_current >> 8; + source_bytes[EPS + 7] = 0xff & total_solar_current; + source_bytes[EPS + 8] = 0xff & (((unsigned int)(voltage[map[BAT]] * 1000) >> 8)); // mV + source_bytes[EPS + 9] = 0xff & ((unsigned int)(voltage[map[BAT]] * 1000)); + source_bytes[EPS + 10] = 0xff & (((unsigned int)(current[map[BAT]] * 1) >> 8)); // mA + source_bytes[EPS + 11] = 0xff & ((unsigned int)(current[map[BAT]] * 1)); + source_bytes[EPS + 12] = 0xff & (((unsigned long int)reset_count >> 8)); + source_bytes[EPS + 13] = 0xff & ((unsigned long int)reset_count); + source_bytes[FC_SW + 0] = 0xff & ((unsigned long int)sequence >> 16); // Sequence number + source_bytes[FC_SW + 1] = 0xff & ((unsigned long int)sequence >> 8); + source_bytes[FC_SW + 2] = 0xff & (unsigned long int)sequence++; /**/ printf("\nsource_bytes\n"); for (int i=0; i<256; i++)