2015-08-13 2 views
1

Я пытаюсь настроить интерфейс связи UDP между микроавтобусом dspace, интерфейс связи которого можно воспроизвести в simulink и Linux-машине, где я получаю/отправляю пакеты с использованием кода julia. Существует эта предварительная обработка, которая требуется для отправки массивов двойников по Ethernet.Пакет и распаковать блоки в simulink

enter image description here

Я хотел бы знать, что «пакет» и «распаковать» блоки на стороне DSPACE на самом деле сделать так, чтобы я мог воссоздать то же самое на стороне Linux машины, чтобы декодировать данные, передаваемые по локальной сети.

+0

Можете ли вы подтвердить, какие библиотеки эти обновления и распакуйте блок взялось? И показать нам параметры диалога блоков? – am304

+0

Я думаю, что следующая ссылка имеет функции, которые выполняют заданные задания (https://www.mathworks.com/examples/matlab-communications/4726-codegen-of-pack-and-unpack-example), и панель инструментов с этими блоки (http://www.mathworks.com/matlabcentral/fileexchange/50696-pack-and-unpack-data) – nikamanth

ответ

0

Функции пакета и распаковки могут выполняться на python с использованием модуля struct в python. Ниже перечислены функции, которые выполняли ту же работу, что и пакетные и распаковывающие блоки в стороне simulink (dspace). Примечание: процессор DSpace большой порядок байт, который объясняет изменение порядок байтов блоков

Пример кода:

import struct as st 

def pack_unpack_receive(X,len_data): 
    packed_Uint8 = st.pack('B'*len(X),*X) 
    unpacked_double = st.unpack('d'*len_data, packed_Uint8) 
    return unpacked_double 

def pack_unpack_send(X): 
    packed_double = st.pack('d'*len(X),*X) 
    unpacked_Uint8 = st.unpack('B'*len(X)*8,packed_double) 
    return unpacked_double 
Смежные вопросы