Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie przycisków w pętli wraz z funkcją dla każdego przycisku z osobna
Forum PHP.pl > Forum > PHP
sierpa
Witam serdecznie (to mój pierwszy post) smile.gif)

Postanowiłem popełnić mały sterownik do terrarium oparty o raspberry PI . W pierwszej kolejności wziąłem się za oświetlenie LED.

Pierwsza część panelu działa (włączenie, wyłączenie dla koloru z osobna);
Raspberry posiada bibliotekę umożliwiającą sterowanie PWM z dowolnego pinu malinki.
Można uruchomić polecenie z terminala np. pigs p 16 100. Chciałem sterować zdalnie w/w funkcjonalnością.
Problem mam z dalszą częścią kodu.

Numery pinów oraz wartości wstawiłem do tablic:

$pin=ARRAY(16, 20, 21);
$jasnosc=ARRAY(0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250);

I mam dwie koncepcje:
Pierwsza:
1.
przy każdorazowym kliknięciu na dany button +/- 10 % wartość świecenia diody zmienia się z osobna dla każdego koloru. - Czy to jest w ogóle wykonalne? jak zrobić pętlę dla 3 buttonów? każdy kolor z osobna?questionmark.gif

wersja nr 2 w tym momencie poglądowo:


Czyli dla każdej wartości osobny button - łącznie 3x 10 buttonów.

Chciałem buttony wygenerować w pętli ze zmiennymi odnośnie pinów i jasności ale nie działa mi to.

for( $i = 0; $i <= 2; $i++ )
{
for( $j = 0; $j <= 10; $j++ )
{
echo " pigs p $pin[$i] $jasnosc[$j] <br>"; // echo podane testowo do sprawdzenia czy generuje mi poprawnie wartości , wszystkie wartości z tablicy jasność dla każdego elementu z tablicy pin

W jaki sposób mam teraz zrobić by do wygenerowanych w pętli wartości z tablic mogły być przyporządkowane buttony questionmark.gif?


echo '<form action="index2.php" method=post class="centruj">

<fieldset style="width:100px">
<legend>Zmiana tonu +10%</legend>
<button class="sciemniacz2"> + </button>
<input name="stan" value="'.$stan.'" type="hidden">
</fieldset>
</form>';



Widzę też jakąś nadzieję w metodzie submit:

<input type="submit" name="test1" value="akcja1">

gdzie potem wskazuję skrypt do wykonania dla pojedynczego submita - tylko że tu nie ma żadnej pętli i trzeba klepać z palca 30X to samo

if( isset($_POST['test1']) ){

shell_exec ('pigs p 20 100'); <- zależy mi na tym by dla każdego buttona były inne wartości polecenia shell_exec

}

Proszę o pomoc, mam nadzieję, iż naświetliłem problem.
luniak
JA tu widzę inny problem narazie (pętle i skrypt to pikuś)
Ale nie podałeś czy skrypt "wie" jaka jest aktualna jasność smile.gif Więc nei da się zrobić + / - x
Przy takiej ilosci danych dało by się co najwyżej zrobić 3 kolumy po 11 przycisków.

  1. $colors = array(16=>"Red",20=>"Green",21=>"Blue");
  2. $pin=ARRAY(16, 20, 21);
  3. $jasnosc=ARRAY(0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250);
  4.  
  5. if(isset($_GET["setLight"])){
  6. $p = explode(";",$_GET["setLight"]);
  7. if(isset($colors[$p[0]]) && in_array($p[1],$jasnosc)){
  8. echo 'Executing: "shell_exec (\'pigs p '.$p[0].' '.$p[1].'\');"';
  9. //shell_exec ('pigs p '.$p[0].' '.$p[1].'');
  10. }
  11. }
  12.  
  13. echo '<form><table><tr>';
  14. foreach($colors as $p=> $c){
  15. echo '<td style="border: 1px solid black; margin: 10px; padding: 10px;">Color: '.$c.'<br />';
  16. foreach($jasnosc as $b => $v){
  17. echo '<button type="submit" value="'.$p.';'.$v.'" name="setLight">'.($b*10).'%</button><br />';
  18. }
  19. echo '</td>';
  20. }
  21. echo '</tr></table></form>';
  22.  

Działająca wersja: http://gameshub.eu/forumphp.php [oczywiście exec się nei wykonuje wink.gif ]


A jak to sobie ostylujesz to już Twoja sprawa smile.gif

Jeżeli byś miał metodę pobieranai aktualnej janość można by pokombinować i dodać te +/- 10% smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.