Ejemplo n.º 1
0
        public static string PWRStruct_str(PWRTelemetry_packet_t data)
        {
            string str = "";
            PWRTelemetry_packet_t tlm = data;

            str += tlm.PWRTelemetry.MPP1.U.ToString() + ",";
            str += tlm.PWRTelemetry.MPP1.I.ToString() + ",";
            //str += tlm.PWRTelemetry.MPP1.T.ToString() + ",";

            str += tlm.PWRTelemetry.MPP2.U.ToString() + ",";
            str += tlm.PWRTelemetry.MPP2.I.ToString() + ",";
            //str += tlm.PWRTelemetry.MPP2.T.ToString() + ",";

            str += tlm.PWRTelemetry.MPP3.U.ToString() + ",";
            str += tlm.PWRTelemetry.MPP3.I.ToString() + ",";
            // str += tlm.PWRTelemetry.MPP3.T.ToString() + ",";

            str += tlm.PWRTelemetry.BatteryTelemetry.U.ToString() + ",";
            str += tlm.PWRTelemetry.BatteryTelemetry.I_Ch.ToString() + ",";
            str += tlm.PWRTelemetry.BatteryTelemetry.I_Dis.ToString() + ",";
            str += tlm.PWRTelemetry.BatteryTelemetry.T.ToString() + ",";
            str += tlm.PWRTelemetry.BatteryTelemetry.Pwr_balance.ToString() + ",";

            str += tlm.PWRTelemetry.OtherTelemetry.VBUS_I.ToString() + ",";
            str += tlm.PWRTelemetry.OtherTelemetry.MCU_T.ToString() + ",";

            return(str);
        }
Ejemplo n.º 2
0
        public static PWRTelemetry_packet_t fill_PWRStruct(byte[] src, int offset)
        {
            PWRTelemetry_packet_t tlm = new PWRTelemetry_packet_t();

            tlm.header = (uint16_t)((uint16_t)(src[offset + 1] * (uint16_t)256) + (uint16_t)src[offset + 0]);
            tlm.size   = (uint8_t)src[offset + 2];
            tlm.PWRTelemetry.MPP1.U = (uint16_t)((uint16_t)(src[offset + 4] * (uint16_t)256) + (uint16_t)src[offset + 3]);
            tlm.PWRTelemetry.MPP1.I = (uint16_t)((uint16_t)(src[offset + 6] * (uint16_t)256) + (uint16_t)src[offset + 5]);
            // tlm.PWRTelemetry.MPP1.T = (int8_t)src[offset + 7];

            tlm.PWRTelemetry.MPP2.U = (uint16_t)((uint16_t)(src[offset + 9] * (uint16_t)256) + (uint16_t)src[offset + 6]);
            tlm.PWRTelemetry.MPP2.I = (uint16_t)((uint16_t)(src[offset + 11] * (uint16_t)256) + (uint16_t)src[offset + 10]);
            //tlm.PWRTelemetry.MPP2.T = (int8_t)src[offset + 12];

            tlm.PWRTelemetry.MPP3.U = (uint16_t)((uint16_t)(src[offset + 14] * (uint16_t)256) + (uint16_t)src[offset + 13]);
            tlm.PWRTelemetry.MPP3.I = (uint16_t)((uint16_t)(src[offset + 16] * (uint16_t)256) + (uint16_t)src[offset + 15]);
            // tlm.PWRTelemetry.MPP3.T = (int8_t)src[offset + 17];

            tlm.PWRTelemetry.BatteryTelemetry.U           = (uint16_t)((uint16_t)(src[offset + 19] * (uint16_t)256) + (uint16_t)src[offset + 18]);
            tlm.PWRTelemetry.BatteryTelemetry.I_Ch        = (uint16_t)((uint16_t)(src[offset + 21] * (uint16_t)256) + (uint16_t)src[offset + 20]);
            tlm.PWRTelemetry.BatteryTelemetry.I_Dis       = (uint16_t)((uint16_t)(src[offset + 23] * (uint16_t)256) + (uint16_t)src[offset + 22]);
            tlm.PWRTelemetry.BatteryTelemetry.T           = (int8_t)src[offset + 24];
            tlm.PWRTelemetry.BatteryTelemetry.Pwr_balance = (src[offset + 28] << 24) | (src[offset + 27] << 16) | (src[offset + 26] << 8) | (src[offset + 25] << 0);

            tlm.PWRTelemetry.OtherTelemetry.VBUS_I = (uint16_t)((uint16_t)(src[offset + 30] * (uint16_t)256) + (uint16_t)src[offset + 29]);
            tlm.PWRTelemetry.OtherTelemetry.MCU_T  = (int8_t)src[offset + 31];

            tlm.PWRTelemetry.PWRState.state = (uint8_t)src[offset + 32];

            tlm.crc8 = (uint8_t)src[offset + 33];

            return(tlm);
        }