From 5c44db7df0fa27b6fd0650b4010b764e06015f8d Mon Sep 17 00:00:00 2001 From: Gabriel Previato Date: Tue, 14 Jan 2020 09:57:50 -0300 Subject: [PATCH 1/3] Added interface IFlyable --- py4syn/epics/IFlyable.py | 119 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 py4syn/epics/IFlyable.py diff --git a/py4syn/epics/IFlyable.py b/py4syn/epics/IFlyable.py new file mode 100644 index 0000000..48718c2 --- /dev/null +++ b/py4syn/epics/IFlyable.py @@ -0,0 +1,119 @@ +"""Scannable Interface + +Python interface to support Abstract methods related to FlyScan process. + +:platform: Unix +:synopsis: Python Interface with Abstract methods for FlyScan process (FlyScannable Devices). + +.. moduleauthor:: Gabriel Previato de Andrade + .. note:: 14/01/2020 [gabrielpreviato] first version released +""" +from abc import ABCMeta, abstractmethod + + +class IFlyable: + """ + + Python interface to be implemented in all devices in order to create default methods for FlyScan process + + A flyscannable is any device in which the flyscan process is feasible to be performed. + + """ + + @abstractmethod + def getTriggerMode(self): + """ + Abstract method to get the flyscannable device trigger mode. + + Parameters + ---------- + None + + Returns + ------- + `string` + """ + + raise NotImplementedError + + @abstractmethod + def getTriggerParams(self): + """ + Abstract method to get the flyscannable device trigger parameters. + + Parameters + ---------- + None + + Returns + ------- + `dict` + """ + + raise NotImplementedError + + @abstractmethod + def setTriggerMode(self, m): + """ + Abstract method to set the trigger mode of a flyscannable device. + + Parameters + ---------- + m : mode + The device mode to be set. + + Returns + ------- + out : None + """ + + raise NotImplementedError + + @abstractmethod + def setTriggerParams(self, d): + """ + Abstract method to set the trigger parameters of a flyscannable device. + + Parameters + ---------- + d : dictionary + The device parameters to be set. + + Returns + ------- + out : None + """ + + raise NotImplementedError + + @abstractmethod + def startTrigger(self): + """ + Abstract method to start flyscannable device trigger transmission. + + Parameters + ---------- + None + + Returns + ------- + out : None + """ + + raise NotImplementedError + + @abstractmethod + def reset(self): + """ + Abstract method to reset flyscannable device trigger. + + Parameters + ---------- + None + + Returns + ------- + out : None + """ + + raise NotImplementedError From d86f80929bea2ffaea5f6ad774aaeefb7c3b839a Mon Sep 17 00:00:00 2001 From: Gabriel Previato Date: Tue, 14 Jan 2020 10:00:31 -0300 Subject: [PATCH 2/3] Fixed documentation --- py4syn/epics/IFlyable.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py4syn/epics/IFlyable.py b/py4syn/epics/IFlyable.py index 48718c2..abff553 100644 --- a/py4syn/epics/IFlyable.py +++ b/py4syn/epics/IFlyable.py @@ -1,4 +1,4 @@ -"""Scannable Interface +"""FlyScannable Interface Python interface to support Abstract methods related to FlyScan process. From cc11a7e451e3dd31dc681a63a5b9a062ed652dfb Mon Sep 17 00:00:00 2001 From: Gabriel Previato Date: Mon, 20 Jan 2020 10:39:35 -0300 Subject: [PATCH 3/3] Added inheritance from IScannable --- py4syn/epics/IFlyable.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/py4syn/epics/IFlyable.py b/py4syn/epics/IFlyable.py index abff553..ffb994b 100644 --- a/py4syn/epics/IFlyable.py +++ b/py4syn/epics/IFlyable.py @@ -8,10 +8,11 @@ .. moduleauthor:: Gabriel Previato de Andrade .. note:: 14/01/2020 [gabrielpreviato] first version released """ -from abc import ABCMeta, abstractmethod +from abc import abstractmethod +from py4syn.epics.IScannable import IScannable -class IFlyable: +class IFlyable(IScannable): """ Python interface to be implemented in all devices in order to create default methods for FlyScan process