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