Python Halt command - Raspberry Pi Forums
i looking little code have been working on. have written little control script runs on pi , allows me switch off, switch on/off service runs on lcd screen on pi, , play video. done on udp , works nicely. have been trying extend functionality can have button connected gpio 1(3) halt pi, , when halted can reboot pi, amazing. anyway when call function shutdown after udp request pi halts , can restart button press. when press button pi halts not leaves text on screen "reboot: system halted" screen stays on , can't use button restart pi.
wondering doing wrong calling function gpio event detect.
appreciated.
have 2 functions in code same thing in different ways , used testing.
here code
wondering doing wrong calling function gpio event detect.
appreciated.
have 2 functions in code same thing in different ways , used testing.
here code
code: select all
# simple script shutting down raspberry pi @ press of button. # inderpreet singh import time import os import socket import rpi.gpio gpio import subprocess udp_ip = "0.0.0.0" udp_port = 5005 gpio.setmode(gpio.bcm) gpio.setup(3, gpio.in, pull_up_down = gpio.pud_down) gpio.setup(24, gpio.in, pull_up_down = gpio.pud_up) sock = socket.socket(socket.af_inet, # internet socket.sock_dgram) # udp sock.bind((udp_ip, udp_port)) # our function on when button pressed def shutdown(*args): os.system("sudo halt") def halt(*args): subprocess.call("halt", shell=true, stdout=subprocess.pipe, stderr=subprocess.pipe) def sysinfooff(): os.system("sudo service pifacecadsysinfo stop") def sysinfoon(): os.system("sudo service pifacecadsysinfo start") def play(): os.system("omxplayer -b /home/pi/desktop/gc40.mov") def ack(): sock.sendto("ack", (addr[0], addr[1])) def fail(): sock.sendto("fail", (addr[0], addr[1])) gpio.add_event_detect(3, gpio.rising, callback=shutdown, bouncetime=300) while true: message, addr = sock.recvfrom(1024) # buffer size 1024 bytes print len(message) data = message.strip() print data if data == 'pioff': ack() shutdown() elif data =='play': ack() play() elif data =='pihalt': ack() halt() elif data == 'sysinfooff': sysinfooff() elif data == 'sysinfoon': sysinfoon() else: fail()
try changing "sudo halt" "sudo reboot"
raspberrypi
Comments
Post a Comment