QtScript

From LabRPS Documentation
Jump to navigation Jump to search

LabRPS supports ECMAScript like dynamic scripting language, as defined in standard ECMA-262. Microsoft's JScript, and Netscape's JavaScript are also based on the ECMAScript standard. For an overview of ECMAScript, see the ECMAScript reference. If you are not familiar with the ECMAScript language, there are several existing tutorials and books that cover this subject, such as JavaScript: The Definitive Guide.

Console Functions (not part of ECMAScript)

attachDebugger(bool)

The debugger enables the application user to inspect the state of the script environment and control script execution. you can enable debugging mode at any point by issuing attachDebugger(true) and return to the normal running mode by issuing attachDebugger(false).

clear()

Clears the complete contents of the scripting console and leave only a user prompt.

collectGarbage()

The garbage collector will attempt to reclaim memory by locating and disposing of objects that are no longer reachable in the script environment. Normally you don't need to call this function; the garbage collector will automatically be invoked when the LabRPS decides that it's wise to do so. It is recommended to run this manually when you are done with large data objects.

print(argument1, argument2, ...)

prints the arguments to the console as formatted in the function. Note: if the console is in debugger mode all the print function output will be redirected to debugger console

Using with Table and Matrix

Scripting capability is mainly intended for Table/Matrix data manipulation. You can access the main LabRPS Application window as rps object inside QtScript.


   // Get pointer to Table with name "Table1" and stores it to the object variable tab
   tab = rps.getTableHandle("Table1")
          
   // get tab row count
   tab.rowCount()
          
   // get tab column count
   tab.colCount()  
          
   // set tab row count to 50
   tab.setRowCount(50)
          
   // set tab column count to 5
   tab.setColCount(5)
          
   // get tab value at row 1, column 1 position inside the table to variable val and print the value
   val = tab.getCell(1, 1)
   print(val)
          
   // set tab value at row 1, column 1 position inside the table to 0.897
   tab.setCell(1, 1, 0.897)
   //Apply a muparser function "col(1)^2" to generate 2nd column values of table tab
   tab.applyFunction(2, "col(1)^2")
   // Get pointer to Matix with name "Matrix1" and stores it to the object variable mat
   mat = rps.getMatrixHandle("Matrix1")