#include <stdio.h>
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
int main () {
uint8_t data_buf[50];
char data_string[] = "A6 00 03 F0 00 02 00 1F 00 23 00 33 00 2F 60 00 00 00 43 6D 32 72 3C 04 90 0B 3F 6A 2C 69 3E 87 6D 8F 04 00 1E 00 0F 08";
for (uint16_t i = 0; i < 40; i ++)
{
sscanf(data_string + i * 3, "%x ", data_buf + i);
}
uint8_t temp1_buf[2]; uint8_t temp2_buf[2];
uint8_t temp3_buf[2]; uint8_t voltage_buf[4];
uint8_t current_buf[4]; uint8_t energy_buf[4];
uint8_t power_buf[4]; uint8_t pwm_delay_buf[2];
temp1_buf[0] = data_buf[9]; temp1_buf[1] = data_buf[8];
temp2_buf[0] = data_buf[11]; temp2_buf[1] = data_buf[10];
temp3_buf[0] = data_buf[13]; temp3_buf[1] = data_buf[12];
voltage_buf[0] = data_buf[21]; voltage_buf[1] = data_buf[20]; voltage_buf[2] = data_buf[19]; voltage_buf[3] = data_buf[18];
current_buf[0] = data_buf[25]; current_buf[1] = data_buf[24]; current_buf[2] = data_buf[23]; current_buf[3] = data_buf[22];
power_buf[0] = data_buf[29]; power_buf[1] = data_buf[28]; power_buf[2] = data_buf[27]; power_buf[3] = data_buf[26];
energy_buf[0] = data_buf[33]; energy_buf[1] = data_buf[32]; energy_buf[2] = data_buf[31]; energy_buf[3] = data_buf[30];
pwm_delay_buf[0] = data_buf[36]; pwm_delay_buf[1] = data_buf[35];
int16_t temp1 = *((int16_t *)temp1_buf);
int16_t temp2 = *((int16_t *)temp2_buf);
int16_t temp3 = *((int16_t *)temp3_buf);
uint8_t pwm = data_buf[14];
uint8_t temp_status = data_buf[17];
float voltage = *((float *)voltage_buf);
float current = *((float *)current_buf);
float power = *((float *)power_buf);
float energy = *((float *)energy_buf);
uint8_t sys_status = data_buf[34];
uint8_t pwm_delay = *((int16_t *)pwm_delay_buf);
uint8_t power_delay = data_buf[38];
printf("temp1: %d°\n", temp1);
printf("temp2: %d°\n", temp2);
printf("temp3: %d°\n", temp3);
printf("pwm: %d\%\n", pwm);
printf("temp_status: %d\n", temp_status);
printf("voltage: %.4fV\n", voltage);
printf("current: %.4fA\n", current);
printf("power: %.4fW\n", power);
printf("energy: %.4fmWt\n", energy);
printf("sys_status: %d\n", sys_status);
printf("pwm_delay: %ds\n", pwm_delay);
printf("power_delay: %dmin\n", power_delay);
return 0;
}