|
|
@@ -11,13 +11,15 @@ def on_connect(client, userdata, flags, rc):
|
|
|
|
|
|
# Subscribing in on_connect() means that if we lose the connection and
|
|
|
# reconnect then subscriptions will be renewed.
|
|
|
- client.subscribe("video/servo1")
|
|
|
+ client.subscribe("video/servo1/#")
|
|
|
|
|
|
|
|
|
# The callback for when a PUBLISH message is received from the server.
|
|
|
def on_message(client, userdata, msg):
|
|
|
print(msg.topic+" "+str(msg.payload))
|
|
|
- if msg.topic == "video/servo1":
|
|
|
+ if msg.topic == "video/servo1/restart":
|
|
|
+ restart_servos()
|
|
|
+ if msg.topic == "video/servo1/rotate":
|
|
|
servo_arg = msg.payload.split()[0]
|
|
|
try:
|
|
|
offset = int(msg.payload.split()[1])
|
|
|
@@ -84,6 +86,27 @@ def update_servo(servo, offset):
|
|
|
sleep(0.12)
|
|
|
|
|
|
|
|
|
+def restart_servos():
|
|
|
+ servoblaster = open("/dev/servoblaster", "w")
|
|
|
+ minv = 900
|
|
|
+ maxv = 1750
|
|
|
+
|
|
|
+ servo = 0
|
|
|
+ percentage = 66
|
|
|
+ filename = "/tmp/servo_%d" % servo
|
|
|
+ print("%d=%d%%" % (servo, percentage), file=servoblaster)
|
|
|
+ print(int((maxv-minv) * (percentage/100))+minv, file=open(filename, "w"))
|
|
|
+
|
|
|
+ servo = 1
|
|
|
+ percentage = 61
|
|
|
+ filename = "/tmp/servo_%d" % servo
|
|
|
+ print("%d=%d%%" % (servo, percentage), file=servoblaster)
|
|
|
+ print(int((maxv-minv) * (percentage/100))+minv, file=open(filename, "w"))
|
|
|
+
|
|
|
+ servoblaster.flush()
|
|
|
+ servoblaster.close()
|
|
|
+
|
|
|
+
|
|
|
t = threading.Thread(target=client.loop_forever)
|
|
|
t.start()
|
|
|
t.join()
|