|
Здравствуйте. 6 месяцев 21 день назад Николай Ганевич 12Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Здравствуйте. Если "ИНОГДА" получается всё правильно, так как ожидалось, значит, где-то в коде, которым вы обрабатываете полученные результаты скорее всего что-то не так. Циклы проверьте. 6 месяцев 21 день назад Трунова Людмила Геннадьевна 85Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
как и что проверить? если в ответе TEvent.DevAddress пришло значение по которому не возможно определить TDevice на котором произошло событие. Устойства получаю методом GetDevices. ищу устройство на котором произошло событие по условию TEvent.DevAddress = TDevice.Address. 6 месяцев 20 дней назад Николай Ганевич 12Сопоставлять устройства надо не по адресу, а по его Id.
Оффтоп: ранее у нас было разработано ПО для интеграции с Орионом, которое также опералось на адреса, но с выходом Ориона с поддержкой Сириуса вся идеология адреса пошла по бороде. – Налетов Константин 6 месяцев 20 дней назад это не так. сделал выдачу всех Tdevice id в диапазоне с 1-35. TEvent,DevAddress=229 может прийти
– Николай Ганевич 6 месяцев 20 дней назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
В документации на модуль интеграции на стр.7 расписаны свойства TEvent. Не подскажите как из них выйти на Id TDevice? 6 месяцев 20 дней назад Николай Ганевич 12Не проверено, но алгоритм примерно такой: смотрим TEvent.ItemType, если он DEVICE, то выбираем устройство по условию TEvent.ItemId = TDevice.Id.
– Налетов Константин 6 месяцев 20 дней назад может получится, но пока событий TEvent.ItemType = DEVICE не приходило. Через ItemType и ItemId выйти на элементы TDeviceItem а от них на TDevice.
Но как то сложновато получается. – Николай Ганевич 6 месяцев 20 дней назад В принципе ничего сложного и даже логически правильно, но соглашусь с тем, что такой подход не рационален в плане расходования памяти. Для работы придётся хранить в памяти все элементы, вместо того чтобы динамически подгружать нужное. Например, не понятно почему в модуле нет метода аля GetDeviceItemById(id) и GetDeviceById(id)?
– Налетов Константин 6 месяцев 18 дней назад Реализацию нужных методов можно попросить у разработчиков. Они очень быстро отзываются.
Вот поэтому чтение я произвожу запросами SQL напрямую из базы. – Трунова Людмила Геннадьевна 6 месяцев 18 дней назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
С определением устройства по событию в целом разобрался, По TEvent.ItemType и TEvent.ItemId можно выйти на TDevice если ItemType соответсвующий. 6 месяцев 17 дней назад Николай Ганевич 12Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
746 раз
6 месяцев 21 день назад
По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.
добавить комментарий