|
Опросить слейвы по CAN. |
|
|
|
 |
Ответов
|
Feb 7 2018, 08:30
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Jenya7 @ Feb 7 2018, 10:40)  а когда начать новый опрос? тут есть проблема принятия решения. У вас реалтайм-система или как? Я делаю так как писали выше. Контроллеры сами с нужной частотой шлют данные. Мастер пакеты получает и перезапускает таймеры для каждого слейва. В любой момент мастер имеет информацию о "свежести" данных и может либо их использовать, либо сигнализировать о потере связи со слейвом.
|
|
|
|
|
Feb 7 2018, 09:15
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Jenya7 @ Feb 7 2018, 11:47)  у меня слейвы не шлют данные сами по себе. они отвечают на запрос от мастера. Просто нужно понимать, что слейвы могут слать данные и без запроса. Например, мастер может сказать слейву: шли такие-то данные с такой-то периодичностью столько-то раз. Цитата(Jenya7 @ Feb 7 2018, 11:47)  а зачем нужны таймеры для каждого слейва? У меня каждое устройство (узел) раз в секунду шлет SYNC-пакет с идентификационной информацией. Мастер (я его/их называю Сервером) получает все SYNC-пакеты, пересбрасывает таймеры в таблице узлов, при необходимости добавляет новые узлы в таблицу узлов, генерит сообщения "пропала/восстановлена" связь с узлом. Если таймер в таблице узлов досчитал до 10 секунд, то это означает, что узел не пресылает SYNC-пакеты уже 10 секунд, а значит его нет.
|
|
|
|
|
Feb 7 2018, 09:33
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(adnega @ Feb 7 2018, 14:15)  Просто нужно понимать, что слейвы могут слать данные и без запроса. Например, мастер может сказать слейву: шли такие-то данные с такой-то периодичностью столько-то раз.
У меня каждое устройство (узел) раз в секунду шлет SYNC-пакет с идентификационной информацией. Мастер (я его/их называю Сервером) получает все SYNC-пакеты, пересбрасывает таймеры в таблице узлов, при необходимости добавляет новые узлы в таблицу узлов, генерит сообщения "пропала/восстановлена" связь с узлом. Если таймер в таблице узлов досчитал до 10 секунд, то это означает, что узел не пресылает SYNC-пакеты уже 10 секунд, а значит его нет. нет. мне не нужно чтоб слейвы заваливали мастера данными когда не нужно. все четко - мастер послал запрос - получил ответ - принял решение на основе пришедших данных - послал следующий запрос. мне только нужен красивый механизм получения ответа от слейвов. у меня слейв он реально слейв - спросили - ответил, не спросили - сидит тихо не вякает.
Сообщение отредактировал Jenya7 - Feb 7 2018, 09:36
|
|
|
|
Сообщений в этой теме
Jenya7 Опросить слейвы по CAN. Feb 7 2018, 06:20 adnega Цитата(Jenya7 @ Feb 7 2018, 09:20) Вопрос... Feb 7 2018, 07:03 mrKirill Что изменится, если все условные Slave будут посто... Feb 7 2018, 07:06 Jenya7 Допустим при посылке вместе с данными я буду посыл... Feb 7 2018, 07:18       Jenya7 Цитата(Сергей Борщ @ Feb 7 2018, 14:58) Т... Feb 7 2018, 10:30   k155la3 Цитата(adnega @ Feb 7 2018, 12:30) У вас ... Feb 10 2018, 23:09    adnega Цитата(k155la3 @ Feb 11 2018, 02:09) ? 1.... Feb 11 2018, 07:02     k155la3 Цитата(adnega @ Feb 11 2018, 11:02) . . .... Feb 12 2018, 09:04    ZASADA Цитата(k155la3 @ Feb 11 2018, 02:09) У ме... Feb 14 2018, 12:21 AlexandrY Цитата(Jenya7 @ Feb 7 2018, 08:20) Есть к... Feb 7 2018, 11:15 Baser Так и не понял, в чем у ТС проблема?
Если хочется... Feb 7 2018, 13:46
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|