Попытка включить 4 светодиода в Arduino с YII, но он только поворачивает светодиод # 1 - PullRequest
0 голосов
/ 13 мая 2019

Я пишу код, в котором я смогу включить 4 светодиода Arduino через Wi-Fi, у меня проблема в том, что он только включает светодиод № 1, когда я пытаюсь включить светодиод № 2, яЯ проверил код, и он должен быть правильным относительно того, как он написан, но я не могу найти причину, почему он не работает

Я попытался изменить условия в if, чтобы увидеть, если онобнаруживает их, скажем, я изменяю в коде, что он должен найти контакт 5, когда он должен быть контактом 4, если я попытаюсь включить контакт № 4 с этим условием, он все равно включит контакт № 1

Примечание: если и если я изменил то, как они написаны, и все, но результат все тот же, светодиод # 1 - единственный, который включит

public function actionEncender($id,$pin)
{

   *if*($pin = 1)
   {
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '1';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDa=ON');

    return $this->redirect(['view', 'id' => $id]);
}
elseif ($pin = 2)
{
    $equipo = Equipos::find()->where(['id'=>$id])->two();
    $equipo->estado = '1';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDb=ON');

    return $this->redirect(['view', 'id' => $id]);
}

elseif ($pin = '3')
{
    $equipo = Equipos::find()->where(['id'=>$id])->three();
    $equipo->estado = '1';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDc=ON');

    return $this->redirect(['view', 'id' => $id]);
}
elseif ($pin = '4')
{
    $equipo = Equipos::find()->where(['id'=>$id])->four();
    $equipo->estado = '1';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDd=ON');

    return $this->redirect(['view', 'id' => $id]);
}
}

public function actionApagar($id, $pin)
{
if ($pin = '1')
    {
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '0';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDa=OFF');

    return $this->redirect(['view', 'id' => $id]);
}

if ($pin = '2')
{
    $equipo = Equipos::find()->where(['id'=>$id])->two();
    $equipo->estado = '0';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDb=OFF');

    return $this->redirect(['view', 'id' => $id]);
}

if ($pin = '3')
{
    $equipo = Equipos::find()->where(['id'=>$id])->three();
    $equipo->estado = '0';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDc=OFF');

    return $this->redirect(['view', 'id' => $id]);
}

if ($pin = '4')
{
    $equipo = Equipos::find()->where(['id'=>$id])->four();
    $equipo->estado = '0';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDd=OFF');

    return $this->redirect(['view', 'id' => $id]);
}
}

1 Ответ

0 голосов
/ 14 мая 2019

Я произвел рефакторинг вашего кода и исправил логические ошибки.

private function loadModel($id)
{
    $equipo = Equipos::findOne((int)$id);
    if ($equipo === null) {
        throw new \yii\web\HttpException('Pin #' . $id . ' not found');
    }

    return $equipo;
}

public function actionEncender ($id)
{
    $equipo = $this->loadModel($id);
    $equipo->estado = 1;
    if (!$equipo->save(false, ['estado'])) {
        throw new \yii\web\HttpException('Error during save estado state');
    }

    $curl = new curl\Curl();
    $response = $curl->get($equipo->ip.'/gpio/LEDa=ON');

    return $this->redirect(['view', 'id' => $id]);
}

public function actionApagar($id)
{
    $equipo = $this->loadModel($id);
    $equipo->estado = 0;
    if (!$equipo->save(false, ['estado'])) {
        throw new \yii\web\HttpException('Error during save estado state');
    }

    $curl = new curl\Curl();
    $response = $curl->get($equipo->ip.'/gpio/LEDa=OFF');


    return $this->redirect(['view', 'id' => $id]);
}
...