Удаленная отладка Z-uno

Данный раздел предназначен для русскоязычных пользователей. Если вы владеете английским, рекомендуем также просмотреть общую ветку обсуждений на английском.
Post Reply
alv1home
Posts: 72
Joined: 24 Jun 2015 22:04

Удаленная отладка Z-uno

Post by alv1home » 20 Oct 2019 12:10

Добрый!
Возможна ли удаленная отладка программы в Z-uno?
Есть Z-uno с датчиками на i2c (но датчики на 3 метровой витой паре). Всё работает, но периодически виснет. Причем это «периодически» совершено произвольно: то через сутки, то через неделю, а то и пару часов. Естественно: сидеть за компом и «ловить» в таком режиме невозможно. Хотелось бы разместить Z-uno "штатно" и получать сообщения в лог, типа: опрос датчика такого-то – ок, такого - ок. Пытался пользовать zunoSendDbgData, но что-то не получилось – в z-way-server.log сообщения не появляются.

User avatar
PoltoS
Posts: 5103
Joined: 26 Jan 2011 19:36

Re: Удаленная отладка Z-uno

Post by PoltoS » 20 Oct 2019 13:29

Можно. Сейчас напишем детально возможные варианты

alv1home
Posts: 72
Joined: 24 Jun 2015 22:04

Re: Удаленная отладка Z-uno

Post by alv1home » 20 Oct 2019 16:11

Отлично! Жду!

p0lyg0n1
Posts: 177
Joined: 04 Aug 2016 07:14

Re: Удаленная отладка Z-uno

Post by p0lyg0n1 » 21 Oct 2019 14:34

Здравствуйте,
Есть несколько моментов, которые точно нужно учесть:
1. Датчики I2C не могут работать на большой длинне шинных проводов. Это обусловлено тем, что шина для этого не предназначена. Для задач, которые требуют большИх расстояний целесообразно использовать шины поддерживающие манчестерское кодирование(сдвигом фаз) такие как DHT/OneWire или использовать витую пару с драйвером RS485. I2C создана для передачи внутри одного устройства (нескольких печатных плат внутри одного корпуса) и нуждается в экранировании и слежением за емкостью шины. Ее использование на длинных проводах приводит к некорректной работе подключенных устройств.
2. Определение работоспособности устройства по зеленому светодиоду. Мигает зеленый - системный код не повис, устройство работает ). Неритмично мигает - пользовательский код перегружен и отдает мало времени системному коду. Нужно разбивать нагруженный код на части и вставлять между ними delay(). В Z-Uno есть диспетчеризация и delay не является полностью блокирующим процессор, а только вытесняет на заданное время пользовательскую задачу и дает возможность работать коду системы.
3. Удаленная отладка.
Возможна через zunoSendDbgData. Для этого нужно чтобы устройство имело хотя бы один канал с Basic(управление. Switch например), было ассоциировано с контроллером по LifeLine (1-ая группа), в качестве первого параметра zunoSendDbgData указываем 0. Либо имело хотябы одну группу управления (Basic ON/OFF), в эту ассоциацию добавляется контроллер, тогда в качестве первого параметра zunoSendDbgData указываем 1. Данные можно увидеть в логе Z-Way.
Возможна с использованием системных событий. Это поможет определить системные неполадки, такие как переполнение стека и т.д. Необходимо включить в IDE: Logging->Radio при прошивке скетча. Устройство при этом присылает системный события в виде 4-х байтового Conf-параметра(#48) на контроллер. Первые два байта - время от старта системы, 3-ий байт код события (Полный список системных событий ZUNO_LOGGING_EVENT_* доступен здесь:
https://github.com/Z-Wave-Me/Z-Uno-Core ... initions.h), 4-ый параметр события.

С уважением,
Александр.

alv1home
Posts: 72
Joined: 24 Jun 2015 22:04

Re: Удаленная отладка Z-uno

Post by alv1home » 21 Oct 2019 15:05

О, спасибо!

По 1: Да, про i2c знаю. Но облазил кучу форумов и всё сходится на том, что не должно, но работает. Один даже хвалился, что на 25 метрах витой пары работает.
По 2: индикатор просто горит (это когда я смотрел, но в последнее время перегружаю дистанционно по питанию).

Post Reply