40 lines
984 B
Python
40 lines
984 B
Python
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import sys
|
|
import qi
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="Get or set a NAO robot's volume.")
|
|
parser.add_argument("--ip", required=True, help="NAO IP address")
|
|
parser.add_argument("--port", type=int, default=9559, help="NAOqi port (default: 9559)")
|
|
parser.add_argument(
|
|
"--set",
|
|
type=int,
|
|
metavar="VOLUME",
|
|
help="Set volume (0-100)"
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
try:
|
|
session = qi.Session()
|
|
session.connect(f"tcp://{args.ip}:{args.port}")
|
|
except RuntimeError as e:
|
|
print(f"Failed to connect: {e}", file=sys.stderr)
|
|
sys.exit(1)
|
|
|
|
audio = session.service("ALAudioDevice")
|
|
|
|
if args.set is not None:
|
|
volume = max(0, min(100, args.set))
|
|
audio.setOutputVolume(volume)
|
|
print(f"Volume set to {volume}%")
|
|
|
|
print(f"Current volume: {audio.getOutputVolume()}%")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|