Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python iRobot创建-播放两首歌曲_Python_Robotics_Robot_Mobile Robots - Fatal编程技术网

Python iRobot创建-播放两首歌曲

Python iRobot创建-播放两首歌曲,python,robotics,robot,mobile-robots,Python,Robotics,Robot,Mobile Robots,这是我的密码: import create robot = create.Create(3) robot.toFullMode() robot.setSong(0,[(36,16),(36,16),(38,32),(36,32),(53,32),(52,32),\ (36,16),(36,16),(38,32),(36,32),(55,32),(41,32),\ (36,16),(36,16),(48,32),(33,32)]) robot.setSong(1,[(53,32),(40

这是我的密码:

import create 
robot = create.Create(3) 
robot.toFullMode()

robot.setSong(0,[(36,16),(36,16),(38,32),(36,32),(53,32),(52,32),\
(36,16),(36,16),(38,32),(36,32),(55,32),(41,32),\
(36,16),(36,16),(48,32),(33,32)]) 

robot.setSong(1,[(53,32),(40,32),(38,32),(34,16),(34,16),\
(33,32),(41,32),(43,32),(41,32)])  

robot.playSongNumber(0)
robot.playSongNumber(1) 
第一首歌开始播放,但第二首不会…你知道为什么吗?
这是使用iRobot create:

create.py
Python接口编写的,没有看到任何文档或源代码,这是一个猜测,但是

我敢打赌,
playSongNumber
函数只向机器人发送播放命令,而不等待它完成,当你在它已经播放某些内容时向它发送播放命令时,它会忽略你


如果我是对的,那么希望API提供了一些等待完成的方法。如果它没有提供,但它确实提供了一种轮询当前状态的方法,那么您可以在循环中这样做(在每次检查之间短暂休眠),直到完成为止。如果它甚至没有提供,那么你必须通过计算音符的数量(或者加上持续时间,如果每个音符对中的一个数字是持续时间)并睡眠那么长来计算歌曲需要多长时间。

playSongNumber
检查歌曲当前是否正在播放,它将忽略新歌,直到第一首歌播放完毕。您可以通过轮询
歌曲播放?
传感器(编号37)来检查歌曲是否播放完毕

创建开放接口文档位于以下位置:

从该文件中:

播放歌曲

此命令允许您选择一个 从使用歌曲添加到iRobot Create的歌曲中播放的歌曲 指挥部。必须添加一首或多首歌曲才能使用歌曲创建 命令,以便播放命令工作。此外,此命令不执行 如果已播放歌曲,则不起作用。等待当前正在播放的视频 在发送此命令之前,已完成song。请注意,“歌曲播放” 传感器数据包可用于检查Create是否准备接受 这个命令

歌曲演奏

数据包ID:37数据字节:1个无符号

世界卫生组织的状况 返回歌曲播放器。1=当前播放的爱歌;0=爱松 不玩


是否有关于API的公共文档或库的开源代码?如果是这样的话,如果你在你的问题上添加链接会有所帮助。(如果不是的话,只是把这个事实放在问题中是有用的。)是的,很抱歉这个非常模糊的问题。你的回答解决了我的问题,谢谢。