14 def internal(signal, frame):
34 has_data_config = rospy.has_param(rospy.get_name() +
"/data")
35 if not has_data_config:
36 rospy.logdebug(
"no data config. ignore data events")
38 has_media_config = rospy.has_param(rospy.get_name() +
"/media")
44 if "result" not in event:
46 if "event" not in event[
"result"]:
49 request_type = event[
"result"][
"request_type"]
50 if request_type ==
"PEER":
52 event, has_data_config, has_media_config
54 elif request_type ==
"DATA":
57 elif request_type ==
"MEDIA":
62 if event[
"result"][
"event"] ==
"CLOSE":
67 '{"request_type": "SYSTEM", "command": "SHUTDOWN"}'
70 rospy.signal_shutdown(
"finish")
73 if not event[
"is_success"]:
77 if event[
"result"][
"event"] ==
"OPEN":
80 event[
"result"][
"data_connection_id"]
83 data_connection_status_request
85 rospy.loginfo(
"DataConnection Status")
86 rospy.loginfo(data_connection_status_response)
88 rospy.loginfo(
"you can send data now")
90 if event[
"result"][
"event"] ==
"CLOSE":
92 f
"DataConnection {event['result']['data_connection_id']} disconnected"
101 if not rospy.has_param(rospy.get_name() +
"/peer_id"):
102 rospy.logerr(
"no peer_id")
104 peer_id = rospy.get_param(rospy.get_name() +
"/peer_id")
106 if "API_KEY" not in os.environ:
107 rospy.logerr(
"no API_KEY")
108 rospy.logerr(
"exiting")
111 key = os.environ[
"API_KEY"]
115 if not peer_create_response[
"is_success"]:
119 peer_id = peer_create_response[
"result"][
"peer_id"]
120 token = peer_create_response[
"result"][
"token"]
126 rospy.loginfo(
"Peer Object has been created")
127 rospy.loginfo(status_response)
137 {
"plugin_name":
"string_loopback::StringLoopback"}
140 json.loads(
'{"foo": "bar"}'),
141 "da-50a32bab-b3d9-4913-8e20-f79c90a6a211",
150 event_thread = EventListener(peer_id, token)
157 if __name__ ==
"__main__":
158 rospy.init_node(
"my_node", log_level=rospy.INFO)