Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.04.2013, 21:52   #11
AlexSMG95
Member
 
Регистрация: 08.04.2013
Адрес: Томск
Сообщений: 64
Вес репутации: 0
AlexSMG95 is an unknown quantity at this point
Smile

Ребят помогите с вопросом!
вообще поковырял я java и php сотворил нечто похожее
PHP код:
<html>
<
head>
    <
link rel="stylesheet" type="text/css" href="res/main.css"/>
    <
script type="text/javascript">
        var 
lastTurn = -1;
    var 
lastPress = -1;
        var 
lastPos = -1;

    function 
submitUART(uartString)
    {
     
document.getElementById('serialData').value=uartString+"\n";
        
document.getElementById('serialForm').submit()
    };
    function 
keyPressed(e)
    {
        var 
keynum
        
var keychar
        
var numcheck

        
if(window.event// IE
        
{
        
keynum e.keyCode
        
}
        else if(
e.which// Netscape/Firefox/
        
{
        
keynum e.which
        
}
        
keychar String.fromCharCode(keynum);
        if(
keychar == "w" || keychar == "ц" || keychar == "W" || keychar == "Ц"
        {
         
submitUART("w");
        }
        if(
keychar == "a" || keychar == "ф" || keychar == "A" || keychar == "Ф")
        {
            
submitUART("a");
        }
        if(
keychar == "s" || keychar == "ы" || keychar == "S" || keychar == "Ы")
        {
            
submitUART("s");
        }
        if(
keychar == "d" || keychar == "в" || keychar == "D" || keychar == "В")
        {
            
submitUART("d");
        }
        return 
true;
    };

    function 
keyUp(e)
    {
        var 
keynum
        
var keychar
        
var numcheck

        
if(window.event// IE
        
{
        
keynum e.keyCode
        
}
        else if(
e.which// Netscape/Firefox/Opera
        
{
        
keynum e.which
        
}
        
keychar String.fromCharCode(keynum);
        if(
keychar == "w" || keychar == "ц" || keychar == "W" || keychar == "Ц"
        {
            
submitUART("клавиша не зажата");
        }
        if(
keychar == "a" || keychar == "ф" || keychar == "A" || keychar == "Ф")        {
            
submitUART("клавиша не зажата");
        }
        if(
keychar == "s" || keychar == "ы" || keychar == "S" || keychar == "Ы")
        {
            
submitUART("клавиша не зажата");
        }
        if(
keychar == "d" || keychar == "в" || keychar == "D" || keychar == "В")    
        {
            
submitUART("клавиша не зажата");
        }
        return 
true;
    };
    
</script>
</head>
<body onKeyPress="return keyPressed(event)" onKeyUp="keyUp(event)">
<table>
    <tr>
        <td>
            <form id="serialForm" action="/cgi-bin/serial.cgi" method="POST" target="hidden">
                <label>Serial data:<br/>
                    <textarea id="serialData" name="SERIAL_DATA" rows="2" cols="40">TEST SERIAL</textarea>
                </label><br/>
                <input type="submit" value="Send">
            </form>
        </td>
    </tr>
</table>
<hr/>
<iframe name="hidden" src="/nothing.html" style="width: 1px;height: 1px;visibility: hidden"></iframe>
</body>
</html> 
Дак вот в чем вопрос как прикрутить дополнительные php скриптики допустим наживаю кнопку W и задействуется другой скрипт который выполняет нечто то о чем я его попрошу!
AlexSMG95 вне форума   Ответить с цитированием
Старый 13.04.2013, 11:10   #12
AlexSMG95
Member
 
Регистрация: 08.04.2013
Адрес: Томск
Сообщений: 64
Вес репутации: 0
AlexSMG95 is an unknown quantity at this point
По умолчанию

Ну может кто-нибудь ответит?
если нет придется другую тему создавать.
AlexSMG95 вне форума   Ответить с цитированием
Старый 13.04.2013, 11:22   #13
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Я могу только по кнопкам помочь
Admin вне форума   Ответить с цитированием
Старый 13.04.2013, 11:49   #14
AlexSMG95
Member
 
Регистрация: 08.04.2013
Адрес: Томск
Сообщений: 64
Вес репутации: 0
AlexSMG95 is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
Я могу только по кнопкам помочь
Вообще я разобрался как делать внедрение php в html но вот беда этот php не выполняется при условии в то время как отдельно php скрипт выполняется и притом отлично! что мне делать? вот кусочек кода где исполняется php скрипт
PHP код:
        keychar = String.fromCharCode(keynum);
        if(keychar == "w" || keychar == "ц" || keychar == "W" || keychar == "Ц") 
        {
         submitUART("w");
        <?php
               
include 'example.php';
        
?>
        }
        if(keychar == "a" || keychar == "ф" || keychar == "A" || keychar == "Ф")
        {
            submitUART("a");
        }
        if(keychar == "s" || keychar == "ы" || keychar == "S" || keychar == "Ы")
        {
            submitUART("s");
        }
        if(keychar == "d" || keychar == "в" || keychar == "D" || keychar == "В")
        {
            submitUART("d");
        }
        return true;
    };
P.S при нажатии на кнопку кнопка срабатывает но скрипт не исполняется, но при обновлении страницы (f5) скрипт срабатывает 1 раз помогите!
AlexSMG95 вне форума   Ответить с цитированием
Старый 14.04.2013, 15:10   #15
AlexSMG95
Member
 
Регистрация: 08.04.2013
Адрес: Томск
Сообщений: 64
Вес репутации: 0
AlexSMG95 is an unknown quantity at this point
По умолчанию ssh управление портом ttyACM0

Всем доброго времени суток!
Появился вопрос как остановить отправку ssh команд в порт ttyACM0
PHP код:
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; Charset=UTF-8">  
</head>
<body>
<script type="text/javascript"> 
document.onkeydown = function(e) 
    { 
    e = e || window.event;
    if (e.keyCode == 65) 
    { 
         //Отправляем 1 в ttyACM0 порт
    <?php 
            exec
('echo 1 >/dev/ttyACM0');
    
?>
    }
</script>
<script type="text/javascript"> 
document.onkeyup = function(e) 
    { 
    e = e || window.event;
    if (e.keyCode == 65) 
    { 
         // Остановить отправление ssh команд
    }
</script>
</body>
</html>
Вот мой код подскажите как это осуществить?
AlexSMG95 вне форума   Ответить с цитированием
Старый 14.04.2013, 20:09   #16
AlexSMG95
Member
 
Регистрация: 08.04.2013
Адрес: Томск
Сообщений: 64
Вес репутации: 0
AlexSMG95 is an unknown quantity at this point
По умолчанию

Вообщем ребят спасибо всем кто откликался и советовал! вот мой координально переделанный интерфейс (ну как сказать интерфейс =) окно ввода вывода нажатой кнопки =)), Вот код index.html его нужно ложить в корень сервера т.е www/index.html
Код HTML:
<html>
<head>
    <link rel="stylesheet" type="text/css" href="res/main.css"/>
    <script type="text/javascript">
        var lastTurn = -1;
	var lastPress = -1;
        var lastPos = -1;

	function submitUART(uartString)
	{
	 document.getElementById('serialData').value=uartString+"\n";
        document.getElementById('serialForm').submit()
	};

	function keyPressed(e)
	{
		var keynum
		var keychar
		var numcheck

		if(window.event) // IE
		{
		keynum = e.keyCode
		}
		else if(e.which) // Netscape/Firefox/
		{
		keynum = e.which
		}

		keychar = String.fromCharCode(keynum);
		if(keychar == "w" || keychar == "ц" || keychar == "W" || keychar == "Ц") 
		{
		 	submitUART("w");		
		}
		if(keychar == "a" || keychar == "ф" || keychar == "A" || keychar == "Ф")
		{
			submitUART("a");
		}
		if(keychar == "s" || keychar == "ы" || keychar == "S" || keychar == "Ы")
		{
			submitUART("s");
		}
		if(keychar == "d" || keychar == "в" || keychar == "D" || keychar == "В")
		{
			submitUART("d");
		}
		return true;
	};

	function keyUp(e)
	{
		var keynum
		var keychar
		var numcheck

		if(window.event) // IE
		{
		keynum = e.keyCode
	 	}
		else if(e.which) // Netscape/Firefox/Opera
		{
		keynum = e.which
		}
		keychar = String.fromCharCode(keynum);
		if(keychar == "w" || keychar == "ц" || keychar == "W" || keychar == "Ц") submitUART("клавиша не зажата");
		if(keychar == "a" || keychar == "ф" || keychar == "A" || keychar == "Ф") submitUART("клавиша не зажата");
		if(keychar == "s" || keychar == "ы" || keychar == "S" || keychar == "Ы") submitUART("клавиша не зажата");
		if(keychar == "d" || keychar == "в" || keychar == "D" || keychar == "В") submitUART("клавиша не зажата");
		return true;
	};

    </script>
</head>
<body onKeyPress="return keyPressed(event)" onKeyUp="keyUp(event)">
<table>
    <tr>
        <td>
            <form id="serialForm" action="/cgi-bin/serial.php" method="POST" target="hidden">
                <label>Serial data:<br/>
                    <textarea id="serialData" name="SERIAL_DATA" rows="2" cols="40">TEST SERIAL</textarea>
                </label><br/>
                <input type="submit" value="Send">
            </form>
        </td>
    </tr>
</table>
<hr/>
<iframe name="hidden" src="/nothing.html" style="width: 1px;height: 1px;visibility: hidden"></iframe>
</body>
</html>
Вот еще файлик serial.php непосредственно отвечающий за передачу байтов в порт /dev/ttyACM0 его нужно ложить в корень сервера т.е www/serial.php
PHP код:
<?php

$bufer 
'';
$ch=' ';
$filename "/dev/ttyACM0";      //порт
$fp fopen($filename"r+");  //открыть порт

if ($fp//если порт открыт
{
 
fwrite($fp$_GET['send_m']);  //полать в порт строку

   
while ($ch != chr(0xA)) 
   {
     
$ch fgetc($fp); //прочитать один символ из порта
     
$bufer.=$ch;
   }    
    echo 
"<br>".$bufer

fclose($fp); //закрыть порт
} else echo "Не удалось открыть порт" ;
      
?>
Громких слов говорить не буду мол сам написал, нет конечно искал исходники пробовал ковырял в итоге пришел к такому коду, могу сказать что данный index.html гибкий его можно подстроить под любые кнопки клавиатуры, и еще не все, появилась одна проблемка если если долго наживать какую либо из клавиш w,a,s,d, (т.к слушатель событий настроены на эти кнопки), то роутер перезагружается!
Я так предпологаю что скорость передачи роутера не совпадает со скоростью приема arduino. Буду благодарен если подскажете как это исправить.
AlexSMG95 вне форума   Ответить с цитированием
Старый 15.04.2013, 07:00   #17
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Посмотрите в сторону php_serial.class.php
andr128 вне форума   Ответить с цитированием
Старый 15.04.2013, 18:32   #18
AlexSMG95
Member
 
Регистрация: 08.04.2013
Адрес: Томск
Сообщений: 64
Вес репутации: 0
AlexSMG95 is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от andr128 Посмотреть сообщение
Посмотрите в сторону php_serial.class.php
Спасибо буду ковырять! Постараюсь сделать то что задумал.
если появятся идеи напишите пожалуйста.
AlexSMG95 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 08:02. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика