2 char в структуру потом в int и обратно
Нужно объект из структуры два байта преобразовать в int два байта, передать по порту между ESP к arduino иле обратно, а потом в назад преобразовать в структуру.
Язык с++, но без библиотек.
struct PIN
{
unsigned char PinAndComand;
unsigned char PWN;
};
PIN obj;
int content;
// content = (int)obj;
// obj = (PIN)content;
Зачем? В arduino нет возможности передавать структуры через сериал, целиком только int. А мне нужно из ардуино сделать множитель портов для esp.
Почему бы не использовать вместо структуры, int.
Года два плата управления комнатой работает только на esp. Но нужно внести изменения, а я прошивку потерял и не помню распиловку. Решил новую сделать адекватно чтобы не боятся притронуться.
Ответы (2 шт):
Автор решения: Aptem_f
→ Ссылка
ты можешь конвернуть с помощью reinterpret_cast
struct PIN
{
unsigned char PinAndComand;
unsigned char PWN;
};
PIN obj;
int content;
content = *reinterpret_cast<int*>(&obj); // или
content = *(int*)(&obj);
obj = *reinterpret_cast<PIN*>(&content)
Автор решения: Optimus1
→ Ссылка
Или так:
struct PIN
{
unsigned char PinAndComand;
unsigned char PWN;
};
int main()
{
PIN my_pin;
int my_int;
my_pin.PinAndComand = 100;
my_pin.PWN = 2;
//--------------------------------------------------
((unsigned char*)&my_int)[0] = my_pin.PinAndComand;
((unsigned char*)&my_int)[1] = my_pin.PWN;
//--------------------------------------------------
}
Теперь в переменной my_int ваши значения из структуры PIN. Можно передавать этот int куда угодно.
