Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
6f10c78
Make sure that there is no subscriber when (one-shot-subscribe) is ca…
708yamaguchi May 20, 2021
448e26c
Use pointer closures for callback function so that they can be access…
708yamaguchi May 20, 2021
2a8bc88
Add (ros::unsubscribe) at the end of (one-shot-subscribe)
708yamaguchi May 20, 2021
1986f29
Use if statement instead of when ... unless ...
708yamaguchi May 20, 2021
ea42910
Changes to 'print-ros-msg'
Affonso-Gui Mar 6, 2019
fa3b7f3
Update sigint and error handlers
Affonso-Gui Apr 14, 2021
dff55bb
Update script handlers
Affonso-Gui Apr 14, 2021
6ff98dd
Always use ROSCONSOLE_DEFAULT_NAME on set-logger-level
Affonso-Gui Apr 14, 2021
b77b23f
Give ros::spin-once more meaningful return values
Affonso-Gui Apr 14, 2021
04c5350
Allow interruptions on ROS sleep functions
Affonso-Gui Apr 14, 2021
6481046
Define gc-proof symbols as constants
Affonso-Gui Apr 16, 2021
8d276ae
Fix possible memory faults when registering subscribers
Affonso-Gui May 28, 2021
86756b4
Shutdown ros before clearing static data on exit to avoid eventual locks
Affonso-Gui Aug 16, 2021
6369035
Use ros::get-topic-subscriber instead of ros::get-num-publishers in o…
Affonso-Gui Apr 13, 2022
d44c0dc
Add quotations to topic name in one-shot-subscribe error message
Affonso-Gui Apr 13, 2022
5d5ed85
Add roseus_bt package
Affonso-Gui Jun 16, 2021
567c162
(roseus_bt) Parse to service files
Affonso-Gui Jun 16, 2021
99084b3
(roseus_bt) Add EusActionNode and EusConditionNode
Affonso-Gui Jun 16, 2021
6333dc5
(roseus_bt) Add euslisp roseus_bt package and utilities
Affonso-Gui Jun 16, 2021
55b2cfe
(roseus_bt) Parse header
Affonso-Gui Jun 16, 2021
06eee63
(roseus_bt) Parse action classes
Affonso-Gui Jun 16, 2021
410f410
(roseus_bt) Parse condition classes
Affonso-Gui Jun 16, 2021
ffb6443
(roseus_bt) Parse main function
Affonso-Gui Jun 16, 2021
cd50b3b
(roseus_bt) Fix namespace of eus nodes
Affonso-Gui Jun 16, 2021
34ca7c8
(roseus_bt) Add generate_cpp_file
Affonso-Gui Jun 16, 2021
294103c
(roseus_bt) Add generate_cmake_lists
Affonso-Gui Jun 17, 2021
749468a
(roseus_bt) Add generate_package_xml
Affonso-Gui Jun 17, 2021
816fa6c
(roseus_bt) Change action/service file generator
Affonso-Gui Jun 17, 2021
7b07bdd
(roseus_bt) Keep xml_filename in class variable
Affonso-Gui Jun 17, 2021
65b4a00
(roseus_bt) Fix comment in xml_parser.h
Affonso-Gui Jun 17, 2021
1d9bc4d
(roseus_bt) Add create_bt_package executable
Affonso-Gui Jun 17, 2021
f97f7eb
(roseus_bt) Fix compilation errors
Affonso-Gui Jun 17, 2021
ca40d97
(roseus_bt) Remove test executable
Affonso-Gui Jun 18, 2021
c7606bc
(roseus_bt) Print warnings on non-global lambda-closures
Affonso-Gui Jun 18, 2021
40e1eb9
(roseus_bt) Copy model file and use absolute path
Affonso-Gui Jun 18, 2021
0a9a730
(roseus_bt) Add roseus_bt:spin
Affonso-Gui Jun 20, 2021
e7ef6e4
(roseus_bt) Add generate_eus_action_server
Affonso-Gui Jun 20, 2021
0afb27f
(roseus_bt) Add generate_eus_condition_server
Affonso-Gui Jun 20, 2021
38800fe
(roseus_bt) Add separate template generator class
Affonso-Gui Jun 20, 2021
8594d00
(roseus_bt) Replace const char* with std::string
Affonso-Gui Jun 20, 2021
617be37
(roseus_bt) Use external symbol roseus_bt:spin in template
Affonso-Gui Jun 20, 2021
e5e8dd6
(roseus_bt) Add command line arguments
Affonso-Gui Jun 20, 2021
24e7752
(roseus_bt) Fix bugs in euslisp file generation
Affonso-Gui Jun 20, 2021
28d6171
(roseus_bt) Query before overwriting files
Affonso-Gui Jun 20, 2021
23c2a27
(roseus_bt) Use const strings on function arguments
Affonso-Gui Jun 20, 2021
7b98c61
(roseus_bt) Add subscriber nodes
Affonso-Gui Jun 21, 2021
587f6de
(roseus_bt) Add roseus_bt/eus_nodes.h header file
Affonso-Gui Jun 21, 2021
b43b734
(roseus_bt) Add eus-like function names
Affonso-Gui Jun 30, 2021
381e3c4
(roseus_bt) Add comments on roseus_bt:set-output usage
Affonso-Gui Jun 30, 2021
c555605
(roseus_bt) Add hyphen-spelled package nickname
Affonso-Gui Jun 30, 2021
141b102
(roseus_bt) Add maybe_push_message_package as common utility
Affonso-Gui Jun 30, 2021
46ac746
(roseus_bt) Don't write eus files if not needed
Affonso-Gui Jun 30, 2021
f99c9eb
(roseus_bt) Skip copy_xml_file if source is equal to destination
Affonso-Gui Jun 30, 2021
4400f0d
(roseus_bt) Use model filename as default executable name
Affonso-Gui Jul 6, 2021
b64d858
(roseus_bt) Allow to assign multiple model files
Affonso-Gui Jul 6, 2021
5425253
(roseus_bt) Add euslisp sample files
Affonso-Gui Jul 6, 2021
83581ea
(roseus_bt) Update euslisp sample task
Affonso-Gui Jul 7, 2021
b0c8c87
(roseus_bt) Add sample model files
Affonso-Gui Jul 7, 2021
d0d0b18
(roseus_bt) Suppress return value on eus_condition_server template
Affonso-Gui Jul 7, 2021
96e9efb
(roseus_bt) Avoid extra newline after comment on eus_action_server te…
Affonso-Gui Jul 7, 2021
cc01a67
(roseus_bt) Fix bug on server_name/service_name formatting
Affonso-Gui Jul 7, 2021
bd91ddf
(roseus_bt) Search in all BehaviorTrees for server_name/service_name
Affonso-Gui Jul 7, 2021
178837f
(roseus_bt) Update target xml_filename location
Affonso-Gui Jul 7, 2021
5d1f20e
(roseus_bt) Avoid extra newlines after registering on cpp main function
Affonso-Gui Jul 7, 2021
62def67
(roseus_bt) Ensure valid package name
Affonso-Gui Jul 7, 2021
ae6f972
(roseus_bt) Use different IDs when initializing demo task with broom …
Affonso-Gui Jul 8, 2021
a6d170b
(roseus_bt) Add create_bt_tutorials executable
Affonso-Gui Jul 8, 2021
8185c92
(roseus_bt) Rename function port_node_to_message_description -> forma…
Affonso-Gui Jul 8, 2021
6988527
(roseus_bt) Add load guard in package_generator.h
Affonso-Gui Jul 8, 2021
3d38823
(roseus_bt) Only split euslisp server files for reactive conditions
Affonso-Gui Jul 8, 2021
bd7980d
(roseus_bt) Ensure newline after load_files in eus_server_template
Affonso-Gui Jul 8, 2021
9b04fed
(roseus_bt) Wait for topic message on t04_subscriber
Affonso-Gui Jul 8, 2021
b964635
(roseus_bt) Add roseus_bt.rosinstall
Affonso-Gui Jul 8, 2021
223ba01
(roseus_bt) Add README files
Affonso-Gui Jul 9, 2021
3514525
(roseus_bt) Move server_name/service_name definition to node pallete
Affonso-Gui Jul 9, 2021
9193612
(roseus_bt) Avoid pushing duplicates on collect_eus_actions/conditions
Affonso-Gui Jul 9, 2021
d765f8e
(roseus_bt) Verify the xml file syntax
Affonso-Gui Jul 9, 2021
7fdfc8c
(roseus_bt) Fix bug when dealing with multiple duplicated nodes
Affonso-Gui Jul 10, 2021
ce7c407
(roseus_bt) Add t07_xacro tutorial
Affonso-Gui Jul 10, 2021
fd6a144
(roseus_bt) Spell check README.md
Affonso-Gui Jul 10, 2021
9d8b6f4
(roseus_bt) Verify root and TreeNodesModel in check_xml_file
Affonso-Gui Jul 10, 2021
d837081
(roseus_bt) Add custom exceptions
Affonso-Gui Jul 12, 2021
983d396
(roseus_bt) Add logging
Affonso-Gui Jul 12, 2021
000bf0e
(roseus_bt) Declare template as static member variable
Affonso-Gui Jul 12, 2021
c30f683
(roseus_bt) Downgrade cmake minimum required version
Affonso-Gui Aug 13, 2021
19da1ae
(roseus_bt) Update README title case
Affonso-Gui Aug 13, 2021
01d23d4
(roseus_bt) Update .rosinstall
Affonso-Gui Aug 16, 2021
d89cb8c
(roseus_bt) Fix trailing whitespace in nodes.l
Affonso-Gui Aug 16, 2021
10a5f89
(roseus_bt) Add checks for accept-cb
Affonso-Gui Aug 16, 2021
619c513
(roseus_bt) Add additional checks for local context on global callbacks
Affonso-Gui Aug 24, 2021
78c4273
(roseus_bt) Add groupname option to condition servers
Affonso-Gui Sep 21, 2021
6e4409e
(roseus_bt) Use classes instead of macros
Affonso-Gui Sep 21, 2021
68d1c64
(roseus_bt) Call set-succeeded from the :execute-cb method
Affonso-Gui Sep 22, 2021
e3acc11
(roseus_bt) Use :is-active to evaluate ongoing requests
Affonso-Gui Sep 22, 2021
e183b97
(roseus_bt) Use trace level on verbose option
Affonso-Gui Oct 8, 2021
8165f09
(roseus_bt) Format tracing messages
Affonso-Gui Oct 8, 2021
f301ccd
(roseus_bt) Add port name to trace log
Affonso-Gui Oct 8, 2021
840ffd0
(roseus_bt) Fix fmt::format indexing in format_node_body
Affonso-Gui Oct 8, 2021
595d6ac
(roseus_bt) Add monitor-groupname for separate goal and cancel handlers
Affonso-Gui Sep 22, 2021
66c45ca
(roseus_bt) Add groupname option to condition nodes
Affonso-Gui Feb 24, 2022
b90e216
(roseus_bt) Check server connections at init time
Affonso-Gui Apr 18, 2022
35c6431
(roseus_bt) Stablish persistent connection with service client at ini…
Affonso-Gui Apr 18, 2022
4d97af3
(roseus_bt) Add sleep in sample task loop
Affonso-Gui Apr 18, 2022
d228736
(roseus_bt) Increase default spin rate
Affonso-Gui Apr 18, 2022
7aa80c0
(roseus_bt) Update RetryUntilSuccessful name
Affonso-Gui Apr 18, 2022
9df0a84
(roseus_bt) Add rosbridgecpp submodule
Affonso-Gui Apr 18, 2022
9df6585
(roseus_bt) Add eus_remote_action_node.h
Affonso-Gui Apr 18, 2022
f7ce2fb
(roseus_bt) Add EusRemoteAction generation code
Affonso-Gui Apr 18, 2022
fb5fbc4
(roseus_bt) Add t08_multimaster
Affonso-Gui Apr 18, 2022
c9bef20
(roseus_bt) Add ws_action_client base
Affonso-Gui Apr 21, 2022
21c5eac
(roseus_bt) Subscribe remote action results
Affonso-Gui Apr 21, 2022
758ba4a
(roseus_bt) Enable halting remote actions
Affonso-Gui Apr 21, 2022
b7487f2
(roseus_bt) Fix message type parameter in EusRemoteActionNode
Affonso-Gui Apr 25, 2022
6b8f1a3
(roseus_bt) Enable input and output ports in remote actions
Affonso-Gui Apr 25, 2022
9f9f956
(roseus_bt) Allow to set host_name and host_port dynamically
Affonso-Gui Apr 25, 2022
a05b2d6
(roseus_bt) Add EusRemoteCondition node
Affonso-Gui Apr 25, 2022
4ca6a27
(roseus_bt) Indent
Affonso-Gui Apr 25, 2022
2b27da3
(roseus_bt) Reduce duplicate formatting functions
Affonso-Gui Apr 25, 2022
a12f4c6
(roseus_bt) Add default file logger
Affonso-Gui Apr 25, 2022
f9fecdd
(roseus_bt) Add 'update_field_name' to set output ports once at a time
Affonso-Gui Apr 25, 2022
51ee4ea
(roseus_bt) Move #DEBUG definition to generated files
Affonso-Gui Apr 25, 2022
04d415a
(roseus_bt) Add generate_eus_remote_action_server and generate_eus_re…
Affonso-Gui Apr 25, 2022
40b413b
(roseus_bt) Split euslisp files for each host
Affonso-Gui Apr 25, 2022
0aa65c1
(roseus_bt) Enable splitting eus files in tutorials
Affonso-Gui Apr 25, 2022
fcd0179
(roseus_bt) Fix file splitting with mixed remote and local nodes
Affonso-Gui Apr 25, 2022
07a6c11
(roseus_bt) Enable non-ROS input ports in remote nodes
Affonso-Gui Apr 26, 2022
ceb4a8c
(roseus_bt) Avoid unnecessary declarations at sendGoal and sendRequest
Affonso-Gui Apr 26, 2022
358693f
(roseus_bt) Update t08_multimaster
Affonso-Gui Apr 26, 2022
94acd9e
(roseus_bt) Add submodule directory
Affonso-Gui Apr 26, 2022
be14c39
(roseus_bt) Update submodules at build time
Affonso-Gui Apr 26, 2022
c41cdd5
(roseus_bt) Add basic_types.h
Affonso-Gui Apr 27, 2022
1034ffc
(roseus_bt) Change subscriber port names
Affonso-Gui Apr 28, 2022
b231aa8
(roseus_bt) Allow to set default topic_name at Subscriber nodes
Affonso-Gui Apr 28, 2022
f4ce7dd
(roseus_bt) Add RemoteSubscriber
Affonso-Gui Apr 28, 2022
2ee5c80
(roseus_bt) Fix bug in convertFromString
Affonso-Gui Apr 28, 2022
c75d8b9
(roseus_bt) Explicitly add subscriber and subtree ports in model files
Affonso-Gui Apr 28, 2022
cf343ee
Add single-threaded resumable-action-node
Affonso-Gui Jan 6, 2022
32fa854
Add resume-cb option to resumable-action-nodes
Affonso-Gui Jan 6, 2022
aa7660a
(roseus_bt) Default action-node's preemption callback to 'signals-can…
Affonso-Gui May 27, 2022
e4820eb
(roseus_bt) Update the reactive sample code and documentation to use …
Affonso-Gui May 27, 2022
1d92d42
(roseus_bt) Fix typo in warning
Affonso-Gui May 27, 2022
ef86c00
(roseus_bt) Log and return final tree status on completion
Affonso-Gui May 27, 2022
7c15f8c
(roseus_bt) Add received_port in Subscriber nodes to differentiate re…
Affonso-Gui May 27, 2022
3e61662
(roseus_bt) Update samples to use received_port in subscribers
Affonso-Gui May 27, 2022
690c8e0
(roseus_bt) Update the subscriber documentation
Affonso-Gui May 27, 2022
11d5df3
(roseus_bt) Add more documentation on reactive nodes
Affonso-Gui May 27, 2022
a3bb9e2
(roseus_bt) Update the remote tutorial documentation
Affonso-Gui May 27, 2022
4e5c38c
(roseus_smach) Adapt to updated assoc key (see EusLisp/436)
Affonso-Gui Jun 7, 2022
c6c8305
enable to publish info, currently we publish node's function document…
k-okada Jul 20, 2022
ef9c514
support lambda function in publish info
k-okada Jul 27, 2022
87aa17f
[roseus_smach] Add :srv-name key to exec-state-machine to set server_…
tkmtnt7000 Aug 31, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule ".travis"]
path = .travis
url = https://github.com/jsk-ros-pkg/jsk_travis
[submodule "roseus_bt/include/rosbridgecpp"]
path = roseus_bt/include/rosbridgecpp
url = https://github.com/ppianpak/rosbridgecpp
2 changes: 1 addition & 1 deletion roseus/cmake/roseus.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ macro(generate_eusdoc _lispfile)
get_filename_component(_name ${_lispfile} NAME_WE)
set(_lisppath "${CMAKE_CURRENT_SOURCE_DIR}/${_lispfile}")
set(_mdfile "${_name}.md")
set(_generate_eusdoc_command "\\\"(setq lisp::*error-handler* 'exit)\\\" \\\"(load \\\\\\\"${_lisppath}\\\\\\\")\\\" \\\"(make-document \\\\\\\"${_lisppath}\\\\\\\" \\\\\\\"${_mdfile}\\\\\\\" \\\\\\\"${_pkg_name}\\\\\\\")\\\" \\\"(exit)\\\" ")
set(_generate_eusdoc_command "\\\"(install-handler error #'(lambda (c) (lisp::print-error-message c) (exit 1)))\\\" \\\"(load \\\\\\\"${_lisppath}\\\\\\\")\\\" \\\"(make-document \\\\\\\"${_lisppath}\\\\\\\" \\\\\\\"${_mdfile}\\\\\\\" \\\\\\\"${_pkg_name}\\\\\\\")\\\" \\\"(exit)\\\" ")
separate_arguments(_generate_eusdoc_command_list WINDOWS_COMMAND "${_generate_eusdoc_command}")
#set(_roseus_exe roseus)
find_program(_roseus_exe roseus)
Expand Down
78 changes: 42 additions & 36 deletions roseus/euslisp/roseus-utils.l
Original file line number Diff line number Diff line change
Expand Up @@ -6,40 +6,31 @@
(ros::roseus-add-srvs "dynamic_reconfigure")
(ros::roseus-add-msgs "dynamic_reconfigure")

(defun print-ros-msg (msg &optional (rp (find-package "ROS"))
(ro ros::object) (nest 0) (padding " "))
(defun print-ros-msg (msg &optional (strm *standard-output*) (tab 0) (padding " "))
(assert (streamp strm) (format nil "Stream Expected in: ~s~%" strm))
(dolist (s (let ((slt (send msg :slots)))
;; `s' is a list of slots unique to the msg object
;; i.e. slots present in `ro' and inherited by `msg' are filtered
(map nil #'(lambda (obj) (setq slt (remove obj slt :key #'car :count 1)))
(send ro :slots))
(send ros::object :slots))
slt))
(let ((sm (car s)))
(when (and (symbolp sm) (eq (symbol-package sm) rp))
(when (symbolp sm)
(dotimes (i tab) (format strm padding))
(format strm "~A: " (string-downcase (string-left-trim "_" (symbol-string sm))))
(cond
((derivedp (cdr s) ro)
(dotimes (i nest) (format t padding))
(format t ":~A -- ~A~%"
(string-downcase (string-left-trim "_" (symbol-string sm)))
(send (class (cdr s)) :name))
(print-ros-msg (cdr s) rp ro (1+ nest) padding))
((derivedp (cdr s) ros::object)
(terpri strm)
(print-ros-msg (cdr s) strm (1+ tab) padding))
((and (listp (cdr s))
(derivedp (cadr s) ro))
(dotimes (i nest) (format t padding))
(format t ":~A [ ~A ]~%"
(string-downcase (string-left-trim "_" (symbol-string sm)))
(send (class (cadr s)) :name))
(dotimes (i (1+ nest)) (format t padding)) (format t "[~%")
(derivedp (cadr s) ros::object))
(terpri strm)
(dolist (ss (cdr s))
(print-ros-msg ss rp ro (+ nest 2) padding))
(dotimes (i (1+ nest)) (format t padding)) (format t "]~%")
)
(dotimes (i (1+ tab)) (format strm padding))
(format strm "- ~%")
(print-ros-msg ss strm (+ tab 2) padding)))
(t
(dotimes (i nest) (format t padding))
(format t ":~A~%" (string-downcase (string-left-trim "_" (symbol-string sm))))
(dotimes (i nest) (format t padding))
(print (cdr s)))
)))))
(format strm "~S~%" (cdr s))))))))

;; Sensors
(ros::roseus-add-msgs "sensor_msgs")
Expand Down Expand Up @@ -1114,31 +1105,46 @@
(ros::service-call srvname (instance std_srvs::EmptyRequest :init))
t))

(defun one-shot-subscribe (topic-name mclass &key (timeout) (after-stamp) (unsubscribe t))
(defclass one-shot-subscribe-msg
:super propertied-object
:slots (msg-)
:documentation "The purpose of this class is to register class closures for callback function of (one-shot-subscribe). This allows the callback function to be accessed safely from anyscope. For detail, please refer to https://github.com/jsk-ros-pkg/jsk_roseus/issues/666
"
)
(defmethod one-shot-subscribe-msg
(:init () self)
(:update (msg) (setq msg- msg))
(:update-after-stamp (after-stamp msg)
(let ((st (send msg :header :stamp)))
(when (> (send st :to-sec)
(send after-stamp :to-sec))
(send self :update msg))))
(:get () msg-))

(defun one-shot-subscribe (topic-name mclass &key (timeout) (after-stamp))
"Subscribe message, just for once"
(let (lmsg)
(unless (ros::get-num-publishers topic-name)
(let ((lmsg (instance one-shot-subscribe-msg :init)))
(if (ros::get-topic-subscriber topic-name)
(progn
(ros::ros-error (format nil "There is already subscriber for ~A. If you want to use this function, please (ros::unsubscribe \"~A\")." topic-name topic-name))
(return-from one-shot-subscribe))
(cond
(after-stamp
(ros::subscribe topic-name mclass
#'(lambda (msg)
(let ((st (send msg :header :stamp)))
(when (> (send st :to-sec)
(send after-stamp :to-sec))
(setq lmsg msg))))))
#'send lmsg :update-after-stamp after-stamp))
(t
(ros::subscribe topic-name mclass
#'(lambda (msg) (setq lmsg msg))))))
#'send lmsg :update))))
(let ((finishtm (if timeout (ros::time-now))))
(when finishtm
(setq finishtm (ros::time+ finishtm (ros::time (/ timeout 1000.0)))))
(while (not (and finishtm
(< (send (ros::time- finishtm (ros::time-now)) :to-Sec) 0)))
(unix::usleep (* 50 1000))
(ros::spin-once)
(if lmsg (return))))
(if unsubscribe (ros::unsubscribe topic-name))
lmsg))
(if (send lmsg :get) (return))))
(ros::unsubscribe topic-name)
(send lmsg :get)))

(defun one-shot-publish (topic-name msg &key (wait 500) (after-stamp) (unadvertise t))
"Publish message just for once"
Expand Down
24 changes: 11 additions & 13 deletions roseus/euslisp/roseus.l
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,30 @@

(in-package "ROS")

(defun ros::roseus-sigint-handler (sig code)
(ros::ROS-WARN (format nil "ros::roseus-sigint-handler ~A" sig))
(defun ros::roseus-sigint-handler (sig)
(ros::ros-error "Received shutdown request (SIGINT)")
(exit 1))

(defun ros::roseus-error (code msg1 form &optional (msg2))
(format *error-output* "~C[1;3~Cm~A roseus-error: ~A"
#x1b (+ 1 48) *program-name* msg1)
(if msg2 (format *error-output* " ~A" msg2))
(if form (format *error-output* " in ~s" form))
(format *error-output* ", exitting...~C[0m~%" #x1b)
(exit 1))
(defun ros::roseus-error (err)
(when (send err :callstack)
(lisp::print-callstack (send err :callstack) lisp::*max-callstack-depth*))
(let ((errstr (with-output-to-string (str) (lisp::print-error-message err str))))
(ros::ros-error errstr))
(exit 1))

;; check if this process is created by roslaunch
(when (let ((arg (car (last lisp::*eustop-argument*))))
(and (>= (length arg) 7) (string= "__log:=" (subseq arg 0 7))))
(ros::ROS-INFO "install ros::roseus-sigint-handler")
(setq lisp::*exit-on-fatal-error* t)
(lisp::install-error-handler 'ros::roseus-error)
(unix:signal unix::sigint 'ros::roseus-sigint-handler)
(install-handler error 'ros::roseus-error)
(install-handler unix::sigint-received 'ros::roseus-sigint-handler)
(unix:signal unix::sighup 'ros::roseus-sigint-handler)
(defmacro user::do-until-key (&rest forms) `(while t ,@forms))
(defun user::y-or-n-p (&rest args) t))

(defun ros::roseus (name &key
(anonymous t)
(logger "ros.roseus")
(level ros::*rosinfo*)
(args lisp::*eustop-argument*))
"Register roseus client node with the master under the specified name"
Expand All @@ -54,7 +52,7 @@
(setf (elt lisp::*eustop-argument* i)
(format nil "(warning-message 1 \"ignore ~a~%\")"
(elt lisp::*eustop-argument* i)))))
(ros::set-logger-level logger level)
(ros::set-logger-level level)
)))

(setq ros::*compile-message* nil)
Expand Down
Loading