Opened 6 years ago
Closed 6 years ago
#283 closed улучшение (готово)
Переработать логику работы транспорта SPI
Reported by: | alx | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 1 очередь |
Component: | any | Keywords: | |
Cc: |
Description
Когда был реализован транспорт SPI для обмена сообщениями с платой SW-01, предполагалось, что обмен почти всегда будет проходить в режиме "запрос" - "ответ", и спорадические сообщения (на тот момент только TRAP'ы) будут составлять исчезающе малый процент. По логике работы транспорта, для успешной обработки запроса от платы SW-01 необходимо чтобы на момент успешного принятия запроса был свободен буфер передачи. Если буфер передачи чем-то занят, плата VE-01 молча дропает запрос, ожидая повтора от платы SW-01 (плата не готова обслужить запрос).
Сейчас значительно увеличилось число отправляемых платой VE-01 спорадических сообщений, и вероятность обнаружить занятым буфер передачи на момент приема запроса возросла. Есть подозрение, что это может приводить к "пропаданию" платы из-за неответа на несколько повторных запросов подряд.
Чтобы устранить эту неприятность предлагается завести отдельный буфер для ответа на запрос (или даже пул из нескольких буферов), и отправлять содержимое этих буферов в первоочередном порядке. Дропать же запросы только в случае, если все буферы пула заняты.
Change History (4)
comment:1 by , 6 years ago
comment:4 by , 6 years ago
Resolution: | → готово |
---|---|
Status: | new → closed |
После сделанных изменений потерь платы, действительно, больше не возникает.
Дополнительная проверка подтвердила предположение - действительно, при частой отправке спорадических сообщений (я этого добился массовой регистрацией внешних клиентов на плате) принятые от SW-01 запросы дропаются из-за занятости буфера передачи. Результат - SW-01 фиксирует пропадание платы.