Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/clunet.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2013-09-07 10:22:47 +0400
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2013-09-07 10:22:47 +0400
commit0606b280f33fd7ca3bf5c2c54afcc02bc9d93632 (patch)
tree173936aedee3384888704cb4bbfc296c5b77db5b /clunet.h
parentf41f2572abf7cd1a272369811be64f09294ebec2 (diff)
Converted to UTF-8
Diffstat (limited to 'clunet.h')
-rw-r--r--clunet.h110
1 files changed, 55 insertions, 55 deletions
diff --git a/clunet.h b/clunet.h
index f19145c..a774245 100644
--- a/clunet.h
+++ b/clunet.h
@@ -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);