Skip to main content

Python QSYS QRC Wrapper

Project description

Python QSYS QRC Wrapper

  • Control QSC QSYS Core devices with python

ToDo

  • Flaskify...
  • Document, document, document

Use

  • For each QSC Core on the network instantiate a "Core" class
  • When adding control objects they will "cast" themselves to the parent core class
    • The parent Core class instance is required as keyword arg "parent" when creating control objects
#!/usr/bin/python3
import time
from qsys.classes import Core,Control,ChangeGroup

#returns epoch time
from qsys.helpers import epoch

def main():
    #See qsys.py for parameters in Core class
    #The initiail EngineStatus response parameters from the device will get added to Core.__dict__
    #You can pass "port" as well, but it defaults to 1710
    myCore = Core(Name='myCore',User='',Password='',ip='192.168.61.2')

    #Open the socket,creates "listen" and "keepalive" threads
    myCore.start()

    #ValueType can be a list of potential value types [int,float] or a single type "str" etc
    #This object is assumed to be a "gain" control object, so we can pass [int,float]
    gainControlObject = Control(parent=myCore,Name='namedControlInQsysDesigner',ValueType=[int,float])

    #To constantly monitor the state of your object use a ChangeGroup
    #You need to a ChangeGroup instance to add control objects and set polling rates
    #Parameters that are capitalize are that way because of the QRC parameter protocol
    #Id in this case is just the name of the ChangeGroup
    myChangeGroup = ChangeGroup(parent=myCore,Id='myChangeGroup')
    myChangeGroup.AddControl(gainControlObject)

    #Allow the socket time to connect and parse the initial responses
    time.sleep(2)

    #Set the change group auto poll rate
    #This rate is fast, your mileage may vary
    myChangeGroup.AutoPoll(Rate=0.1)

    #Value = value to set object to
    #TransId = QRC id parameter for transaction ID
    gainControlObject.set(Value=10,TransId=epoch())

    while True:
        print(gainControlObject.state)
        time.sleep(1)

if __name__ == '__main__':
    main()

Notes

  • In development, versions will change rapidly. This version doesn't do much yet.. stand by

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qsys-0.0.3.tar.gz (2.5 kB view details)

Uploaded Source

Built Distribution

qsys-0.0.3-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file qsys-0.0.3.tar.gz.

File metadata

  • Download URL: qsys-0.0.3.tar.gz
  • Upload date:
  • Size: 2.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for qsys-0.0.3.tar.gz
Algorithm Hash digest
SHA256 fd92edf630959b1f65eb138b9c64c7256b35a909e9181eda0f12c7a142e0eafb
MD5 db98916dcd6c9fb3f78b0be595dcd486
BLAKE2b-256 b561bebc8946eaea7355b7a95af88175c7a92a19d735f7f732c43ed88316f8e3

See more details on using hashes here.

File details

Details for the file qsys-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: qsys-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for qsys-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1857e6c490e8cc50471e17466b7028dd81100d08175628dbab8ea2346f3dc7ac
MD5 fadfa2cce11de4efbe208dac20c61f4f
BLAKE2b-256 8c3fdf6249e9cbfa235256caa7323b5642e9638c21bf355668691352f25e0aaf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page