diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2013-09-07 10:22:47 +0400 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2013-09-07 10:22:47 +0400 |
commit | 0606b280f33fd7ca3bf5c2c54afcc02bc9d93632 (patch) | |
tree | 173936aedee3384888704cb4bbfc296c5b77db5b /clunet.h | |
parent | f41f2572abf7cd1a272369811be64f09294ebec2 (diff) |
Converted to UTF-8
Diffstat (limited to 'clunet.h')
-rw-r--r-- | clunet.h | 110 |
1 files changed, 55 insertions, 55 deletions
@@ -1,4 +1,4 @@ -/* Name: clunet.h +/* Name: clunet.h * Project: CLUNET network driver * Author: Alexey Avdyukhin * Creation Date: 2013-07-23 @@ -36,122 +36,122 @@ #define CLUNET_BROADCAST_ADDRESS 0xFF #define CLUNET_COMMAND_DISCOVERY 0x00 -/* , */ +/* Поиск других устройств, параметров нет */ #define CLUNET_COMMAND_DISCOVERY_RESPONSE 0x01 -/* , - () */ +/* Ответ устройств на поиск, в качестве параметра - название устройства (текст) */ #define CLUNET_COMMAND_BOOT_CONTROL 0x02 -/* . - . -<-0 - -->1 - -<-2 - , - -->3 , 4 - , - ( ) -<-4 -->5 */ +/* Работа с загрузчиком. Данные - субкоманда. +<-0 - загрузчик запущен +->1 - перейти в режим обновления прошивки +<-2 - подтверждение перехода, плюс два байта - размер страницы +->3 запись прошивки, 4 байта - адрес, всё остальное - данные (равные размеру страницы) +<-4 блок прошивки записан +->5 выход из режима прошивки */ #define CLUNET_COMMAND_REBOOT 0x03 -/* . */ +/* Перезагружает устройство в загрузчик. */ #define CLUNET_COMMAND_BOOT_COMPLETED 0x04 -/* , . - MCU , . */ +/* Посылается устройством после инициализации библиотеки, сообщает об успешной загрузке устройства. Параметр - содержимое MCU регистра, говорящее о причине перезагрузки. */ #define CLUNET_COMMAND_DOOR_INFO 0x05 -/* . -0 - -1 - -2 - */ +/*Информация об открытии двери. +0 - закрыта +1 - открыта +2 - тревога */ #define CLUNET_COMMAND_DEVICE_POWER_INFO_REQUEST 0x06 -/* */ +/* Запрашивает информацию о состоянии выключателей */ #define CLUNET_COMMAND_DEVICE_POWER_INFO 0x07 -/* . - . */ +/* Состояние выключателей. Параметр - битовая маска состояния выключателей. */ #define CLUNET_COMMAND_DEVICE_POWER_COMMAND 0x08 -/* / . - . 0xFE - , 0xFF - . */ +/* Включает/выключает выключатели. Параметр - битовая маска. Для света 0xFE - убавить свет, а 0xFF - прибавить. */ #define CLUNET_COMMAND_SET_TIMER 0x09 -/* . - - ( ) */ +/* Установка таймера. Параметр - кол-во секунд (два байта) */ #define CLUNET_COMMAND_RC_BUTTON_PRESSED 0x0A -/* . - , - . - 01 - (Sony ?) - 4 . -02 - . */ +/* Нажата кнопка на пульте. Первый байт - тип кода, далее - номер кнопки. +На данный момент 01 - самый популярный стандарт (Sony вроде?) длина кода кнопки - 4 байта. +02 - удержание кнопки его же. */ #define CLUNET_COMMAND_RC_BUTTON_PRESSED_RAW 0x0B -/* . 4 . 2 - 2 - 0.032 . (1/8000000*256 ) */ +/* Недекодированные данные о нажатой кнопке на пульте для нестандартных пультов. Идут пачками по 4 байта. 2 из которых - длительность сигнала и 2 - длительность его отсутствия в 0.032 долях миллисекунды. (1/8000000*256 сек) */ #define CLUNET_COMMAND_RC_BUTTON_SEND 0x0C -/* . CLUNET_COMMAND_RC_BUTTON_PRESSED, (- ), Sony ~30 */ +/* Заэмулировать кнопку пульта. Формат данных аналогичен CLUNET_COMMAND_RC_BUTTON_PRESSED, плюс в конце опциональный байт длительности удержания кнопки (кол-во дополнительных сигналов), для Sony это ~30мс */ #define CLUNET_COMMAND_RC_BUTTON_SEND_RAW 0x0D -/* . CLUNET_COMMAND_RC_BUTTON_PRESSED_RAW. */ +/* Заэмулировать кнопку пульта на основе сырых данных. Формат данных аналогичен CLUNET_COMMAND_RC_BUTTON_PRESSED_RAW. */ #define CLUNET_COMMAND_LIGHT_LEVEL 0x0E -/* . - 2 (0x0000 - 0x1FFF, 0x1FFF - 0 , 0x0000 - 5 ). */ +/* Сообщает об уровне освещения. Параметр - 2 байта (0x0000 - 0x1FFF, где 0x1FFF - 0 вольт между фотодиодом и землёй, а 0x0000 - 5 вольт). */ #define CLUNET_COMMAND_ONEWIRE_START_SEARCH 0x0F -/* 1-wire , . */ +/* Запуск поиска 1-wire устройств, данные пустые. */ #define CLUNET_COMMAND_ONEWIRE_DEVICE_FOUND 0x10 -/* 1-wire . - 8 , , CRC. */ +/* Сообщает о найденном 1-wire устройсте. Данные - 8 байт, включающие тип устройства, серийный номер и CRC. */ #define CLUNET_COMMAND_TEMPERATURE 0x11 -/* . 1 - , 6 - , 2 - ( , !) */ +/* Сообщает о температуре. 1 байт - тип устройства, 6 - серийник, 2 - температура в формате устройства (смотреть на тип, чтобы декодировать!) */ #define CLUNET_COMMAND_TIME 0x12 -/* . - , , , ( 1900), ( 0), ( 1) */ +/* Сообщает время. Шесть байт - часы, минуты, секунды, год (от 1900), месяц (от 0), день (от 1) */ #define CLUNET_COMMAND_WHEEL 0x13 -/* , - ID , - */ +/* Сообщает обороты колеса мыши, первый байт - ID колеса, далее два байта - обороты */ #define CLUNET_COMMAND_VOLTAGE 0x14 -/* , - ID , - , 0x3FF = 5.12 */ +/* Сообщает напряжение на батарейке, первый байт - ID устройства, далее два байта - вольтаж, где 0x3FF = 5.12 */ #define CLUNET_COMMAND_MOTION 0x15 -/* , , - ID / */ +/* Сообщает, что в помещении есть движение, первый байт - ID датчика/камеры */ #define CLUNET_COMMAND_INTERCOM_RING 0x16 -/* */ +/* Звонок в домофон */ #define CLUNET_COMMAND_INTERCOM_MESSAGE 0x17 -/* , 4 - */ +/* Новое сообщение на автоответчике домофона, в данных 4 байта - номер сообщения */ #define CLUNET_COMMAND_INTERCOM_MODE_REQUEST 0x18 -/* */ +/* Запрашивает режим работы домофона */ #define CLUNET_COMMAND_INTERCOM_MODE_INFO 0x19 -/* , - , - */ +/* Сообщает режим работы домофона, первый байт - постоянный режим, второй - временный */ #define CLUNET_COMMAND_INTERCOM_MODE_SET 0x1A -/* , - ( 0xFF, ), - () */ +/* Задаёт режим работы домофона, первый байт - постоянный режим (или 0xFF, чтобы не трогать), второй - временный (опционально) */ #define CLUNET_COMMAND_INTERCOM_RECORD_REQUEST 0x1B -/* , - 4 , - 1 , 1 , 0 - */ +/* Запрашивает запись у домофона, подтверждает доставку или завершает передачу + Если 4 байта, то это номер запрашиваемой записи + Если 1 байт, то 1 в случае подтверждения получения пакета, 0 - завершение передачи */ #define CLUNET_COMMAND_INTERCOM_RECORD_DATA 0x1C -/* . 4 - , 4 - , - */ +/* Передаёт кусок записи с автоответчика. Первые 4 байта - номер записи, далее 4 байта - смещение от начала файла, всё далее - данные из файла */ #define CLUNET_COMMAND_PING 0xFE -/* , , */ +/* Пинг, на эту команду устройство должно ответить следующей командой, возвратив весь буфер */ #define CLUNET_COMMAND_PING_REPLY 0xFF -/* , , */ +/* Ответ на пинг, в данных то, что было прислано в предыдущей команде */ #define CLUNET_PRIORITY_NOTICE 1 -/* 1 - , */ +/* Приоритет пакета 1 - неважное уведомление, которое вообще может быть потеряно без последствий */ #define CLUNET_PRIORITY_INFO 2 -/* 2 - - , */ +/* Приоритет пакета 2 - какая-то информация, не очень важная */ #define CLUNET_PRIORITY_MESSAGE 3 -/* 3 - - */ +/* Приоритет пакета 3 - сообщение с какой-то важной информацией */ #define CLUNET_PRIORITY_COMMAND 4 -/* 4 - , */ +/* Приоритет пакета 4 - команда, на которую нужно сразу отреагировать */ #define CLUNET_T ((F_CPU / CLUNET_TIMER_PRESCALER) / 15625) #if CLUNET_T < 8 @@ -200,20 +200,20 @@ # error CLUNET_READ_BUFFER_SIZE must be <= 255 #endif -// +// Инициализация void clunet_init(); -// +// Отправка пакета void clunet_send(unsigned char address, unsigned char prio, unsigned char command, char* data, unsigned char size); -// 0, , +// Возвращает 0, если готов к передаче, иначе приоритет текущей задачи int clunet_ready_to_send(); -// , -// - , +// Установка функций, которые вызываются при получении пакетов +// Эта - получает пакеты, которые адресованы нам void clunet_set_on_data_received(void (*f)(unsigned char src_address, unsigned char dst_address, unsigned char command, char* data, unsigned char size)); -// - , , +// А эта - абсолютно все, которые ходят по сети, включая наши void clunet_set_on_data_received_sniff(void (*f)(unsigned char src_address, unsigned char dst_address, unsigned char command, char* data, unsigned char size)); char check_crc(char* data, unsigned char size); |