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