AskSin++
Defines.h
1 //- -----------------------------------------------------------------------------------------------------------------------
2 // AskSin driver implementation
3 // 2013-08-03 <trilu@gmx.de>, <dirk@hfma.de> Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
4 //- -----------------------------------------------------------------------------------------------------------------------
5 
6 #ifndef _DEFINES_H
7  #define _DEFINES_H
8 
9  #define AS_RESET 1
10  #define AS_RESET_CLEAR_EEPROM 2
11 
12  // Register list0 values
13  #define AS_REG_L0_INTERNAL_KEYS_VISIBLE 0x02
14  #define AS_REG_L0_HMKEY_1 0x0A
15  #define AS_REG_L0_HMKEY_2 0x0B
16  #define AS_REG_L0_HMKEY_3 0x0C
17  #define AS_REG_L0_CONF_BUTTON_TIME 0x15
18  #define AS_REG_L0_LOCAL_RESET_DISABLE 0x18
19 
20  // Register list1 values
21  #define AS_REG_L1_AES_ACTIVE 0x08
22  #define AS_REG_L1_TRANSMIT_TRY_MAX 0x30
23  #define AS_REG_L1_STATUSINFO_MINDELAY 0x57
24  #define AS_REG_L1_REFERENCE_RUNNING_TIME_TOP_BOTTOM 0x0B
25  #define AS_REG_L1_REFERENCE_RUNNING_TIME_BOTTOM_TOP 0x0D
26  #define AS_REG_L1_CHANGE_OVER_DELAY 0x0F
27  #define AS_REG_L1_REFERENCE_RUN_COUNTER 0x10
28 
29  // Byte 2: communication bit field
30  #define AS_WAKEUP 0x01
31  #define AS_WAKE_ME_UP 0x02
32  #define AS_BROADCAST 0x04
33 // #define AS_UNKNOWN 0x08
34  #define AS_BURST 0x10
35  #define AS_ACK_REQ 0x20
36  #define AS_REPEATED_MSG 0x40
37  #define AS_MESSAGE_TO_MASTER 0x80
38 
39  // Byte 3: message types
40  #define AS_MESSAGE_DEVINFO 0x00
41  #define AS_MESSAGE_CONFIG 0x01 // signed answer needed on request
42  #define AS_MESSAGE_RESPONSE 0x02 // signed answer needed if byte 10 = AS_RESPONSE_AES_CHALLANGE
43  #define AS_MESSAGE_RESPONSE_AES 0x03 // signed answer needed
44  #define AS_MESSAGE_KEY_EXCHANGE 0x04 // signed answer needed
45  #define AS_MESSAGE_INFO 0x10
46  #define AS_MESSAGE_ACTION 0x11 // signed answer needed on request
47  #define AS_MESSAGE_HAVE_DATA 0x12
48  #define AS_MESSAGE_SWITCH_EVENT 0x3E // signed answer needed on request
49  #define AS_MESSAGE_TIMESTAMP 0x3F // signed answer needed on request
50  #define AS_MESSAGE_REMOTE_EVENT 0x40 // signed answer needed on request
51  #define AS_MESSAGE_SENSOR_EVENT 0x41 // signed answer needed on request
52  #define AS_MESSAGE_SENSOR_DATA 0x53 // signed answer needed on request
53  #define AS_MESSAGE_CLIMATE_EVENT 0x58
54  #define AS_MESSAGE_CLIMATECTRL_EVENT 0x5A
55  #define AS_MESSAGE_POWER_EVENT_CYCLIC 0x5E
56  #define AS_MESSAGE_POWER_EVENT 0x5F
57  #define AS_MESSAGE_WEATHER_EVENT 0x70
58 
59  // Byte 11: config values
60  #define AS_CONFIG_PEER_ADD 0x01
61  #define AS_CONFIG_PEER_REMOVE 0x02
62  #define AS_CONFIG_PEER_LIST_REQ 0x03
63  #define AS_CONFIG_PARAM_REQ 0x04
64  #define AS_CONFIG_START 0x05
65  #define AS_CONFIG_END 0x06
66  #define AS_CONFIG_WRITE_INDEX 0x08
67  #define AS_CONFIG_SERIAL_REQ 0x09
68  #define AS_CONFIG_PAIR_SERIAL 0x0A
69  #define AS_CONFIG_STATUS_REQUEST 0x0E
70 
71  // Byte 10: response values
72  #define AS_RESPONSE_ACK 0x00
73  #define AS_RESPONSE_ACK_STATUS 0x01
74  #define AS_RESPONSE_ACK2 0x02
75  #define AS_RESPONSE_AES_CHALLANGE 0x04
76  #define AS_RESPONSE_NACK 0x80
77  #define AS_RESPONSE_NACK_TARGET_INVALID 0x84
78 
79  // Byte 10: info values
80  #define AS_INFO_SERIAL 0x00
81  #define AS_INFO_PEER_LIST 0x01
82  #define AS_INFO_PARAM_RESPONSE_PAIRS 0x02
83  #define AS_INFO_PARAM_RESPONSE_SEQ 0x03
84  #define AS_INFO_PARAMETER_CHANGE 0x04
85  #define AS_INFO_ACTUATOR_STATUS 0x06
86  #define AS_INFO_RT_STATUS 0x0A
87 
88  // Byte 10: action values
89  #define AS_ACTION_INHIBIT_OFF 0x00
90  #define AS_ACTION_INHIBIT_ON 0x01
91  #define AS_ACTION_SET 0x02
92  #define AS_ACTION_STOP_CHANGE 0x03
93  #define AS_ACTION_RESET 0x04
94  #define AS_ACTION_COMMAND 0x80
95  #define AS_ACTION_COMMAND_EOT 0x03
96  #define AS_ACTION_COMMAND_EOL 0x0A
97  #define AS_ACTION_LEDALL 0x81
98  #define AS_ACTION_LEVEL 0x81
99  #define AS_ACTION_SLEEPMODE 0x82
100  #define AS_ACTION_ENTER_BOOTLOADER 0xCA
101 
102  #define AS_BUTTON_BYTE_KEY_BITS 0b00111111
103  #define AS_BUTTON_BYTE_LONGPRESS_BIT 0b01000000
104  #define AS_BUTTON_BYTE_LOWBAT_BIT 0b10000000
105 
106  #define AS_STATUS_KEYCHANGE_INACTIVE 0xFF
107  #define AS_STATUS_KEYCHANGE_ACTIVE1 0x00
108  #define AS_STATUS_KEYCHANGE_ACTIVE2 0x08
109 #endif