Двух канальный ключ.
Может кто нибудь подробнее описать как работать с ключом через PHP. Какая примерно структура должа быть базы данных.
Только встал на изучение тернистого пути php и Mysql.
Допустим я создал таблицу key. Как построить логику дальше ? Пример автора увы не очень понятен...
Двух канальный ключ
Re: Двух канальный ключ
xace, если вы имеете ввиду двухканальный 1-wire ключ, то работать с ним очень просто.
Для этого никакая база данных не нужна.
Все, что необходимо, это работающий owfs и установленный PHP.
Простейшая программа выглядит так:
Вот и все. База данных нужна для удобства использования информации, например, для создания универсального кода, когда, подключив к системе еще одно устройство, мы в БД просто добавляем запись, но не вносим никакие изменения в код. Структура БД зависит от внутренней логики системы, от используемой или неиспользуемой CMS, от личных привычек и предпочтений.
Моя структура таблицы, где заведены все исполнительные устройства
Не обращайте внимание на название таблицы, это следствие гибкости, так как и эту таблицу я создавал визуально в CMS, а не вручную.
Вот как это выглядит в CMS Вот так пока в отображается в Web-клиенте. Но набор характеристик ключа может быть иным.
Для этого никакая база данных не нужна.
Все, что необходимо, это работающий owfs и установленный PHP.
Простейшая программа выглядит так:
Код: Выделить всё
<?
// Вызываем библиотеку ownet.php. Лежать она может здесь (в версии 2.8) или в /opt/owfs/bin/ownet.php (в 2.7)
require "/opt/owfs/share/php/OWNet/ownet.php";
// Создаем объект класса OWNet. Порт указан по умолчанию 3000
$ow=new OWNet("tcp://localhost:3000");
// Считываем значение канала A. Адрес ключа, естественно свой.
$pio = $ow->get("/12.40F869000000/PIO.A");
?>
Моя структура таблицы, где заведены все исполнительные устройства
Код: Выделить всё
CREATE TABLE IF NOT EXISTS `tmp_7` (
`tmpID` int(10) unsigned NOT NULL,
`ContID` int(10) unsigned NOT NULL,
`key_addr` text,
`key_title` text,
`key_label` text,
`key_pio` tinyint(3) unsigned NOT NULL default '0',
`key_type` text,
`key_level` decimal(30,0) default NULL,
PRIMARY KEY (`tmpID`)
) ENGINE=MyISAM;
Вот как это выглядит в CMS Вот так пока в отображается в Web-клиенте. Но набор характеристик ключа может быть иным.
Re: Двух канальный ключ
Картинка для меня проясняется
А если ключ 2 канальный ?
А если ключ 2 канальный ?
Re: Двух канальный ключ
А что это меняет?
Обратите внимание, что в своей базе я оперирую не устройством целиком, а конкретными портами.
Так 2-х канальные ключи в базе у меня прописаны два раза.
Например, как на скриншоте:
12.40F869000000/PIO.A - это одна нагрузка
12.40F869000000/PIO.B - это другая нагрузка
Для работы с ключами у меня есть специальный скрипт key.php
В нем описана функция. Функцию можно вызвать из любой другой программы или же через Web-интерфейс, если обратиться к key.php напрямую.
В качестве параметров функции указываются не адреса устройств (это неудобно и неочевидно) а их символьные альясы, указанные в моей базе как Label
В зависимости от адреса устройства, функция понимает с каким типом устройств она работает. Таким образом в key.php есть обработчик для 1-wire, X-10, Ethernet-устройств.
Это удобно.
Обратите внимание, что в своей базе я оперирую не устройством целиком, а конкретными портами.
Так 2-х канальные ключи в базе у меня прописаны два раза.
Например, как на скриншоте:
12.40F869000000/PIO.A - это одна нагрузка
12.40F869000000/PIO.B - это другая нагрузка
Для работы с ключами у меня есть специальный скрипт key.php
В нем описана функция. Функцию можно вызвать из любой другой программы или же через Web-интерфейс, если обратиться к key.php напрямую.
В качестве параметров функции указываются не адреса устройств (это неудобно и неочевидно) а их символьные альясы, указанные в моей базе как Label
В зависимости от адреса устройства, функция понимает с каким типом устройств она работает. Таким образом в key.php есть обработчик для 1-wire, X-10, Ethernet-устройств.
Это удобно.
Re: Двух канальный ключ
Надо добавить еще обработчики под MiWi и CanBus, вот тогда бомба будетAndrey_B писал(а):Таким образом в key.php есть обработчик для 1-wire, X-10, Ethernet-устройств.
Это удобно.
Re: Двух канальный ключ
MiWi - интересная штука. Где бы подсмотреть примеры готовых устройств?
CanBus не знаю. Схемотехника сложнее и дороже 1-wire, особых преимуществ в доме по сравнению с Ethernet не вижу. Кто-нибудь у себя использует CAN в качестве основной шины?
А обработчик написать - дело второстепенное. Это за 10 минут можно сделать.
CanBus не знаю. Схемотехника сложнее и дороже 1-wire, особых преимуществ в доме по сравнению с Ethernet не вижу. Кто-нибудь у себя использует CAN в качестве основной шины?
А обработчик написать - дело второстепенное. Это за 10 минут можно сделать.
Re: Двух канальный ключ
Вот эти оба транспорта и хочу использовать у себя.Andrey_B писал(а):MiWi - интересная штука. Где бы подсмотреть примеры готовых устройств?
CanBus не знаю. Схемотехника сложнее и дороже 1-wire, особых преимуществ в доме по сравнению с Ethernet не вижу. Кто-нибудь у себя использует CAN в качестве основной шины?
А обработчик написать - дело второстепенное. Это за 10 минут можно сделать.
CAN драйверы ко мне уже приехали из Тритона, MIWI (MRF24J40MA-I/RM) закажу в конце июля там же.
Ловлю ВАС на слове о 10-ти минутах . Примеры подключения по интерфейсам низкого уровня наработаю - выложу.
А подключение через WEB буду рассчитывать на Ваше содействие, PHP и WEB не мой конёк
Re: Двух канальный ключ
maxxir, я был бы не против составить материал по предложенным вами технологиям
- элементная база (компоненты, схема, печатная плата)
- протоколы, фреймворки
- использование технологии в своих решениях
Относительно 10 минут - я готов, но для этого устройства должны быть у меня. Либо придется воспроизвести их, либо приобрести.
- элементная база (компоненты, схема, печатная плата)
- протоколы, фреймворки
- использование технологии в своих решениях
Относительно 10 минут - я готов, но для этого устройства должны быть у меня. Либо придется воспроизвести их, либо приобрести.