KETCube
ketCube_lora.h
Go to the documentation of this file.
1 
45  /* Define to prevent recursive inclusion ------------------------------------- */
46 #ifndef __KETCUBE_LORA_H
47 #define __KETCUBE_LORA_H
48 
49 #include "ketCube_cfg.h"
50 #include "ketCube_common.h"
51 #ifndef DESKTOP_BUILD
52 #include "LoRaMac.h"
53 #else
54 typedef int DeviceClass_t;
55 #endif
56 
69 #define KETCUBE_LORA_SELCFG_KETCube 0
70 #define KETCUBE_LORA_SELCFG_STATIC 1
72 #define KETCUBE_LORA_SELCFG_SELECTED KETCUBE_LORA_SELCFG_KETCube
81 typedef enum {
85 
89 typedef enum {
93 
97 typedef enum {
109 
110 typedef struct ketCube_lora_cfg_t {
114 
118 typedef struct ketCube_lora_moduleCfg_t {
131  DeviceClass_t devClass;
132  uint8_t txDatarate;
134 
136 
137 
138 #define KETCUBE_LORA_RX_BUFFER_LEN 64 //< Rx buffer length
139 
141  msg);
142 extern ketCube_cfg_ModError_t ketCube_lora_Send(uint8_t * buffer,
143  uint8_t * len);
144 extern ketCube_cfg_ModError_t ketCube_lora_AsyncSend(uint8_t * buffer,
145  uint8_t * len);
148 
149 extern void ketCube_lora_processCustomData(uint8_t * buffer, uint8_t len);
150 
155 #endif /* KETCUBE_LORA_H */
KETCUBE_LORA_SELCONNMETHOD_OTAA
@ KETCUBE_LORA_SELCONNMETHOD_OTAA
Definition: ketCube_lora.h:90
ketCube_lora_AsyncSend
ketCube_cfg_ModError_t ketCube_lora_AsyncSend(uint8_t *buffer, uint8_t *len)
Process lora state and prepare data (for asynchronous send)...
Definition: ketCube_lora.c:236
ketCube_lora_cfg_t::connectionType
ketCube_lora_selConnMethod_t connectionType
Definition: ketCube_lora.h:111
KETCUBE_LORA_CFGLEN_APPSKEY
@ KETCUBE_LORA_CFGLEN_APPSKEY
Definition: ketCube_lora.h:107
ketCube_InterModMsg_t
KETCube inter-module message.
Definition: ketCube_cfg.h:116
ketCube_lora_Send
ketCube_cfg_ModError_t ketCube_lora_Send(uint8_t *buffer, uint8_t *len)
Process lora state and prepare data...
Definition: ketCube_lora.c:222
ketCube_cfg_ModuleCfgByte_t
KETCube module configuration byte.
Definition: ketCube_cfg.h:147
ketCube_lora_moduleCfg
ketCube_lora_moduleCfg_t ketCube_lora_moduleCfg
Definition: ketCube_lora.c:101
ketCube_lora_cfg_t
struct ketCube_lora_cfg_t ketCube_lora_cfg_t
ketCube_lora_moduleCfg_t::appKey
byte appKey[KETCUBE_LORA_CFGLEN_APPKEY]
Definition: ketCube_lora.h:124
ketCube_lora_SleepEnter
ketCube_cfg_ModError_t ketCube_lora_SleepEnter(void)
Prepare sleep mode.
Definition: ketCube_lora.c:270
ketCube_lora_selDeveui_t
ketCube_lora_selDeveui_t
LoRa devAddr type.
Definition: ketCube_lora.h:81
KETCUBE_LORA_CFGLEN_NWKSENCKEY
@ KETCUBE_LORA_CFGLEN_NWKSENCKEY
Definition: ketCube_lora.h:104
ketCube_lora_moduleCfg_t::cfg
ketCube_lora_cfg_t cfg
Definition: ketCube_lora.h:120
ketCube_lora_moduleCfg_t::netID
byte netID[KETCUBE_LORA_CFGLEN_NETID]
Definition: ketCube_lora.h:121
KETCUBE_LORA_SELDEVEUI_BOARD
@ KETCUBE_LORA_SELDEVEUI_BOARD
Definition: ketCube_lora.h:82
KETCUBE_LORA_CFGLEN_NWKKEY
@ KETCUBE_LORA_CFGLEN_NWKKEY
Definition: ketCube_lora.h:102
KETCUBE_LORA_SELCONNMETHOD_ABP
@ KETCUBE_LORA_SELCONNMETHOD_ABP
Definition: ketCube_lora.h:91
ketCube_lora_moduleCfg_t::devClass
DeviceClass_t devClass
Definition: ketCube_lora.h:131
ketCube_lora_moduleCfg_t::nwkKey
byte nwkKey[KETCUBE_LORA_CFGLEN_NWKKEY]
Definition: ketCube_lora.h:125
KETCUBE_LORA_CFGLEN_APPKEY
@ KETCUBE_LORA_CFGLEN_APPKEY
Definition: ketCube_lora.h:100
KETCUBE_LORA_CFGLEN_DEVADDR
@ KETCUBE_LORA_CFGLEN_DEVADDR
Definition: ketCube_lora.h:103
ketCube_lora_selConnMethod_t
ketCube_lora_selConnMethod_t
LoRa connection type.
Definition: ketCube_lora.h:89
ketCube_lora_Init
ketCube_cfg_ModError_t ketCube_lora_Init(ketCube_InterModMsg_t ***msg)
Load basic module configuration data from EEPROM.
Definition: ketCube_lora.c:165
ketCube_lora_moduleCfg_t::devAddr
byte devAddr[KETCUBE_LORA_CFGLEN_DEVADDR]
Definition: ketCube_lora.h:126
ketCube_common.h
KETCube common definitions.
KETCUBE_LORA_SELDEVEUI_CUSTOM
@ KETCUBE_LORA_SELDEVEUI_CUSTOM
Definition: ketCube_lora.h:83
ketCube_lora_moduleCfg_t::coreCfg
ketCube_cfg_ModuleCfgByte_t coreCfg
Definition: ketCube_lora.h:119
ketCube_lora_moduleCfg_t::devEUI
byte devEUI[KETCUBE_LORA_CFGLEN_DEVEUI]
Definition: ketCube_lora.h:123
KETCUBE_LORA_CFGLEN_SNWKSINTKEY
@ KETCUBE_LORA_CFGLEN_SNWKSINTKEY
Definition: ketCube_lora.h:105
ketCube_lora_moduleCfg_t::appSKey
byte appSKey[KETCUBE_LORA_CFGLEN_APPSKEY]
Definition: ketCube_lora.h:130
ketCube_lora_cfgLen_t
ketCube_lora_cfgLen_t
Length of LoRa CFG data.
Definition: ketCube_lora.h:97
ketCube_lora_moduleCfg_t::fNwkSIntKey
byte fNwkSIntKey[KETCUBE_LORA_CFGLEN_FNWKSINTKEY]
Definition: ketCube_lora.h:129
ketCube_lora_moduleCfg_t::appEUI
byte appEUI[KETCUBE_LORA_CFGLEN_APPEUI]
Definition: ketCube_lora.h:122
ketCube_lora_cfg_t
Definition: ketCube_lora.h:110
ketCube_lora_cfg_t::devEUIType
ketCube_lora_selDeveui_t devEUIType
Definition: ketCube_lora.h:112
ketCube_lora_moduleCfg_t::sNwkSIntKey
byte sNwkSIntKey[KETCUBE_LORA_CFGLEN_SNWKSINTKEY]
Definition: ketCube_lora.h:128
ketCube_lora_moduleCfg_t
struct ketCube_lora_moduleCfg_t ketCube_lora_moduleCfg_t
KETCube lora module configuration.
ketCube_lora_moduleCfg_t
KETCube lora module configuration.
Definition: ketCube_lora.h:118
KETCUBE_LORA_CFGLEN_DEVEUI
@ KETCUBE_LORA_CFGLEN_DEVEUI
Definition: ketCube_lora.h:98
KETCUBE_LORA_CFGLEN_NETID
@ KETCUBE_LORA_CFGLEN_NETID
Definition: ketCube_lora.h:101
ketCube_cfg.h
This file contains definitions for the KETCube configuration.
ketCube_lora_moduleCfg_t::nwkSEncKey
byte nwkSEncKey[KETCUBE_LORA_CFGLEN_NWKSENCKEY]
Definition: ketCube_lora.h:127
ketCube_lora_processCustomData
void ketCube_lora_processCustomData(uint8_t *buffer, uint8_t len)
Process custom data.
Definition: ketCube_lora.c:345
KETCUBE_LORA_CFGLEN_APPEUI
@ KETCUBE_LORA_CFGLEN_APPEUI
Definition: ketCube_lora.h:99
ketCube_cfg_ModError_t
ketCube_cfg_ModError_t
Error code type.
Definition: ketCube_cfg.h:100
ketCube_lora_SleepExit
ketCube_cfg_ModError_t ketCube_lora_SleepExit(void)
Exit sleep mode.
Definition: ketCube_lora.c:299
KETCUBE_LORA_CFGLEN_FNWKSINTKEY
@ KETCUBE_LORA_CFGLEN_FNWKSINTKEY
Definition: ketCube_lora.h:106
ketCube_lora_moduleCfg_t::txDatarate
uint8_t txDatarate
Definition: ketCube_lora.h:132