1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
# -*- encoding: utf-8 -*-
from __future__ import print_function, unicode_literals, division, absolute_import
from enum import IntEnum
# EnOceanSerialProtocol3.pdf / 12
class PACKET(IntEnum):
RESERVED = 0x00
# RADIO == RADIO_ERP1
# Kept for backwards compatibility reasons, for example custom packet
# generation shouldn't be affected...
RADIO = 0x01
RADIO_ERP1 = 0x01
RESPONSE = 0x02
RADIO_SUB_TEL = 0x03
EVENT = 0x04
COMMON_COMMAND = 0x05
SMART_ACK_COMMAND = 0x06
REMOTE_MAN_COMMAND = 0x07
RADIO_MESSAGE = 0x09
# RADIO_ADVANCED == RADIO_ERP2
# Kept for backwards compatibility reasons
RADIO_ADVANCED = 0x0A
RADIO_ERP2 = 0x0A
RADIO_802_15_4 = 0x10
COMMAND_2_4 = 0x11
# EnOceanSerialProtocol3.pdf / 18
class RETURN_CODE(IntEnum):
OK = 0x00
ERROR = 0x01
NOT_SUPPORTED = 0x02
WRONG_PARAM = 0x03
OPERATION_DENIED = 0x04
# EnOceanSerialProtocol3.pdf / 20
class EVENT_CODE(IntEnum):
SA_RECLAIM_NOT_SUCCESFUL = 0x01
SA_CONFIRM_LEARN = 0x02
SA_LEARN_ACK = 0x03
CO_READY = 0x04
CO_EVENT_SECUREDEVICES = 0x05
# EnOcean_Equipment_Profiles_EEP_V2.61_public.pdf / 8
class RORG(IntEnum):
UNDEFINED = 0x00
RPS = 0xF6
BS1 = 0xD5
BS4 = 0xA5
VLD = 0xD2
MSC = 0xD1
ADT = 0xA6
SM_LRN_REQ = 0xC6
SM_LRN_ANS = 0xC7
SM_REC = 0xA7
SYS_EX = 0xC5
SEC = 0x30
SEC_ENCAPS = 0x31
UTE = 0xD4
# Results for message parsing
class PARSE_RESULT(IntEnum):
OK = 0x00
INCOMPLETE = 0x01
CRC_MISMATCH = 0x03
# Data byte indexing
# Starts from the end, so works on messages of all length.
class DB0(object):
BIT_0 = -1
BIT_1 = -2
BIT_2 = -3
BIT_3 = -4
BIT_4 = -5
BIT_5 = -6
BIT_6 = -7
BIT_7 = -8
class DB1(object):
BIT_0 = -9
BIT_1 = -10
BIT_2 = -11
BIT_3 = -12
BIT_4 = -13
BIT_5 = -14
BIT_6 = -15
BIT_7 = -16
class DB2(object):
BIT_0 = -17
BIT_1 = -18
BIT_2 = -19
BIT_3 = -20
BIT_4 = -21
BIT_5 = -22
BIT_6 = -23
BIT_7 = -24
class DB3(object):
BIT_0 = -25
BIT_1 = -26
BIT_2 = -27
BIT_3 = -28
BIT_4 = -29
BIT_5 = -30
BIT_6 = -31
BIT_7 = -32
class DB4(object):
BIT_0 = -33
BIT_1 = -34
BIT_2 = -35
BIT_3 = -36
BIT_4 = -37
BIT_5 = -38
BIT_6 = -39
BIT_7 = -40
class DB5(object):
BIT_0 = -41
BIT_1 = -42
BIT_2 = -43
BIT_3 = -44
BIT_4 = -45
BIT_5 = -46
BIT_6 = -47
BIT_7 = -48
class DB6(object):
BIT_0 = -49
BIT_1 = -50
BIT_2 = -51
BIT_3 = -52
BIT_4 = -53
BIT_5 = -54
BIT_6 = -55
BIT_7 = -56
|