загрузка в сценарий py, а затем окончание - PullRequest
0 голосов
/ 07 февраля 2019

Я использовал этот «инструктируемый» метод , чтобы запустить мой скрипт при загрузке, который работает нормально, но у меня нет возможности завершить программу, пока работает Pi.Я но в GUI в Raspbian.

Я попробовал модуль pygame, как описано, но ничего не происходит.

Я думаю, что должна появиться оболочка, в которой я вижу выполненную программу и ctrl + c до конца, если нужно.

У меня нет условия завершения.возможно кто-то может предложить метод?сценарий:

import RPi.GPIO as IO
import time
import random

IO.setwarnings(False)
IO.setmode(IO.BCM)
IO.setup(26, IO.OUT)
IO.setup(16, IO.OUT)
IO.setup(13, IO.OUT)
IO.setup(27, IO.OUT)
IO.setup(18, IO.OUT)
IO.setup(17, IO.OUT)
IO.setup(4, IO.IN)

def pattern1():
    (IO.output(26, True), IO.output(16, True), IO.output(27, True), IO.output(18, True), IO.output(13, False), IO.output(17, False), time.sleep(0.75), IO.output(16, True), IO.output(13, True), IO.output(18, True), IO.output(17, True), IO.output(26, False), IO.output(27, False), time.sleep(0.75), IO.output(13, True), IO.output(27, True), IO.output(17, True), IO.output(26, True), IO.output(16, False), IO.output(18, False), time.sleep(0.75))
def pattern2():
    (IO.output(26, True), IO.output(16, True), IO.output(27, True), IO.output(18, True), IO.output(13, True), IO.output(17, True), time.sleep(0.5))
def pattern_off():
    (IO.output(26, False), IO.output(16, False), IO.output(13, False), IO.output(27, False), IO.output(18, False), IO.output(17, False))
def pattern_flasher_x_3():
    (pattern_off(), time.sleep(0.5), pattern2(), time.sleep(0.5), pattern_off(), time.sleep(0.5), pattern2(), time.sleep(0.5), pattern_off(), time.sleep(0.5), pattern2(), time.sleep(0.5))

try:
    while True:
        if IO.input(4)==1:
            for i in range(50):
                pattern1()
            for i in range(1):
                pattern_flasher_x_3()
            else:
                pattern_off()
    while False:
        pattern_off()


finally:
    IO.cleanup()

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Когда у меня были скрипты, запускаемые при загрузке в Linux, и я хотел их остановить, ответом было использование команды top в терминале, чтобы найти процесс, а затем sudo kill [processnumber], чтобы остановить его.Загвоздка находит ваш процесс.Скорее всего, он будет называться Python.Как и с любой командой, использующей sudo, будьте очень осторожны - не рекомендуется убивать случайные процессы ;-).

Я бы также рекомендовал установить htop, так как интерфейс немного красивее.

Добавление выходатриггер кажется гораздо лучшим решением, если вы можете управлять им

0 голосов
/ 09 февраля 2019

Я немного огляделся и обнаружил, что наличие вспомогательного входа для запуска "выхода" работает.В то время как True и False я добавил:

if IO.input(25) == True:
    quit()
...