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/python3importtimefromqsys.classesimportCore,Control,ChangeGroup#returns epoch timefromqsys.helpersimportepochdefmain():
#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 1710myCore=Core(Name='myCore',User='',Password='',ip='192.168.61.2')
#Open the socket,creates "listen" and "keepalive" threadsmyCore.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 ChangeGroupmyChangeGroup=ChangeGroup(parent=myCore,Id='myChangeGroup')
myChangeGroup.AddControl(gainControlObject)
#Allow the socket time to connect and parse the initial responsestime.sleep(2)
#Set the change group auto poll rate#This rate is fast, your mileage may varymyChangeGroup.AutoPoll(Rate=0.1)
#Value = value to set object to#TransId = QRC id parameter for transaction IDgainControlObject.set(Value=10,TransId=epoch())
whileTrue:
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
The Tidelift Subscription provides access to a continuously curated stream of human-researched and maintainer-verified data on open source packages and their licenses, releases, vulnerabilities, and development practices.