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