реклама на сайте
подробности

 
 
> Матлаб и пакеты UDP
_Anatoliy
сообщение Jul 3 2017, 07:47
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Всем доброго времени суток!
Мне нужно принять информацию из разрабатываемого изделия в Матлаб посредством Ethernet , пакеты UDP. Протокол простой - отсылаю пакет с кодом команды и параметром, изделие в ответ высылает 4 пакета UDP с информацией. Вроде всё работает , но почему-то не могу прочитать нужное количество байт из принятых пакетов. В основном принимается 512 байт, иногда меньше. Мне же нужно принять из каждого пакета 1026 байт. Как решить эту задачу?
Код
    fwrite(u,[52 01]);
    C = fread(u,1026);
    D = fread(u,1026);
    E = fread(u,1026);
    F = fread(u,1026);
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Swup
сообщение Jul 3 2017, 08:30
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 2-09-11
Из: Москва
Пользователь №: 66 970



Код
%шлем команду
fwrite(u_cmd, send_pack, 'uint32');

    % ждем либо таймаут 200мсек либо пока придет 16 байт
    waiting_packet_length = 4*4;
    answ = 1;
    pause_cnt = 0;
    pause_step = 0.01;
    pause_timeout = 0.2;
    while u_cmd.BytesAvailable < waiting_packet_length
        pause(pause_step);
        pause_cnt = pause_cnt+pause_step;
        if pause_cnt>pause_timeout
            answ = 0;
            break
        end
    end
    

    if(answ)
        % читаем данные
        answer_buff = fread(u_cmd,waiting_packet_length,'uint32');
        reg_data = answer_buff(4);
    res = 1;
    else
        % обрабатываем отсутствие ответа
        reg_data = 0;
        res = 0;
    end

%res и reg_data я дальше вывожу в вызывающую функцию


Я так читаю управляющие регистры, но с потоками данных и файлами, все примерно также
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016