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 куда угодно.

→ Ссылка