Program that uses the QuickStart Library to interface a SmartMesh IP mote: Connects to the default network and starts publishing a random walk value every 5 seconds.
Fork of QSL_SimplePublish by
dn_ipmt.h
00001 /* 00002 Copyright (c) 2015, Dust Networks. All rights reserved. 00003 00004 C library to connect to a SmartMesh IP Mote. 00005 00006 \license See attached DN_LICENSE.txt. 00007 */ 00008 00009 #ifndef dn_ipmt_h 00010 #define dn_ipmt_h 00011 00012 #include "dn_common.h" 00013 #include "dn_endianness.h" 00014 #include "dn_clib_version.h" 00015 00016 //=========================== defines ========================================= 00017 00018 #define MAX_FRAME_LENGTH 128 00019 #define DN_SUBCMDID_NONE 0xff 00020 00021 //===== well-known IPv6 address of the SmartMesh IP manager 00022 static const uint8_t ipv6Addr_manager[16] = { 00023 0xff,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 00024 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02 00025 }; 00026 00027 //===== command IDs (requests) 00028 #define CMDID_SETPARAMETER 0x1 00029 #define CMDID_GETPARAMETER 0x2 00030 #define CMDID_JOIN 0x6 00031 #define CMDID_DISCONNECT 0x7 00032 #define CMDID_RESET 0x8 00033 #define CMDID_LOWPOWERSLEEP 0x9 00034 #define CMDID_TESTRADIORX 0xc 00035 #define CMDID_CLEARNV 0x10 00036 #define CMDID_REQUESTSERVICE 0x11 00037 #define CMDID_GETSERVICEINFO 0x12 00038 #define CMDID_OPENSOCKET 0x15 00039 #define CMDID_CLOSESOCKET 0x16 00040 #define CMDID_BINDSOCKET 0x17 00041 #define CMDID_SENDTO 0x18 00042 #define CMDID_SEARCH 0x24 00043 #define CMDID_TESTRADIOTXEXT 0x28 00044 #define CMDID_ZEROIZE 0x29 00045 #define CMDID_SOCKETINFO 0x2b 00046 00047 //===== command IDs (notifications) 00048 #define CMDID_TIMEINDICATION 0xd 00049 #define CMDID_EVENTS 0xf 00050 #define CMDID_RECEIVE 0x19 00051 #define CMDID_MACRX 0x24 00052 #define CMDID_TXDONE 0x25 00053 #define CMDID_ADVRECEIVED 0x26 00054 00055 //===== parameter IDs 00056 #define PARAMID_MACADDRESS 0x1 00057 #define PARAMID_JOINKEY 0x2 00058 #define PARAMID_NETWORKID 0x3 00059 #define PARAMID_TXPOWER 0x4 00060 #define PARAMID_JOINDUTYCYCLE 0x6 00061 #define PARAMID_EVENTMASK 0xb 00062 #define PARAMID_MOTEINFO 0xc 00063 #define PARAMID_NETINFO 0xd 00064 #define PARAMID_MOTESTATUS 0xe 00065 #define PARAMID_TIME 0xf 00066 #define PARAMID_CHARGE 0x10 00067 #define PARAMID_TESTRADIORXSTATS 0x11 00068 #define PARAMID_OTAPLOCKOUT 0x15 00069 #define PARAMID_MOTEID 0x17 00070 #define PARAMID_IPV6ADDRESS 0x18 00071 #define PARAMID_ROUTINGMODE 0x1d 00072 #define PARAMID_APPINFO 0x1e 00073 #define PARAMID_POWERSRCINFO 0x1f 00074 #define PARAMID_ADVKEY 0x22 00075 #define PARAMID_AUTOJOIN 0x24 00076 00077 //===== format of requests 00078 00079 // setParameter_macAddress 00080 #define DN_SETPARAMETER_MACADDRESS_REQ_OFFS_MACADDRESS 1 00081 #define DN_SETPARAMETER_MACADDRESS_REQ_LEN 9 00082 00083 // setParameter_joinKey 00084 #define DN_SETPARAMETER_JOINKEY_REQ_OFFS_JOINKEY 1 00085 #define DN_SETPARAMETER_JOINKEY_REQ_LEN 17 00086 00087 // setParameter_networkId 00088 #define DN_SETPARAMETER_NETWORKID_REQ_OFFS_NETWORKID 1 00089 #define DN_SETPARAMETER_NETWORKID_REQ_LEN 3 00090 00091 // setParameter_txPower 00092 #define DN_SETPARAMETER_TXPOWER_REQ_OFFS_TXPOWER 1 00093 #define DN_SETPARAMETER_TXPOWER_REQ_LEN 2 00094 00095 // setParameter_joinDutyCycle 00096 #define DN_SETPARAMETER_JOINDUTYCYCLE_REQ_OFFS_DUTYCYCLE 1 00097 #define DN_SETPARAMETER_JOINDUTYCYCLE_REQ_LEN 2 00098 00099 // setParameter_eventMask 00100 #define DN_SETPARAMETER_EVENTMASK_REQ_OFFS_EVENTMASK 1 00101 #define DN_SETPARAMETER_EVENTMASK_REQ_LEN 5 00102 00103 // setParameter_OTAPLockout 00104 #define DN_SETPARAMETER_OTAPLOCKOUT_REQ_OFFS_MODE 1 00105 #define DN_SETPARAMETER_OTAPLOCKOUT_REQ_LEN 2 00106 00107 // setParameter_routingMode 00108 #define DN_SETPARAMETER_ROUTINGMODE_REQ_OFFS_MODE 1 00109 #define DN_SETPARAMETER_ROUTINGMODE_REQ_LEN 2 00110 00111 // setParameter_powerSrcInfo 00112 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_MAXSTCURRENT 1 00113 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_MINLIFETIME 3 00114 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_CURRENTLIMIT_0 4 00115 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_DISCHARGEPERIOD_0 6 00116 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_RECHARGEPERIOD_0 8 00117 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_CURRENTLIMIT_1 10 00118 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_DISCHARGEPERIOD_1 12 00119 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_RECHARGEPERIOD_1 14 00120 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_CURRENTLIMIT_2 16 00121 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_DISCHARGEPERIOD_2 18 00122 #define DN_SETPARAMETER_POWERSRCINFO_REQ_OFFS_RECHARGEPERIOD_2 20 00123 #define DN_SETPARAMETER_POWERSRCINFO_REQ_LEN 22 00124 00125 // setParameter_advKey 00126 #define DN_SETPARAMETER_ADVKEY_REQ_OFFS_ADVKEY 1 00127 #define DN_SETPARAMETER_ADVKEY_REQ_LEN 17 00128 00129 // setParameter_autoJoin 00130 #define DN_SETPARAMETER_AUTOJOIN_REQ_OFFS_MODE 1 00131 #define DN_SETPARAMETER_AUTOJOIN_REQ_LEN 2 00132 00133 // getParameter_macAddress 00134 #define DN_GETPARAMETER_MACADDRESS_REQ_LEN 1 00135 00136 // getParameter_networkId 00137 #define DN_GETPARAMETER_NETWORKID_REQ_LEN 1 00138 00139 // getParameter_txPower 00140 #define DN_GETPARAMETER_TXPOWER_REQ_LEN 1 00141 00142 // getParameter_joinDutyCycle 00143 #define DN_GETPARAMETER_JOINDUTYCYCLE_REQ_LEN 1 00144 00145 // getParameter_eventMask 00146 #define DN_GETPARAMETER_EVENTMASK_REQ_LEN 1 00147 00148 // getParameter_moteInfo 00149 #define DN_GETPARAMETER_MOTEINFO_REQ_LEN 1 00150 00151 // getParameter_netInfo 00152 #define DN_GETPARAMETER_NETINFO_REQ_LEN 1 00153 00154 // getParameter_moteStatus 00155 #define DN_GETPARAMETER_MOTESTATUS_REQ_LEN 1 00156 00157 // getParameter_time 00158 #define DN_GETPARAMETER_TIME_REQ_LEN 1 00159 00160 // getParameter_charge 00161 #define DN_GETPARAMETER_CHARGE_REQ_LEN 1 00162 00163 // getParameter_testRadioRxStats 00164 #define DN_GETPARAMETER_TESTRADIORXSTATS_REQ_LEN 1 00165 00166 // getParameter_OTAPLockout 00167 #define DN_GETPARAMETER_OTAPLOCKOUT_REQ_LEN 1 00168 00169 // getParameter_moteId 00170 #define DN_GETPARAMETER_MOTEID_REQ_LEN 1 00171 00172 // getParameter_ipv6Address 00173 #define DN_GETPARAMETER_IPV6ADDRESS_REQ_LEN 1 00174 00175 // getParameter_routingMode 00176 #define DN_GETPARAMETER_ROUTINGMODE_REQ_LEN 1 00177 00178 // getParameter_appInfo 00179 #define DN_GETPARAMETER_APPINFO_REQ_LEN 1 00180 00181 // getParameter_powerSrcInfo 00182 #define DN_GETPARAMETER_POWERSRCINFO_REQ_LEN 1 00183 00184 // getParameter_autoJoin 00185 #define DN_GETPARAMETER_AUTOJOIN_REQ_LEN 1 00186 00187 // join 00188 #define DN_JOIN_REQ_LEN 0 00189 00190 // disconnect 00191 #define DN_DISCONNECT_REQ_LEN 0 00192 00193 // reset 00194 #define DN_RESET_REQ_LEN 0 00195 00196 // lowPowerSleep 00197 #define DN_LOWPOWERSLEEP_REQ_LEN 0 00198 00199 // testRadioRx 00200 #define DN_TESTRADIORX_REQ_OFFS_CHANNELMASK 0 00201 #define DN_TESTRADIORX_REQ_OFFS_TIME 2 00202 #define DN_TESTRADIORX_REQ_OFFS_STATIONID 4 00203 #define DN_TESTRADIORX_REQ_LEN 5 00204 00205 // clearNV 00206 #define DN_CLEARNV_REQ_LEN 0 00207 00208 // requestService 00209 #define DN_REQUESTSERVICE_REQ_OFFS_DESTADDR 0 00210 #define DN_REQUESTSERVICE_REQ_OFFS_SERVICETYPE 2 00211 #define DN_REQUESTSERVICE_REQ_OFFS_VALUE 3 00212 #define DN_REQUESTSERVICE_REQ_LEN 7 00213 00214 // getServiceInfo 00215 #define DN_GETSERVICEINFO_REQ_OFFS_DESTADDR 0 00216 #define DN_GETSERVICEINFO_REQ_OFFS_TYPE 2 00217 #define DN_GETSERVICEINFO_REQ_LEN 3 00218 00219 // openSocket 00220 #define DN_OPENSOCKET_REQ_OFFS_PROTOCOL 0 00221 #define DN_OPENSOCKET_REQ_LEN 1 00222 00223 // closeSocket 00224 #define DN_CLOSESOCKET_REQ_OFFS_SOCKETID 0 00225 #define DN_CLOSESOCKET_REQ_LEN 1 00226 00227 // bindSocket 00228 #define DN_BINDSOCKET_REQ_OFFS_SOCKETID 0 00229 #define DN_BINDSOCKET_REQ_OFFS_PORT 1 00230 #define DN_BINDSOCKET_REQ_LEN 3 00231 00232 // sendTo 00233 #define DN_SENDTO_REQ_OFFS_SOCKETID 0 00234 #define DN_SENDTO_REQ_OFFS_DESTIP 1 00235 #define DN_SENDTO_REQ_OFFS_DESTPORT 17 00236 #define DN_SENDTO_REQ_OFFS_SERVICETYPE 19 00237 #define DN_SENDTO_REQ_OFFS_PRIORITY 20 00238 #define DN_SENDTO_REQ_OFFS_PACKETID 21 00239 #define DN_SENDTO_REQ_OFFS_PAYLOAD 23 00240 #define DN_SENDTO_REQ_LEN 23 00241 00242 // search 00243 #define DN_SEARCH_REQ_LEN 0 00244 00245 // testRadioTxExt 00246 #define DN_TESTRADIOTXEXT_REQ_OFFS_TESTTYPE 0 00247 #define DN_TESTRADIOTXEXT_REQ_OFFS_CHANMASK 1 00248 #define DN_TESTRADIOTXEXT_REQ_OFFS_REPEATCNT 3 00249 #define DN_TESTRADIOTXEXT_REQ_OFFS_TXPOWER 5 00250 #define DN_TESTRADIOTXEXT_REQ_OFFS_SEQSIZE 6 00251 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_1 7 00252 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_1 8 00253 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_2 10 00254 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_2 11 00255 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_3 13 00256 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_3 14 00257 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_4 16 00258 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_4 17 00259 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_5 19 00260 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_5 20 00261 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_6 22 00262 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_6 23 00263 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_7 25 00264 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_7 26 00265 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_8 28 00266 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_8 29 00267 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_9 31 00268 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_9 32 00269 #define DN_TESTRADIOTXEXT_REQ_OFFS_PKLEN_10 34 00270 #define DN_TESTRADIOTXEXT_REQ_OFFS_DELAY_10 35 00271 #define DN_TESTRADIOTXEXT_REQ_OFFS_STATIONID 37 00272 #define DN_TESTRADIOTXEXT_REQ_LEN 38 00273 00274 // zeroize 00275 #define DN_ZEROIZE_REQ_LEN 0 00276 00277 // socketInfo 00278 #define DN_SOCKETINFO_REQ_OFFS_INDEX 0 00279 #define DN_SOCKETINFO_REQ_LEN 1 00280 00281 //===== format of replies 00282 00283 // setParameter_macAddress 00284 #define DN_SETPARAMETER_MACADDRESS_REPLY_LEN 1 00285 00286 // setParameter_joinKey 00287 #define DN_SETPARAMETER_JOINKEY_REPLY_LEN 1 00288 00289 // setParameter_networkId 00290 #define DN_SETPARAMETER_NETWORKID_REPLY_LEN 1 00291 00292 // setParameter_txPower 00293 #define DN_SETPARAMETER_TXPOWER_REPLY_LEN 1 00294 00295 // setParameter_joinDutyCycle 00296 #define DN_SETPARAMETER_JOINDUTYCYCLE_REPLY_LEN 1 00297 00298 // setParameter_eventMask 00299 #define DN_SETPARAMETER_EVENTMASK_REPLY_LEN 1 00300 00301 // setParameter_OTAPLockout 00302 #define DN_SETPARAMETER_OTAPLOCKOUT_REPLY_LEN 1 00303 00304 // setParameter_routingMode 00305 #define DN_SETPARAMETER_ROUTINGMODE_REPLY_LEN 1 00306 00307 // setParameter_powerSrcInfo 00308 #define DN_SETPARAMETER_POWERSRCINFO_REPLY_LEN 1 00309 00310 // setParameter_advKey 00311 #define DN_SETPARAMETER_ADVKEY_REPLY_LEN 1 00312 00313 // setParameter_autoJoin 00314 #define DN_SETPARAMETER_AUTOJOIN_REPLY_LEN 1 00315 00316 // getParameter_macAddress 00317 #define DN_GETPARAMETER_MACADDRESS_REPLY_OFFS_MACADDRESS 1 00318 #define DN_GETPARAMETER_MACADDRESS_REPLY_LEN 9 00319 00320 // getParameter_networkId 00321 #define DN_GETPARAMETER_NETWORKID_REPLY_OFFS_NETWORKID 1 00322 #define DN_GETPARAMETER_NETWORKID_REPLY_LEN 3 00323 00324 // getParameter_txPower 00325 #define DN_GETPARAMETER_TXPOWER_REPLY_OFFS_TXPOWER 1 00326 #define DN_GETPARAMETER_TXPOWER_REPLY_LEN 2 00327 00328 // getParameter_joinDutyCycle 00329 #define DN_GETPARAMETER_JOINDUTYCYCLE_REPLY_OFFS_JOINDUTYCYCLE 1 00330 #define DN_GETPARAMETER_JOINDUTYCYCLE_REPLY_LEN 2 00331 00332 // getParameter_eventMask 00333 #define DN_GETPARAMETER_EVENTMASK_REPLY_OFFS_EVENTMASK 1 00334 #define DN_GETPARAMETER_EVENTMASK_REPLY_LEN 5 00335 00336 // getParameter_moteInfo 00337 #define DN_GETPARAMETER_MOTEINFO_REPLY_OFFS_APIVERSION 1 00338 #define DN_GETPARAMETER_MOTEINFO_REPLY_OFFS_SERIALNUMBER 2 00339 #define DN_GETPARAMETER_MOTEINFO_REPLY_OFFS_HWMODEL 10 00340 #define DN_GETPARAMETER_MOTEINFO_REPLY_OFFS_HWREV 11 00341 #define DN_GETPARAMETER_MOTEINFO_REPLY_OFFS_SWVERMAJOR 12 00342 #define DN_GETPARAMETER_MOTEINFO_REPLY_OFFS_SWVERMINOR 13 00343 #define DN_GETPARAMETER_MOTEINFO_REPLY_OFFS_SWVERPATCH 14 00344 #define DN_GETPARAMETER_MOTEINFO_REPLY_OFFS_SWVERBUILD 15 00345 #define DN_GETPARAMETER_MOTEINFO_REPLY_OFFS_BOOTSWVER 17 00346 #define DN_GETPARAMETER_MOTEINFO_REPLY_LEN 18 00347 00348 // getParameter_netInfo 00349 #define DN_GETPARAMETER_NETINFO_REPLY_OFFS_MACADDRESS 1 00350 #define DN_GETPARAMETER_NETINFO_REPLY_OFFS_MOTEID 9 00351 #define DN_GETPARAMETER_NETINFO_REPLY_OFFS_NETWORKID 11 00352 #define DN_GETPARAMETER_NETINFO_REPLY_OFFS_SLOTSIZE 13 00353 #define DN_GETPARAMETER_NETINFO_REPLY_LEN 15 00354 00355 // getParameter_moteStatus 00356 #define DN_GETPARAMETER_MOTESTATUS_REPLY_OFFS_STATE 1 00357 #define DN_GETPARAMETER_MOTESTATUS_REPLY_OFFS_RESERVED_0 2 00358 #define DN_GETPARAMETER_MOTESTATUS_REPLY_OFFS_RESERVED_1 3 00359 #define DN_GETPARAMETER_MOTESTATUS_REPLY_OFFS_NUMPARENTS 5 00360 #define DN_GETPARAMETER_MOTESTATUS_REPLY_OFFS_ALARMS 6 00361 #define DN_GETPARAMETER_MOTESTATUS_REPLY_OFFS_RESERVED_2 10 00362 #define DN_GETPARAMETER_MOTESTATUS_REPLY_LEN 11 00363 00364 // getParameter_time 00365 #define DN_GETPARAMETER_TIME_REPLY_OFFS_UPTIME 1 00366 #define DN_GETPARAMETER_TIME_REPLY_OFFS_UTCSECS 5 00367 #define DN_GETPARAMETER_TIME_REPLY_OFFS_UTCUSECS 13 00368 #define DN_GETPARAMETER_TIME_REPLY_OFFS_ASN 17 00369 #define DN_GETPARAMETER_TIME_REPLY_OFFS_ASNOFFSET 22 00370 #define DN_GETPARAMETER_TIME_REPLY_LEN 24 00371 00372 // getParameter_charge 00373 #define DN_GETPARAMETER_CHARGE_REPLY_OFFS_QTOTAL 1 00374 #define DN_GETPARAMETER_CHARGE_REPLY_OFFS_UPTIME 5 00375 #define DN_GETPARAMETER_CHARGE_REPLY_OFFS_TEMPINT 9 00376 #define DN_GETPARAMETER_CHARGE_REPLY_OFFS_TEMPFRAC 10 00377 #define DN_GETPARAMETER_CHARGE_REPLY_LEN 11 00378 00379 // getParameter_testRadioRxStats 00380 #define DN_GETPARAMETER_TESTRADIORXSTATS_REPLY_OFFS_RXOK 1 00381 #define DN_GETPARAMETER_TESTRADIORXSTATS_REPLY_OFFS_RXFAILED 3 00382 #define DN_GETPARAMETER_TESTRADIORXSTATS_REPLY_LEN 5 00383 00384 // getParameter_OTAPLockout 00385 #define DN_GETPARAMETER_OTAPLOCKOUT_REPLY_OFFS_MODE 1 00386 #define DN_GETPARAMETER_OTAPLOCKOUT_REPLY_LEN 2 00387 00388 // getParameter_moteId 00389 #define DN_GETPARAMETER_MOTEID_REPLY_OFFS_MOTEID 1 00390 #define DN_GETPARAMETER_MOTEID_REPLY_LEN 3 00391 00392 // getParameter_ipv6Address 00393 #define DN_GETPARAMETER_IPV6ADDRESS_REPLY_OFFS_IPV6ADDRESS 1 00394 #define DN_GETPARAMETER_IPV6ADDRESS_REPLY_LEN 17 00395 00396 // getParameter_routingMode 00397 #define DN_GETPARAMETER_ROUTINGMODE_REPLY_OFFS_ROUTINGMODE 1 00398 #define DN_GETPARAMETER_ROUTINGMODE_REPLY_LEN 2 00399 00400 // getParameter_appInfo 00401 #define DN_GETPARAMETER_APPINFO_REPLY_OFFS_VENDORID 1 00402 #define DN_GETPARAMETER_APPINFO_REPLY_OFFS_APPID 3 00403 #define DN_GETPARAMETER_APPINFO_REPLY_OFFS_APPVER 4 00404 #define DN_GETPARAMETER_APPINFO_REPLY_LEN 9 00405 00406 // getParameter_powerSrcInfo 00407 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_MAXSTCURRENT 1 00408 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_MINLIFETIME 3 00409 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_CURRENTLIMIT_0 4 00410 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_DISCHARGEPERIOD_0 6 00411 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_RECHARGEPERIOD_0 8 00412 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_CURRENTLIMIT_1 10 00413 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_DISCHARGEPERIOD_1 12 00414 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_RECHARGEPERIOD_1 14 00415 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_CURRENTLIMIT_2 16 00416 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_DISCHARGEPERIOD_2 18 00417 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_OFFS_RECHARGEPERIOD_2 20 00418 #define DN_GETPARAMETER_POWERSRCINFO_REPLY_LEN 22 00419 00420 // getParameter_autoJoin 00421 #define DN_GETPARAMETER_AUTOJOIN_REPLY_OFFS_AUTOJOIN 1 00422 #define DN_GETPARAMETER_AUTOJOIN_REPLY_LEN 2 00423 00424 // join 00425 #define DN_JOIN_REPLY_LEN 0 00426 00427 // disconnect 00428 #define DN_DISCONNECT_REPLY_LEN 0 00429 00430 // reset 00431 #define DN_RESET_REPLY_LEN 0 00432 00433 // lowPowerSleep 00434 #define DN_LOWPOWERSLEEP_REPLY_LEN 0 00435 00436 // testRadioRx 00437 #define DN_TESTRADIORX_REPLY_LEN 0 00438 00439 // clearNV 00440 #define DN_CLEARNV_REPLY_LEN 0 00441 00442 // requestService 00443 #define DN_REQUESTSERVICE_REPLY_LEN 0 00444 00445 // getServiceInfo 00446 #define DN_GETSERVICEINFO_REPLY_OFFS_DESTADDR 0 00447 #define DN_GETSERVICEINFO_REPLY_OFFS_TYPE 2 00448 #define DN_GETSERVICEINFO_REPLY_OFFS_STATE 3 00449 #define DN_GETSERVICEINFO_REPLY_OFFS_VALUE 4 00450 #define DN_GETSERVICEINFO_REPLY_LEN 8 00451 00452 // openSocket 00453 #define DN_OPENSOCKET_REPLY_OFFS_SOCKETID 0 00454 #define DN_OPENSOCKET_REPLY_LEN 1 00455 00456 // closeSocket 00457 #define DN_CLOSESOCKET_REPLY_LEN 0 00458 00459 // bindSocket 00460 #define DN_BINDSOCKET_REPLY_LEN 0 00461 00462 // sendTo 00463 #define DN_SENDTO_REPLY_LEN 0 00464 00465 // search 00466 #define DN_SEARCH_REPLY_LEN 0 00467 00468 // testRadioTxExt 00469 #define DN_TESTRADIOTXEXT_REPLY_LEN 0 00470 00471 // zeroize 00472 #define DN_ZEROIZE_REPLY_LEN 0 00473 00474 // socketInfo 00475 #define DN_SOCKETINFO_REPLY_OFFS_INDEX 0 00476 #define DN_SOCKETINFO_REPLY_OFFS_SOCKETID 1 00477 #define DN_SOCKETINFO_REPLY_OFFS_PROTOCOL 2 00478 #define DN_SOCKETINFO_REPLY_OFFS_BINDSTATE 3 00479 #define DN_SOCKETINFO_REPLY_OFFS_PORT 4 00480 #define DN_SOCKETINFO_REPLY_LEN 6 00481 00482 //===== format of notifications 00483 00484 // timeIndication 00485 #define DN_TIMEINDICATION_NOTIF_OFFS_UPTIME 0 00486 #define DN_TIMEINDICATION_NOTIF_OFFS_UTCSECS 4 00487 #define DN_TIMEINDICATION_NOTIF_OFFS_UTCUSECS 12 00488 #define DN_TIMEINDICATION_NOTIF_OFFS_ASN 16 00489 #define DN_TIMEINDICATION_NOTIF_OFFS_ASNOFFSET 21 00490 #define DN_TIMEINDICATION_NOTIF_LEN 23 00491 00492 // events 00493 #define DN_EVENTS_NOTIF_OFFS_EVENTS 0 00494 #define DN_EVENTS_NOTIF_OFFS_STATE 4 00495 #define DN_EVENTS_NOTIF_OFFS_ALARMSLIST 5 00496 #define DN_EVENTS_NOTIF_LEN 9 00497 00498 // receive 00499 #define DN_RECEIVE_NOTIF_OFFS_SOCKETID 0 00500 #define DN_RECEIVE_NOTIF_OFFS_SRCADDR 1 00501 #define DN_RECEIVE_NOTIF_OFFS_SRCPORT 17 00502 #define DN_RECEIVE_NOTIF_OFFS_PAYLOAD 19 00503 #define DN_RECEIVE_NOTIF_LEN 19 00504 00505 // macRx 00506 #define DN_MACRX_NOTIF_OFFS_PAYLOAD 0 00507 #define DN_MACRX_NOTIF_LEN 0 00508 00509 // txDone 00510 #define DN_TXDONE_NOTIF_OFFS_PACKETID 0 00511 #define DN_TXDONE_NOTIF_OFFS_STATUS 2 00512 #define DN_TXDONE_NOTIF_LEN 3 00513 00514 // advReceived 00515 #define DN_ADVRECEIVED_NOTIF_OFFS_NETID 0 00516 #define DN_ADVRECEIVED_NOTIF_OFFS_MOTEID 2 00517 #define DN_ADVRECEIVED_NOTIF_OFFS_RSSI 4 00518 #define DN_ADVRECEIVED_NOTIF_OFFS_JOINPRI 5 00519 #define DN_ADVRECEIVED_NOTIF_LEN 6 00520 00521 //=========================== typedef ========================================= 00522 00523 //=== reply types 00524 00525 typedef struct { 00526 uint8_t RC; 00527 } dn_ipmt_setParameter_macAddress_rpt; 00528 00529 typedef struct { 00530 uint8_t RC; 00531 } dn_ipmt_setParameter_joinKey_rpt; 00532 00533 typedef struct { 00534 uint8_t RC; 00535 } dn_ipmt_setParameter_networkId_rpt; 00536 00537 typedef struct { 00538 uint8_t RC; 00539 } dn_ipmt_setParameter_txPower_rpt; 00540 00541 typedef struct { 00542 uint8_t RC; 00543 } dn_ipmt_setParameter_joinDutyCycle_rpt; 00544 00545 typedef struct { 00546 uint8_t RC; 00547 } dn_ipmt_setParameter_eventMask_rpt; 00548 00549 typedef struct { 00550 uint8_t RC; 00551 } dn_ipmt_setParameter_OTAPLockout_rpt; 00552 00553 typedef struct { 00554 uint8_t RC; 00555 } dn_ipmt_setParameter_routingMode_rpt; 00556 00557 typedef struct { 00558 uint8_t RC; 00559 } dn_ipmt_setParameter_powerSrcInfo_rpt; 00560 00561 typedef struct { 00562 uint8_t RC; 00563 } dn_ipmt_setParameter_advKey_rpt; 00564 00565 typedef struct { 00566 uint8_t RC; 00567 } dn_ipmt_setParameter_autoJoin_rpt; 00568 00569 typedef struct { 00570 uint8_t RC; 00571 uint8_t macAddress[8]; 00572 } dn_ipmt_getParameter_macAddress_rpt; 00573 00574 typedef struct { 00575 uint8_t RC; 00576 uint16_t networkId; 00577 } dn_ipmt_getParameter_networkId_rpt; 00578 00579 typedef struct { 00580 uint8_t RC; 00581 int8_t txPower; 00582 } dn_ipmt_getParameter_txPower_rpt; 00583 00584 typedef struct { 00585 uint8_t RC; 00586 uint8_t joinDutyCycle; 00587 } dn_ipmt_getParameter_joinDutyCycle_rpt; 00588 00589 typedef struct { 00590 uint8_t RC; 00591 uint32_t eventMask; 00592 } dn_ipmt_getParameter_eventMask_rpt; 00593 00594 typedef struct { 00595 uint8_t RC; 00596 uint8_t apiVersion; 00597 uint8_t serialNumber[8]; 00598 uint8_t hwModel; 00599 uint8_t hwRev; 00600 uint8_t swVerMajor; 00601 uint8_t swVerMinor; 00602 uint8_t swVerPatch; 00603 uint16_t swVerBuild; 00604 uint8_t bootSwVer; 00605 } dn_ipmt_getParameter_moteInfo_rpt; 00606 00607 typedef struct { 00608 uint8_t RC; 00609 uint8_t macAddress[8]; 00610 uint16_t moteId; 00611 uint16_t networkId; 00612 uint16_t slotSize; 00613 } dn_ipmt_getParameter_netInfo_rpt; 00614 00615 typedef struct { 00616 uint8_t RC; 00617 uint8_t state; 00618 uint8_t reserved_0; 00619 uint16_t reserved_1; 00620 uint8_t numParents; 00621 uint32_t alarms; 00622 uint8_t reserved_2; 00623 } dn_ipmt_getParameter_moteStatus_rpt; 00624 00625 typedef struct { 00626 uint8_t RC; 00627 uint32_t upTime; 00628 uint8_t utcSecs[8]; 00629 uint32_t utcUsecs; 00630 uint8_t asn[5]; 00631 uint16_t asnOffset; 00632 } dn_ipmt_getParameter_time_rpt; 00633 00634 typedef struct { 00635 uint8_t RC; 00636 uint32_t qTotal; 00637 uint32_t upTime; 00638 int8_t tempInt; 00639 uint8_t tempFrac; 00640 } dn_ipmt_getParameter_charge_rpt; 00641 00642 typedef struct { 00643 uint8_t RC; 00644 uint16_t rxOk; 00645 uint16_t rxFailed; 00646 } dn_ipmt_getParameter_testRadioRxStats_rpt; 00647 00648 typedef struct { 00649 uint8_t RC; 00650 bool mode; 00651 } dn_ipmt_getParameter_OTAPLockout_rpt; 00652 00653 typedef struct { 00654 uint8_t RC; 00655 uint16_t moteId; 00656 } dn_ipmt_getParameter_moteId_rpt; 00657 00658 typedef struct { 00659 uint8_t RC; 00660 uint8_t ipv6Address[16]; 00661 } dn_ipmt_getParameter_ipv6Address_rpt; 00662 00663 typedef struct { 00664 uint8_t RC; 00665 bool routingMode; 00666 } dn_ipmt_getParameter_routingMode_rpt; 00667 00668 typedef struct { 00669 uint8_t RC; 00670 uint16_t vendorId; 00671 uint8_t appId; 00672 uint8_t appVer[5]; 00673 } dn_ipmt_getParameter_appInfo_rpt; 00674 00675 typedef struct { 00676 uint8_t RC; 00677 uint16_t maxStCurrent; 00678 uint8_t minLifetime; 00679 uint16_t currentLimit_0; 00680 uint16_t dischargePeriod_0; 00681 uint16_t rechargePeriod_0; 00682 uint16_t currentLimit_1; 00683 uint16_t dischargePeriod_1; 00684 uint16_t rechargePeriod_1; 00685 uint16_t currentLimit_2; 00686 uint16_t dischargePeriod_2; 00687 uint16_t rechargePeriod_2; 00688 } dn_ipmt_getParameter_powerSrcInfo_rpt; 00689 00690 typedef struct { 00691 uint8_t RC; 00692 bool autoJoin; 00693 } dn_ipmt_getParameter_autoJoin_rpt; 00694 00695 typedef struct { 00696 uint8_t RC; 00697 } dn_ipmt_join_rpt; 00698 00699 typedef struct { 00700 uint8_t RC; 00701 } dn_ipmt_disconnect_rpt; 00702 00703 typedef struct { 00704 uint8_t RC; 00705 } dn_ipmt_reset_rpt; 00706 00707 typedef struct { 00708 uint8_t RC; 00709 } dn_ipmt_lowPowerSleep_rpt; 00710 00711 typedef struct { 00712 uint8_t RC; 00713 } dn_ipmt_testRadioRx_rpt; 00714 00715 typedef struct { 00716 uint8_t RC; 00717 } dn_ipmt_clearNV_rpt; 00718 00719 typedef struct { 00720 uint8_t RC; 00721 } dn_ipmt_requestService_rpt; 00722 00723 typedef struct { 00724 uint8_t RC; 00725 uint16_t destAddr; 00726 uint8_t type; 00727 uint8_t state; 00728 uint32_t value; 00729 } dn_ipmt_getServiceInfo_rpt; 00730 00731 typedef struct { 00732 uint8_t RC; 00733 uint8_t socketId; 00734 } dn_ipmt_openSocket_rpt; 00735 00736 typedef struct { 00737 uint8_t RC; 00738 } dn_ipmt_closeSocket_rpt; 00739 00740 typedef struct { 00741 uint8_t RC; 00742 } dn_ipmt_bindSocket_rpt; 00743 00744 typedef struct { 00745 uint8_t RC; 00746 } dn_ipmt_sendTo_rpt; 00747 00748 typedef struct { 00749 uint8_t RC; 00750 } dn_ipmt_search_rpt; 00751 00752 typedef struct { 00753 uint8_t RC; 00754 } dn_ipmt_testRadioTxExt_rpt; 00755 00756 typedef struct { 00757 uint8_t RC; 00758 } dn_ipmt_zeroize_rpt; 00759 00760 typedef struct { 00761 uint8_t RC; 00762 uint8_t index; 00763 uint8_t socketId; 00764 uint8_t protocol; 00765 uint8_t bindState; 00766 uint16_t port; 00767 } dn_ipmt_socketInfo_rpt; 00768 00769 //=== notification types 00770 00771 typedef struct { 00772 uint32_t uptime; 00773 uint8_t utcSecs[8]; 00774 uint32_t utcUsecs; 00775 uint8_t asn[5]; 00776 uint16_t asnOffset; 00777 } dn_ipmt_timeIndication_nt; 00778 00779 typedef struct { 00780 uint32_t events; 00781 uint8_t state; 00782 uint32_t alarmsList; 00783 } dn_ipmt_events_nt; 00784 00785 typedef struct { 00786 uint8_t socketId; 00787 uint8_t srcAddr[16]; 00788 uint16_t srcPort; 00789 uint8_t payloadLen; 00790 uint8_t payload[MAX_FRAME_LENGTH]; 00791 } dn_ipmt_receive_nt; 00792 00793 typedef struct { 00794 uint8_t payload[MAX_FRAME_LENGTH]; 00795 } dn_ipmt_macRx_nt; 00796 00797 typedef struct { 00798 uint16_t packetId; 00799 uint8_t status; 00800 } dn_ipmt_txDone_nt; 00801 00802 typedef struct { 00803 uint16_t netId; 00804 uint16_t moteId; 00805 int8_t rssi; 00806 uint8_t joinPri; 00807 } dn_ipmt_advReceived_nt; 00808 00809 //=== callback signature 00810 typedef void (*dn_ipmt_notif_cbt)(uint8_t cmdId, uint8_t subCmdId); 00811 typedef void (*dn_ipmt_reply_cbt)(uint8_t cmdId); 00812 typedef void (*dn_ipmt_status_cbt)(uint8_t newStatus); // only used in SmartMesh IP manager 00813 00814 //=========================== variables ======================================= 00815 00816 //=========================== prototypes ====================================== 00817 00818 #ifdef __cplusplus 00819 extern "C" { 00820 #endif 00821 00822 //==== admin 00823 void dn_ipmt_init(dn_ipmt_notif_cbt notifCb, uint8_t* notifBuf, uint8_t notifBufLen, dn_ipmt_reply_cbt replyCb); 00824 void dn_ipmt_cancelTx(); 00825 00826 00827 //==== API 00828 dn_err_t dn_ipmt_setParameter_macAddress(uint8_t* macAddress, dn_ipmt_setParameter_macAddress_rpt* reply); 00829 dn_err_t dn_ipmt_setParameter_joinKey(uint8_t* joinKey, dn_ipmt_setParameter_joinKey_rpt* reply); 00830 dn_err_t dn_ipmt_setParameter_networkId(uint16_t networkId, dn_ipmt_setParameter_networkId_rpt* reply); 00831 dn_err_t dn_ipmt_setParameter_txPower(int8_t txPower, dn_ipmt_setParameter_txPower_rpt* reply); 00832 dn_err_t dn_ipmt_setParameter_joinDutyCycle(uint8_t dutyCycle, dn_ipmt_setParameter_joinDutyCycle_rpt* reply); 00833 dn_err_t dn_ipmt_setParameter_eventMask(uint32_t eventMask, dn_ipmt_setParameter_eventMask_rpt* reply); 00834 dn_err_t dn_ipmt_setParameter_OTAPLockout(bool mode, dn_ipmt_setParameter_OTAPLockout_rpt* reply); 00835 dn_err_t dn_ipmt_setParameter_routingMode(bool mode, dn_ipmt_setParameter_routingMode_rpt* reply); 00836 dn_err_t dn_ipmt_setParameter_powerSrcInfo(uint16_t maxStCurrent, uint8_t minLifetime, uint16_t currentLimit_0, uint16_t dischargePeriod_0, uint16_t rechargePeriod_0, uint16_t currentLimit_1, uint16_t dischargePeriod_1, uint16_t rechargePeriod_1, uint16_t currentLimit_2, uint16_t dischargePeriod_2, uint16_t rechargePeriod_2, dn_ipmt_setParameter_powerSrcInfo_rpt* reply); 00837 dn_err_t dn_ipmt_setParameter_advKey(uint8_t* advKey, dn_ipmt_setParameter_advKey_rpt* reply); 00838 dn_err_t dn_ipmt_setParameter_autoJoin(bool mode, dn_ipmt_setParameter_autoJoin_rpt* reply); 00839 dn_err_t dn_ipmt_getParameter_macAddress(dn_ipmt_getParameter_macAddress_rpt* reply); 00840 dn_err_t dn_ipmt_getParameter_networkId(dn_ipmt_getParameter_networkId_rpt* reply); 00841 dn_err_t dn_ipmt_getParameter_txPower(dn_ipmt_getParameter_txPower_rpt* reply); 00842 dn_err_t dn_ipmt_getParameter_joinDutyCycle(dn_ipmt_getParameter_joinDutyCycle_rpt* reply); 00843 dn_err_t dn_ipmt_getParameter_eventMask(dn_ipmt_getParameter_eventMask_rpt* reply); 00844 dn_err_t dn_ipmt_getParameter_moteInfo(dn_ipmt_getParameter_moteInfo_rpt* reply); 00845 dn_err_t dn_ipmt_getParameter_netInfo(dn_ipmt_getParameter_netInfo_rpt* reply); 00846 dn_err_t dn_ipmt_getParameter_moteStatus(dn_ipmt_getParameter_moteStatus_rpt* reply); 00847 dn_err_t dn_ipmt_getParameter_time(dn_ipmt_getParameter_time_rpt* reply); 00848 dn_err_t dn_ipmt_getParameter_charge(dn_ipmt_getParameter_charge_rpt* reply); 00849 dn_err_t dn_ipmt_getParameter_testRadioRxStats(dn_ipmt_getParameter_testRadioRxStats_rpt* reply); 00850 dn_err_t dn_ipmt_getParameter_OTAPLockout(dn_ipmt_getParameter_OTAPLockout_rpt* reply); 00851 dn_err_t dn_ipmt_getParameter_moteId(dn_ipmt_getParameter_moteId_rpt* reply); 00852 dn_err_t dn_ipmt_getParameter_ipv6Address(dn_ipmt_getParameter_ipv6Address_rpt* reply); 00853 dn_err_t dn_ipmt_getParameter_routingMode(dn_ipmt_getParameter_routingMode_rpt* reply); 00854 dn_err_t dn_ipmt_getParameter_appInfo(dn_ipmt_getParameter_appInfo_rpt* reply); 00855 dn_err_t dn_ipmt_getParameter_powerSrcInfo(dn_ipmt_getParameter_powerSrcInfo_rpt* reply); 00856 dn_err_t dn_ipmt_getParameter_autoJoin(dn_ipmt_getParameter_autoJoin_rpt* reply); 00857 dn_err_t dn_ipmt_join(dn_ipmt_join_rpt* reply); 00858 dn_err_t dn_ipmt_disconnect(dn_ipmt_disconnect_rpt* reply); 00859 dn_err_t dn_ipmt_reset(dn_ipmt_reset_rpt* reply); 00860 dn_err_t dn_ipmt_lowPowerSleep(dn_ipmt_lowPowerSleep_rpt* reply); 00861 dn_err_t dn_ipmt_testRadioRx(uint16_t channelMask, uint16_t time, uint8_t stationId, dn_ipmt_testRadioRx_rpt* reply); 00862 dn_err_t dn_ipmt_clearNV(dn_ipmt_clearNV_rpt* reply); 00863 dn_err_t dn_ipmt_requestService(uint16_t destAddr, uint8_t serviceType, uint32_t value, dn_ipmt_requestService_rpt* reply); 00864 dn_err_t dn_ipmt_getServiceInfo(uint16_t destAddr, uint8_t type, dn_ipmt_getServiceInfo_rpt* reply); 00865 dn_err_t dn_ipmt_openSocket(uint8_t protocol, dn_ipmt_openSocket_rpt* reply); 00866 dn_err_t dn_ipmt_closeSocket(uint8_t socketId, dn_ipmt_closeSocket_rpt* reply); 00867 dn_err_t dn_ipmt_bindSocket(uint8_t socketId, uint16_t port, dn_ipmt_bindSocket_rpt* reply); 00868 dn_err_t dn_ipmt_sendTo(uint8_t socketId, uint8_t* destIP, uint16_t destPort, uint8_t serviceType, uint8_t priority, uint16_t packetId, uint8_t* payload, uint8_t payloadLen, dn_ipmt_sendTo_rpt* reply); 00869 dn_err_t dn_ipmt_search(dn_ipmt_search_rpt* reply); 00870 dn_err_t dn_ipmt_testRadioTxExt(uint8_t testType, uint16_t chanMask, uint16_t repeatCnt, int8_t txPower, uint8_t seqSize, uint8_t pkLen_1, uint16_t delay_1, uint8_t pkLen_2, uint16_t delay_2, uint8_t pkLen_3, uint16_t delay_3, uint8_t pkLen_4, uint16_t delay_4, uint8_t pkLen_5, uint16_t delay_5, uint8_t pkLen_6, uint16_t delay_6, uint8_t pkLen_7, uint16_t delay_7, uint8_t pkLen_8, uint16_t delay_8, uint8_t pkLen_9, uint16_t delay_9, uint8_t pkLen_10, uint16_t delay_10, uint8_t stationId, dn_ipmt_testRadioTxExt_rpt* reply); 00871 dn_err_t dn_ipmt_zeroize(dn_ipmt_zeroize_rpt* reply); 00872 dn_err_t dn_ipmt_socketInfo(uint8_t index, dn_ipmt_socketInfo_rpt* reply); 00873 00874 #ifdef __cplusplus 00875 } 00876 #endif 00877 00878 #endif 00879
Generated on Fri Jul 15 2022 15:25:40 by 1.7.2