1 // ********************************************************************* 2 // IQRF HWPIDs * 3 // ********************************************************************* 4 // Copyright (c) IQRF Tech s.r.o. 5 // 6 // File: $RCSfile: IQRF_HWPID.h,v $ 7 // Version: $Revision: 1.79 $ 8 // Date: $Date: 2020/04/03 08:53:55 $ 9 // 10 // Revision history: 11 // 2020/04/03 Release for DPA 4.14 12 // 2020/02/27 Release for DPA 4.13 13 // 2020/01/09 Release for DPA 4.12 14 // 2019/12/11 Release for DPA 4.11 15 // 2019/10/09 Release for DPA 4.10 16 // 2019/06/12 Release for DPA 4.03 17 // 2019/06/03 Release for DPA 4.02 18 // 2019/03/07 Release for DPA 4.01 19 // 2019/01/20 Release for DPA 4.00 20 // 2018/10/25 Release for DPA 3.03 21 // 2017/11/16 Release for DPA 3.02 22 // 2017/08/14 Release for DPA 3.01 23 // 24 // ********************************************************************* 25 26 // Online DPA documentation https://doc.iqrf.org/DpaTechGuide/ 27 // IQRF Standards documentation https://www.iqrfalliance.org/iqrf-interoperability/ 28 29 #ifndef _IQRFSTD_HWPID_ 30 #define _IQRFSTD_HWPID_ 31 32 //# Class #1 ################################################################################# 33 // Manufacturer: bits:0-9, bit.0=0 (even numbers, but not 0x000) 34 // Product: bits:10-15 (6 bits) 35 //############################################################################################ 36 #ifdef __CC5X__ 37 #define HWPID_CLS1(prod,man) \ 38 #if prod < 0 || prod > 0b11.1111 \ 39 #error "HWPID_CLS1: invalid product number" \ 40 #endif \ 41 #if man == 0 || man > 0x3FF || ( man & 1 ) != 0 \ 42 #error "HWPID_CLS1: invalid manufacturer number" \ 43 #endif \ 44 ( (uns16)(man) | ( (uns16)(prod) << 10 ) ) 45 #else 46 #define HWPID_CLS1(prod,man) ( (uns16)(man) | ( (uns16)(prod) << 10 ) ) 47 #endif 48 49 // ------------------------------------------------------------------------------------------- 50 // IQRF Tech s.r.o. 51 #define HWPID_IQRF_TECH 0x002 52 53 // DDC-SE-01 sensor example 54 // (0002_DDC-SE01.c) 55 #define HWPID_IQRF_TECH__DEMO_DDC_SE01 HWPID_CLS1( 0x00, HWPID_IQRF_TECH ) // 0x0002 56 57 // DDC-SE-01 + DDC-RE-01 sensor example 58 // (0402_DDC-SE+RE.c) 59 #define HWPID_IQRF_TECH__DEMO_DDC_SE01_RE01 HWPID_CLS1( 0x01, HWPID_IQRF_TECH ) // 0x0402 60 61 // TR temperature sensor example 62 // (0802_TrThermometer.c) 63 #define HWPID_IQRF_TECH__DEMO_TR_THERMOMETER HWPID_CLS1( 0x02, HWPID_IQRF_TECH ) // 0x0802 64 65 // Binary output example using LEDs and DDC-RE-01 66 // (0C02_BinaryOutput-Template.c) 67 #define HWPID_IQRF_TECH__DEMO_BINARY_OUTPUT HWPID_CLS1( 0x03, HWPID_IQRF_TECH ) // 0x0C02 68 69 // Light example 70 // (1002_Light-Template.c) 71 #define HWPID_IQRF_TECH__DEMO_LIGHT HWPID_CLS1( 0x04, HWPID_IQRF_TECH ) // 0x1002 72 73 // Sensor template 74 // (1402_Sensor-Template.c) 75 #define HWPID_IQRF_TECH__DEMO_SENSOR_TEMPLATE HWPID_CLS1( 0x05, HWPID_IQRF_TECH ) // 0x1402 76 77 // ToDo Description DK-SW2-01 78 // ToDo (?.c) 79 #define HWPID_IQRF_TECH__DK_SW2_01 HWPID_CLS1( 0x06, HWPID_IQRF_TECH ) // 0x1802 80 81 // ToDo Description IQD-SW1-01 82 // ToDo (?.c) 83 #define HWPID_IQRF_TECH__IQD_SW1_01 HWPID_CLS1( 0x07, HWPID_IQRF_TECH ) // 0x1C02 84 85 // ToDo Description IQD-SW2-01 86 // ToDo (?.c) 87 #define HWPID_IQRF_TECH__IQD_SW2_01 HWPID_CLS1( 0x08, HWPID_IQRF_TECH ) // 0x2002 88 89 // ToDo Description IQD-RC3-01 90 // ToDo (?.c) 91 #define HWPID_IQRF_TECH__IQD_RC3_01 HWPID_CLS1( 0x09, HWPID_IQRF_TECH ) // 0x2402 92 93 // ToDo Description IQD-SM1 94 // ToDo (2802_IQD-SM1.c) 95 #define HWPID_IQRF_TECH__IQD_SM1 HWPID_CLS1( 0x0A, HWPID_IQRF_TECH ) // 0x2802 96 97 // ToDo Description IQD-RC4-01 98 // ToDo (?.c) 99 #define HWPID_IQRF_TECH__RC4_01 HWPID_CLS1( 0x0B, HWPID_IQRF_TECH ) // 0x2C02 100 101 // ToDo Description IQD-RC4-02 102 // ToDo (?.c) 103 #define HWPID_IQRF_TECH__RC4_02 HWPID_CLS1( 0x0C, HWPID_IQRF_TECH ) // 0x3002 104 105 // ToDo Description IQD-REP-01 106 // ToDo (?.c) 107 #define HWPID_IQRF_TECH__REP_01 HWPID_CLS1( 0x0D, HWPID_IQRF_TECH ) // 0x3402 108 109 // ToDo Description IQD-SW1-02 110 // ToDo (?.c) 111 #define HWPID_IQRF_TECH__IQD_SW1_02 HWPID_CLS1( 0x0F, HWPID_IQRF_TECH ) // 0x3C02 112 113 // DDC-SE-01 + DDC-RE-01 sensor + binary output example - LP version 114 // (4402_DDC-SE+RE_LP.c) 115 #define HWPID_IQRF_TECH__DEMO_DDC_SE01_RE01_LP HWPID_CLS1( 0x11, HWPID_IQRF_TECH ) // 0x4402 116 117 // DDC-RE-01 binary output example - LP version 118 // (4802_DDC-RE_LP.c) 119 #define HWPID_IQRF_TECH__DEMO_DDC_RE01_LP HWPID_CLS1( 0x12, HWPID_IQRF_TECH ) // 0x4802 120 121 // DDC-SE-01 sensor example - LP version 122 // (4C02_DDC-SE_LP.c) 123 #define HWPID_IQRF_TECH__DEMO_DDC_SE01_LP HWPID_CLS1( 0x13, HWPID_IQRF_TECH ) // 0x4C02 124 125 // IQD_REP_02_W1D 126 // (5002_IQD_REP_02_W1D.c + IQD_REP_02_x1D) 127 #define HWPID_IQRF_TECH__IQD_REP_02_W1D HWPID_CLS1( 0x14, HWPID_IQRF_TECH ) // 0x5002 128 129 // IQD_REP_02_S1D 130 // (5402_IQD_REP_02_S1D.c + IQD_REP_02_x1D) 131 #define HWPID_IQRF_TECH__IQD_REP_02_S1D HWPID_CLS1( 0x15, HWPID_IQRF_TECH ) // 0x5402 132 133 // DALI_TEMPLATE 134 // (5802_DALI_TEMPLATE.c) 135 #define HWPID_IQRF_TECH__DALI_TEMPLATE HWPID_CLS1( 0x16, HWPID_IQRF_TECH ) // 0x5802 136 137 // IQD-REP-03 138 // (5C02_P-IQD-REP-03.c) 139 #define HWPID_IQRF_TECH__P_IQD_REP_03 HWPID_CLS1( 0x17, HWPID_IQRF_TECH ) // 0x5C02 140 141 // IQD_REP_02_W2D 142 // (6002_IQD_REP_02_W2D.c + IQD_REP_02_x1D) 143 #define HWPID_IQRF_TECH__IQD_REP_02_W2D HWPID_CLS1( 0x18, HWPID_IQRF_TECH ) // 0x6002 144 145 // IQD_REP_02_S2D 146 // (6402_IQD_REP_02_S2D.c + IQD_REP_02_x1D) 147 #define HWPID_IQRF_TECH__IQD_REP_02_S2D HWPID_CLS1( 0x19, HWPID_IQRF_TECH ) // 0x6402 148 149 // ------------------------------------------------------------------------------------------- 150 // MICRORISC s.r.o. 151 #define HWPID_MICRORISC 0x004 152 153 // IQD_REP_02 154 // (?.c) 155 #define HWPID_MICRORISC__IQD_REP_02 HWPID_CLS1( 0x00, HWPID_MICRORISC ) // 0x0004 156 157 // Radar Counter 158 // (0404_RadarCounter.c) 159 #define HWPID_MICRORISC__RADAR_COUNTER HWPID_CLS1( 0x01, HWPID_MICRORISC ) // 0x0404 160 161 // IQD-DALI-01 162 // (0804_IQD-DALI-01.c) 163 #define HWPID_MICRORISC__IQD_DALI_01 HWPID_CLS1( 0x02, HWPID_MICRORISC ) // 0x0804 164 165 // P-IQD-TEMP-01 166 // (0C04_P-IQD-TEMP-01.c) 167 #define HWPID_MICRORISC__P_IQD_TEMP_01 HWPID_CLS1( 0x03, HWPID_MICRORISC ) // 0x0C04 168 169 // IQD-TEMP-02 170 // (1004_IQD-TEMP-02.c) 171 #define HWPID_MICRORISC__IQD_TEMP_02 HWPID_CLS1( 0x04, HWPID_MICRORISC ) // 0x1004 172 173 //# Class #2 ################################################################################# 174 // Manufacturer: bits:0-11, bit.0=1 (odd numbers, never value 0x??F) 175 // Product: bits:12-15 (4 bits) 176 //############################################################################################ 177 #ifdef __CC5X__ 178 #define HWPID_CLS2(prod,man) \ 179 #if prod < 0 || prod > 0b1111 \ 180 #error "HWPID_CLS2: invalid product number" \ 181 #endif \ 182 #if man > 0xFFF || ( man & 1 ) == 0 || ( max & 0xF ) == 0xF \ 183 #error "HWPID_CLS2: invalid manufacturer number" \ 184 #endif \ 185 ( (uns16)(man) | ( (uns16)(prod) << 12 ) ) 186 #else 187 #define HWPID_CLS2(prod,man) ( (uns16)(man) | ( (uns16)(prod) << 12 ) ) 188 #endif 189 // ------------------------------------------------------------------------------------------- 190 // PROTRONIX s.r.o. 191 #define HWPID_PROTRONIX 0x001 192 193 // Temperature+Humidity+CO2 sensor 194 // (0001_Protronix-T+RH+CO2.c) 195 #define HWPID_PROTRONIX__TEMP_HUM_CO2 HWPID_CLS2( 0x0, HWPID_PROTRONIX ) // 0x0001 196 197 // Temperature+Humidity+VOC sensor 198 // (1001_Protronix-T+RH+VOC.c) 199 #define HWPID_PROTRONIX__TEMP_HUM_VOC HWPID_CLS2( 0x1, HWPID_PROTRONIX ) // 0x1001 200 201 // Temperature+Humidity+CO2 sensor + Relay 202 // (2001_Protronix-T+RH+CO2+Relay.c) 203 #define HWPID_PROTRONIX__TEMP_HUM_CO2_RELAY HWPID_CLS2( 0x2, HWPID_PROTRONIX ) // 0x2001 204 205 // Temperature+Humidity sensor 206 // (3001_Protronix-T+RH.c) 207 #define HWPID_PROTRONIX__TEMP_HUM HWPID_CLS2( 0x3, HWPID_PROTRONIX ) // 0x3001 208 209 // Temperature+Humidity+CO2 sensor [LP] 210 // (4001_Protronix-LP-T+RH+CO2.c) 211 #define HWPID_PROTRONIX__LP_TEMP_HUM_CO2 HWPID_CLS2( 0x4, HWPID_PROTRONIX ) // 0x4001 212 213 // Temperature+Humidity sensor [LP] 214 // (5001_Protronix-LP-T+RH.c) 215 #define HWPID_PROTRONIX__LP_TEMP_HUM HWPID_CLS2( 0x5, HWPID_PROTRONIX ) // 0x5001 216 217 // PM 2,5 sensor [LP] 218 // (6001_Protronix-NLII_PM25.c) 219 #define HWPID_PROTRONIX__NLII_PM25 HWPID_CLS2( 0x6, HWPID_PROTRONIX ) // 0x6001 220 221 // ------------------------------------------------------------------------------------------- 222 // NETIO products a.s. 223 #define HWPID_NETIO 0x003 224 225 // Cobra 1 - 1x power plug 226 // (0003_Netio-Cobra1.c) 227 #define HWPID_NETIO__COBRA1 HWPID_CLS2( 0x0, HWPID_NETIO ) // 0x0003 228 229 // Cobra 1 - 1x power plug [LP] 230 // (1003_Netio-LP-Cobra1.c) 231 #define HWPID_NETIO__LP_COBRA1 HWPID_CLS2( 0x1, HWPID_NETIO ) // 0x1003 232 233 // ------------------------------------------------------------------------------------------- 234 // DATmoLUX a.s. 235 #define HWPID_DATMOLUX 0x005 236 237 // DATmoLUX Light 238 // 0005_DATmoLUX-Light.* 239 #define HWPID_DATMOLUX__LIGHT HWPID_CLS2( 0x0, HWPID_DATMOLUX ) // 0x0005 240 241 // ------------------------------------------------------------------------------------------- 242 // CITIQ s.r.o. 243 #define HWPID_CITIQ 0x007 244 245 // ------------------------------------------------------------------------------------------- 246 // Austyn International s.r.o. 247 #define HWPID_AUSTYN 0x009 248 249 // Room temperature controller 250 // (0009_RoomTemperatureController.c) 251 #define HWPID_AUSTYN__ROOM_CONTROLLER HWPID_CLS2( 0x0, HWPID_AUSTYN ) // 0x0009 252 253 // ------------------------------------------------------------------------------------------- 254 // Aledo s.r.o. 255 #define HWPID_ALEDO 0x00B 256 257 // Room temperature controller 258 // (000B_Aledo-Reader_R02A230.c) 259 #define HWPID_ALEDO__READER_R02A230 HWPID_CLS2( 0x0, HWPID_ALEDO ) // 0x000B 260 261 // ------------------------------------------------------------------------------------------- 262 // SANELA spol. s r. o. 263 #define HWPID_SANELA 0x00D 264 265 // Sanela SL626 Person presence sensor 266 // (000D_Sanela-SL626.c) 267 #define HWPID_SANELA__SL626 HWPID_CLS2( 0x0, HWPID_SANELA ) // 0x000D 268 269 // Sanela SL626A sink sensor 270 // (100D_Sanela-SL626A.c) 271 #define HWPID_SANELA__SL626A HWPID_CLS2( 0x1, HWPID_SANELA ) // 0x100D 272 273 // ------------------------------------------------------------------------------------------- 274 // TESLA Blatná, a.s. 275 #define HWPID_TESLA_BLATNA 0x011 276 277 // TESLA Blatná Smart City environmental module 278 // (0011_TESLA_Blatna-EnvironmentalModule.c) 279 #define HWPID_TESLA_BLATNA__EnvironmentalModule HWPID_CLS2( 0x0, HWPID_TESLA_BLATNA ) // 0x0011 280 281 // ------------------------------------------------------------------------------------------- 282 // JoTio Tech s.r.o. 283 #define HWPID_JOTIO_TECH 0x013 284 285 // IRIS 286 #define HWPID_JOTIO_TECH__IRIS HWPID_CLS2( 0x0, HWPID_JOTIO_TECH ) // 0x0013 287 288 // ALTAIR 289 #define HWPID_JOTIO_TECH__ALTAIR HWPID_CLS2( 0x1, HWPID_JOTIO_TECH ) // 0x1013 290 291 // ------------------------------------------------------------------------------------------- 292 // HARDWARIO s.r.o. (BigClown) 293 #define HWPID_HARDWARIO 0x015 294 295 // Presence sensor 296 #define HWPID_HARDWARIO_PRESENCE_SENSOR HWPID_CLS2( 0x0, HWPID_HARDWARIO ) // 0x0015 297 298 // COOPER 299 // (1015_HARDWARIO-COPPER.c) 300 #define HWPID_HARDWARIO_COOPER HWPID_CLS2( 0x1, HWPID_HARDWARIO ) // 0x1015 301 302 // ------------------------------------------------------------------------------------------- 303 // 4IOTECH s.r.o. 304 #define HWPID_4IOTECH 0x017 305 306 // 4IOT-SEN-01 307 #define HWPID_4IOTECH_4IOT_SEN_01 HWPID_CLS2( 0x0, HWPID_4IOTECH ) // 0x0017 308 309 // ------------------------------------------------------------------------------------------- 310 // Liteplan Ltd. 311 #define HWPID_LITEPLAN 0x019 312 313 // IQD-DALI-01 314 #define HWPID_LITEPLAN_IQD_DALI_01 HWPID_CLS2( 0x0, HWPID_LITEPLAN ) // 0x0019 315 316 // ------------------------------------------------------------------------------------------- 317 // IQRF Solutions s.r.o. 318 #define HWPID_IQRF_SOLUTIONS 0x507 319 320 // Water Quality Sensor 321 #define HWPID_IQRF_SOLUTIONS_WATER_QUALITY_SENSOR HWPID_CLS2( 0x0, HWPID_IQRF_SOLUTIONS ) // 0x0507 322 323 // Air Quality Sensor 324 #define HWPID_IQRF_SOLUTIONS_AIR_QUALITY_SENSOR HWPID_CLS2( 0x1, HWPID_IQRF_SOLUTIONS ) // 0x1507 325 326 // IQRF RS232 Bridge 327 #define HWPID_IQRF_SOLUTIONS_IQRF_RE232_BRIDGE HWPID_CLS2( 0x2, HWPID_IQRF_SOLUTIONS ) // 0x2507 328 329 #endif // _IQRFSTD_HWPID_ 330 331 //############################################################################################