def __init__(self): self._adapter = Adapter(('0.0.0.0', 7878)) self._pose = ThreeDSample('pose') self._adapter.add_data_item(self._pose) avail = Event('avail') self._adapter.add_data_item(avail) avail.set_value('AVAILABLE')
def init_test(): event = Event("foo") eq_(event.changed(), False) eq_(event._name, "foo") event.set_value("blat") eq_(event.changed(), True) eq_(event.value(), "blat") lines = event.values() eq_(lines[0], "|foo|blat") event.sweep() eq_(event.changed(), False)
def single_event_communications_test(): fname, adapter = create_server() event = Event('foo') adapter.add_data_item(event) event.set_value('hello') adapter.start() adapter.format_time = MagicMock(return_value="TIME") client = connect_client(fname) line = client.recv(256) eq_(line, 'TIME|foo|hello\n') adapter.stop() os.remove(fname)
def add_event(data): # Unpack function arguments adapter, tag_list, di_dict, init = data for tag in tag_list: # Change tag to XML [name] attribute format if necessary if not tag.islower(): data_item = split_event(tag) else: data_item = tag # Add Event to the MTConnect adapter di_dict[data_item] = Event(data_item) adapter.add_data_item(di_dict[data_item]) # Output success rospy.loginfo('Added XML data_item --> %s' % data_item) if init == True: # Set initial states for robot actions adapter.begin_gather() for data_item, event in di_dict.items(): event.set_value('READY') adapter.complete_gather() return
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.""" import sys, os, time path, file = os.path.split(__file__) sys.path.append(os.path.realpath(path) + '/../src') from data_item import Event, SimpleCondition, Sample from mtconnect_adapter import Adapter if __name__ == "__main__": adapter = Adapter(('localhost', 7878)) e1 = Event('e1') adapter.add_data_item(e1) c1 = SimpleCondition('c1') adapter.add_data_item(c1) s1 = Sample('s1') adapter.add_data_item(s1) adapter.start() while True: adapter.begin_gather() e1.set_value(1) s1.set_value(200.1) adapter.complete_gather() time.sleep(1.0) adapter.begin_gather()
sys.path.append(os.path.realpath(path) + '/../src') from data_item import Event, SimpleCondition, Sample, ThreeDSample from mtconnect_adapter import Adapter import roslib roslib.load_manifest('turtlesim') import rospy import turtlesim.msg adapter = Adapter(('0.0.0.0', 7878)) pose = ThreeDSample('pose') adapter.add_data_item(pose) def handle_turtle_pose(msg, turtlename): adapter.begin_gather() pose.set_value((msg.x, msg.y, 0.0)) adapter.complete_gather() if __name__ == "__main__": avail = Event('avail') adapter.add_data_item(avail) avail.set_value('AVAILABLE') adapter.start() rospy.init_node('mtconnect_adapter') rospy.Subscriber('/turtle1/pose', turtlesim.msg.Pose, handle_turtle_pose, 'turtle1') rospy.spin()
from data_item import Event, SimpleCondition, Sample, ThreeDSample from mtconnect_adapter import Adapter import roslib roslib.load_manifest('turtlesim') import rospy import turtlesim.msg adapter = Adapter(('0.0.0.0', 7878)) pose = ThreeDSample('pose') adapter.add_data_item(pose) def handle_turtle_pose(msg, turtlename): adapter.begin_gather() pose.set_value((msg.x, msg.y, 0.0)) adapter.complete_gather() if __name__ == "__main__": avail = Event('avail') adapter.add_data_item(avail) avail.set_value('AVAILABLE') adapter.start() rospy.init_node('mtconnect_adapter') rospy.Subscriber('/turtle1/pose', turtlesim.msg.Pose, handle_turtle_pose, 'turtle1') rospy.spin()
def __init__(self, host, port): self.host = host self.port = port self.adapter = Adapter((host, port)) self.auto_time = Sample('auto_time') self.adapter.add_data_item(self.auto_time) self.cut_time = Sample('cut_time') self.adapter.add_data_item(self.cut_time) self.total_time = Sample('total_time') self.adapter.add_data_item(self.total_time) self.Xabs = Sample('Xabs') self.adapter.add_data_item(self.Xabs) self.Yabs = Sample('Yabs') self.adapter.add_data_item(self.Yabs) self.Zabs = Sample('Zabs') self.adapter.add_data_item(self.Zabs) self.Aabs = Sample('Aabs') self.adapter.add_data_item(self.Aabs) self.Babs = Sample('Babs') self.adapter.add_data_item(self.Babs) self.Srpm = Sample('Srpm') self.adapter.add_data_item(self.Srpm) self.estop = Event('estop') self.adapter.add_data_item(self.estop) self.power = Event('power') self.adapter.add_data_item(self.power) self._exec = Event('exec') self.adapter.add_data_item(self._exec) self.line = Event('line') self.adapter.add_data_item(self.line) self.program = Event('program') self.adapter.add_data_item(self.program) self.Fovr = Event('Fovr') self.adapter.add_data_item(self.Fovr) self.Sovr = Event('Sovr') self.adapter.add_data_item(self.Sovr) self.Tool_number = Event('Tool_number') self.adapter.add_data_item(self.Tool_number) self.mode = Event('mode') self.adapter.add_data_item(self.mode) self.avail = Event('avail') self.adapter.add_data_item(self.avail) self.adapter.start() self.adapter.begin_gather() self.avail.set_value("AVAILABLE") self.adapter.complete_gather() self.adapter_stream()
class pocketNCAdapter(object): def __init__(self, host, port): self.host = host self.port = port self.adapter = Adapter((host, port)) self.auto_time = Sample('auto_time') self.adapter.add_data_item(self.auto_time) self.cut_time = Sample('cut_time') self.adapter.add_data_item(self.cut_time) self.total_time = Sample('total_time') self.adapter.add_data_item(self.total_time) self.Xabs = Sample('Xabs') self.adapter.add_data_item(self.Xabs) self.Yabs = Sample('Yabs') self.adapter.add_data_item(self.Yabs) self.Zabs = Sample('Zabs') self.adapter.add_data_item(self.Zabs) self.Aabs = Sample('Aabs') self.adapter.add_data_item(self.Aabs) self.Babs = Sample('Babs') self.adapter.add_data_item(self.Babs) self.Srpm = Sample('Srpm') self.adapter.add_data_item(self.Srpm) self.estop = Event('estop') self.adapter.add_data_item(self.estop) self.power = Event('power') self.adapter.add_data_item(self.power) self._exec = Event('exec') self.adapter.add_data_item(self._exec) self.line = Event('line') self.adapter.add_data_item(self.line) self.program = Event('program') self.adapter.add_data_item(self.program) self.Fovr = Event('Fovr') self.adapter.add_data_item(self.Fovr) self.Sovr = Event('Sovr') self.adapter.add_data_item(self.Sovr) self.Tool_number = Event('Tool_number') self.adapter.add_data_item(self.Tool_number) self.mode = Event('mode') self.adapter.add_data_item(self.mode) self.avail = Event('avail') self.adapter.add_data_item(self.avail) self.adapter.start() self.adapter.begin_gather() self.avail.set_value("AVAILABLE") self.adapter.complete_gather() self.adapter_stream() def data_pull(self): data = linuxcnc.stat() data.poll() return data def adapter_stream(self): at2 = 'initialize' ct2 = 'initialize' ylt2 = 'initialize' ylt1 = datetime.datetime.now() #initialized at1 = datetime.datetime.now() #initialized ct1 = datetime.datetime.now() #initialized ylt = float(0) #initialized at = float(0) #initialized ct = float(0) #initialized while True: try: data = self.data_pull() #time initialization: accumulated time: cut - auto - total if self.power.value() == 'ON': ylt2 = datetime.datetime.now() if ex == 'ACTIVE' and self.Srpm.value() != None and float( self.Srpm.value()) > 0 and estop == 'ARMED': ct2 = datetime.datetime.now() else: ct1 = datetime.datetime.now() if (ex == 'ACTIVE' or ex == 'STOPPED' or ex == 'INTERRUPTED' or float(self.Srpm.value()) > 0) and estop == 'ARMED': at2 = datetime.datetime.now() else: at1 = datetime.datetime.now() else: ylt1 = datetime.datetime.now() if data.state == 1: ex = 'READY' elif data.state == 2: ex = 'ACTIVE' else: ex = '' self.adapter.begin_gather() self._exec.set_value(ex) self.adapter.complete_gather() if data.estop != 1: estp = 'ARMED' else: estp = 'TRIGGERED' self.adapter.begin_gather() self.estop.set_value(estp) self.adapter.complete_gather() self.adapter.begin_gather() self.power.set_value(pwr) self.adapter.complete_gather() self.adapter.begin_gather() xps = str(format(data.actual_position[0], '.4f')) self.Xabs.set_value(xps) yps = str(format(data.actual_position[1], '.4f')) self.Yabs.set_value(yps) zps = str(format(data.actual_position[2], '.4f')) self.Zabs.set_value(zps) abs = str(format(data.actual_position[3], '.4f')) self.Aabs.set_value(abs) bbs = str(format(data.actual_position[4], '.4f')) self.Babs.set_value(bbs) self.adapter.complete_gather() ssp = str(data.spindle_speed) self.adapter.begin_gather() self.Srpm.set_value(ssp) ln = str(data.motion_line) self.adapter.begin_gather() self.line.set_value(ln) pgm = str(data.file) self.adapter.begin_gather() self.program.set_value(pgm) pfo = str(data.feedrate * 100) self.adapter.begin_gather() self.Fovr.set_value(pfo) so = str(data.spindlerate * 100) self.adapter.begin_gather() self.Sovr.set_value(so) tooln = str(data.tool_in_spindle) self.adapter.begin_gather() self.Tool_number.set_value(tooln) self.adapter.complete_gather() if data.task_mode == 1: md = 'MDI' elif data.task_mode == 2: md = 'AUTOMATIC' elif data.task_mode == 3: md = 'MANUAL' else: md = '' self.adapter.begin_gather() self.mode.set_value(md) self.adapter.complete_gather() #time finalization: accumulated time, cut vs auto vs total if ylt2 != 'initialize' and self.power.value( ) == 'ON' and ylt1 != ylt2: #accumulated time:total time if (ylt2 - ylt1).total_seconds() >= 0: ylt += (ylt2 - ylt1).total_seconds() ylt1 = ylt2 if ylt >= 0 and self.total_time.value() != str(int(ylt)): self.adapter.begin_gather() self.total_time.set_value(str(int(ylt))) self.adapter.complete_gather() if ylt < 0: ylt = float(0) #accumulated time:cut time if ct2 != 'initialize' and ex == 'ACTIVE' and self.Srpm.value( ) != None and float(self.Srpm.value( )) > 0 and self.estop.value() == 'ARMED': if (ct2 - ct1).total_seconds() >= 0: ct += (ct2 - ct1).total_seconds() ct1 = ct2 if ct >= 0 and self.cut_time.value() != str(int(ct)): self.adapter.begin_gather() self.cut_time.set_value(str(int(ct))) self.adapter.complete_gather() if ct < 0: ct = float(0) #accumulated time:auto time if (at2 != 'initialize' and ex == 'ACTIVE' or ex == 'INTERRUPTED' or ex == 'STOPPED' or float(self.Srpm.value()) > 0 ) and self.estop.value() == 'ARMED': if (at2 - at1).total_seconds() >= 0: at += (at2 - at1).total_seconds() at1 = at2 if at >= 0 and self.auto_time.value() != str(int(at)): self.adapter.begin_gather() self.auto_time.set_value(str(int(at))) self.adapter.complete_gather() if at < 0: at = float(0) except: if self.power.value() and self.power.value() != 'OFF': self.adapter.begin_gather() self.power.set_value('OFF') self.adapter.complete_gather() ylt2 = 'initialize' ct2 = 'initialize' at2 = 'initialize' ylt1 = datetime.datetime.now() #initialized at1 = datetime.datetime.now() #initialized ct1 = datetime.datetime.now() #initialized
def change_test(): event = Event("foo") eq_(event.changed(), False) event.set_value("blat") eq_(event.changed(), True) eq_(event.value(), "blat") event.sweep() eq_(event.changed(), False) event.set_value("blat") eq_(event.changed(), False) eq_(event.value(), "blat")