Skip to content

zoland/VIRTUINO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

VIRTUINO

Visualisation HMI Virtuino ( http://virtuino.com/ ) API using Asyncio & MicroPython Virtuino_CM protocol

V = VIRTUINO( key = None, cb = None, refresh = 1000, host = '0.0.0.0', port='8000', timeout=20)

key - ключ, при несовпадении полученного и заданного возвращается пустая строка 

cb( owner, pin, value, ask ) - функция, исполняемая после получения сообщения от owner - Клиента V-Пина pin со значением value в текстовом представлении перед его передачей обратно Клиенту

ask - логическое значение, означающее наличие запроса от Клиента (телефона, планшета)

refresh - период обновления (1 сек по умолчанию)

host,port,timeout - параметру asyncio TCP-сервера

Помимио использования функции cb(), можно непосредственно получать значения и состояния V-пинов

v = V(pin) - считать значение в текстовом формате v = V(pin,value) - записать значение в Vpin if V.changed(pin): - проверить состояние, после создания/записи/обновления True, после считывания значения False

Дополнительно

V.store('filename') - сохранить реестр V-пинов в filename.dat на FLASH V.restore('filename') - восстановить реестр V-пинов из filename.dat на FLASH

Запуск

print('СТАРТ...')
try:
    asyncio.run(V.run())
except KeyboardInterrupt:
    print('Interrupted')  # This mechanism doesn't work on Unix build.
finally:
    asyncio.run(V.close())
    _ = asyncio.new_event_loop()

Обнаружены периодические проблемы при передаче даных от Клиента, можно увидеть, задав _verbose = True

  • в начале передачи (КЛЮЧ) - решение : просто удалять первый элемент
  • при окончании (появляется избыточные символы) - решение : предусмотрел

About

Visualisation HMI Virtuino ( http://virtuino.com/ ) API using Asyncio & MicroPython Virtuino_CM protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages