dimanche 10 octobre 2010

Imagine a new ... HMI

It's just a proof of concept with groovy capabilities for Tango Controls.

Groovy is a dynamic language over a Java Virtual Machine.
So it works every where, where java runs.
The language is a mix between python, ruby and java.

In the example below, I use the same capacity of python to create property and method dynamically 

// Download and use gotan
  @Grab(group='org.tango', module='gotan', version='0.0.1-SNAPSHOT')

  // Create a new Tango Server with gotan
  def server = new DeviceServer()
  server.integer = 20
  server.random = { Math.random() }
  server.randomize() { max -> Math.random(max) }

  server.start("test/test/test")

In the client part, I use also the dynamic behaviour of groovy to access directly the attribute or command.
 
// And create a client with gotan 
  def client = new DeviceServerProxy("test/test/test")
  println client.integer
  println client.random
  println client.randomize(100) 

The code speaks by itself, isn't it ;-)

 It's just a resume of the capacities of groovy.

PS : The Grab command is great solution to reduce deployment.
It downloads modules from an apache maven repository and loads it.
And do you know that a tango java repository exists !!!