Передача архива (блока данных) в контроллер

Данный раздел предназначен для русскоязычных пользователей. Если вы владеете английским, рекомендуем также просмотреть общую ветку обсуждений на английском.
Post Reply
sas8
Posts: 7
Joined: 16 Jan 2018 22:19

Передача архива (блока данных) в контроллер

Post by sas8 » 14 Feb 2018 00:55

Добрый день, есть ли способ передать по запросу накопленный в EEPROM архив данных счетчика ресурса в контроллер/программу работающую с open zwave api?

Пока видятся 2 решения -
1- принимать запрос со значением глубины в архиве через setter и отдавать показания через zunoSendReport() или getter этого же канала
2- принимать запрос на начало/стоп передачи архива и через zunoSendReport() передавать парами (последовательно вызывая для двух каналов) время и показания

Цель - обеспечить восстановление данных на сервере после восстановления связи/питания/перезагрузки/итп
Для хранения планируется использовать EEPROM с записью раз в пол часа в блок адресов метки времени и показаний

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

Re: Передача архива (блока данных) в контроллер

Post by PoltoS » 15 Feb 2018 02:08

Не очень понял задачу. Хотите с Z-Uno передать на контроллер много данных? Ну, есть у нас даже zunoSendDbgData (https://github.com/Z-Wave-Me/Z-Uno-Core ... uino.h#L29). Это не документировано, но сразу блок небольшой послать можно. Если больше, чем в 1 пакет влезет, то надо придумывать.

sas8
Posts: 7
Joined: 16 Jan 2018 22:19

Re: Передача архива (блока данных) в контроллер

Post by sas8 » 16 Feb 2018 21:27

Да, нужно будет придумать. Данных будет больше чем описанная максимальная полезная посылка в протоколе
По поводу zunoSendDbgData(group, data, data_size) - можете подсказать группа на что-нибудь влияет?

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

Re: Передача архива (блока данных) в контроллер

Post by PoltoS » 17 Feb 2018 17:44

да. выбирает группу ассоциаций Z-Uno, в которую отправлять

sas8
Posts: 7
Joined: 16 Jan 2018 22:19

Re: Передача архива (блока данных) в контроллер

Post by sas8 » 18 Feb 2018 00:38

я использую open zwave control panel для отладки. может знаете, если явно группа ассоциаций не создавалась, но при выборе в меню ozwcp пункта groups он показывает список из групп lifeline(1), control group(2). Должна ли дойти посылка zunoSendDbgData в группу 1?

так же пытаюсь послать
DWORD buf[10];
...
buf[0] = 0xf0f0f0f0;
zunoSendDbgData(1, buf, 4);
ничего не виду в логе ozwcp. Есть ли пример использования zunoSendDbgData или я правильно шлю но у меня проблема с группой?

так же пытаюсь послать через класс METER с указанием 4-байтные данные
в ozwcp показывает значение явно 16-бит. какбуд-то срезается 32 до 16 бит. Как убедится что передается 32 бита?

sas8
Posts: 7
Joined: 16 Jan 2018 22:19

Re: Передача архива (блока данных) в контроллер

Post by sas8 » 18 Feb 2018 17:53

пока выяснилось что если заменить DWORD на long в типе переменной и возвращаемом типе из getter-а то шлет знаковое 32-бита. unsigned long не помогает увидеть в ozwcp беззнаковое.

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

Re: Передача архива (блока данных) в контроллер

Post by PoltoS » 13 Mar 2018 10:39

Знаковость - это интерпретация на стороне получателя. В Z-Wave принято знаковыми воспринимать числа в большинстве случаев. Хотя есть исключения

Post Reply