www.open-tager.ru
http://www.open-tager.ru/forum/

Умный датчик. Smart sensor.
http://www.open-tager.ru/forum/viewtopic.php?f=5&t=4949
Страница 12 из 17

Автор:  Pingvin [ 02 фев 2017, 09:22 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Топологию "кольцо" не желаете обсудить?
Это когда tx первого датчика подключен к rx второго и так далее, последний датчик подключен к повязке.
То есть пакеты идут по кругу.
Коллизии невозможны в принципе.

Легко определяем количество подключенных датчиков.
Повязка шлет команду "по порядку номеров расчитайсь!"
Первый ловит пакет, в поле "количество датчиков" видит 0, понимает, что он первый.
Увеличивает счетчик на 1
Второй датчик принимает пакет, видит там 1 и понимает, что оп №2.
"количество датчиков" ++
и так далее...
Когда пакет вернётся опять к повязке, в поле "количество датчиков" будет реальное число подключенных датчиков.
Причем они физически (по расположению на шлейфе) увязаны со своими номерами.

Автор:  Pacifist [ 02 фев 2017, 10:13 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Интересный вариант. Тогда опрашивать состояние можно одной командой - повязка шлёт маркер-запрос, а каждый датчик прицепляет в посылку свою часть ответа.Не придётся синхронизировать датчики по времени.
Плохо что иногда в жилетах "звезда" удобнее для изготовления, но это не критично.

Автор:  Pingvin [ 02 фев 2017, 11:20 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Pacifist писал(а):
Интересный вариант. Тогда опрашивать состояние можно одной командой - повязка шлёт маркер-запрос, а каждый датчик прицепляет в посылку свою часть ответа.Не придётся синхронизировать датчики по времени.


Именно!
Причем не обязательно сначала получить весь пакет и лишь потом отправлять.
Можно сразу же посылать полученный байт.
У меня кольцевой буфер используется - очень удобно для данного случая.

Будет крутиться эдакий "паравозик" - маркер (локомотив) за ним данные (вагончики).
Для каждого датчика свой нумерованный "вагончик".
От туда датчик забирает задания и туда же грузит данные для повязки (как справедливо было замечено).

Я не говорю, что нужно делать именно так, но вариант интересный, согласитесь... :?

Автор:  MidnightDreamer [ 02 фев 2017, 11:22 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Если жилет расстегивается, то просто добавить по два отрезка шлейфа на подъём обратно к плечам, а уж по спине так просто кольцо ;-) Хотя лучше датчики не на грудь, а на предплечья )

Автор:  Alexies [ 02 фев 2017, 16:35 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Pingvin писал(а):
Топологию "кольцо" не желаете обсудить?

Вариант интересный, согласен! Но это не самое удачное решение по двум причинам:

Во-первых, кольцом труднее монтаж.

Во-вторых, у "кольца" будут существенно больше задержка опроса. Каждому датчику придется принять весь "поезд", выждать таймаут (что больше "вагонов" нет), затем прицепить вагон и отправить "состав" дальше. Добавить "на лету" не выйдет, т.к. количество уже прицепленных "вагонов" неизвестно, нужно ждать конца поезда по таймауту.
Таким образом, на каждом датчике задержка - это размер всего накопившегося поезда + таймаут. Очевидно, общее время растет квадратично с количеством датчиков. В случае же персонального опроса каждого, время получения данных зависит линейно от числа датчиков. Плюс ещё чувствительность к помехам - ошибки накапливаются на каждой операции приема/передачи.

Программирование что одной, что другой схемы одинаково несложно. К тому же вариант с общей шиной уже работает.

Автор:  Pingvin [ 02 фев 2017, 16:48 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Alexies писал(а):


Во-вторых, у "кольца" будут существенно больше задержка опроса. Каждому датчику придется принять весь "поезд", выждать таймаут (что больше "вагонов" нет), затем прицепить вагон и отправить "состав" дальше. Добавить "на лету" не выйдет, т.к. количество уже прицепленных "вагонов" неизвестно, нужно ждать конца поезда по таймауту.


Не согласен!
Не нужен весь пакет!
Мы знаем, какой по номеру пакет приняли, ибо первым будет всегда идти специальный маркер.
Напротив - принял байт, определил твой, или нет.
Если не твой - тут же отправил.
Если твой - принял команду, положил ответ, отправил.

И "прицеплять на лету" - это не я предлагал.
"Паровозик" может иметь фиксированное количество вагонов.

Ловим маркер, зная свой номер, датчик знает, какие по счету "вагоны" его.

Автор:  Pacifist [ 02 фев 2017, 17:35 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Да и на лету прицепить проблем нет. Количество байт в посылке знаем, первыми принимаем команду, не спеша готовим ответ и как только приняли последний байт - цепляем свою порцию. Таймаутов не надо, количество байт передаётся в заголовке. Опрос почти в два раза короче получится, чем в варианте "запрос/ответ". Причём чем больше датчиков - тем сравнительно быстрее работать может. Хотя если подумать - зачем датчикам суперскорость? 50 мс интервал - это 1200 выстр/минуту :)
Действительно интересная идея. Не надо ГСЧ и прочего для адресации. Не надо синхронизировать. Если буду делать какой-то лазертаг с автономными датчиками - то обязательно попробую.

Автор:  Pacifist [ 02 фев 2017, 17:38 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Pingvin писал(а):
..."Паровозик" может иметь фиксированное количество вагонов...

сейчас изобретём какой-то ИКМ / PDH :)

Автор:  Pingvin [ 02 фев 2017, 17:59 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Pacifist писал(а):
Да и на лету прицепить проблем нет. Количество байт в посылке знаем, первыми принимаем команду, не спеша готовим ответ и как только приняли последний байт - цепляем свою порцию. Таймаутов не надо, количество байт передаётся в заголовке. Опрос почти в два раза короче получится, чем в варианте "запрос/ответ". Причём чем больше датчиков - тем сравнительно быстрее работать может. Хотя если подумать - зачем датчикам суперскорость? 50 мс интервал - это 1200 выстр/минуту :)
Действительно интересная идея. Не надо ГСЧ и прочего для адресации. Не надо синхронизировать. Если буду делать какой-то лазертаг с автономными датчиками - то обязательно попробую.

В развитие темы...
Если в маркере указывать "длину поезда", то кто мешает увеличить значение в этом поле после приёма маркера, если нужно будет дополнительные вагончики прицепить?
И тут же отправить.
Следующий датчик будет знать длину поезда уже с прицепленными вагонами.
Причем так же таймаут не нужен.

Автор:  Alexies [ 02 фев 2017, 18:22 ]
Заголовок сообщения:  Re: Умный датчик. Smart sensor.

Pacifist писал(а):
Да и на лету прицепить проблем нет. Количество байт в посылке знаем, первыми принимаем команду, не спеша готовим ответ и как только приняли последний байт - цепляем свою порцию. Таймаутов не надо, количество байт передаётся в заголовке.

Нет, не так все просто. Если заголовок содержит длину "поезда", то его придется на лету замнять, это не есть хорошо. Если не содержит - то никакого способа определить конец "поезда" кроме таймаута нет. Куда прицеплять будете? Может там ещё один "вагон", а вы уже свой приделываете.

Страница 12 из 17 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/