Pacifist писал(а):
можно еще передавать группируя биты по 4, это сократит саму посылку:
Код:
h4FA0t
но тогда при приеме пакета с количеством бит не кратным 4 (к примеру 14 как у выстрела Майлс) придется дополнять недостающие биты нулями и будет неясно принят ли к примеру пакет из 16 бит с последними битами 0 или принят пакет из 14 бит.
Бит-ориентированный протокол, конечно, требует большего трафика, но позволяет сделать повязку предельно "тупой" - не надо анализировать полученные пакеты (и даже подсчитывать их).
Зафиксировала старт-бит (импульс длительностью 2400 uS) - послала 'h'.
Зафиксировала импульс 1200 uS - послала '1'.
Зафиксировала импульс 600 uS - послала '0'.
Зафиксировала импульс не корректной длительности - послала 'e'.
Нет импульсов какое то время (таймаут приема) - послала 't'.
Чего там передается, сколько бит в посылке - повязке фиолетово.
Таг анализирует принятые биты точно так же, как и ИК-импульсы.
Поэтому можно передавать не только "выстрелы" но и команды - все то, что передается по ИК.
Попробуем пока так.
Тем более, с таким протоколом легко сделать "универсальную" повязку - ничего сложного нет в том, чтобы восстановить импульсы на принимающем устройстве и подать их на вход DATA (в разъёме для подключения повязки) любого тага с милесом на борту.
Да и с любым протоколом, по большому счету.
Нужно только знать длительности старт-бита, нулевого и единичного бита.