Skip to content
Snippets Groups Projects
Commit 494a25b9 authored by Florent LANGLOIS's avatar Florent LANGLOIS
Browse files

Merge branch 'legacy-versions' into 'main'

Legacy versions

See merge request !1
parents e54aba50 05025bff
No related branches found
No related tags found
1 merge request!1Legacy versions
Showing
with 2070 additions and 13 deletions
# You can override the included template(s) by including variable overrides
# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/#customization
# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings
# Container Scanning customization: https://docs.gitlab.com/ee/user/application_security/container_scanning/#customizing-the-container-scanning-settings
# Note that environment variables can be set in several places
# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence
stages:
- test
sast:
stage: test
include:
- template: Security/SAST.gitlab-ci.yml
GEpressCtrlPACE5000/GEpressCtrlPACE5000.py
\ No newline at end of file
#!/bin/bash
source /etc/bashrc
python ./GEpressCtrlPACE5000.py "$@"
\ No newline at end of file
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# ############################################################################
# license :
# ============================================================================
#
# File : GEpressCtrlPACE5000.py
#
# Project : GE Pressure Controller PACE-5000
#
# This file is part of Tango device class.
#
# Tango is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Tango is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Tango. If not, see <http://www.gnu.org/licenses/>.
#
#
# $Author : tnunez$
#
# $Revision : $
#
# $Date : $
#
# $HeadUrl : $
# ============================================================================
# This file is generated by POGO
# (Program Obviously used to Generate tango Object)
# ############################################################################
__all__ = ["GEpressCtrlPACE5000", "GEpressCtrlPACE5000Class", "main"]
__docformat__ = 'restructuredtext'
import PyTango
import sys
# Add additional import
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.additionnal_import) ENABLED START -----#
import os
from GEpressCtrlPACE5000Channel import GEpressCtrlPACE5000Channel, GEpressCtrlPACE5000ChannelClass
import socket
import six
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.additionnal_import
# Device States Description
# ON :
# ALARM : Hardware test has failed
# FAULT :
class GEpressCtrlPACE5000 (PyTango.Device_4Impl):
"""Server for the controll of the Pressuer Automated Calibration Equipment 5000 from GE"""
# -------- Add you global variables here --------------------------
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.global_variables) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.global_variables
def __init__(self, cl, name):
PyTango.Device_4Impl.__init__(self,cl,name)
self.debug_stream("In __init__()")
GEpressCtrlPACE5000.init_device(self)
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.__init__) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.__init__
def delete_device(self):
self.debug_stream("In delete_device()")
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.delete_device) ENABLED START -----#
self.socket.close()
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.delete_device
def init_device(self):
self.debug_stream("In init_device()")
self.get_device_properties(self.get_device_class())
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.init_device) ENABLED START -----#
self.set_state(PyTango.DevState.ON)
try:
self.socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.socket.connect((self.IPAdress, self.PortNb))
except:
self.set_state(PyTango.DevState.FAULT)
self.set_status("Failed socket connection.\n IpAdress " + self.IPAdress + ", port " + str(self.PortNb) )
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.init_device
def always_executed_hook(self):
self.debug_stream("In always_excuted_hook()")
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.always_executed_hook) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.always_executed_hook
# -------------------------------------------------------------------------
# GEpressCtrlPACE5000 read/write attribute methods
# -------------------------------------------------------------------------
def read_attr_hardware(self, data):
self.debug_stream("In read_attr_hardware()")
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.read_attr_hardware) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.read_attr_hardware
# -------------------------------------------------------------------------
# GEpressCtrlPACE5000 command methods
# -------------------------------------------------------------------------
def Stop(self):
""" Stops operation of the pump. The most important action ? stop the PressureControl ? power control ? go to the measurement mode
"""
self.debug_stream("In Stop()")
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.Stop) ENABLED START -----#
self.WriteSocket("OUTP:STAT 0")
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.Stop
def is_Stop_allowed(self):
self.debug_stream("In is_Stop_allowed()")
state_ok = not(self.get_state() in [PyTango.DevState.ALARM])
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.is_Stop_allowed) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.is_Stop_allowed
return state_ok
def GetIDN(self):
""" Returns the identification string from the device as a string
:rtype: PyTango.DevString
"""
self.debug_stream("In GetIDN()")
argout = ""
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.GetIDN) ENABLED START -----#
cmd = six.b("*IDN?\n")
self.socket.send(cmd)
argout = self.socket.recv(100)
argout = argout.decode("utf-8")
argout = argout.replace("*IDN ", "")
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.GetIDN
return argout
def is_GetIDN_allowed(self):
self.debug_stream("In is_GetIDN_allowed()")
state_ok = not(self.get_state() in [PyTango.DevState.ALARM])
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.is_GetIDN_allowed) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.is_GetIDN_allowed
return state_ok
def GetMAC(self):
""" Returns the MAC address from the device as a string
:rtype: PyTango.DevString
"""
self.debug_stream("In GetMAC()")
argout = ""
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.GetMAC) ENABLED START -----#
cmd = six.b("INST:MAC?\n")
self.socket.send(cmd)
argout = self.socket.recv(100)
argout = argout.decode("utf-8")
argout = argout.replace(":INST:MAC ", "")
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.GetMAC
return argout
def is_GetMAC_allowed(self):
self.debug_stream("In is_GetMAC_allowed()")
state_ok = not(self.get_state() in [PyTango.DevState.ALARM])
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.is_GetMAC_allowed) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.is_GetMAC_allowed
return state_ok
def GetErrorState(self):
""" Returns the error message from the instrument
:rtype: PyTango.DevString
"""
self.debug_stream("In GetErrorState()")
argout = ""
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.GetErrorState) ENABLED START -----#
cmd = six.b("SYST:ERR?\n")
self.socket.send(cmd)
return_str = self.socket.recv(100)
return_str = return_str.decode("utf-8")
return_str = return_str.replace(":SYST:ERR ", "")
value = int(return_str.split(",")[0])
if value == 0:
argout = "No error"
else:
argout = "Error code " + return_str
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.GetErrorState
return argout
def is_GetErrorState_allowed(self):
self.debug_stream("In is_GetErrorState_allowed()")
state_ok = not(self.get_state() in [PyTango.DevState.ALARM])
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.is_GetErrorState_allowed) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.is_GetErrorState_allowed
return state_ok
def ClearErrorState(self):
""" Clears the error state for the instrument. This is done by getting the GetErrorState ? 5x times to clear the inner error message buffer
"""
self.debug_stream("In ClearErrorState()")
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.ClearErrorState) ENABLED START -----#
self.WriteReadSocket(":SYST:ERR?")
self.WriteReadSocket(":SYST:ERR?")
self.WriteReadSocket(":SYST:ERR?")
self.WriteReadSocket(":SYST:ERR?")
self.WriteReadSocket(":SYST:ERR?")
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.ClearErrorState
def is_ClearErrorState_allowed(self):
self.debug_stream("In is_ClearErrorState_allowed()")
state_ok = not(self.get_state() in [PyTango.DevState.ALARM])
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.is_ClearErrorState_allowed) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.is_ClearErrorState_allowed
return state_ok
def MakeHWTest(self):
""" Performs a hardware test for the instrument.
If the result is positive ? device goes to the ON state, else, the device goes to the ALARM state and disallow any SCPI command to go through.
:return: 1-> OK, 0-> Fail
:rtype: PyTango.DevLong
"""
self.debug_stream("In MakeHWTest()")
argout = 0
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.MakeHWTest) ENABLED START -----#
value = int(self.WriteReadSocket("*TST?"))
save_state = self.get_state()
if value == 0:
self.set_state(PyTango.DevState.ALARM)
self.set_status("Hardware test failed")
argout = 0
else:
argout = 1
if save_state == PyTango.DevState.ALARM:
self.set_state(PyTango.DevState.ON)
self.set_status("Device in ON state")
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.MakeHWTest
return argout
def WriteSocket(self, argin):
""" Write command to socket
:param argin:
:type argin: PyTango.DevString
"""
self.debug_stream("In WriteSocket()")
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.WriteSocket) ENABLED START -----#
cmd = six.b(argin + '\n')
self.socket.send(cmd)
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.WriteSocket
def WriteReadSocket(self, argin):
""" Send command and returnd the answer
:param argin: Command to send
:type argin: PyTango.DevString
:return: Answer from socket
:rtype: PyTango.DevString
"""
self.debug_stream("In WriteReadSocket()")
argout = ""
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.WriteReadSocket) ENABLED START -----#
cmd = six.b(argin + '\n')
self.socket.send(cmd)
argout = self.socket.recv(100)
argout = argout.decode("utf-8")
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.WriteReadSocket
return argout
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.programmer_methods) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.programmer_methods
class GEpressCtrlPACE5000Class(PyTango.DeviceClass):
# -------- Add you global class variables here --------------------------
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.global_class_variables) ENABLED START -----#
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.global_class_variables
# Class Properties
class_property_list = {
}
# Device Properties
device_property_list = {
'IPAdress':
[PyTango.DevString,
"IP Adress",
[] ],
'PortNb':
[PyTango.DevLong,
"Port Number",
[5025]],
}
# Command definitions
cmd_list = {
'Stop':
[[PyTango.DevVoid, "none"],
[PyTango.DevVoid, "none"]],
'GetIDN':
[[PyTango.DevVoid, "none"],
[PyTango.DevString, "none"]],
'GetMAC':
[[PyTango.DevVoid, "none"],
[PyTango.DevString, "none"]],
'GetErrorState':
[[PyTango.DevVoid, "none"],
[PyTango.DevString, "none"]],
'ClearErrorState':
[[PyTango.DevVoid, "none"],
[PyTango.DevVoid, "none"]],
'MakeHWTest':
[[PyTango.DevVoid, "none"],
[PyTango.DevLong, "1-> OK, 0-> Fail"]],
'WriteSocket':
[[PyTango.DevString, "none"],
[PyTango.DevVoid, "none"]],
'WriteReadSocket':
[[PyTango.DevString, "Command to send"],
[PyTango.DevString, "Answer from socket"]],
}
# Attribute definitions
attr_list = {
}
def main():
try:
py = PyTango.Util(sys.argv)
py.add_class(GEpressCtrlPACE5000Class, GEpressCtrlPACE5000, 'GEpressCtrlPACE5000')
#----- PROTECTED REGION ID(GEpressCtrlPACE5000.add_classes) ENABLED START -----#
py.add_class(GEpressCtrlPACE5000ChannelClass, GEpressCtrlPACE5000Channel, 'GEpressCtrlPACE5000Channel')
#----- PROTECTED REGION END -----# // GEpressCtrlPACE5000.add_classes
U = PyTango.Util.instance()
U.server_init()
U.server_run()
except PyTango.DevFailed as e:
print ('-------> Received a DevFailed exception:', e)
except Exception as e:
print ('-------> An unforeseen exception occured....', e)
if __name__ == '__main__':
main()
<?xml version="1.0" encoding="ASCII"?>
<pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://tango.org/pogo/PogoDsl">
<classes name="GEpressCtrlPACE5000" pogoRevision="9.4">
<description description="Server for the controll of the Pressuer Automated Calibration Equipment 5000 from GE" title="GE Pressure Controller PACE-5000" sourcePath="/home/tnunez/Tango_svn/DeviceClasses/MeasureInstruments/GEpressCtrlPACE5000/trunk" language="Python" filestogenerate="XMI file,Code files,Protected Regions,html Pages" license="GPL" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false" descriptionHtmlExists="false">
<inheritances classname="Device_Impl" sourcePath=""/>
<identification contact="at mail.desy.de - tnunez" author="tnunez" emailDomain="mail.desy.de" classFamily="MeasureInstruments" siteSpecific="" platform="Unix Like" bus="Socket" manufacturer="GE" reference="PACE-5000"/>
</description>
<deviceProperties name="IPAdress" description="IP Adress">
<type xsi:type="pogoDsl:StringType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</deviceProperties>
<deviceProperties name="PortNb" description="Port Number">
<type xsi:type="pogoDsl:IntType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>5025</DefaultPropValue>
</deviceProperties>
<commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0">
<argin description="none">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="Device state">
<type xsi:type="pogoDsl:StateType"/>
</argout>
<status abstract="true" inherited="true" concrete="true"/>
</commands>
<commands name="Status" description="This command gets the device status (stored in its device_status data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR" polledPeriod="0">
<argin description="none">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="Device status">
<type xsi:type="pogoDsl:ConstStringType"/>
</argout>
<status abstract="true" inherited="true" concrete="true"/>
</commands>
<commands name="Stop" description="Stops operation of the pump. The most important action &#x2013; stop the PressureControl &#x2013; power control &#x2013; go to the measurement mode" execMethod="stop" displayLevel="OPERATOR" polledPeriod="0">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<excludedStates>ALARM</excludedStates>
</commands>
<commands name="GetIDN" description="Returns the identification string from the device as a string" execMethod="get_idn" displayLevel="OPERATOR" polledPeriod="0">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:StringType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<excludedStates>ALARM</excludedStates>
</commands>
<commands name="GetMAC" description="Returns the MAC address from the device as a string" execMethod="get_mac" displayLevel="OPERATOR" polledPeriod="0">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:StringType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<excludedStates>ALARM</excludedStates>
</commands>
<commands name="GetErrorState" description="Returns the error message from the instrument" execMethod="get_error_state" displayLevel="OPERATOR" polledPeriod="0">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:StringType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<excludedStates>ALARM</excludedStates>
</commands>
<commands name="ClearErrorState" description="Clears the error state for the instrument. This is done by getting the GetErrorState &#x2013; 5x times to clear the inner error message buffer" execMethod="clear_error_state" displayLevel="OPERATOR" polledPeriod="0">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<excludedStates>ALARM</excludedStates>
</commands>
<commands name="MakeHWTest" description="Performs a hardware test for the instrument.&#xA;If the result is positive &#x2013; device goes to the ON state, else, the device goes to the ALARM state and disallow any SCPI command to go through." execMethod="make_hwtest" displayLevel="OPERATOR" polledPeriod="0">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="1-> OK, 0-> Fail">
<type xsi:type="pogoDsl:IntType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="WriteSocket" description="Write command to socket" execMethod="write_socket" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="WriteReadSocket" description="Send command and returnd the answer" execMethod="write_read_socket" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="Command to send">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="Answer from socket">
<type xsi:type="pogoDsl:StringType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<states name="ON" description="">
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</states>
<states name="ALARM" description="Hardware test has failed">
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</states>
<states name="FAULT" description="">
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</states>
<preferences docHome="./doc_html" makefileHome="/usr/share/pogo/preferences"/>
</classes>
</pogoDsl:PogoSystem>
\ No newline at end of file
#=============================================================================
#
# file : Makefile
#
# description : Include for the GEpressCtrlPACE5000 class.
#
# project : Makefile to generate a Tango server
#
# $Author: $
#
# $Revision: $
#
#
# copyleft : European Synchrotron Radiation Facility
# BP 220, Grenoble 38043
# FRANCE
#
#=============================================================================
# This file is generated by POGO
# (Program Obviously used to Generate tango Object)
#
# (c) - Software Engineering Group - ESRF
#=============================================================================
#
MAKE_ENV = $(TANGO_DIR)/Libraries/cppserver/common
CLASS = GEpressCtrlPACE5000
MAJOR_VERS = 2
MINOR_VERS = 1
RELEASE = Release_$(MAJOR_VERS)_$(MINOR_VERS)
ifdef using_trunk
CHANNEL_DIR = $(TANGO_DIR)/DeviceClasses/MeasureInstruments/GEpressCtrlPACE5000Channel/trunk
else
CHANNEL_DIR = $(shell find $(TANGO_DIR)/DeviceClasses/MeasureInstruments/GEpressCtrlPACE5000Channel/tags -type d -regex '.*Release_[0-9]*_[0-9]*' | sort -t '_' -k2 -k3 -nr | head -1)
endif
all:
@echo "Nothing to do"
#-----------------------------------------
# Install binary file
#-----------------------------------------
install:
cp $(CLASS).py $(DESTDIR)
cp $(CLASS) $(DESTDIR)
cp $(CHANNEL_DIR)/GEpressCtrlPACE5000Channel.py $(DESTDIR)
chmod 755 $(DESTDIR)/$(CLASS)
#----------------------------------------------------
# Tag the SVN module corresponding to this class
#----------------------------------------------------
clean:
@echo "Nothing to do"
include $(MAKE_ENV)/common_target.opt
tag:
ifeq ($(shell ls -d ../tags/$(RELEASE) 2>/dev/null ), ../tags/$(RELEASE))
@echo $(RELEASE) exists, specify new version numbers
else
svn copy ../trunk ../tags/$(RELEASE)
svn commit ../tags/$(RELEASE) \
-m "Tagging the $(RELEASE) of the $(CLASS) project."
endif
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Attributes </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br><br>
<font size="+1"><u><b> There is no attribute defined. </b></u></font>
<br><br>
<hr>
<br><br>
<font size="+1"><u><b> There is no dynamic attribute defined. </b></u></font>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Description </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<ul>
<br><br><br>
<table border="0" width="100%">
<Tr>
<td> <font size="+1"><u><b> GEpressCtrlPACE5000 Class Identification : </b></u></font> </td>
<td> <font size="+1"><u><b> GEpressCtrlPACE5000 Class Inheritance : </b></u></font> </td>
</tr>
<td><ul>
<table border="0">
<Tr>
<td> Contact </td><td> : at mail.desy.de - tnunez</td>
</tr>
<tr>
<td> Class Family </td><td> : MeasureInstruments
</tr>
<tr>
<td> Platform </td><td> : Unix Like </td>
</tr>
<tr>
<td> Bus </td><td> : Socket </td>
</tr>
<tr>
<td> Manufacturer </td><td> : GE </td>
</tr>
<tr>
<td> Manufacturer ref.</td><td> : PACE-5000 </td>
</tr>
</Table>
</ul></td>
<td>
<ul><li> <a href="http://www.esrf.eu/computing/cs/tango/tango_doc/kernel_doc/" target="new"> Tango::DeviceImpl</a></li>
<ul> <li> GEpressCtrlPACE5000</li>
<br>
<br>
<br>
<br>
<br>
</td>
</Table>
<br><br><br>
<font size="+1"><u><b> GEpressCtrlPACE5000 Class Description : </b></u></font>
<br><br>
<ul>
Server for the controll of the Pressuer Automated Calibration Equipment 5000 from GE
<!--- /*PROTECTED REGION ID(index.html) ENABLED START*/ --->
<!--- Add your own documentation, pictures, links,.... --->
<!--- /*PROTECTED REGION END*/ --->
</ul>
</ul>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command ClearErrorState </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command ClearErrorState : </b></u></font>
<ul>
Clears the error state for the instrument. This is done by getting the GetErrorState ? 5x times to clear the inner error message buffer
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> ClearErrorState Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_VOID </td>
<td> </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::DEV_VOID </td>
<td> </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command NOT allowed for </td>
<td> <font size="-1"> <li> ALARM </li> </font> </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command GetErrorState </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command GetErrorState : </b></u></font>
<ul>
Returns the error message from the instrument
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> GetErrorState Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_VOID </td>
<td> </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::DEV_STRING </td>
<td> </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command NOT allowed for </td>
<td> <font size="-1"> <li> ALARM </li> </font> </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command GetIDN </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command GetIDN : </b></u></font>
<ul>
Returns the identification string from the device as a string
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> GetIDN Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_VOID </td>
<td> </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::DEV_STRING </td>
<td> </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command NOT allowed for </td>
<td> <font size="-1"> <li> ALARM </li> </font> </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command GetMAC </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command GetMAC : </b></u></font>
<ul>
Returns the MAC address from the device as a string
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> GetMAC Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_VOID </td>
<td> </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::DEV_STRING </td>
<td> </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command NOT allowed for </td>
<td> <font size="-1"> <li> ALARM </li> </font> </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command MakeHWTest </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command MakeHWTest : </b></u></font>
<ul>
Performs a hardware test for the instrument.<Br>
If the result is positive ? device goes to the ON state, else, the device goes to the ALARM state and disallow any SCPI command to go through.
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> MakeHWTest Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_VOID </td>
<td> </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::DEV_LONG </td>
<td> 1-> OK, 0-> Fail </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command allowed for </td>
<td> All states </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command State </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command State : </b></u></font>
<ul>
This command gets the device state (stored in its device_state data member) and returns it to the caller.
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> State Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_VOID </td>
<td> none </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::DEV_STATE </td>
<td> Device state </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> true </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> true </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command allowed for </td>
<td> All states </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command Status </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command Status : </b></u></font>
<ul>
This command gets the device status (stored in its device_status data member) and returns it to the caller.
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> Status Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_VOID </td>
<td> none </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::CONST_DEV_STRING </td>
<td> Device status </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> true </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> true </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command allowed for </td>
<td> All states </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command Stop </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command Stop : </b></u></font>
<ul>
Stops operation of the pump. The most important action ? stop the PressureControl ? power control ? go to the measurement mode
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> Stop Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_VOID </td>
<td> </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::DEV_VOID </td>
<td> </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command NOT allowed for </td>
<td> <font size="-1"> <li> ALARM </li> </font> </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command WriteReadSocket </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command WriteReadSocket : </b></u></font>
<ul>
Send command and returnd the answer
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> WriteReadSocket Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_STRING </td>
<td> Command to send </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::DEV_STRING </td>
<td> Answer from socket </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command allowed for </td>
<td> All states </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Command WriteSocket </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Command WriteSocket : </b></u></font>
<ul>
Write command to socket
</ul>
<br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=0> <font size=+1> <center><b> WriteSocket Definition </b></font></center></td>
</tr>
<tr>
<td> Input Argument </td>
<td> Tango::DEV_STRING </td>
<td> </td>
</tr>
<tr>
<td> Output Argument </td>
<td> Tango::DEV_VOID </td>
<td> </td>
</tr>
<tr>
<td> DisplayLevel </td>
<td> OPERATOR </td>
<td> .. </td>
</tr>
<tr>
<td> Inherited </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Abstract </td>
<td> false </td>
<td> .. </td>
</tr>
<tr>
<td> Polling Period </td>
<td> Not polled </td>
<td> .. </td>
</tr>
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
<tr>
<td> Command allowed for </td>
<td> All states </td>
<td> .. </td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> GEpressCtrlPACE5000 Tango Class Commands </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br><br>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan=5> <font size=+1> <center><b> GEpressCtrlPACE5000 Class Commands </b></font></center></td>
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td> <center><b> Name </b></center> </td>
<td> <center><b> Input type </b></center> </td>
<td> <center><b> Output type </b></center> </td>
<td> <center><b> Level </b></center> </td>
<td> <center><b> Description </b></center> </td>
</tr>
<tr>
<td> <a href="CmdState.html"> State </a> </td>
<td> DEV_VOID </td>
<td> DEV_STATE </td>
<td> OPERATOR </td>
<td> This command gets the device state (stored in its device_state data member) and returns it to the caller. </td>
</tr>
<tr>
<td> <a href="CmdStatus.html"> Status </a> </td>
<td> DEV_VOID </td>
<td> CONST_DEV_STRING </td>
<td> OPERATOR </td>
<td> This command gets the device status (stored in its device_status data member) and returns it to the caller. </td>
</tr>
<tr>
<td> <a href="CmdStop.html"> Stop </a> </td>
<td> DEV_VOID </td>
<td> DEV_VOID </td>
<td> OPERATOR </td>
<td> Stops operation of the pump. The most important action ? stop the PressureControl ? power control ? go to the measurement mode </td>
</tr>
<tr>
<td> <a href="CmdGetIDN.html"> GetIDN </a> </td>
<td> DEV_VOID </td>
<td> DEV_STRING </td>
<td> OPERATOR </td>
<td> Returns the identification string from the device as a string </td>
</tr>
<tr>
<td> <a href="CmdGetMAC.html"> GetMAC </a> </td>
<td> DEV_VOID </td>
<td> DEV_STRING </td>
<td> OPERATOR </td>
<td> Returns the MAC address from the device as a string </td>
</tr>
<tr>
<td> <a href="CmdGetErrorState.html"> GetErrorState </a> </td>
<td> DEV_VOID </td>
<td> DEV_STRING </td>
<td> OPERATOR </td>
<td> Returns the error message from the instrument </td>
</tr>
<tr>
<td> <a href="CmdClearErrorState.html"> ClearErrorState </a> </td>
<td> DEV_VOID </td>
<td> DEV_VOID </td>
<td> OPERATOR </td>
<td> Clears the error state for the instrument. This is done by getting the GetErrorState ? 5x times to clear the inner error message buffer </td>
</tr>
<tr>
<td> <a href="CmdMakeHWTest.html"> MakeHWTest </a> </td>
<td> DEV_VOID </td>
<td> DEV_LONG </td>
<td> OPERATOR </td>
<td> Performs a hardware test for the instrument.<Br>
If the result is positive ? device goes to the ON state, else, the device goes to the ALARM state and disallow any SCPI command to go through. </td>
</tr>
<tr>
<td> <a href="CmdWriteSocket.html"> WriteSocket </a> </td>
<td> DEV_STRING </td>
<td> DEV_VOID </td>
<td> OPERATOR </td>
<td> Write command to socket </td>
</tr>
<tr>
<td> <a href="CmdWriteReadSocket.html"> WriteReadSocket </a> </td>
<td> DEV_STRING </td>
<td> DEV_STRING </td>
<td> OPERATOR </td>
<td> Send command and returnd the answer </td>
</tr>
</table>
</body>
</html>
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment