cosmo scripting

Cosmo supports scripting from both a file and a network connection.

cosmoscript files

There are two types of scripting files, depending on file extension (.scr or .script). A ".scr" script is a Tcl/Tk script and can contain local variables, loops, and new graphical windows. The ".script" is a more limited script which executes sequentially.

cosmoscript server

The cosmoscript server can be enabled from the cosmo menus. Cosmo can listen over a newwork socket for .script commands. The other end of the socket can be on the same machine or on a different machine and operating system using a differnt programming language.

example .scr cosmo script

set vmeslot 6
set mfec 1
set idelay 50

proc testvmefec { command } {
	global vmeslot

	toplevel .testpfec -class Dialog
	wm title .testpfec "TEST FEC with COSMOSCRIPT"
	label .testpfec.label -text "FEC tester cosmo
	   script" -fg "blue"
	  -padx 10 -font { Helvetica 18 {bold}}
	pack .testpfec.label

	button .testpfec.b1 -text "mfec1" -command {
		vmefecsetaddresses $vmeslot 1 
        }
	button .testpfec.b2 -text "mfec2" -command {
		vmefecsetaddresses $vmeslot 2 
        }
	button .testpfec.b3 -text "mfec3" -command {
		vmefecsetaddresses $vmeslot 3 
        }
	button .testpfec.b4 -text "mfec4" -command {
		vmefecsetaddresses $vmeslot 4 
	}
	button .testpfec.b5 -text "mfec5" -command {
		vmefecsetaddresses $vmeslot 5 
        }
	button .testpfec.b6 -text "mfec6" -command {
		vmefecsetaddresses $vmeslot 6 
        }
	button .testpfec.b7 -text "mfec7" -command {
		vmefecsetaddresses $vmeslot 7 
        }
	button .testpfec.b8 -text "mfec8" -command {
		vmefecsetaddresses $vmeslot 8 
        }
	button .testpfec.b9 -text "EXIT" -command {
		exit
        }

	pack .testpfec.b1
	pack .testpfec.b2
	pack .testpfec.b3
	pack .testpfec.b4
	pack .testpfec.b5
	pack .testpfec.b6
	pack .testpfec.b7
	pack .testpfec.b8
	pack .testpfec.b9

	set width [winfo screenwidth .]
        set height [winfo screenheight .]
        set x [expr ($width/2) - 200]
        set y [expr ($height/2) - 200]
    
    wm geometry .testpfec  +$x+$y
    wm resizable .testpfec 0 0
    
    update

	
}

testvmefec 1


example .script cosmo script

config "outformat paw24"
pixel_chipload 2
adc_sample 10
pixel_chipload 3
adc_sample 10
pixel_chipload 1
adc_sample 50
pixel_chipload 4
adc_sample 20
dacset_byname VCal 1
adc_sample 10
dacset_byname VCal 2
adc_sample 10
dacset_byname VCal 3
adc_sample 10
dacset_byname VCal 4
adc_sample 10
dacset_byname VCal 5
adc_sample 10
pixel_chipload 1
setdcol 1 ON
pixel_chipload 2
setdcol 2 ON
pixel_chipload 3
setdcol 4 ON
pixel_chipload 4
setdcol 8 ON