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.

Dependencies:   mbed millis

Fork of QSL_SimplePublish by Jon-Håkon Bøe Røli

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers dn_ipmt.h Source File

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