Код Arduino для python

Вам нужен фактический экземпляр WindowSettings, открытый, а не новый.

В настоящее время вы создаете новый экземпляр WindowSettings и вызываете Close. Это не делает ничего, потому что этот новый экземпляр никогда не показывался.

Вместо этого, показывая DialogSettingsCancel, установите текущий экземпляр WindowSettings в качестве родителя.

Что-то вроде это:

В WindowSettings:

private void showDialogSettings_Click(object sender, EventArgs e)
{
    var dialogSettingsCancel = new DialogSettingsCancel();
    dialogSettingsCancel.OwningWindowSettings = this;
    dialogSettingsCancel.Show();
}

В DialogSettingsCancel:

public WindowSettings OwningWindowSettings { get; set; }

private void button1_Click(object sender, EventArgs e)
{
    this.Close();
    if(OwningWindowSettings != null)
        OwningWindowSettings.Close();
}

Этот подход учитывает, что a DialogSettingsCancel потенциально может быть открыт без WindowsSettings в качестве родительского.

Если оба из них всегда подключены, вместо этого вы должны использовать параметр конструктора:

В WindowSettings:

private void showDialogSettings_Click(object sender, EventArgs e)
{
    var dialogSettingsCancel = new DialogSettingsCancel(this);
    dialogSettingsCancel.Show();
}

В DialogSettingsCancel:

WindowSettings _owningWindowSettings;

public DialogSettingsCancel(WindowSettings owningWindowSettings)
{
    if(owningWindowSettings == null)
        throw new ArgumentNullException("owningWindowSettings");

    _owningWindowSettings = owningWindowSettings;
}

private void button1_Click(object sender, EventArgs e)
{
    this.Close();
    _owningWindowSettings.Close();
}
-1
задан r3bL 13 July 2018 в 07:19
поделиться

1 ответ

Попробуйте это. Вы должны установить RPi.GPIO, если не

pip install RPi.GPIO
import RPi.GPIO as GPIO
from time import sleep

# Use on of this. (visit https://pinout.xyz/ for more details)
# GPIO.setmode(GPIO.BOARD)  # If you are using number on the board (1 --> 3.3V, 2 --> 5V)
GPIO.setmode(GPIO.BCM)    # If you are using the Broadcom numbering

A = 5
B = 6
C = 13
D = 19
E = 26


def pic():
    a = GPIO.input(A);
    b = GPIO.input(B);

    if a == GPIO.LOW and b == GPIO.LOW:
        print("something");
        GPIO.output(C, GPIO.HIGH)
        GPIO.output(D, GPIO.LOW)
        GPIO.output(E, GPIO.LOW)

    if a == GPIO.LOW and b == GPIO.HIGH:
        print("something");
        GPIO.output(C, GPIO.LOW)
        GPIO.output(D, GPIO.HIGH)
        GPIO.output(E, GPIO.LOW)

    if a == GPIO.HIGH and b == GPIO.LOW:
        print("something")
        GPIO.output(C, GPIO.LOW)
        GPIO.output(D, GPIO.HIGH)
        GPIO.output(E, GPIO.LOW)

    if a == GPIO.HIGH and b == GPIO.HIGH:
        print("something")
        GPIO.output(C, GPIO.LOW)
        GPIO.output(D, GPIO.LOW)
        GPIO.output(E, GPIO.HIGH)


GPIO.setup(A, GPIO.IN)
GPIO.setup(B, GPIO.IN)
GPIO.setup(C, GPIO.OUT)
GPIO.setup(D, GPIO.OUT)
GPIO.setup(E, GPIO.OUT)

while True:
    pic()
    sleep(100 / 1000)

Чтобы выполнить выполнение в терминале

python filename.py
0
ответ дан adn05 17 August 2018 в 13:27
поделиться
  • 1
    отлично работает, спасибо, человек, помог мне так много с этим: D – r3bL 13 July 2018 в 09:58
Другие вопросы по тегам:

Похожие вопросы: