Bladeren bron

add restart support

David 8 jaren geleden
bovenliggende
commit
3ec798cd1c
1 gewijzigde bestanden met toevoegingen van 25 en 2 verwijderingen
  1. 25 2
      camera1/rotate-servo.py

+ 25 - 2
camera1/rotate-servo.py

@@ -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()