рдореИрдВ rosrun рдХрдорд╛рдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдзреБрди рдмрдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
rosrun mavros mavcmd 258 0 0 0 0 0 0 0
рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреМрди рд╕реЗ рдкреИрд░рд╛ рднреЗрдЬрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ?
рдЖрд░рдУрдПрд╕: рдореЗрд▓реЛрдбрд┐рдХ
рдЙрдмрдВрдЯреВ: 16.04
[ ] рдЕрд░реНрджреБрдкрд╛рдпрд▓рдЯ
[рдПрдХреНрд╕] рдкреАрдПрдХреНрд╕рек
рд╕рдВрд╕реНрдХрд░рдг: 3.7.1
MAV_CMD рдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреЛрдИ рдЖрджреЗрд╢ рдирд╣реАрдВ рд╣реИред
рдЕрдЧрд░ рдЖрдк PLAY_TUNE рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рд╢реБрд░реБрдЖрддреА рдкреНрд░рд╢реНрди: рдЕрдм рдЬрдм рдкреНрд▓рдЧрдЗрди рдореМрдЬреВрдж рд╣реИ ( рдпрд╣ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рджреЗрдЦреЗрдВ - рдзрдиреНрдпрд╡рд╛рдж @mortenfyhn) рдорд╛рд╡рд░реЛрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдзреБрди рдмрдЬрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕реАрдзрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
рдореИрдВ Pixhawk1 рдкрд░ ROS noetic, Ubuntu 20.04, ArduSub 4.0.2 рдкрд░ рд╣реВрдВред рдЬрдм рдкрд┐рдХреНрд╕рд╣реЙрдХ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдмрдЬрд░ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдмрдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ред
рдореИрдВ рдкреНрд░рдпрд╛рд╕ рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВ
roslaunch mavros apm.launch fcu_url:=udp://:[email protected]:14549
рдФрд░ рдЬрдм рдореИрдВ рдХрд░рддрд╛ рд╣реВрдБ
rostopic echo /mavros/state
рдпрд╣ рдирд┐рдпрдорд┐рдд рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкреВрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдБ
rostopic pub -1 /mavros/play_tune mavros_msgs/PlayTuneV2 "format: 2 tune: '>e16e8e16r16c16e8g4<g4'"
рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреБрдирд┐рдпрд╛рджреА рдХрджрдо рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕реВрдЪрдХ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред рдореИрдВ рдЕрднреА рднреА рд╕реАрдЦ рд░рд╣рд╛ рд╣реВрдБред
рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ, рдЖрдк рдЬреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╕рд┐рд░реНрдл play_tune рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдЖрдк рдорд╛рд╡рд░реЛрд╕ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдкреНрд▓рдЧрдЗрди рд▓реЛрдб/рдмреНрд▓реИрдХ рд▓рд┐рд╕реНрдЯреЗрдб/рд╕рдорд╛рди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдПрдХ рд▓рдВрдмреА рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ? рдпрд╣ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕рдХреНрд╖рдо рд╣реИрдВред рдЖрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ play_tune
рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд▓рдЧрдЗрди apm_pluginlists.yaml
рдЬреЛ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ apm.launch
ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж рдЖрдкрдХреЗ рд╢реАрдШреНрд░ рдкреНрд░рддрд┐рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП!
рд╣рд╛рдБ, рдореБрдЭреЗ рдорд┐рд▓рддрд╛ рд╣реИ
[ INFO] [1620733606.153262125]: Plugin play_tune loaded
[ INFO] [1620733606.155413105]: Plugin play_tune initialized
apm_pluginlists.yaml
рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
plugin_blacklist:
# common
- actuator_control
- ftp
- safety_area
- hil
# extras
- altitude
- debug_value
- image_pub
- px4flow
- vibration
- vision_speed_estimate
- wheel_odometry
plugin_whitelist: []
#- 'sys_*'
рдЕрдЬреАрдм рд╣реИ рдХрд┐ред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ QGroundControl рдпрд╛ рдРрд╕рд╛ рд╣реА рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдЖрдк рдорд╛рд╡рд▓рд┐рдВрдХ PLAY_TUNE_V2 рд╕рдВрджреЗрд╢ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЗрд╕рдХреЗ "рдорд╛рд╡рд▓рд┐рдВрдХ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рд░рдЦрд░рдЦрд╛рд╡ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдУрд╣, рджрд┐рд▓рдЪрд╕реНрдк, рдпрд╣ QGC рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрд╣рд▓реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ ArduSub рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИред
рдУрд╣ рдФрд░ рдЖрдкрдХреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж :-)
рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХреНрдпреВрдЬреАрд╕реА рдореЗрдВ рддрдм рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛ рдЬрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рд╕реАрдзреЗ рдкрд┐рдХреНрд╕рд╣реЙрдХ рдХреЛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкрд┐рдХреНрд╕рд╣реЙрдХ рдЗрд╕реЗ рдХреНрдпреВрдЬреАрд╕реА рдХреЛ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
@mortenfyhn PLAY_TUNE FCU рд▓рд┐рдВрдХ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ GCS рдкрд░ рджреЗрдЦрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдлрд░реНрдорд╡реЗрдпрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд░реВрдЯ рдХрд░рддрд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЙрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдорд╛рд╡рд░реЛрд╕ v1 рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдЖрдк рдкреИрдХреЗрдЯ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдлрд╕реАрдпреВ рдФрд░ рдПрдордПрд╡реАрдЖрд░рдУрдПрд╕ рдХреЗ рдмреАрдЪ рдХреБрдЫ рдбрд╛рд▓рддреЗ рд╣реИрдВред
рд╣рдореНрдо, рдЖрдк рдбреЗрдЯрд╛ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Wireshark рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ)ред
рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдо рдУрдкрдирд╕реЛрд░реНрд╕ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ ArduSub рдЙрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ :)
рдФрд░:
рдФрд░:
рддреЛ: рдкрд░рд┐рд╡рд╛рд░ рдХрд▓реНрдпрд╛рдг PLAY_TUNE рдЪрд╛рд╣рддрд╛ рд╣реИ, рдкреНрд▓рдЧрдЗрди PLAY_TUNE_V2 рднреЗрдЬрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдкреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрджреЗрд╢ рдЪрдпрди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ (рд╢реБрд░реБрдЖрддреА-рдЕрдиреБрдХреВрд▓) рддрд░реАрдХрд╛ рд╣реИ?
рдХреНрдпрд╛ рдореИрдВ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рд╕реНрдерд╛рди рдХрд╣рд╛рдБ рд╣реЛрдЧрд╛?
рдореИрдВ рд╢рд╛рдпрдж рд╕рд╛рджреЗ PLAY_TUNE рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред @vooon , рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдиреАрддрд┐ рдХреНрдпрд╛ рд╣реИ? рдореИрдВ рдПрдХ рдирдпрд╛ рдЧреНрд░рд╛рд╣рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд▓рдЪрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдкрдврд╝рддрд╛ рд╣реИ ~play_tune
рд▓рд┐рдП mavros_msgs/PlayTune -> mavlink PLAY_TUNE, рдФрд░ ~play_tune_v2
рд▓рд┐рдП mavros_msgs/PlayTuneV2 -> mavlink PLAY_TUNE_V2. рд▓реЗрдХрд┐рди рдпрд╣ рдкреБрд░рд╛рдиреЗ рдПрдкреАрдЖрдИ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛, рдЬреЛ v2 рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП ~play_tune
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдореИрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ ~play_tune
рдкрд░ v1 рдпрд╛ v2 рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд╡рд▓рд┐рдВрдХ рд╕рдВрджреЗрд╢ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реВрдВрдЧрд╛ред
@mortenfyhn рдЪреВрдВрдХрд┐ рд╣рдо 1.0 рдЪрд░рдг рдореЗрдВ рд╣реИрдВ, рдореИрдВ рдореМрдЬреВрджрд╛ рдПрдкреАрдЖрдИ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрджреЗрд╢ рдХреЗ рдЪреБрдбрд╝реИрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкрд░рдо рдкреНрд▓рд╕ рдбрд┐рдЯреЗрдХреНрд╢рди рдЬреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред
рдРрд╕рд╛ рдХреБрдЫ:
void connection_cb() {
int new_ver = 0
if (nh.getParam("message_version", new_ver) {
// check 1 vs 2
}
if (new_ver == 0) {
new_ver = m_uas->is_ardupilotmega() ? 1 : 2;
}
message_version = new_ver;
}
@mortenfyhn рдЪреВрдВрдХрд┐ рд╣рдо 1.0 рдЪрд░рдг рдореЗрдВ рд╣реИрдВ, рдореИрдВ рдореМрдЬреВрджрд╛ рдПрдкреАрдЖрдИ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред
:+1:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ, рдореИрдВ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХрд░реВрдБрдЧрд╛:
m_uas->is_ardupilotmega() == true
, рддреЛ v1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрд╣рд╛рдВ, рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 0 == рдСрдЯреЛ (рдПрдкреАрдПрдо рдХреЗ рд▓рд┐рдП v1/рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП v2) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдареАрдХ рд╣реИред
рдЖрд╣, рд╕рд╛рде рд╣реА, рд╣рдореЗрдВ рдХреЗрд╡рд▓ PlayTuneV2.msg рдХреЛ PLAY_TUNE рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрд╕ рдкреНрд░рд╛рд░реВрдк рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ == рдПрдордПрдордПрд▓ (рдПрдкреАрдПрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди), рдлрд┐рд░ рдРрд╕рд╛ рдХреБрдЫ рдХрд░реЗрдВ (рдЫрджреНрдо рдХреЛрдб):
```
PLAY_TUNE рдкреАрдЯреА{};
рдорд╛рд╡рд▓рд┐рдВрдХ :: рд╕реЗрдЯ_рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдкреАрдЯреА рдЯреНрдпреВрди, рдЯреНрдпреВрди-> рдЯреНрдпреВрди);
рдорд╛рд╡рд▓рд┐рдВрдХ :: set_string_z (pt.tune2, рдЯреНрдпреВрди-> рдЯреНрдпреВрди [pt.tune.size():]);
``