Перейти к содержанию
    

SDO Block Download Protocol

Реализую SDO Block Download Protocol

 

из ds301 v4.02 не все понятно

сейчас заткнулся на реализации повтора сбойного блока

 

в п. 9.2.2.2.10 Download SDO Block Segment Protocol написано что сервер выдает ответ где ackseq номер последнего успешно полученного сегмента, этим все понятно а вот смысл поля blksize непонятен.

Также не вполне ясно как передавать повторный блок. Допустим начальную позицию источника данных я вычислю на основании номера блока и ackseq а вот размер передаваемого блока если ackseg не ноль неясен.

например передавали блок из 5 сегментов, в ответе сервер вернул ackseg=2 blksize=5

Ясно что успешно приняты 1 и 2 сегменты, 3-5 не приняты.

Повторить можно как минимум двумя способами:

1) повторить передачу блока из blksize сегментов начиная с сегмента ackseg+1 (3), т.е передать сегменты 3,4 и 5

2) начать передачу нового сегмента из blksize сегментов с начала, используя смещение источника данных вычисленное на основе ackseg. Т.е будет передано 5 сегментов, из них первые три повтор и еще 2 новые данные.

 

Ситуация может быть еще сложнее: в ответе на сбойный блок сервер может выдать любой blksize, например

сбойный блок был из 5 сегментов, ответ сервер выдает:

ackseg=2 blksize=4

или

ackseg=2 blksize=10

как кленту на такое реагировать ?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тихо сам с собою...

 

Посмотрел как реализовано в исходниках canopennode

В canopennode повтор сбойного блока реализован как запрос очередного блока с новым размером blksize со стартовой позицией в источнике по возвращенному ackseg.

 

Так и реализовал. Насколько это правильно не знаю, других источников нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...