ipso_objects.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628
  1. /**
  2. * Copyright (c) 2015 - 2019, Nordic Semiconductor ASA
  3. *
  4. * All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without modification,
  7. * are permitted provided that the following conditions are met:
  8. *
  9. * 1. Redistributions of source code must retain the above copyright notice, this
  10. * list of conditions and the following disclaimer.
  11. *
  12. * 2. Redistributions in binary form, except as embedded into a Nordic
  13. * Semiconductor ASA integrated circuit in a product or a software update for
  14. * such product, must reproduce the above copyright notice, this list of
  15. * conditions and the following disclaimer in the documentation and/or other
  16. * materials provided with the distribution.
  17. *
  18. * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
  19. * contributors may be used to endorse or promote products derived from this
  20. * software without specific prior written permission.
  21. *
  22. * 4. This software, with or without modification, must only be used with a
  23. * Nordic Semiconductor ASA integrated circuit.
  24. *
  25. * 5. Any software provided in binary form under this license must not be reverse
  26. * engineered, decompiled, modified and/or disassembled.
  27. *
  28. * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
  29. * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  30. * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
  31. * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
  32. * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  33. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
  34. * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  35. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  36. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  37. * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  38. *
  39. */
  40. /**@file lwm2m_objects.h
  41. *
  42. * @defgroup iot_sdk_ipso_objects IPSO Smart Object definititions and types
  43. * @ingroup iot_sdk_lwm2m
  44. * @{
  45. * @brief IPSO objects definitions and types.
  46. *
  47. * @note The definitions used in this module are from the IPSO Alliance
  48. * "IPSO SmartOject Guideline - Smart Objects Starter Pack1.0".
  49. * The specification could be found at http://www.ipso-alliance.org/.
  50. */
  51. #ifndef IPSO_OBJECTS_H__
  52. #define IPSO_OBJECTS_H__
  53. #include "lwm2m_api.h"
  54. #ifdef __cplusplus
  55. extern "C" {
  56. #endif
  57. #define IPSO_SO_ID_DIGITAL_INPUT 3200
  58. #define IPSO_SO_ID_DIGITAL_OUTPUT 3201
  59. #define IPSO_SO_ID_ANALOGUE_INPUT 3202
  60. #define IPSO_SO_ID_ANALOGUE_OUTPUT 3203
  61. #define IPSO_SO_ID_GENERIC_SENSOR 3300
  62. #define IPSO_SO_ID_ILLUMINANCE_SENSOR 3301
  63. #define IPSO_SO_ID_PRESENCE_SENSOR 3302
  64. #define IPSO_SO_ID_TEMPERATURE_SENSOR 3303
  65. #define IPSO_SO_ID_HUMIDITY_SENSOR 3304
  66. #define IPSO_SO_ID_POWER_MEASUREMENT 3305
  67. #define IPSO_SO_ID_ACTUATION 3306
  68. #define IPSO_SO_ID_SET_POINT 3308
  69. #define IPSO_SO_ID_LOAD_CONTROL 3310
  70. #define IPSO_SO_ID_LIGHT_CONTROL 3311
  71. #define IPSO_SO_ID_POWER_CONTROL 3312
  72. #define IPSO_SO_ID_ACCELEROMETER 3313
  73. #define IPSO_SO_ID_MAGNETOMETER 3314
  74. #define IPSO_SO_ID_BAROMETER 3315
  75. /** @brief IPSO Reusable Resource IDs (Section 21). */
  76. #define IPSO_RR_ID_DIGITAL_INPUT_STATE 5500
  77. #define IPSO_RR_ID_DIGITAL_INPUT_COUNTER 5501
  78. #define IPSO_RR_ID_DIGITAL_INPUT_POLARITY 5502
  79. #define IPSO_RR_ID_DIGITAL_INPUT_DEBOUNCE_PERIOD 5503
  80. #define IPSO_RR_ID_DIGITAL_INPUT_EDGE_SELECTION 5504
  81. #define IPSO_RR_ID_DIGITAL_INPUT_COUNTER_RESET 5505
  82. #define IPSO_RR_ID_DIGITAL_OUTPUT_STATE 5550
  83. #define IPSO_RR_ID_DIGITAL_OUTPUT_POLARITY 5551
  84. // Digital output polarity options.
  85. #define IPSO_RR_ID_DIGITAL_OUTPUT_POLARITY_NORMAL 0
  86. #define IPSO_RR_ID_DIGITAL_OUTPUT_POLARITY_REVERSED 1
  87. #define IPSO_RR_ID_ANALOG_INPUT_CURRENT_VALUE 5600
  88. #define IPSO_RR_ID_MIN_MEASURED_VALUE 5601
  89. #define IPSO_RR_ID_MAX_MEASURED_VALUE 5602
  90. #define IPSO_RR_ID_MIN_RANGE_VALUE 5603
  91. #define IPSO_RR_ID_MAX_RANGE_VALUE 5604
  92. #define IPSO_RR_ID_RESET_MIN_MAX_MEASURED_VALUES 5605
  93. #define IPSO_RR_ID_ANALOG_OUTPUT_CURRENT_VALUE 5650
  94. #define IPSO_RR_ID_SENSOR_VALUE 5700
  95. #define IPSO_RR_ID_SENSOR_UNITS 5701
  96. #define IPSO_RR_ID_X_VALUE 5702
  97. #define IPSO_RR_ID_Y_VALUE 5703
  98. #define IPSO_RR_ID_Z_VALUE 5704
  99. #define IPSO_RR_ID_COMPASS_DIRECTION 5705
  100. #define IPSO_RR_ID_COLOUR 5706
  101. #define IPSO_RR_ID_APPLICATION_TYPE 5750
  102. #define IPSO_RR_ID_SENSOR_TYPE 5751
  103. #define IPSO_RR_ID_INSTANTANEOUS_ACTIVE_POWER 5800
  104. #define IPSO_RR_ID_MIN_MEASURED_ACTIVE_POWER 5801
  105. #define IPSO_RR_ID_MAX_MEASURED_ACTIVE_POWER 5802
  106. #define IPSO_RR_ID_MIN_RANGE_ACTIVE_POWER 5803
  107. #define IPSO_RR_ID_MAX_RANGE_ACTIVE_POWER 5804
  108. #define IPSO_RR_ID_CUMULATIVE_ACTIVE_POWER 5805
  109. #define IPSO_RR_ID_ACTIVE_POWER_CALIBRATION 5806
  110. #define IPSO_RR_ID_INSTANTANEOUS_REACTIVE_POWER 5810
  111. #define IPSO_RR_ID_MIN_MEASURED_REACTIVE_POWER 5811
  112. #define IPSO_RR_ID_MAX_MEASURED_REACTIVE_POWER 5812
  113. #define IPSO_RR_ID_MIN_RANGE_REACTIVE_POWER 5813
  114. #define IPSO_RR_ID_MAX_RANGE_REACTIVE_POWER 5814
  115. #define IPSO_RR_ID_CUMULATIVE_REACTIVE_POWER 5815
  116. #define IPSO_RR_ID_REACTIVE_POWER_CALIBRATION 5816
  117. #define IPSO_RR_ID_POWER_FACTOR 5820
  118. #define IPSO_RR_ID_CURRENT_CALIBRATION 5821
  119. #define IPSO_RR_ID_RESET_CUMULATIVE_ENERGY 5822
  120. #define IPSO_RR_ID_EVENT_IDENTIFIER 5823
  121. #define IPSO_RR_ID_START_TIME 5824
  122. #define IPSO_RR_ID_DURATION_IN_MIN 5825
  123. #define IPSO_RR_ID_CRITICALITY_LEVEL 5826
  124. #define IPSO_RR_ID_AVG_LOAD_ADJPCT 5827
  125. #define IPSO_RR_ID_DUTY_CYCLE 5828
  126. #define IPSO_RR_ID_ON_OFF 5850
  127. #define IPSO_RR_ID_DIMMER 5851
  128. #define IPSO_RR_ID_ON_TIME 5852
  129. #define IPSO_RR_ID_MULTI_STATE_OUTPUT 5853
  130. #define IPSO_RR_ID_SETPOINT_VALUE 5900
  131. #define IPSO_RR_ID_BUSY_TO_CLEAR_DELAY 5903
  132. #define IPSO_RR_ID_CLEAR_TO_BUSY_DELAY 5904
  133. /* Digital input ID: 3200 */
  134. typedef struct
  135. {
  136. lwm2m_instance_prototype_t proto; /* Internal. */
  137. uint8_t operations[8]; /* Internal. */
  138. uint16_t resource_ids[8]; /* Internal. */
  139. /* Public members. */
  140. bool state;
  141. uint32_t counter;
  142. bool polarity;
  143. uint32_t debounce_period; /* Unit: milliseconds */
  144. uint8_t edge_selection; /* Range: 1-3 */
  145. /* Counter reset is execute only */
  146. lwm2m_string_t application_type;
  147. lwm2m_string_t sensor_type;
  148. } ipso_digital_input_t;
  149. /* Digital output ID: 3201 */
  150. typedef struct
  151. {
  152. lwm2m_instance_prototype_t proto; /* Internal. MUST be first. */
  153. uint8_t operations[3]; /* Internal. MUST be second. */
  154. uint16_t resource_ids[3]; /* Internal. MUST be third. */
  155. /* Public members. */
  156. bool digital_output_state;
  157. bool digital_output_polarity;
  158. lwm2m_string_t application_type;
  159. } ipso_digital_output_t;
  160. /* Analog input ID: 3202 */
  161. typedef struct
  162. {
  163. lwm2m_instance_prototype_t proto; /* Internal. */
  164. uint8_t operations[8]; /* Internal. */
  165. uint16_t resource_ids[8]; /* Internal. */
  166. /* Public members. */
  167. float current_value;
  168. float min_measured_value;
  169. float max_measured_value;
  170. float min_range_value;
  171. float max_range_value;
  172. /* Reset min and max measured values is execute only */
  173. lwm2m_string_t application_type;
  174. lwm2m_string_t sensor_type;
  175. } ipso_analog_input_t;
  176. /* Analog output ID: 3203 */
  177. typedef struct
  178. {
  179. lwm2m_instance_prototype_t proto; /* Internal. */
  180. uint8_t operations[4]; /* Internal. */
  181. uint16_t resource_ids[4]; /* Internal. */
  182. /* Public members. */
  183. float current_value;
  184. float min_range_value;
  185. float max_range_value;
  186. lwm2m_string_t application_type;
  187. } ipso_analog_output_t;
  188. /* Generic sensor ID: 3300 */
  189. typedef struct
  190. {
  191. lwm2m_instance_prototype_t proto; /* Internal. */
  192. uint8_t operations[9]; /* Internal. */
  193. uint16_t resource_ids[9]; /* Internal. */
  194. /* Public members. */
  195. float sensor_value;
  196. lwm2m_string_t units;
  197. float min_measured_value;
  198. float max_measured_value;
  199. float min_range_value;
  200. float max_range_value;
  201. /* Reset min and max measured values is execute only */
  202. lwm2m_string_t application_type;
  203. lwm2m_string_t sensor_type;
  204. } ipso_generic_sensor_t;
  205. /* Illuminance ID: 3301 */
  206. typedef struct
  207. {
  208. lwm2m_instance_prototype_t proto; /* Internal. */
  209. uint8_t operations[7]; /* Internal. */
  210. uint16_t resource_ids[7]; /* Internal. */
  211. /* Public members. */
  212. float sensor_value;
  213. lwm2m_string_t units;
  214. float min_measured_value;
  215. float max_measured_value;
  216. float min_range_value;
  217. float max_range_value;
  218. /* Reset min and max measured values is execute only */
  219. } ipso_illuminance_t;
  220. /* Presence ID: 3302 */
  221. typedef struct
  222. {
  223. lwm2m_instance_prototype_t proto; /* Internal. */
  224. uint8_t operations[8]; /* Internal. */
  225. uint16_t resource_ids[8]; /* Internal. */
  226. /* Public members. */
  227. bool digital_input_state;
  228. uint32_t digital_input_counter;
  229. /* Digital input counter reset is execute only */
  230. lwm2m_string_t sensor_type;
  231. uint32_t busy_to_clear_delay; // Unit: ms
  232. uint32_t clear_to_busy_delay; // Unit: ms
  233. } ipso_presence_t;
  234. /* Temperature ID: 3303 */
  235. typedef struct
  236. {
  237. lwm2m_instance_prototype_t proto; /* Internal. */
  238. uint8_t operations[7]; /* Internal. */
  239. uint16_t resource_ids[7]; /* Internal. */
  240. /* Public members. */
  241. float sensor_value;
  242. lwm2m_string_t units;
  243. float min_measured_value;
  244. float max_measured_value;
  245. float min_range_value;
  246. float max_range_value;
  247. /* Reset min and max measured values is execute only */
  248. } ipso_temperature_t;
  249. /* Humidity ID: 3304 */
  250. typedef struct
  251. {
  252. lwm2m_instance_prototype_t proto; /* Internal. */
  253. uint8_t operations[8]; /* Internal. */
  254. uint16_t resource_ids[8]; /* Internal. */
  255. /* Public members. */
  256. float sensor_value;
  257. lwm2m_string_t units;
  258. float min_measured_value;
  259. float max_measured_value;
  260. float min_range_value;
  261. float max_range_value;
  262. /* Reset min and max measured values is execute only */
  263. } ipso_humidity_t;
  264. /* Power measurement ID: 3305 */
  265. typedef struct
  266. {
  267. lwm2m_instance_prototype_t proto; /* Internal. */
  268. uint8_t operations[18]; /* Internal. */
  269. uint16_t resource_ids[18]; /* Internal. */
  270. /* Public members. */
  271. float instantaneous_active_power;
  272. float min_measured_active_power;
  273. float max_measured_active_power;
  274. float min_range_active_power;
  275. float max_range_active_power;
  276. float cumulative_active_power;
  277. float active_power_calibration;
  278. float instantaneous_reactive_power;
  279. float min_measured_reactive_power;
  280. float max_measured_reactive_power;
  281. float min_range_reactive_power;
  282. float max_range_reactive_power;
  283. /* Reset min and max measured values is execute only */
  284. float cumulative_reactive_power;
  285. float reactive_power_calibration;
  286. float power_factor;
  287. float current_calibration;
  288. /* Reset cumulative is execute only */
  289. } ipso_power_measurement_t;
  290. /* Actuation ID: 3306 */
  291. typedef struct
  292. {
  293. lwm2m_instance_prototype_t proto; /* Internal. */
  294. uint8_t operations[5]; /* Internal. */
  295. uint16_t resource_ids[5]; /* Internal. */
  296. /* Public members. */
  297. bool on;
  298. uint16_t dimmer; // Unit: % Range: 0 - 100
  299. uint32_t on_time; // Unit: s
  300. lwm2m_string_t multi_state_output;
  301. lwm2m_string_t application_type;
  302. } ipso_actuation_t;
  303. /* Set point ID: 3308 */
  304. typedef struct
  305. {
  306. lwm2m_instance_prototype_t proto; /* Internal. */
  307. uint8_t operations[4]; /* Internal. */
  308. uint16_t resource_ids[4]; /* Internal. */
  309. /* Public members. */
  310. float set_point_value;
  311. lwm2m_string_t colour;
  312. lwm2m_string_t units;
  313. lwm2m_string_t application_type;
  314. } ipso_set_point_t;
  315. /* Load control ID: 3310 */
  316. typedef struct
  317. {
  318. lwm2m_instance_prototype_t proto; /* Internal. */
  319. uint8_t operations[6]; /* Internal. */
  320. uint16_t resource_ids[6]; /* Internal. */
  321. /* Public members. */
  322. lwm2m_string_t event_identifier;
  323. lwm2m_time_t start_time;
  324. uint32_t duration_in_min;
  325. uint8_t criticality_level; // Range: 0-3
  326. uint16_t avg_load_adjpct; // Unit: % range: 0-100
  327. uint16_t duty_cycle; // Unit: % range: 0-100
  328. } ipso_load_control_t;
  329. /* Light control ID: 3311 */
  330. typedef struct
  331. {
  332. lwm2m_instance_prototype_t proto; /* Internal. */
  333. uint8_t operations[7]; /* Internal. */
  334. uint16_t resource_ids[7]; /* Internal. */
  335. /* Public members. */
  336. bool on;
  337. uint16_t dimmer; // Unit: % Range: 0 - 100
  338. lwm2m_string_t colour;
  339. lwm2m_string_t units;
  340. uint32_t on_time; // Unit: s
  341. float cumulative_active_power;
  342. float power_factor;
  343. } ipso_light_control_t;
  344. /* Power control ID: 3312 */
  345. typedef struct
  346. {
  347. lwm2m_instance_prototype_t proto; /* Internal. */
  348. uint8_t operations[5]; /* Internal. */
  349. uint16_t resource_ids[5]; /* Internal. */
  350. /* Public members. */
  351. bool on;
  352. uint16_t dimmer; // Unit: % Range: 0 - 100
  353. uint32_t on_time; // Unit: s
  354. float cumulative_active_power;
  355. float power_factor;
  356. } ipso_power_control_t;
  357. /* Accelerometer ID: 3313 */
  358. typedef struct
  359. {
  360. lwm2m_instance_prototype_t proto; /* Internal. */
  361. uint8_t operations[6]; /* Internal. */
  362. uint16_t resource_ids[6]; /* Internal. */
  363. /* Public members. */
  364. float x_value;
  365. float y_value;
  366. float z_value;
  367. lwm2m_string_t units;
  368. float min_range_value;
  369. float max_range_value;
  370. } ipso_accelerometer_t;
  371. /* Magnetometer ID: 3314 */
  372. typedef struct
  373. {
  374. lwm2m_instance_prototype_t proto; /* Internal. */
  375. uint8_t operations[8]; /* Internal. */
  376. uint16_t resource_ids[8]; /* Internal. */
  377. /* Public members. */
  378. float x_value;
  379. float y_value;
  380. float z_value;
  381. lwm2m_string_t units;
  382. float compass_direction; // Unit: deg Range: 0-360
  383. } ipso_magnetometer_t;
  384. /* Barometer ID: 3315 */
  385. typedef struct
  386. {
  387. lwm2m_instance_prototype_t proto; /* Internal. */
  388. uint8_t operations[7]; /* Internal. */
  389. uint16_t resource_ids[7]; /* Internal. */
  390. /* Public members. */
  391. float sensor_value;
  392. lwm2m_string_t units;
  393. float min_measured_value;
  394. float max_measured_value;
  395. float min_range_value;
  396. float max_range_value;
  397. /* Reset min and max measured values is execute only */
  398. } ipso_barometer_t;
  399. /**@brief Initialize an IPSO digital input object instance.
  400. *
  401. * @details Must be called before any use of the instance.
  402. *
  403. * @param[in] p_instance Pointer to instance structure to initialize.
  404. */
  405. void ipso_instance_digital_input_init(ipso_digital_input_t * p_instance);
  406. /**@brief Initialize an IPSO digital output object instance.
  407. *
  408. * @details Must be called before any use of the instance.
  409. *
  410. * @param[in] p_instance Pointer to instance structure to initialize.
  411. */
  412. void ipso_instance_digital_output_init(ipso_digital_output_t * p_instance);
  413. /**@brief Initialize an IPSO analog input object instance.
  414. *
  415. * @details Must be called before any use of the instance.
  416. *
  417. * @param[in] p_instance Pointer to instance structure to initialize.
  418. */
  419. void ipso_instance_analog_input_init(ipso_analog_input_t * p_instance);
  420. /**@brief Initialize an IPSO analog output object instance.
  421. *
  422. * @details Must be called before any use of the instance.
  423. *
  424. * @param[in] p_instance Pointer to instance structure to initialize.
  425. */
  426. void ipso_instance_analog_output_init(ipso_analog_output_t * p_instance);
  427. /**@brief Initialize an IPSO generic sensor object instance.
  428. *
  429. * @details Must be called before any use of the instance.
  430. *
  431. * @param[in] p_instance Pointer to instance structure to initialize.
  432. */
  433. void ipso_instance_generic_sensor_init(ipso_generic_sensor_t * p_instance);
  434. /**@brief Initialize an IPSO illuminance object instance.
  435. *
  436. * @details Must be called before any use of the instance.
  437. *
  438. * @param[in] p_instance Pointer to instance structure to initialize.
  439. */
  440. void ipso_instance_illuminance_init(ipso_illuminance_t * p_instance);
  441. /**@brief Initialize an IPSO presence object instance.
  442. *
  443. * @details Must be called before any use of the instance.
  444. *
  445. * @param[in] p_instance Pointer to instance structure to initialize.
  446. */
  447. void ipso_instance_presence_init(ipso_presence_t * p_instance);
  448. /**@brief Initialize an IPSO temperature object instance.
  449. *
  450. * @details Must be called before any use of the instance.
  451. *
  452. * @param[in] p_instance Pointer to instance structure to initialize.
  453. */
  454. void ipso_instance_temperature_init(ipso_temperature_t * p_instance);
  455. /**@brief Initialize an IPSO humidity object instance.
  456. *
  457. * @details Must be called before any use of the instance.
  458. *
  459. * @param[in] p_instance Pointer to instance structure to initialize.
  460. */
  461. void ipso_instance_humidity_init(ipso_humidity_t * p_instance);
  462. /**@brief Initialize an IPSO power measurement object instance.
  463. *
  464. * @details Must be called before any use of the instance.
  465. *
  466. * @param[in] p_instance Pointer to instance structure to initialize.
  467. */
  468. void ipso_instance_power_measurement_init(ipso_power_measurement_t * p_instance);
  469. /**@brief Initialize an IPSO actuation object instance.
  470. *
  471. * @details Must be called before any use of the instance.
  472. *
  473. * @param[in] p_instance Pointer to instance structure to initialize.
  474. */
  475. void ipso_instance_actuation_init(ipso_actuation_t * p_instance);
  476. /**@brief Initialize an IPSO set point object instance.
  477. *
  478. * @details Must be called before any use of the instance.
  479. *
  480. * @param[in] p_instance Pointer to instance structure to initialize.
  481. */
  482. void ipso_instance_set_point_init(ipso_set_point_t * p_instance);
  483. /**@brief Initialize an IPSO load control object instance.
  484. *
  485. * @details Must be called before any use of the instance.
  486. *
  487. * @param[in] p_instance Pointer to instance structure to initialize.
  488. */
  489. void ipso_instance_load_control_init(ipso_load_control_t * p_instance);
  490. /**@brief Initialize an IPSO light control object instance.
  491. *
  492. * @details Must be called before any use of the instance.
  493. *
  494. * @param[in] p_instance Pointer to instance structure to initialize.
  495. */
  496. void ipso_instance_light_control_init(ipso_light_control_t * p_instance);
  497. /**@brief Initialize an IPSO power control object instance.
  498. *
  499. * @details Must be called before any use of the instance.
  500. *
  501. * @param[in] p_instance Pointer to instance structure to initialize.
  502. */
  503. void ipso_instance_power_control_init(ipso_power_control_t * p_instance);
  504. /**@brief Initialize an IPSO accelerometer object instance.
  505. *
  506. * @details Must be called before any use of the instance.
  507. *
  508. * @param[in] p_instance Pointer to instance structure to initialize.
  509. */
  510. void ipso_instance_accelerometer_init(ipso_accelerometer_t * p_instance);
  511. /**@brief Initialize an IPSO magnetometer object instance.
  512. *
  513. * @details Must be called before any use of the instance.
  514. *
  515. * @param[in] p_instance Pointer to instance structure to initialize.
  516. */
  517. void ipso_instance_magnetometer_init(ipso_magnetometer_t * p_instance);
  518. /**@brief Initialize an IPSO barometer object instance.
  519. *
  520. * @details Must be called before any use of the instance.
  521. *
  522. * @param[in] p_instance Pointer to instance structure to initialize.
  523. */
  524. void ipso_instance_barometer_init(ipso_barometer_t * p_instance);
  525. #ifdef __cplusplus
  526. }
  527. #endif
  528. #endif // LWM2M_OBJECTS_H__
  529. /** @} */