这是我的代码:
导入创建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,…
playSongNumber 检查歌曲当前是否正在播放,并且在完成第一首歌曲播放之前它将忽略新歌曲。您可以通过轮询来检查歌曲是否完成 song-playing? 传感器(编号37)。
playSongNumber
song-playing?
Create open interface document位于:
http://www.irobot.com/filelibrary/pdfs/hrd/create/create%20open%20interface_v2.pdf
从该文件:
播放歌曲 此命令允许您选择a 使用歌曲添加到iRobot创建的歌曲播放的歌曲 命令。您必须使用乐曲将一首或多首歌曲添加到“创建” 命令以使Play命令起作用。此外,这个命令也可以 如果一首歌已在播放,则无效。等到当前正在播放 歌曲在发送此命令之前完成。请注意,“on on playing”传感器数据包可用于检查Create是否已准备好接受 这个命令。 歌曲播放 数据包ID:37数据字节:1个无符号 OI的状态 歌曲播放器被退回。 1 =正在播放的OI歌曲; 0 = OI歌曲 不玩。
播放歌曲
此命令允许您选择a 使用歌曲添加到iRobot创建的歌曲播放的歌曲 命令。您必须使用乐曲将一首或多首歌曲添加到“创建” 命令以使Play命令起作用。此外,这个命令也可以 如果一首歌已在播放,则无效。等到当前正在播放 歌曲在发送此命令之前完成。请注意,“on on playing”传感器数据包可用于检查Create是否已准备好接受 这个命令。
歌曲播放
数据包ID:37数据字节:1个无符号
OI的状态 歌曲播放器被退回。 1 =正在播放的OI歌曲; 0 = OI歌曲 不玩。
没有看到任何文档或源代码,这是一个疯狂的猜测,但是,r
我敢打赌 playSongNumber 函数只是发送机器人播放命令,而不是等待它完成,当你发送一个播放命令时,它已经播放了一些东西,它会忽略你。
如果我是对的,那么希望API提供一些等待它完成的方法。如果它没有提供,但它确实提供了一种轮询当前状态的方法,你可以在一个循环(在每次检查之间短暂睡眠)中完成,直到它完成。如果它甚至没有提供,那么你必须通过计算音符的数量(或添加持续时间,如果每个对中的一个数字是一个持续时间)来计算歌曲将花费多长时间并且睡觉长。