コード例 #1
0
 def __init__(self,
              addr,
              port,
              message_buffers,
              MsgType,
              frequency=0,
              subscriptions=[],
              loop=None):
     self.loop = loop or asyncio.get_event_loop()
     self.client = AsyncClient(addr, port, self.msg_received,
                               message_buffers, MsgType, subscriptions,
                               self.loop)
     self.frequency = frequency
     self.loop.call_soon(self._internal_tick)
コード例 #2
0
class ProtoModule:
    def __init__(self,
                 addr,
                 port,
                 message_buffers,
                 MsgType,
                 frequency=0,
                 subscriptions=[],
                 loop=None):
        self.loop = loop or asyncio.get_event_loop()
        self.client = AsyncClient(addr, port, self.msg_received,
                                  message_buffers, MsgType, subscriptions,
                                  self.loop)
        self.frequency = frequency
        self.loop.call_soon(self._internal_tick)

    def hello(self):
        while True:
            print("hhhh")

    def _internal_tick(self):
        if self.frequency > 0:
            self.loop.call_later(1.0 / self.frequency, self._internal_tick)
            self.tick()
            # print("hhh")

    def set_frequency(self, frequency):
        self.frequency = frequency
        self.loop.call_soon(self._internal_tick)

    def tick(self):
        raise NotImplementedError()

    def msg_received(self, msg, msg_type):
        raise NotImplementedError()

    def subscribe(self, msg_types):
        self.client.subscribe(msg_types, Subscribe.SUBSCRIBE)

    def unsubscribe(self, msg_types):
        self.client.subscribe(msg_types, Subscribe.UNSUBSCRIBE)

    def write(self, msg, msg_type):
        self.client.write(msg, msg_type)
        # print(msg)

    def connect(self):
        self.client.connect()

    def run(self):
        try:
            with self.client:
                self.loop.run_forever()
        except KeyboardInterrupt:
            self.quit()

    def quit(self):
        self.loop.stop()
コード例 #3
0
ファイル: protoModule.py プロジェクト: HoltSpalding/PacbotV1
class ProtoModule:
    def __init__(self, addr, port, message_buffers, MsgType, frequency=0, subscriptions=[], loop=None):
        self.loop = loop or asyncio.get_event_loop()
        self.client = AsyncClient(addr, port, self.msg_received, message_buffers, MsgType, subscriptions, self.loop)
        self.frequency = frequency
        self.loop.call_soon(self._internal_tick)
        # self.pub = rospy.Publisher('chatter', String, queue_size=10)
        # self.node = rospy.init_node('talker', anonymous=True)
        # rate = rospy.Rate(10) # 10hz

    def _internal_tick(self):
        if self.frequency > 0:
            self.loop.call_later(1.0/self.frequency, self._internal_tick)
            self.tick()

    def set_frequency(self, frequency):
        self.frequency = frequency
        self.loop.call_soon(self._internal_tick)

    def tick(self):
        raise NotImplementedError()

    def msg_received(self, msg, msg_type):
        raise NotImplementedError()

    def subscribe(self, msg_types):
        self.client.subscribe(msg_types, Subscribe.SUBSCRIBE)

    def unsubscribe(self, msg_types):
        self.client.subscribe(msg_types, Subscribe.UNSUBSCRIBE)

    def write(self, msg, msg_type):
        self.client.write(msg, msg_type)


    def connect(self):
        self.client.connect()
    
    def run(self):
        try:
            with self.client:
                self.loop.run_forever()
        except KeyboardInterrupt:
            self.quit()

    def quit(self):
        self.loop.stop()