jsk-ros-pkg / jsk_roseus

ROS EusLisp Client
http://wiki.ros.org/roseus/Tutorials
17 stars 56 forks source link

[roseus_smach] add flatten option for submachine search #735

Closed knorth55 closed 1 year ago

knorth55 commented 1 year ago

this PR add :flatten option roseus_smach. :nodes methods + :flatten t shows all nodes in nested submachines. :node methods + :flatten t search the node from all nodes in nesterd submachines.

Normal behavior

2.irteusgl$ (send *sm* :nodes)
(#<state #X562f116af2a8 :correct-by-leader> #<state #X562f116af260 :finish> #<state #X562f116a8968 他の客の会計> #<state #X562f116a8938 他の客の机の片付け> #<state #X562f116a88f0 会計> #<state #X562f116a88a8 机の片付け> #<state #X562f116a8878 料理提供> #<state #X562f116a8830 オーダー受け> #<state #X562f116a8800 オーダー待ち> #<state #X562f116a87b8 お冷や提供> #<state #X562f116a6748 席へのご案内> #<state #X562f116a6718 お迎え(ご案内)>)
3.irteusgl$ (send *sm* :node "「いらっしゃいませ」")
nil

Flatten option

4.irteusgl$ (send *sm* :nodes :flatten t)
(#<state #X562f116af2a8 :correct-by-leader> #<state #X562f116af260 :finish> #<state #X562f116a8968 他の客の会計> #<state #X562f116a8938 他の客の机の片付け> #<state #X562f116a88f0 会計> #<state #X562f116a88a8 机の片付け> #<state #X562f116a8878 料理提供> #<state #X562f116a8830 オーダー受け> #<state #X562f116a8800 オーダー待ち> #<state #X562f116a87b8 お冷や提供> #<state #X562f116a6748 席へのご案内> #<state #X562f116a6718 お迎え(ご案内)> #<state #X562f11692750 :correct> #<state #X562f11692708 :success> #<state #X562f11695748 「ありがとうございました」> #<state #X562f11695718 「レシートをどうぞ」> #<state #X562f116956d0 領収書の発行> #<state #X562f116ae1d0 「領収書はご利用になられますか」> #<state #X562f116ae188 「〇〇円のおかえしになります」> #<state #X562f116abef0 「〇〇円おあずかりいたします」> #<state #X562f116abea8 「合計で〇〇円になります」> #<state #X562f116abe78 金額の計算> #<state #X562f11693000 :correct> #<state #X562f11692fd0 :busy> #<state #X562f11692f88 :success> #<state #X562f11692f40 机の片付け> #<state #X562f116955e0 :correct> #<state #X562f11695598 :success> #<state #X562f11698d48 「ありがとうございました」> #<state #X562f11698d18 「レシートをどうぞ」> #<state #X562f11698cd0 領収書の発行> #<state #X562f11698c88 「領収書はご利用になられますか」> #<state #X562f11698c58 「〇〇円のおかえしになります」> #<state #X562f11698c10 「〇〇円おあずかりいたします」> #<state #X562f11698bc8 「合計で〇〇円になります」> #<state #X562f11698b98 金額の計算> #<state #X562f116925d0 :correct> #<state #X562f11692588 :busy> #<state #X562f11692558 :success> #<state #X562f11692510 机の片付け> #<state #X562f11682990 :correct> #<state #X562f11682960 :add> #<state #X562f11682918 :busy> #<state #X562f116828d0 :wrong> #<state #X562f116828a0 :success> #<state #X562f1167c290 判断:待機> #<state #X562f1167c260 判断:料理返却> #<state #X562f1167c218 「ご注文を再度確認致します」> #<state #X562f1167c1d0 判断:トレイ片付け> #<state #X562f1167c1a0 「ごゆっくりお楽しみください」> #<state #X562f1167c158 「ご注文はお揃いでしょうか?」> #<state #X562f1167c128 「お料理をお持ちいたしました」> #<state #X562f11664af8 :correct> #<state #X562f1167f5a8 :quick> #<state #X562f1167f560 :wait> #<state #X562f1167f530 :success> #<state #X562f1167f4e8 判断:待機> #<state #X562f1167f4a0 判断:メニュー片付け> #<state #X562f11664ac8 「のちほどお伺いに参ります」> #<state #X562f11664a80 「ご注文を承りました,少々お待ちください」> #<state #X562f11675470 「ご注文はカップヌードルですね.」> #<state #X562f11675440 「おすすめはカップヌードルになります」> #<state #X562f116753f8 「ご注文を承ります」> #<state #X562f1164ec40 :correct> #<state #X562f1165d0d8 :check> #<state #X562f1165d0a8 :clean> #<state #X562f1165d060 :success> #<state #X562f1165abd0 判断:会計をする> #<state #X562f1165ab88 判断:机の片付けをする> #<state #X562f1165ab58 判断:オーダーを取りに行く> #<state #X562f1165ab10 業務連絡:オーダー> #<state #X562f1165aac8 オーダー待機> #<state #X562f1165cf28 :correct> #<state #X562f116514e8 :quick> #<state #X562f116514b8 :success> #<state #X562f11651470 判断:待機> #<state #X562f11651440 判断:トレイ片付け> #<state #X562f116513f8 「のちほどお伺いに参ります」> #<state #X562f116513b0 判断:オーダー> #<state #X562f11651380 「お冷やをどうぞ」> #<state #X562f11651338 お冷やを準備する> #<state #X562f1164eb08 :correct> #<state #X562f11653e70 :quick> #<state #X562f11653e28 :success> #<state #X562f11653df8 判断:待機> #<state #X562f1164ead8 「おすすめはカップヌードルになります」> #<state #X562f1164ea90 「メニューをどうぞ」> #<state #X562f1164ea48 「こちらの席へどうぞ」> #<state #X562f1163f9d8 :correct> #<state #X562f1163f9a8 :success> #<state #X562f1163f960 「申し訳ありませんがお待ちください」> #<state #X562f1163f930 「少々お待ちください」> #<state #X562f1163f8e8 机を片付ける> #<state #X562f1163f8a0 「お席にご案内します」> #<state #X562f1163f870 判断:机が片付いているか確認する> #<state #X562f1163f828 「おタバコは吸われますか?」> #<state #X562f1163f7e0 「お客様は何名様ですか?」> #<state #X562f11642b70 判断:机を確認する> #<state #X562f11642b40 「いらっしゃいませ」>)
5.irteusgl$ (send *sm* :node "「いらっしゃいませ」" :flatten t)
#<state #X562f11642b40 「いらっしゃいませ」>