nuttx-apps/include/lte/lte_lwm2m.h
Petro Karashchenko aed0e2873e apps: fix style issues in code
Add missing FAR and CODE to pointers
Remove FAR for non-pointer variables
Remove extra spaces and align the parameters
Add do {} while(0) wrapper in macro
Use nitems to calculate number of elements in arrays

Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2023-06-11 18:47:50 +08:00

325 lines
9.6 KiB
C

/****************************************************************************
* apps/include/lte/lte_lwm2m.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __APPS_INCLUDE_LTE_LTE_LWM2M_H
#define __APPS_INCLUDE_LTE_LTE_LWM2M_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <stdint.h>
#include <nuttx/wireless/lte/lte.h>
#define LWM2MSTUB_RESOURCE_HANDLENOCARE (0)
#define LWM2MSTUB_RESOURCE_HANDLEHOST (1)
#define LWM2MSTUB_RESOURCE_HANDLEMODEMH (2)
#define LWM2MSTUB_MAX_WRITE_SIZE (1500)
#define LWM2MSTUB_MAX_TOKEN_SIZE (8 * 2 + 1)
#define LWM2MSTUB_MAX_SERVER_NAME (256)
#define LWM2MSTUB_MAX_DEVID (256)
#define LWM2MSTUB_MAX_SEQKEY (256)
#define LWM2MSTUB_CONDVALID_MINPERIOD (1<<0)
#define LWM2MSTUB_CONDVALID_MAXPERIOD (1<<1)
#define LWM2MSTUB_CONDVALID_GRATERTHAN (1<<2)
#define LWM2MSTUB_CONDVALID_LESSTHAN (1<<3)
#define LWM2MSTUB_CONDVALID_STEP (1<<4)
#define LWM2MSTUB_FWUP_PEND_DL (0)
#define LWM2MSTUB_FWUP_PEND_UPD (1)
#define LWM2MSTUB_FWUP_COMP_DL (2)
#define LWM2MSTUB_FWUP_FAIL_DL (3)
#define LWM2MSTUB_FWUP_CANCELED (4)
#define LWM2MSTUB_CMD_REGISTER (0)
#define LWM2MSTUB_CMD_DEREGISTER (1)
#define LWM2MSTUB_CMD_UPDATERESIGER (2)
#define LWM2MSTUB_STATE_NOTREGISTERD (0)
#define LWM2MSTUB_STATE_REGISTPENDING (1)
#define LWM2MSTUB_STATE_REGISTERD (2)
#define LWM2MSTUB_STATE_REGISTERFAILED (3)
#define LWM2MSTUB_STATE_UPDATEPENDING (4)
#define LWM2MSTUB_STATE_DEREGISTPENDING (5)
#define LWM2MSTUB_STATE_BSHOLDOFF (6)
#define LWM2MSTUB_STATE_BSREQUESTED (7)
#define LWM2MSTUB_STATE_BSONGOING (8)
#define LWM2MSTUB_STATE_BSDONE (9)
#define LWM2MSTUB_STATE_BSFAILED (10)
#define LWM2MSTUB_RESOP_READ (0)
#define LWM2MSTUB_RESOP_WRITE (1)
#define LWM2MSTUB_RESOP_RW (2)
#define LWM2MSTUB_RESOP_EXEC (3)
#define LWM2MSTUB_RESINST_SINGLE (0)
#define LWM2MSTUB_RESINST_MULTI (1)
#define LWM2MSTUB_RESDATA_NONE (0)
#define LWM2MSTUB_RESDATA_STRING (1)
#define LWM2MSTUB_RESDATA_INT (2)
#define LWM2MSTUB_RESDATA_UNSIGNED (3)
#define LWM2MSTUB_RESDATA_FLOAT (4)
#define LWM2MSTUB_RESDATA_BOOL (5)
#define LWM2MSTUB_RESDATA_OPAQUE (6)
#define LWM2MSTUB_RESDATA_TIME (7)
#define LWM2MSTUB_RESDATA_OBJLINK (8)
#define LWM2MSTUB_SECUREMODE_PSK (0)
#define LWM2MSTUB_SECUREMODE_RPK (1)
#define LWM2MSTUB_SECUREMODE_CERT (2)
#define LWM2MSTUB_SECUREMODE_NOSEC (3)
#define LWM2MSTUB_SECUREMODE_CERTEST (4)
#define LWM2MSTUB_CONNECT_REGISTER (0)
#define LWM2MSTUB_CONNECT_DEREGISTER (1)
#define LWM2MSTUB_CONNECT_REREGISTER (2)
#define LWM2MSTUB_CONNECT_BOOTSTRAP (3)
#define LWM2MSTUB_RESP_CHANGED (0)
#define LWM2MSTUB_RESP_CONTENT (1)
#define LWM2MSTUB_RESP_BADREQ (2)
#define LWM2MSTUB_RESP_UNAUTH (3)
#define LWM2MSTUB_RESP_NOURI (4)
#define LWM2MSTUB_RESP_NOTALLOW (5)
#define LWM2MSTUB_RESP_NOTACCEPT (6)
#define LWM2MSTUB_RESP_UNSUPPORT (7)
#define LWM2MSTUB_RESP_INTERNALERROR (8)
/* Client received "Write" operation */
#define LWM2MSTUB_OP_WRITE (0)
/* Client received "Execute" operation */
#define LWM2MSTUB_OP_EXEC (1)
/* Client received "Write Attributes" operation */
#define LWM2MSTUB_OP_WATTR (4)
/* Client received "Discover" operation */
#define LWM2MSTUB_OP_DISCOVER (5)
/* Client received "Read" operation */
#define LWM2MSTUB_OP_READ (6)
/* Client received "Observe" operation */
#define LWM2MSTUB_OP_OBSERVE (7)
/* Client received "Cancel observation" operation */
#define LWM2MSTUB_OP_CANCELOBS (8)
/* Client is offline now. */
#define LWM2MSTUB_OP_OFFLINE (9)
/* Client is online now. */
#define LWM2MSTUB_OP_ONLINE (10)
/* Client sent observation notification to a server. */
#define LWM2MSTUB_OP_SENDNOTICE (11)
/* Client received wakeup SMS. */
#define LWM2MSTUB_OP_RCVWUP (12)
/* Client received notification acknowledge. */
#define LWM2MSTUB_OP_RCVOBSACK (13)
/* Client ON: LMM2M client exits Client OFF state
* and tries to re-connect server due to explicitly
* AT Command registration request.
*/
#define LWM2MSTUB_OP_CLIENTON (14)
/* Client OFF: LWM2M client has exhausted server connection retries. */
#define LWM2MSTUB_OP_CLIENTOFF (15)
/* Confirmable NOTIFY failed. */
#define LWM2MSTUB_OP_FAILNOTIFY (16)
/* Bootstrap finished and completed successfully. */
#define LWM2MSTUB_OP_BSFINISH (20)
/* Registration finished and completed successfully.
* all server observation requests are cleaned,
* the host should clean host objects observation rules too.
*/
#define LWM2MSTUB_OP_REGSUCCESS (21)
/* Register update finished and completed successfully. */
#define LWM2MSTUB_OP_REGUPDATED (22)
/* De-register finished and completed successfully. */
#define LWM2MSTUB_OP_DEREGSUCCESS (23)
/* Notification was not saved and not sent to server */
#define LWM2MSTUB_OP_NOSENDNOTICE (24)
struct lwm2mstub_resource_s
{
int res_id;
int operation;
int inst_type;
int data_type;
int handl;
};
struct lwm2mstub_instance_s
{
int object_id;
int object_inst;
int res_id;
int res_inst;
};
struct lwm2mstub_ovcondition_s
{
uint8_t valid_mask;
unsigned int min_period;
unsigned int max_period;
double gt_cond;
double lt_cond;
double step_val;
};
struct lwm2mstub_serverinfo_s
{
int object_inst;
int state;
bool bootstrap;
bool nonip;
int security_mode;
uint32_t lifetime;
char server_uri[LWM2MSTUB_MAX_SERVER_NAME];
char device_id[LWM2MSTUB_MAX_DEVID];
char security_key[LWM2MSTUB_MAX_SEQKEY];
};
typedef CODE void (*lwm2mstub_write_cb_t)(int seq_no, int srv_id,
FAR struct lwm2mstub_instance_s *inst, FAR char *value,
int len);
typedef CODE void (*lwm2mstub_read_cb_t)(int seq_no, int srv_id,
FAR struct lwm2mstub_instance_s *inst);
typedef CODE void (*lwm2mstub_exec_cb_t)(int seq_no, int srv_id,
FAR struct lwm2mstub_instance_s *inst);
typedef CODE void (*lwm2mstub_ovstart_cb_t)(int seq_no, int srv_id,
FAR struct lwm2mstub_instance_s *inst, FAR char *token,
FAR struct lwm2mstub_ovcondition_s *cond);
typedef CODE void (*lwm2mstub_ovstop_cb_t)(int seq_no, int srv_id,
FAR struct lwm2mstub_instance_s *inst, FAR char *token);
typedef CODE void (*lwm2mstub_operation_cb_t)(int event);
typedef CODE void (*lwm2mstub_fwupstate_cb_t)(int event);
#ifdef __cplusplus
#define EXTERN extern "C"
extern "C"
{
#else
#define EXTERN extern
#endif
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
/* On powe on state */
int lte_setm2m_endpointname(FAR char *name);
int lte_getm2m_endpointname(FAR char *name, int len);
int lte_getm2m_servernum(void);
int lte_setm2m_serverinfo(FAR struct lwm2mstub_serverinfo_s *info, int id);
int lte_getm2m_serverinfo(FAR struct lwm2mstub_serverinfo_s *info, int id);
int lte_getm2m_enabled_objectnum(void);
int lte_getm2m_enabled_objects(FAR uint16_t *objids, int objnum);
int lte_enablem2m_objects(FAR uint16_t *objids, int objnum);
int lte_getm2m_objresourcenum(uint16_t objid);
int lte_getm2m_objresourceinfo(uint16_t objids, int res_num,
FAR struct lwm2mstub_resource_s *reses);
int lte_setm2m_objectdefinition(uint16_t objids, int res_num,
FAR struct lwm2mstub_resource_s *reses);
bool lte_getm2m_qmode(void);
int lte_setm2m_qmode(bool en);
int lte_apply_m2msetting(void);
/* After attached */
int lte_m2m_connection(int cmd);
int lte_set_report_m2mwrite(lwm2mstub_write_cb_t cb);
int lte_set_report_m2mread(lwm2mstub_read_cb_t cb);
int lte_set_report_m2mexec(lwm2mstub_exec_cb_t cb);
int lte_set_report_m2movstart(lwm2mstub_ovstart_cb_t cb);
int lte_set_report_m2movstop(lwm2mstub_ovstop_cb_t cb);
int lte_set_report_m2moperation(lwm2mstub_operation_cb_t cb);
int lte_set_report_m2mfwupdate(lwm2mstub_fwupstate_cb_t cb);
int lte_m2m_readresponse(int seq_no,
FAR struct lwm2mstub_instance_s *inst,
int resp, FAR char *readvalue, int len);
int lte_m2m_writeresponse(int seq_no,
FAR struct lwm2mstub_instance_s *inst,
int resp);
int lte_m2m_executeresp(int seq_no,
FAR struct lwm2mstub_instance_s *inst,
int resp);
int lte_m2m_observeresp(int seq_no, int resp);
int lte_m2m_observeupdate(FAR char *token,
FAR struct lwm2mstub_instance_s *inst,
FAR char *value, int len);
#undef EXTERN
#ifdef __cplusplus
}
#endif
#endif /* __APPS_INCLUDE_LTE_LTE_LWM2M_H */