Beispiel #1
0
 def stopMarte(self):
     marteName = self.getNode('name').data()
     self.suspendMarte()
     time.sleep(2)
     Event.seteventRaw(marteName, np.frombuffer(b'EXIT', dtype=np.uint8))
     time.sleep(2)
     Event.seteventRaw(marteName, np.frombuffer(b'EXIT', dtype=np.uint8))
     return 1
Beispiel #2
0
def publishEvent(eventname, eventbody=None):
    """
    eventname -- name convention for this event. Tag to listen for.

    eventbody -- should be text presently as we do not implement
    deserialization of arbitrary types.

    events are broadcast by Event over UDP
    """
    try:
        from MDSplus import Event
        from numpy import uint8
        if apidebug:
            print("APIDEBUG: publishEvent", eventname, eventbody)
            print("APIDEBUG: publishEvent", str(type(eventbody)))
        Event.seteventRaw(eventname, uint8(bytearray(eventbody)))
    except Exception as e:
        import sys, os
        exc_type, exc_obj, exc_tb = sys.exc_info()
        fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
        print("ERROR, events not supported. Tried to " +
              "send event %s, with message %s.") % (eventname, eventbody)
        print(exc_type, fname, exc_tb.tb_lineno)
Beispiel #3
0
def publishEvent(eventname, eventbody=None):
    """
    eventname -- name convention for this event. Tag to listen for.

    eventbody -- should be text presently as we do not implement
    deserialization of arbitrary types.

    events are broadcast by Event over UDP
    """
    try:
        from MDSplus import Event
        from numpy import uint8
        if apidebug:
            print("APIDEBUG: publishEvent",eventname,eventbody)
            print("APIDEBUG: publishEvent",str(type(eventbody)))
        Event.seteventRaw(eventname,uint8(bytearray(eventbody)))
    except Exception as e:
        import sys,os
        exc_type, exc_obj, exc_tb = sys.exc_info()
        fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
        print("ERROR, events not supported. Tried to "+
              "send event %s, with message %s.")%(eventname,eventbody)
        print(exc_type, fname, exc_tb.tb_lineno)
Beispiel #4
0
 def stopMarte(self):
     marteName = self.getNode('name').data()
     self.suspendMarte()
     time.sleep(2)
     Event.seteventRaw(marteName, np.frombuffer(b'EXIT', dtype=np.uint8))
     time.sleep(2)
     Event.seteventRaw(marteName, np.frombuffer(b'EXIT', dtype=np.uint8))
     # KILL MARTe process
     import subprocess
     import os
     command = 'ps -Af | grep %s_marte_configuration.cfg | grep MARTeApp.ex | grep -v grep | awk \'{print $2}\'' % (
         marteName)
     pid, error = subprocess.Popen("{cmd}".format(cmd=command),
                                   shell=True,
                                   stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE).communicate()
     if len(pid) == 0:
         if len(error) != 0:
             print('INFO : %s' % (error))
     else:
         for p in pid.split():
             os.kill(int(p), 9)
             print('MARTe Process PID : %s Killed\n' % (p))
     return 1
Beispiel #5
0
 def suspendMarte(self):
     marteName = self.getNode('name').data()
     eventString1 = marteName + ':StopCurrentStateExecution:XX'
     eventString2 = marteName + ':' + 'PrepareNextState:IDLE'
     eventString3 = marteName + ':StartNextStateExecution:XX'
     Event.seteventRaw(marteName,
                       np.frombuffer(eventString1.encode(), dtype=np.uint8))
     time.sleep(0.1)
     Event.seteventRaw(marteName,
                       np.frombuffer(eventString2.encode(), dtype=np.uint8))
     time.sleep(0.1)
     Event.seteventRaw(marteName,
                       np.frombuffer(eventString3.encode(), dtype=np.uint8))
Beispiel #6
0
 def doState(self, state):
     marteName = self.getNode('name').data()
     stateName = getattr(self, 'state_%d_name' % (state)).data()
     eventString1 = marteName + ':StopCurrentStateExecution:XX'
     eventString2 = marteName + ':' + 'PrepareNextState:' + stateName
     eventString3 = marteName + ':StartNextStateExecution:XX'
     Event.seteventRaw(marteName,
                       np.frombuffer(eventString1.encode(), dtype=np.uint8))
     time.sleep(.1)
     Event.seteventRaw(marteName,
                       np.frombuffer(eventString2.encode(), dtype=np.uint8))
     time.sleep(.1)
     Event.seteventRaw(marteName,
                       np.frombuffer(eventString3.encode(), dtype=np.uint8))
Beispiel #7
0
 def gotoidle(self):
     marteName = self.getNode('name').data()
     eventString1 = 'StateMachine:GOTOIDLE'
     Event.seteventRaw(marteName,
                       np.frombuffer(eventString1.encode(), dtype=np.uint8))
Beispiel #8
0
#!/usr/bin/python
"""
Created on Fri Jul 10 05:29:47 2015
updateTime
@author: Cloud
"""
from archive import TimeInterval, setTIME
from MDSplus import Tree, Event
from time import sleep
from sys import argv
timer = 10
if len(argv) > 1:
    timer = int(argv[1])

try:
    tree = Tree('archive', 7)
except:
    tree = Tree('archive', -1).createPulse(7)
    setTIME(TimeInterval(-1800., 0, -1))
while True:
    Event.seteventRaw('archive7')
    sleep(timer)
Beispiel #9
0
 def stopMarte(self):
     marteName = self.getNode('name').data()
     Event.seteventRaw(marteName, np.frombuffer(b'EXIT', dtype=np.uint8))
     return 1
Beispiel #10
0
#!/usr/bin/python
"""
Created on Fri Jul 10 05:29:47 2015
updateTime
@author: Cloud
"""
from archive import TimeInterval,setTIME
from MDSplus import Tree, Event
from time import sleep
from sys import argv
timer = 10
if len(argv)>1:
    timer = int(argv[1])

try:
    tree=Tree('archive',7)
except:
    tree=Tree('archive',-1).createPulse(7)
    setTIME(TimeInterval(-1800.,0,-1))
while True:
    Event.seteventRaw('archive7')
    sleep(timer)
Beispiel #11
0
 def gotorun(self):
     marteName = self.getNode('name').data()
     eventString1 = 'StateMachine:GOTORUN'
     Event.seteventRaw(marteName, np.frombuffer(
         eventString1, dtype=np.uint8))