Предистория
Как-то некоторое время назад я участвовал в проектировании одной сети сбора данных. Сеть использовала диапазон 869 МГц и протокол
SimpliciTI. По своей структуре сеть была по сути одноранговой с центральным узлом накопления данных. Однако в сети был предусмотрен и вариант ретрансляции данных, хотя он был, скорее, вспомогательным.
Дальше прототипов дело не пошло, хотя дело поставлено было очень серьёзно, вплоть до сертификации по ЭМС.
Одной из причин неудачи было то, что штатный программист не сумел полностью овладеть управлением
CC1101.
Штука в том, что пакет SimpliciTI, взятый с сайта Texas Instruments, уже имеет какие-то настройки по-умолчанию. Эти настройки далеко не оптимальны для задачи редкого сбора данных (раз в месяц) в сети, которая располагается в доме с железобетонными стенами, да ещё испытывает воздействие помех различного происхождения.
С самого начала было понятно, что параметры должны быть, скажем, вот такими, а не такими. Для установки параметров в CC1101 имеется целый ряд регистров. Это всё описано, несколько путано, но, в конце концов, после некоторых усилий осваивается.
И вот берётся программа
SmartRF Studio, устанавливаются в ней нужные параметры, проверяются. После успешной проверки нужно бы эти параметры перенести в реальную аппаратуру. Для этого в приложении, использующем SimpliciTI, делаются установки в начале программы.
Но не тут-то было! После успешного старта где-то на какой-то функции из пакета SimpliciTI происходит откат к параметрам, которые устанавливались разработчиками пакета. И программист так и не нашёл, где это происходит. В частности, ему так и не удалось запустить пакеты с фиксированной длиной и FEC. А без последнего работа системы в условиях замирания сигнала и помех практически невозможна.