Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Очередной MQTT-клиент для android в виде приборной панели списком

Тема в разделе "Прочее", создана пользователем ravend, 13 май 2016.

Метки:
  1. heX

    heX Новичок

    Сообщения:
    6
    Симпатии:
    0
    Прикрепил файл ресурсов, нужно заменить весь текст:
    с
    <string name="port">Port</string>
    на
    <string name="port">Порт</string>
    и все.
    (текста оказалось на удивление мало)
     

    Вложения:

    • strings.7z
      Размер файла:
      960 байт
      Просмотров:
      8
  2. heX

    heX Новичок

    Сообщения:
    6
    Симпатии:
    0
    Не знаю.
    Я устранил пару ошибок которые мешали мне.
    Возможно постараюсь добавить незначительный но требуемый лично мне функционал. Но на этом все (меня связывает и отсутствие лицензии у исходника, и отсутствие свободного времени).
     
  3. dao89

    dao89 Читатель

    Сообщения:
    85
    Симпатии:
    5
    ravend, я вижу после большой паузы, периодически выходят новые версии программы. Но, к сожалению, из версии в версию кочует неприятный баг. Постараюсь по-короче объяснить его суть.
    Есть виджет Switch, у которого, к примеру, sub.topic равен status/hellFire, а pub.topic равен set/hellFire, on value равен 'on', off value равен 'off'.
    Запускаем программу, к ней, к примеру, прилетает из status/hellFire значение 'off'. Я жму на переключатель, программа посылает в set/hellFire значение 'on' (виджет визуально переключается во включенное состояние), но контроллеру запрещено в данный момент разжигать адское пламя :) и он мгновенно отсылает в status/hellFire значение 'off'. Но вот незадача, виджет визуально так и остается положении 'on', хотя программе явно пришло в ответ от контроллера значение 'off'. Если переключиться между вкладками туда-сюда, то виджет отобразит правильно состояние ('off').
    Также было бы здорово, если бы у всех виджетов, была возможность управлять retain флагом (в случае если настройки хранятся не на брокере, а в самих исполнительных устройствах (контроллерах), то навязанный в некоторых виджетах флаг retain доставляет проблемы).
     
  4. heX

    heX Новичок

    Сообщения:
    6
    Симпатии:
    0
    Такая-же проблема.

    В mosquito я столкнулся с совершенно идиотским глюком (это вроде фича, но я считаю что поведение по умолчанию должно быть другим):
    1. мы публикуем retain переменную.
    2. потом публикуем эту переменную с новым значением но без retain флага.
    3. отключаемся от сервера.
    4. подключаемся...
    5. и он выдает _старое_ значение которое осталось от retain посылки! Хотя уже были публикации с новым значением (но без retain флага).
    6. и теперь при подключении новых клиентов mosquito всем будет _сразу_ выдавать _старое_ значение (возможно очень старое - mosquito сохраняет retain в БД и они не исчезают даже после перезагрузки).
     
  5. dao89

    dao89 Читатель

    Сообщения:
    85
    Симпатии:
    5
    Это отключается в конфиге брокера.
    Это тоже, в принципе, решаемо. Если послать пустое сообщение с retain флагом в топик, то сохраненное на брокере сообщение удалится.

    P.S. Так вот и получается, что автор подумал что он лучше всех знает нужен ли retain-флаг в виджетах, а пользователям программы приходится изголяться, чтобы как-то обойти трудности, которые у них возникают из-за такого решения. А ведь добавить опцию во все виджеты - несложно...
     
  6. heX

    heX Новичок

    Сообщения:
    6
    Симпатии:
    0
    Да, это отключается (но иногда полезно чтобы даже перезагрузка не сбрасывала состояния).
    А вот как включить обновление/удаление retain записи при получении non-retain пакета?

    Но кто его будет посылать?
    (сейчас чищу руками: mosquitto_sub -h $1 -t "#" -v | while read line _; do mosquitto_pub -h $1 -t "$line" -r -n; done)

    P.S. Так и придется писать Python скрипт который будет чистить retain сразу после их прибытия.
     
    Последнее редактирование: 25 фев 2018
  7. dao89

    dao89 Читатель

    Сообщения:
    85
    Симпатии:
    5
    heX, посылать его может, к примеру, то устройство, которое "слушает" этот топик. Если конечно есть возможность его перепрограммировать...
    P.S. Я кстати как раз на питоне и тестировал механизм удаления retain-сообщений с брокера. Что-то в духе
    client.publish('топик_в_котором_хотим_удалить', '', qos=0, retain=True)
    должно работать.
    P.P.S. Но это всё, в любом случае, костыли. Остается надеяться, что автор услышит просьбу и когда-нибудь таки исправит описанный выше баг и добавит возможность выбора retain во всех виджетах...
     
  8. flash_br

    flash_br Новичок

    Сообщения:
    2
    Симпатии:
    0
    Автор, дружище!!!!!
    Ты просто мужик!!!!!!! Сделать такое гибкое и классное приложение на безвозмездных началах это просто супер!!!!!!!!!!
    У меня есть просьба, я думаю с ней согласятся многие, постараюсь объяснить:
    1. не хватает постфиксов (ну или как их там) при добавлении "value", грубо говоря, если мы выводим число, пусть это будет температура, то хотелось бы добавить "*С", если проценты, то "%" ну и т.д.
    2. звуковое оповещение, добавить условие в "value", например val(полученное значение) <лог. оператор> "с чем сравниваем" если true, то воспроизвести стандартный звук оповещения .... к примеру если температура больше какого-то значения, то сделать "бздынь"

    Да, есть исходники и имея некоторое время для того, чтобы разобраться в них, можно это сделать и самому, тем более, что исходники я смотрел и в принципе там всё понятно, за что ещё один респект, не многие пишут понятный код, НО хотелось бы всё же видеть это в первоисточнике)))))

    сорри за такую шпалеру, то этого оооочень не хватает))))))))))))))
     
  9. RotaryF

    RotaryF Новичок

    Сообщения:
    12
    Симпатии:
    0
    Может я пропустил, но
    размер виджетов как регулируется?
    Например, текстовая строка 40 символов в Value обрезается :(
     

Поделиться этой страницей