1 // ********************************************************************* 2 // IQRF HWPIDs * 3 // ********************************************************************* 4 // Copyright (c) MICRORISC s.r.o. 5 // 6 // File: $RCSfile: IQRF_HWPID.h,v $ 7 // Version: $Revision: 1.163 $ 8 // Date: $Date: 2024/04/17 12:50:14 $ 9 // 10 // Revision history: 11 // 2024/04/17 Release for DPA 4.31 12 // 2023/03/07 Release for DPA 4.30 13 // 2022/10/05 Release for DPA 4.18 14 // 2022/02/24 Release for DPA 4.17 15 // 2021/08/20 Release for DPA 4.16 16 // 2020/09/03 Release for DPA 4.15 17 // 2020/04/03 Release for DPA 4.14 18 // 2020/02/27 Release for DPA 4.13 19 // 2020/01/09 Release for DPA 4.12 20 // 2019/12/11 Release for DPA 4.11 21 // 2019/10/09 Release for DPA 4.10 22 // 2019/06/12 Release for DPA 4.03 23 // 2019/06/03 Release for DPA 4.02 24 // 2019/03/07 Release for DPA 4.01 25 // 2019/01/20 Release for DPA 4.00 26 // 2018/10/25 Release for DPA 3.03 27 // 2017/11/16 Release for DPA 3.02 28 // 2017/08/14 Release for DPA 3.01 29 // 30 // ********************************************************************* 31 32 // Online DPA documentation https://doc.iqrf.org/DpaTechGuide/ 33 // IQRF Standards documentation https://doc.iqrf.org/ 34 35 #ifndef _IQRFSTD_HWPID_ 36 #define _IQRFSTD_HWPID_ 37 38 //# Class #1 ################################################################################# 39 // Manufacturer: bits:0-9, bit.0=0, bit.3-9=[0000000] (even numbers, but not 0x000) 40 // Product: bits:10-15 (6 bits) 41 //############################################################################################ 42 #ifdef __CC5X__ 43 #define HWPID_CLS1(prod,man) \ 44 #if prod < 0 || prod > 0x3F \ 45 #error "HWPID_CLS1: invalid product number" \ 46 #endif \ 47 #if man <= 0 || man > 0x007 || ( man & 1 ) != 0 \ 48 #error "HWPID_CLS1: invalid manufacturer number" \ 49 #endif \ 50 ( (uns16)(man) | ( (uns16)(prod) << 10 ) ) 51 #else 52 #define HWPID_CLS1(prod,man) ( (uns16)(man) | ( (uns16)(prod) << 10 ) ) 53 #endif 54 55 // ------------------------------------------------------------------------------------------- 56 // IQRF Tech s.r.o. 57 #define HWPID_IQRF_TECH1 0x002 58 59 // DDC-SE-01 sensor example 60 // (0002_DDC-SE01.c) 61 #define HWPID_IQRF_TECH__DEMO_DDC_SE01 HWPID_CLS1( 0x00, HWPID_IQRF_TECH1 ) // 0x0002 62 63 // DDC-SE-01 + DDC-RE-01 sensor example 64 // (0402_DDC-SE+RE.c) 65 #define HWPID_IQRF_TECH__DEMO_DDC_SE01_RE01 HWPID_CLS1( 0x01, HWPID_IQRF_TECH1 ) // 0x0402 66 67 // TR temperature sensor example 68 // (0802_TrThermometer.c) 69 #define HWPID_IQRF_TECH__DEMO_TR_THERMOMETER HWPID_CLS1( 0x02, HWPID_IQRF_TECH1 ) // 0x0802 70 71 // Binary output example using LEDs and DDC-RE-01 72 // (0C02_BinaryOutput-Template.c) 73 #define HWPID_IQRF_TECH__DEMO_BINARY_OUTPUT HWPID_CLS1( 0x03, HWPID_IQRF_TECH1 ) // 0x0C02 74 75 // Light example 76 // (1002_Light-Template.c) 77 #define HWPID_IQRF_TECH__DEMO_LIGHT HWPID_CLS1( 0x04, HWPID_IQRF_TECH1 ) // 0x1002 78 79 // Sensor template 80 // (1402_Sensor-Template.c) 81 #define HWPID_IQRF_TECH__DEMO_SENSOR_TEMPLATE HWPID_CLS1( 0x05, HWPID_IQRF_TECH1 ) // 0x1402 82 83 // ToDo Description DK-SW2-01 84 // ToDo (?.c) 85 #define HWPID_IQRF_TECH__DK_SW2_01 HWPID_CLS1( 0x06, HWPID_IQRF_TECH1 ) // 0x1802 86 87 // ToDo Description IQD-SW1-01 88 // ToDo (?.c) 89 #define HWPID_IQRF_TECH__IQD_SW1_01 HWPID_CLS1( 0x07, HWPID_IQRF_TECH1 ) // 0x1C02 90 91 // ToDo Description IQD-SW2-01 92 // ToDo (?.c) 93 #define HWPID_IQRF_TECH__IQD_SW2_01 HWPID_CLS1( 0x08, HWPID_IQRF_TECH1 ) // 0x2002 94 95 // ToDo Description IQD-RC3-01 96 // ToDo (?.c) 97 #define HWPID_IQRF_TECH__IQD_RC3_01 HWPID_CLS1( 0x09, HWPID_IQRF_TECH1 ) // 0x2402 98 99 // ToDo Description IQD-SM1 100 // ToDo (2802_IQD-SM1.c) 101 #define HWPID_IQRF_TECH__IQD_SM1 HWPID_CLS1( 0x0A, HWPID_IQRF_TECH1 ) // 0x2802 102 103 // ToDo Description IQD-RC4-01 104 // ToDo (?.c) 105 #define HWPID_IQRF_TECH__RC4_01 HWPID_CLS1( 0x0B, HWPID_IQRF_TECH1 ) // 0x2C02 106 107 // ToDo Description IQD-RC4-02 108 // ToDo (?.c) 109 #define HWPID_IQRF_TECH__RC4_02 HWPID_CLS1( 0x0C, HWPID_IQRF_TECH1 ) // 0x3002 110 111 // ToDo Description IQD-REP-01 112 // ToDo (?.c) 113 #define HWPID_IQRF_TECH__REP_01 HWPID_CLS1( 0x0D, HWPID_IQRF_TECH1 ) // 0x3402 114 115 // ToDo Description IQD-SW1-02 116 // ToDo (?.c) 117 #define HWPID_IQRF_TECH__IQD_SW1_02 HWPID_CLS1( 0x0F, HWPID_IQRF_TECH1 ) // 0x3C02 118 119 // DDC-SE-01 + DDC-RE-01 sensor + binary output example - LP version 120 // (4402_DDC-SE+RE_LP.c) 121 #define HWPID_IQRF_TECH__DEMO_DDC_SE01_RE01_LP HWPID_CLS1( 0x11, HWPID_IQRF_TECH1 ) // 0x4402 122 123 // DDC-RE-01 binary output example - LP version 124 // (4802_DDC-RE_LP.c) 125 #define HWPID_IQRF_TECH__DEMO_DDC_RE01_LP HWPID_CLS1( 0x12, HWPID_IQRF_TECH1 ) // 0x4802 126 127 // DDC-SE-01 sensor example - LP version 128 // (4C02_DDC-SE_LP.c) 129 #define HWPID_IQRF_TECH__DEMO_DDC_SE01_LP HWPID_CLS1( 0x13, HWPID_IQRF_TECH1 ) // 0x4C02 130 131 //#define ? HWPID_CLS1( 0x14, HWPID_IQRF_TECH1 ) // 0x5002 132 133 //#define ? HWPID_CLS1( 0x15, HWPID_IQRF_TECH1 ) // 0x5402 134 135 // DALI_TEMPLATE 136 // (5802_DALI_TEMPLATE.c) 137 #define HWPID_IQRF_TECH__DALI_TEMPLATE HWPID_CLS1( 0x16, HWPID_IQRF_TECH1 ) // 0x5802 138 139 // IQD-REP-03 140 // (5C02_P-IQD-REP-03.c) 141 #define HWPID_IQRF_TECH__P_IQD_REP_03 HWPID_CLS1( 0x17, HWPID_IQRF_TECH1 ) // 0x5C02 142 143 // IQD_REP_02_W2D 144 // (6002_IQD_REP_02_W2D.c + IQD_REP_02_x1D) 145 #define HWPID_IQRF_TECH__IQD_REP_02_W2D HWPID_CLS1( 0x18, HWPID_IQRF_TECH1 ) // 0x6002 146 147 // IQD_REP_02_S2D 148 // (6402_IQD_REP_02_S2D.c + IQD_REP_02_x1D) 149 #define HWPID_IQRF_TECH__IQD_REP_02_S2D HWPID_CLS1( 0x19, HWPID_IQRF_TECH1 ) // 0x6402 150 151 // DDC-SE-01 + DDC-RE-01 sensor example G version 152 // (6802_DDC-SE+RE-G.c) 153 #define HWPID_IQRF_TECH__DEMO_DDC_SE01_RE01_G HWPID_CLS1( 0x1A, HWPID_IQRF_TECH1 ) // 0x6802 154 155 156 // ------------------------------------------------------------------------------------------- 157 // MICRORISC s.r.o. 158 #define HWPID_MICRORISC 0x004 159 160 // IQD_REP_02 161 // (?.c) 162 #define HWPID_MICRORISC__IQD_REP_02 HWPID_CLS1( 0x00, HWPID_MICRORISC ) // 0x0004 163 164 // IQD-REP-04-1WA.c 165 // (0404-IQD-REP-04-1WA.c) 166 #define HWPID_MICRORISC__IQD_REP_04_1WA HWPID_CLS1( 0x01, HWPID_MICRORISC ) // 0x0404 167 168 // IQD-DALI-01 169 // (0804_IQD-DALI-01.c) 170 #define HWPID_MICRORISC__IQD_DALI_01 HWPID_CLS1( 0x02, HWPID_MICRORISC ) // 0x0804 171 172 // P-IQD-TEMP-01 173 // (0C04_P-IQD-TEMP-01.c) 174 #define HWPID_MICRORISC__P_IQD_TEMP_01 HWPID_CLS1( 0x03, HWPID_MICRORISC ) // 0x0C04 175 176 // IQD-TEMP-02 177 // (1004_IQD-TEMP-02.c) 178 #define HWPID_MICRORISC__IQD_TEMP_02 HWPID_CLS1( 0x04, HWPID_MICRORISC ) // 0x1004 179 180 // IQD-CNT-01 181 // (1404_IQD-CNT-01.c) 182 #define HWPID_MICRORISC__IQD_CNT_01 HWPID_CLS1( 0x05, HWPID_MICRORISC ) // 0x1404 183 184 // IQD-CNT-02 185 // (1804_IQD-CNT-02.c) 186 #define HWPID_MICRORISC__IQD_CNT_02 HWPID_CLS1( 0x06, HWPID_MICRORISC ) // 0x1804 187 188 // IQD-CNT1-01-T-E-01 189 // (1C04_IQD-CNT1-01-T-E-01.c) 190 #define HWPID_MICRORISC_IQD_CNT1_01_T_E_01 HWPID_CLS1( 0x07, HWPID_MICRORISC ) // 0x1C04 191 192 // IQD-CNT1-01-TH-I-01 193 // (2004_IQD-CNT1-01-TH-I-01.c) 194 #define HWPID_MICRORISC_IQD_CNT1_01_TH_I_01 HWPID_CLS1( 0x08, HWPID_MICRORISC ) // 0x2004 195 196 // IQD-CNT1-01-TH-F-01 197 // (2404_IQD-CNT1-01-TH-F-01.c) 198 #define HWPID_MICRORISC_IQD_CNT1_01_TH_F_01 HWPID_CLS1( 0x09, HWPID_MICRORISC ) // 0x2404 199 200 // IQD-REP-02-W1D 201 // (2804_IQD-REP-02-W1D.c) 202 #define HWPID_MICRORISC_IQD_REP_02_W1D HWPID_CLS1( 0x0A, HWPID_MICRORISC ) // 0x2804 203 204 // IQD-REP-02-S1D 205 // (2C04_IQD-REP-02-S1D.c) 206 #define HWPID_MICRORISC_IQD_REP_02_S1D HWPID_CLS1( 0x0B, HWPID_MICRORISC ) // 0x2C04 207 208 // KON-OPI-02 209 // (3004_KON-OPI-02.c) 210 #define HWPID_MICRORISC_KON_OPI_02 HWPID_CLS1( 0x0C, HWPID_MICRORISC ) // 0x3004 211 212 // IQD-SW1-06 213 // (3404_IQD-SW1-06.c) 214 #define HWPID_MICRORISC_IQD_SW1_06 HWPID_CLS1( 0x0D, HWPID_MICRORISC ) // 0x3404 215 216 // IQD-SE01-xxR 217 // (3804_IQD-SE01-xxR.c) 218 #define HWPID_MICRORISC_IQD_SE01_xxR HWPID_CLS1( 0x0E, HWPID_MICRORISC ) // 0x3804 219 220 // IQD-SE01-xxRT 221 // (3C04_IQD-SE01-xxRT.c) 222 #define HWPID_MICRORISC_IQD_SE01_xxRT HWPID_CLS1( 0x0F, HWPID_MICRORISC ) // 0x3C04 223 224 // IQD-SE01-xxVT 225 // (4004_IQD-SE01-xxVT.c) 226 #define HWPID_MICRORISC_IQD_SE01_xxVT HWPID_CLS1( 0x10, HWPID_MICRORISC ) // 0x4004 227 228 // IQD-SE01-xxLT 229 // (4404_IQD-SE01-xxLT.c) 230 #define HWPID_MICRORISC_IQD_SE01_xxLT HWPID_CLS1( 0x11, HWPID_MICRORISC ) // 0x4404 231 232 // IQD-SE03-xxFL 233 // (4804_IQD-SE03-xxFL.c) 234 #define HWPID_MICRORISC_IQD_SE03_05FL HWPID_CLS1( 0x12, HWPID_MICRORISC ) // 0x4804 235 236 // IQD-SE03-xxLUX 237 // (4C04_IQD-SE03-xxLUX.c) 238 #define HWPID_MICRORISC_IQD_SE03_06LUX HWPID_CLS1( 0x13, HWPID_MICRORISC ) // 0x4C04 239 240 // IQD-CNT2-02, Sensor teploty a vlhkosti, rozířená přesnost, krabička Italtronic 241 // (5004_IQD_CNT2_02_TH.c) 242 #define HWPID_MICRORISC_IQD_CNT2_02_TH HWPID_CLS1( 0x14, HWPID_MICRORISC ) // 0x5004 243 244 // IQD-SE01-xxI, Intensita osvětlení pro detekci polohy aluzií (v krabičce IQD-SM1) 245 // (5404_IQD_SE01_xxI.c) 246 #define HWPID_MICRORISC_IQD_SE01_xxI HWPID_CLS1( 0x15, HWPID_MICRORISC ) // 0x5404 247 248 // IQD-SE03-04IR, Detekce polohy aluzií, reflexní IR čidlo 249 #define HWPID_MICRORISC_IQD_SE03_04IR HWPID_CLS1( 0x16, HWPID_MICRORISC ) // 0x5804 250 251 // IQD-SE04-01PIR, Detekce pohybu, čidlo PIR 252 // (5C04_IQD-SE04-01PIR.c) 253 #define HWPID_MICRORISC_IQD_SE04_01PIR HWPID_CLS1( 0x17, HWPID_MICRORISC ) // 0x5C04 254 255 // CHOR-IQ, Kouřový sensor 256 #define HWPID_MICRORISC_CHOR_IQ HWPID_CLS1( 0x18, HWPID_MICRORISC ) // 0x6004 257 258 // IQD-CNT-01-TH 259 // (6404_IQD-CNT-01-TH.c) 260 #define HWPID_MICRORISC__IQD_CNT_01_TH HWPID_CLS1( 0x19, HWPID_MICRORISC ) // 0x6404 261 262 // P-IQD-SM2-T.c 263 // (6804_P_IQD_SM2_T.c) 264 #define HWPID_MICRORISC__P_IQD_SM2_T HWPID_CLS1( 0x1A, HWPID_MICRORISC ) // 0x6804 265 266 // IQD-REP-04-1W.c 267 // (6C04_IQD_REP_04_1W.c) 268 #define HWPID_MICRORISC__IQD_REP_04_1W HWPID_CLS1( 0x1B, HWPID_MICRORISC ) // 0x6C04 269 270 // IQD-REP-02-S1D-T 271 // (7004_IQD-REP-02-S1D-T.c) 272 #define HWPID_MICRORISC_IQD_REP_02_S1D_T HWPID_CLS1( 0x1C, HWPID_MICRORISC ) // 0x7004 273 274 // IQD-UPS01 275 // (7404_IQD_UPS01.c) 276 #define HWPID_MICRORISC_IQD_UPS01 HWPID_CLS1( 0x1D, HWPID_MICRORISC ) // 0x7404 277 278 // IQD-LCZH-01 (formerly IQD-SL02) 279 // (7804_IQD-LCZH-01.c) 280 #define HWPID_MICRORISC_IQD_LCZH_01 HWPID_CLS1( 0x1E, HWPID_MICRORISC ) // 0x7804 281 282 // IQD-LCNE-01 (formerly IQD-SL01) 283 // (7C04_IQD-LCNE-01.c) 284 #define HWPID_MICRORISC_IQD_LCNE_01 HWPID_CLS1( 0x1F, HWPID_MICRORISC ) // 0x7C04 285 286 // IQD-SE01-14RT 287 // (8004_IQD-SE01-14RT.c) 288 #define HWPID_MICRORISC_IQD_SE01_14RT HWPID_CLS1( 0x20, HWPID_MICRORISC ) // 0x8004 289 290 // IQD-SE02-0xRTH 291 // (8404_IQD-SE02-0xRTH.c) 292 #define HWPID_MICRORISC_IQD_SE02_0xRTH HWPID_CLS1( 0x21, HWPID_MICRORISC ) // 0x8404 293 294 // IQD_SW10_01 295 // (8804_IQD_SW10_00.c) 296 #define HWPID_MICRORISC_IQD_SW10_00 HWPID_CLS1( 0x22, HWPID_MICRORISC ) // 0x8804 297 298 // KON-OPI-02 G version 299 // (8C04_KON-OPI-02-G.c) 300 #define HWPID_MICRORISC_KON_OPI_02_G HWPID_CLS1( 0x23, HWPID_MICRORISC ) // 0x8C04 301 302 // IQD_SE03_07T 303 // (9004_IQD_SE03_07T.c) 304 #define HWPID_MICRORISC_IQD_SE03_07T HWPID_CLS1( 0x24, HWPID_MICRORISC ) // 0x9004 305 306 // IQD-REP-04-1S.c 307 // (9404_IQD_REP_04_1S.c) 308 #define HWPID_MICRORISC__IQD_REP_04_1S HWPID_CLS1( 0x25, HWPID_MICRORISC ) // 0x9404 309 310 // KONA-UPI-01 311 // (9804_KONA-UPI-01.c) 312 #define HWPID_MICRORISC_KONA_UPI_01 HWPID_CLS1( 0x26, HWPID_MICRORISC ) // 0x9804 313 314 // IQD-SE01-10VT 315 // (9C04_IQD_SE01_10VT.c) 316 #define HWPID_MICRORISC_IQD_SE01_10VT HWPID_CLS1( 0x27, HWPID_MICRORISC ) // 0x9C04 317 318 // IQD-SE01-10LT 319 // (A004_IQD-SE01-10LT.c) 320 #define HWPID_MICRORISC_IQD_SE01_10LT HWPID_CLS1( 0x28, HWPID_MICRORISC ) // 0xA004 321 322 // IQD-GW04 323 // (A404_IQD-GW04.c) 324 #define HWPID_MICRORISC_IQD_GW04 HWPID_CLS1( 0x29, HWPID_MICRORISC ) // 0xA404 325 326 // IQD-PIR02-01 327 // (A804_IQD-PIR02-01.c) 328 #define HWPID_MICRORISC_IQD_PIR02_01 HWPID_CLS1( 0x2A, HWPID_MICRORISC ) // 0xA804 329 330 // IQD-PIR02-02 331 // (AC04_IQD-PIR02-02.c) 332 #define HWPID_MICRORISC_IQD_PIR02_02 HWPID_CLS1( 0x2B, HWPID_MICRORISC ) // 0xAC04 333 334 // KONA-RASP04 335 // (B004_KONA-RASP04.c) 336 #define HWPID_MICRORISC_KONA_RASP04 HWPID_CLS1( 0x2C, HWPID_MICRORISC ) // 0xB004 337 338 // IQD-PIR01-01 339 // (B404_IQD-PIR01-01.c) 340 #define HWPID_MICRORISC_IQD_PIR01_01 HWPID_CLS1( 0x2D, HWPID_MICRORISC ) // 0xB404 341 342 // IQD-SE02-04B 343 // (B804_IQD-SE02-04B.c) 344 #define HWPID_MICRORISC_IQD_SE02_04B HWPID_CLS1( 0x2E, HWPID_MICRORISC ) // 0xB804 345 346 // IQD-SE02-05A 347 // (BC04_IQD-SE02-05A.c) 348 #define HWPID_MICRORISC_IQD_SE02_05A HWPID_CLS1( 0x2F, HWPID_MICRORISC ) // 0xBC04 349 350 // IQD-LCZH-02-05A 351 // (C004_IQD-LCZH-02-05A.c) 352 #define HWPID_MICRORISC_IQD_LCZH_02_05A HWPID_CLS1( 0x30, HWPID_MICRORISC ) // 0xC004 353 354 // IQD-LCZH-02-01A 355 // (C404_IQD-LCZH-02-01A.c) 356 #define HWPID_MICRORISC_IQD_LCZH_02_01A HWPID_CLS1( 0x31, HWPID_MICRORISC ) // 0xC404 357 358 // IQD-LCZH-02-02B 359 // (C804_IQD-LCZH-02-02B.c) 360 #define HWPID_MICRORISC_IQD_LCZH_02_02B HWPID_CLS1( 0x32, HWPID_MICRORISC ) // 0xC804 361 362 // IQD-LCZH-02-06B 363 // (CC04_IQD-LCZH-02-06B.c) 364 #define HWPID_MICRORISC_IQD_LCZH_02_06B HWPID_CLS1( 0x33, HWPID_MICRORISC ) // 0xCC04 365 366 // IQHUBS-01 367 // (D004_IQHUBS-01.c) 368 #define HWPID_MICRORISC_IQHUBS_01 HWPID_CLS1( 0x34, HWPID_MICRORISC ) // 0xD004 369 370 // IQD-GW04-02 371 // (D404_IQD-GW04-02.c) 372 #define HWPID_MICRORISC_IQD_GW04_02 HWPID_CLS1( 0x35, HWPID_MICRORISC ) // 0xD404 373 374 //# Class #2 ################################################################################# 375 // Manufacturer: bits:0-11, bit.0=1, bit.5-11=[0000000] (odd numbers, never value 0x??F) 376 // Product: bits:12-15 (4 bits) 377 //############################################################################################ 378 #ifdef __CC5X__ 379 #define HWPID_CLS2(prod,man) \ 380 #if prod < 0 || prod > 0xF \ 381 #error "HWPID_CLS2: invalid product number" \ 382 #endif \ 383 #if man < 0 || man > 0x01F || ( man & 1 ) == 0 || ( man & 0xF ) == 0xF \ 384 #error "HWPID_CLS2: invalid manufacturer number" \ 385 #endif \ 386 ( (uns16)(man) | ( (uns16)(prod) << 12 ) ) 387 #else 388 #define HWPID_CLS2(prod,man) ( (uns16)(man) | ( (uns16)(prod) << 12 ) ) 389 #endif 390 // ------------------------------------------------------------------------------------------- 391 // PROTRONIX s.r.o. 392 #define HWPID_PROTRONIX 0x001 393 394 // Temperature+Humidity+CO2 sensor 395 // (0001_Protronix-T+RH+CO2.c) 396 #define HWPID_PROTRONIX__TEMP_HUM_CO2 HWPID_CLS2( 0x0, HWPID_PROTRONIX ) // 0x0001 397 398 // Temperature+Humidity+VOC sensor 399 // (1001_Protronix-T+RH+VOC.c) 400 #define HWPID_PROTRONIX__TEMP_HUM_VOC HWPID_CLS2( 0x1, HWPID_PROTRONIX ) // 0x1001 401 402 // Temperature+Humidity+CO2 sensor + Relay 403 // (2001_Protronix-T+RH+CO2+Relay.c) 404 #define HWPID_PROTRONIX__TEMP_HUM_CO2_RELAY HWPID_CLS2( 0x2, HWPID_PROTRONIX ) // 0x2001 405 406 // Temperature+Humidity sensor 407 // (3001_Protronix-T+RH.c) 408 #define HWPID_PROTRONIX__TEMP_HUM HWPID_CLS2( 0x3, HWPID_PROTRONIX ) // 0x3001 409 410 // Temperature+Humidity+CO2 sensor [LP] 411 // (4001_Protronix-LP-T+RH+CO2.c) 412 #define HWPID_PROTRONIX__LP_TEMP_HUM_CO2 HWPID_CLS2( 0x4, HWPID_PROTRONIX ) // 0x4001 413 414 // Temperature+Humidity sensor [LP] 415 // (5001_Protronix-LP-T+RH.c) 416 #define HWPID_PROTRONIX__LP_TEMP_HUM HWPID_CLS2( 0x5, HWPID_PROTRONIX ) // 0x5001 417 418 // PM 2,5 sensor [LP] 419 // (6001_Protronix-NLII_PM25.c) 420 #define HWPID_PROTRONIX__NLII_PM25 HWPID_CLS2( 0x6, HWPID_PROTRONIX ) // 0x6001 421 422 // Temperature+Humidity+CO2 sensor Beaming 423 // (7001_Protronix-NLB-CO2+RH+T-Beaming.c) 424 #define HWPID_PROTRONIX__NLB_CO2_R_T_Beaming HWPID_CLS2( 0x7, HWPID_PROTRONIX ) // 0x7001 425 426 // TVOX+RH+T 427 #define HWPID_PROTRONIX__NLII_TVOC_RH_T HWPID_CLS2( 0x8, HWPID_PROTRONIX ) // 0x8001 428 429 // NOX 430 #define HWPID_PROTRONIX__NLII_NOX HWPID_CLS2( 0x9, HWPID_PROTRONIX ) // 0x9001 431 432 // OL-NOX-IQRF 433 #define HWPID_PROTRONIX__OL_NOX_IQRF HWPID_CLS2( 0xA, HWPID_PROTRONIX ) // 0xA001 434 435 // NLII-CO2+TVOC-5-IQRF 436 #define HWPID_PROTRONIX__NLII_CO2_TVOC_5_IQRF HWPID_CLS2( 0xB, HWPID_PROTRONIX ) // 0xB001 437 438 // Temperature+Humidity+TVOC-PC01 439 // (C001_Protronix-T+RH+TVOC-PC01.c) 440 #define HWPID_PROTRONIX__TEMP_HUM_TVOC_PC01 HWPID_CLS2( 0xC, HWPID_PROTRONIX ) // 0xC001 441 442 // PM 2,5 sensor-PC01 443 // (D001_Protronix-NLII_PM25-PC01.c) 444 #define HWPID_PROTRONIX__NLII_PM25_PC01 HWPID_CLS2( 0xD, HWPID_PROTRONIX ) // 0xD001 445 446 // NLB-RH+T-Beaming 447 // (E001_Protronix-NLB-RH+T-Beaming.c) 448 #define HWPID_PROTRONIX__NLB_RH_T_Beaming HWPID_CLS2( 0xE, HWPID_PROTRONIX ) // 0xE001 449 450 // ------------------------------------------------------------------------------------------- 451 // NETIO products a.s. 452 #define HWPID_NETIO 0x003 453 454 // Cobra 1 - 1x power plug 455 // (0003_Netio-Cobra1.c) 456 #define HWPID_NETIO__COBRA1 HWPID_CLS2( 0x0, HWPID_NETIO ) // 0x0003 457 458 // Cobra 1 - 1x power plug [LP] 459 // (1003_Netio-LP-Cobra1.c) 460 #define HWPID_NETIO__LP_COBRA1 HWPID_CLS2( 0x1, HWPID_NETIO ) // 0x1003 461 462 // ------------------------------------------------------------------------------------------- 463 // DATmoLUX a.s. 464 #define HWPID_DATMOLUX 0x005 465 466 // DATmoLUX Light 467 // 0005_DATmoLUX-Light.* 468 #define HWPID_DATMOLUX__LIGHT HWPID_CLS2( 0x0, HWPID_DATMOLUX ) // 0x0005 469 470 // ------------------------------------------------------------------------------------------- 471 // CITIQ s.r.o. 472 #define HWPID_CITIQ 0x007 473 474 // ------------------------------------------------------------------------------------------- 475 // Austyn International s.r.o. 476 #define HWPID_AUSTYN 0x009 477 478 // Room temperature controller 479 // (0009_RoomTemperatureController.c) 480 #define HWPID_AUSTYN__ROOM_CONTROLLER HWPID_CLS2( 0x0, HWPID_AUSTYN ) // 0x0009 481 482 // Austyn repeater for radiator heads 483 // (1009_RepHlaAust-02.c) 484 #define HWPID_AUSTYN__RepHlaAust_02 HWPID_CLS2( 0x1, HWPID_AUSTYN ) // 0x1009 485 486 // Austyn radiator head 487 // (2009_HlaAust-02.c) 488 #define HWPID_AUSTYN__HlaAust_02 HWPID_CLS2( 0x2, HWPID_AUSTYN ) // 0x2009 489 490 // Austyn repeater for radiator heads + SET01 491 // (3009_RepHlaAust-02-T.c) 492 #define HWPID_AUSTYN__RepHlaAust_02_T HWPID_CLS2( 0x3, HWPID_AUSTYN ) // 0x3009 493 494 // Austyn repeater for radiator heads, new version + TR-G 495 // (4009_IQD-REP-04-05C.c) 496 #define HWPID_AUSTYN__IQD_REP_04_05C HWPID_CLS2( 0x4, HWPID_AUSTYN ) // 0x4009 497 498 // ------------------------------------------------------------------------------------------- 499 // Aledo s.r.o. 500 #define HWPID_ALEDO 0x00B 501 502 // Room temperature controller 503 // (000B_Aledo-Reader_R02A230.c) 504 #define HWPID_ALEDO__READER_R02A230 HWPID_CLS2( 0x0, HWPID_ALEDO ) // 0x000B 505 506 // ------------------------------------------------------------------------------------------- 507 // SANELA spol. s r. o. 508 #define HWPID_SANELA 0x00D 509 510 // Sanela SL626 Person presence sensor 511 // (000D_Sanela-SL626.c) 512 #define HWPID_SANELA__SL626 HWPID_CLS2( 0x0, HWPID_SANELA ) // 0x000D 513 514 // Sanela SL626A sink sensor 515 // (100D_Sanela-SL626A.c) 516 #define HWPID_SANELA__SL626A HWPID_CLS2( 0x1, HWPID_SANELA ) // 0x100D 517 518 // ------------------------------------------------------------------------------------------- 519 // TESLA Blatná, a.s. 520 #define HWPID_TESLA_BLATNA 0x011 521 522 // TESLA Blatná Smart City environmental module 523 // (0011_TESLA_Blatna-EnvironmentalModule.c) 524 #define HWPID_TESLA_BLATNA__EnvironmentalModule HWPID_CLS2( 0x0, HWPID_TESLA_BLATNA ) // 0x0011 525 526 // ------------------------------------------------------------------------------------------- 527 // JoTio Tech s.r.o. 528 #define HWPID_JOTIO_TECH 0x013 529 530 // IRIS 531 #define HWPID_JOTIO_TECH__IRIS HWPID_CLS2( 0x0, HWPID_JOTIO_TECH ) // 0x0013 532 533 // ALTAIR 534 #define HWPID_JOTIO_TECH__ALTAIR HWPID_CLS2( 0x1, HWPID_JOTIO_TECH ) // 0x1013 535 536 // ------------------------------------------------------------------------------------------- 537 // HARDWARIO s.r.o. (BigClown) 538 #define HWPID_HARDWARIO 0x015 539 540 // Presence sensor 541 #define HWPID_HARDWARIO_PRESENCE_SENSOR HWPID_CLS2( 0x0, HWPID_HARDWARIO ) // 0x0015 542 543 // COOPER 544 // (1015_HARDWARIO-COPPER.c) 545 #define HWPID_HARDWARIO_COOPER HWPID_CLS2( 0x1, HWPID_HARDWARIO ) // 0x1015 546 547 // ------------------------------------------------------------------------------------------- 548 // 4IOTECH s.r.o. 549 #define HWPID_4IOTECH 0x017 550 551 // 4IOT-SEN-01 552 #define HWPID_4IOTECH_4IOT_SEN_01 HWPID_CLS2( 0x0, HWPID_4IOTECH ) // 0x0017 553 554 // ------------------------------------------------------------------------------------------- 555 // Liteplan Ltd. 556 #define HWPID_LITEPLAN 0x019 557 558 // IQD-DALI-01 559 #define HWPID_LITEPLAN_IQD_DALI_01 HWPID_CLS2( 0x0, HWPID_LITEPLAN ) // 0x0019 560 561 // ------------------------------------------------------------------------------------------- 562 // Danlers https://www.danlers.co.uk/ 563 #define HWPID_DANLERS 0x01B 564 565 // DANLERS-PIR 566 // (001B_DANLERS-PIR.c) 567 #define HWPID_DANLERS_PIR HWPID_CLS2( 0x0, HWPID_DANLERS ) // 0x001B 568 569 //# Class #3 ################################################################################# 570 // Manufacturer: bits:0-11, bit.0=0, bit.3-9 != [0000000] (even numbers, but not 0x000) 571 // Product: bits:12-15 (4 bits) 572 //############################################################################################ 573 #ifdef __CC5X__ 574 #define HWPID_CLS3(prod,man) \ 575 #if prod < 0 || prod > 0xF \ 576 #error "HWPID_CLS3: invalid product number" \ 577 #endif \ 578 #if man <= 0 || man > 0xFFF || ( man & 0x3F8 ) == 0 || ( man & 1 ) != 0 \ 579 #error "HWPID_CLS3: invalid manufacturer number" \ 580 #endif \ 581 ( (uns16)(man) | ( (uns16)(prod) << 12 ) ) 582 #else 583 #define HWPID_CLS3(prod,man) ( (uns16)(man) | ( (uns16)(prod) << 12 ) ) 584 #endif 585 586 // ------------------------------------------------------------------------------------------- 587 // IQRF Tech s.r.o. 588 #define HWPID_IQRF_TECH3 0x05E 589 // For the fixed HWPID=C05E used by a special handler 590 591 // (CustomDpaHandler-ChangeIQRFOS.c) 592 #define HWPID_IQRF_TECH_ChangeIQRFOS HWPID_CLS3( 0xC, HWPID_IQRF_TECH3 ) // 0xC05E 593 594 //# Class #4 ################################################################################# 595 // Manufacturer: bits:0-13, bit.0=1, bit.5-11 != [0000000] (odd numbers, never value 0x??F) 596 // Product: bits:14-15 (2 bits) 597 //############################################################################################ 598 #ifdef __CC5X__ 599 #define HWPID_CLS4(prod,man) \ 600 #if prod < 0 || prod > 0x3 \ 601 #error "HWPID_CLS4: invalid product number" \ 602 #endif \ 603 #if man < 0 || man > 0x3FFF || ( man & 1 ) == 0 || ( man & 0xFE0 ) == 0 || ( man & 0xF ) == 0xF \ 604 #error "HWPID_CLS4: invalid manufacturer number" \ 605 #endif \ 606 ( (uns16)(man) | ( (uns16)(prod) << 14 ) ) 607 #else 608 #define HWPID_CLS4(prod,man) ( (uns16)(man) | ( (uns16)(prod) << 14 ) ) 609 #endif 610 611 // ------------------------------------------------------------------------------------------- 612 613 //############################################################################################ 614 #endif // _IQRFSTD_HWPID_ 615 //############################################################################################