У меня есть шестнадцатеричная строка, такая как 00133587a1bddb8dae00a3a01a010100
, которая на самом деле 7 шестнадцатеричных строк, конкатенированных, которые при расширении выглядят так: 00 133587a1 bddb8dae 00a3a01a 01 01 00
. Я пытаюсь сканировать первые 5 из этих значений в эту структуруЗначения сканирования шестнадцатеричной строки
typedef struct __param_value{
uint8_t sytem_id;
uint8_t comp_id;
uint16_t seq;
uint8_t frame;
uint16_t command;
uint8_t current;
uint8_t autocontinue;
float param1;
float param2;
float param3;
float param4;
float x;//param7
float y;//param8
float z;//param9
uint8_t fwt;
}param_value
и последний 2 в эти переменные
int txtseq;
int cont=1;
с использованием sscanf, как это
sscanf(in_str,"%2x%8x%8x%8x%2x%2x%2x",&(points[wp].seq),&(points[wp].x),&(points[wp].y),&(points[wp].z),&(points[wp].fwt),&txtseq,&cont);
но Я не могу понять правильный синтаксис. Можно ли это сделать так?
Что значит «Я не могу понять правильный синтаксис»? Вы получаете сообщение об ошибке? Если да, то какое именно сообщение об ошибке? Как объявляются «точки»? –
Вы уверены, что нет прокладки для структуры? В противном случае ваша программа остановится и загорится. – Lundin
Также обратите внимание, что 'x' для' unsigned int '. –