Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 18, 2015 14:37:06

DGW
Зарегистрирован: 2015-09-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Pytho и C

Доброго Всем дня.
На C у меня такая конструкция:
union
{
float val;
struct
{
uint8_t b7_0;
uint8_t b15_8;
uint8_t b23_16;
uint8_t b31_24;
};
} num;
Выполнив вычисления и загрузив результат в val я спокойно передаю результат по RS485 побайтно:
– – –
– – –
А как мне организовать это на pyton?!
Сейчас делаю так (хотя это не совсем та последовательность):
outstring = struct.pack('>f', num),
далее передаю строку serial.write(outstring).
Спасибо Всем за помощь.

Офлайн

#2 Сен. 18, 2015 14:52:29

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Pytho и C

Что означает не совсем та? Пакуйте ту последовательность какая нужна.

Офлайн

#3 Сен. 18, 2015 15:05:23

DGW
Зарегистрирован: 2015-09-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Pytho и C

Прошу прощения, только что увидел, что часть (важная) текста потеряна. В C передается следующая последовательность байт:
b15_8 – b7_0 – b31_24 – b23_16
Отсюда и вопрос.

Офлайн

#4 Сен. 18, 2015 18:08:36

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Pytho и C

DGW
В C передается следующая последовательность байт:
b15_8 – b7_0 – b31_24 – b23_16
Это на котором этапе передачи, и какой архитектуре?

Офлайн

#5 Сен. 19, 2015 03:34:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Pytho и C

>>> import struct
>>> 
>>> b = struct.pack('f', 1.5)
>>> b
b'\x00\x00\xc0?'
>>> out = bytes([b[1], b[0], b[3], b[2]])
>>> out
b'\x00\x00?\xc0'
>>>



Отредактировано py.user.next (Сен. 19, 2015 03:36:19)

Офлайн

#6 Сен. 24, 2015 14:32:15

DGW
Зарегистрирован: 2015-09-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Pytho и C

Спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version