Matt,
I replaced that line and still get an error:
2019-11-27 16:03:14,671 startup.ScriptButtonModel???????????? ERROR - Unable to run script /home/allen/JMRI_417/jython/USBThrottleAsJynstrument.py. [AWT-EventQueue-0]
javax.script.ScriptException: AttributeError: instance attr: class in <script> at line number 15
??? at org.python.jsr223.PyScriptEngine.scriptException(PyScriptEngine.java:222)
??? at org.python.jsr223.PyScriptEngine.eval(PyScriptEngine.java:59)
??? at org.python.jsr223.PyScriptEngine.eval(PyScriptEngine.java:64)
??? at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
??? at jmri.script.JmriScriptEngineManager.eval(JmriScriptEngineManager.java:394)
??? at jmri.script.JmriScriptEngineManager.eval(JmriScriptEngineManager.java:331)
??? at apps.startup.ScriptButtonModel$ScriptButtonAction.actionPerformed(ScriptButtonModel.java:63)
??? at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
??? at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
??? at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
??? at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
??? at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
??? at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
??? at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
??? at java.desktop/java.awt.Component.processEvent(Component.java:6397)
??? at java.desktop/java.awt.Container.processEvent(Container.java:2263)
??? at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
??? at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
??? at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
??? at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
??? at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
??? at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
??? at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
??? at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
??? at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
??? at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
??? at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
??? at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
??? at java.base/java.security.AccessController.doPrivileged(Native Method)
??? at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
??? at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
??? at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
??? at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
??? at java.base/java.security.AccessController.doPrivileged(Native Method)
??? at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
??? at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
??? at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
??? at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
??? at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
??? at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
??? at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
??? at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: Traceback (most recent call last):
? File "<script>", line 15, in <module>
AttributeError: instance attr: class
??? at org.python.core.Py.AttributeError(Py.java:207)
??? at org.python.core.PyBeanProperty._doget(PyBeanProperty.java:24)
??? at org.python.core.PyObject._doget(PyObject.java:1173)
??? at org.python.core.PyObject.__get__(PyObject.java:3816)
??? at org.python.core.PyType.type___findattr_ex__(PyType.java:1620)
??? at org.python.core.PyType.__findattr_ex__(PyType.java:1599)
??? at org.python.core.PyObject.__getattr__(PyObject.java:1025)
??? at org.python.pycode._pyx14.f$0(<script>:12)
??? at org.python.pycode._pyx14.call_function(<script>)
??? at org.python.core.PyTableCode.call(PyTableCode.java:171)
??? at org.python.core.PyCode.call(PyCode.java:18)
??? at org.python.core.Py.runCode(Py.java:1614)
??? at org.python.core.__builtin__.eval(__builtin__.java:497)
??? at org.python.core.__builtin__.eval(__builtin__.java:501)
??? at org.python.util.PythonInterpreter.eval(PythonInterpreter.java:259)
??? at org.python.jsr223.PyScriptEngine.eval(PyScriptEngine.java:57)
??? ... 40 more
Script looks like:
numThrottles? = 0
for ctrl in jmri.jmrix.jinput.TreeModel.instance().controllers():
??? # The selection bellow might have to be modified
??? if ((ctrl.getType() == Controller.Type.GAMEPAD) or (ctrl.getType() == Controller.Type.STICK)) :
??????? tw = jmri.InstanceManager.getDefault(jmri.jmrit.throttle.ThrottleFrameManager.class).createThrottleWindow()
??????? tw.ynstrument("jython/Jynstruments/ThrottleWindowToolBar/USBThrottle.jyn")
??????? tw.setLocation(400 * numThrottles, 50 * numThrottles)
??????? numThrottles+=1
??????? tw.setVisible(True)
Regards,
Allen