Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
cs_Types.h File Reference
Include dependency graph for cs_Types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  reset_delayed_t
 
struct  cs_type_and_id_t
 

Macros

#define TYPIFY(NAME)   NAME##_TYPE
 
#define CS_TYPE_CAST(EVT_NAME, PTR)   reinterpret_cast<TYPIFY(EVT_NAME)*>(PTR)
 Takes a pointer to a buffer and reinterprets it as pointer to the given type. More...
 

Typedefs

typedef uint16_t cs_file_id_t
 
typedef uint16_t TYPIFY(CONFIG_ADV_INTERVAL)
 

Enumerations

enum  TypeBases {
  State_Base = 0x000 , InternalBase = 0x100 , InternalBaseBluetooth = InternalBase + 0 , InternalBaseSwitch = InternalBase + 20 ,
  InternalBasePower = InternalBase + 40 , InternalBaseErrors = InternalBase + 60 , InternalBaseStorage = InternalBase + 80 , InternalBaseLogging = InternalBase + 100 ,
  InternalBaseADC = InternalBase + 120 , InternalBaseMesh = InternalBase + 140 , InternalBaseBehaviour = InternalBase + 170 , InternalBaseLocalisation = InternalBase + 190 ,
  InternalBaseSystem = InternalBase + 210 , InternalBaseTests = 0xF000
}
 Author: Crownstone Team Copyright: Crownstone (https://crownstone.rocks) Date: Apr 23, 2015 License: LGPLv3+, Apache License 2.0, and/or MIT (triple-licensed) More...
 
enum class  CS_TYPE : uint16_t {
  CONFIG_DO_NOT_USE , CONFIG_PWM_PERIOD = 5 , CONFIG_IBEACON_MAJOR = 6 , CONFIG_IBEACON_MINOR = 7 ,
  CONFIG_IBEACON_UUID = 8 , CONFIG_IBEACON_TXPOWER = 9 , CONFIG_TX_POWER = 11 , CONFIG_ADV_INTERVAL = 12 ,
  CONFIG_SCAN_DURATION = 16 , CONFIG_SCAN_BREAK_DURATION = 18 , CONFIG_BOOT_DELAY = 19 , CONFIG_MAX_CHIP_TEMP = 20 ,
  CONFIG_CURRENT_LIMIT = 23 , CONFIG_MESH_ENABLED = 24 , CONFIG_ENCRYPTION_ENABLED = 25 , CONFIG_IBEACON_ENABLED = 26 ,
  CONFIG_SCANNER_ENABLED = 27 , CONFIG_SPHERE_ID = 33 , CONFIG_CROWNSTONE_ID = 34 , CONFIG_KEY_ADMIN = 35 ,
  CONFIG_KEY_MEMBER = 36 , CONFIG_KEY_BASIC = 37 , CONFIG_SCAN_INTERVAL_625US = 39 , CONFIG_SCAN_WINDOW_625US = 40 ,
  CONFIG_RELAY_HIGH_DURATION = 41 , CONFIG_LOW_TX_POWER = 42 , CONFIG_VOLTAGE_MULTIPLIER = 43 , CONFIG_CURRENT_MULTIPLIER = 44 ,
  CONFIG_VOLTAGE_ADC_ZERO = 45 , CONFIG_CURRENT_ADC_ZERO = 46 , CONFIG_POWER_ZERO = 47 , CONFIG_SOFT_FUSE_CURRENT_THRESHOLD = 50 ,
  CONFIG_SOFT_FUSE_CURRENT_THRESHOLD_DIMMER = 51 , CONFIG_PWM_TEMP_VOLTAGE_THRESHOLD_UP = 52 , CONFIG_PWM_TEMP_VOLTAGE_THRESHOLD_DOWN = 53 , CONFIG_DIMMING_ALLOWED = 54 ,
  CONFIG_SWITCH_LOCKED = 55 , CONFIG_SWITCHCRAFT_ENABLED = 56 , CONFIG_SWITCHCRAFT_THRESHOLD = 57 , CONFIG_UART_ENABLED = 59 ,
  CONFIG_NAME = 60 , CONFIG_KEY_SERVICE_DATA = 61 , CONFIG_MESH_DEVICE_KEY = 62 , CONFIG_MESH_APP_KEY = 63 ,
  CONFIG_MESH_NET_KEY = 64 , CONFIG_KEY_LOCALIZATION = 65 , CONFIG_START_DIMMER_ON_ZERO_CROSSING = 66 , CONFIG_TAP_TO_TOGGLE_ENABLED = 67 ,
  CONFIG_TAP_TO_TOGGLE_RSSI_THRESHOLD_OFFSET = 68 , STATE_BEHAVIOUR_RULE = 69 , STATE_TWILIGHT_RULE = 70 , STATE_EXTENDED_BEHAVIOUR_RULE = 71 ,
  STATE_RESET_COUNTER = 128 , STATE_SWITCH_STATE = 129 , STATE_ACCUMULATED_ENERGY = 130 , STATE_POWER_USAGE = 131 ,
  STATE_OPERATION_MODE = 134 , STATE_TEMPERATURE = 135 , STATE_FACTORY_RESET = 137 , STATE_ERRORS = 139 ,
  STATE_SUN_TIME = 149 , STATE_BEHAVIOUR_SETTINGS = 150 , STATE_MESH_IV_INDEX = 151 , STATE_MESH_SEQ_NUMBER = 152 ,
  STATE_BEHAVIOUR_MASTER_HASH = 153 , STATE_IBEACON_CONFIG_ID = 154 , STATE_MICROAPP = 155 , STATE_SOFT_ON_SPEED = 156 ,
  STATE_HUB_MODE = 157 , STATE_UART_KEY = 158 , STATE_ASSET_FILTERS_VERSION = 159 , STATE_ASSET_FILTER_32 = 160 ,
  STATE_ASSET_FILTER_64 = 161 , STATE_ASSET_FILTER_128 = 162 , STATE_ASSET_FILTER_256 = 163 , STATE_ASSET_FILTER_512 = 164 ,
  STATE_MESH_IV_INDEX_V5 = 165 , STATE_MESH_SEQ_NUMBER_V5 = 166 , STATE_SWITCHCRAFT_DOUBLE_TAP_ENABLED = 167 , STATE_DEFAULT_DIM_VALUE = 168 ,
  EVT_ADV_BACKGROUND_PARSED , EVT_DEVICE_SCANNED , EVT_ADV_BACKGROUND , EVT_ADV_BACKGROUND_PARSED_V1 ,
  EVT_ADVERTISEMENT_UPDATED , EVT_SCAN_STARTED , EVT_SCAN_STOPPED , EVT_BLE_CONNECT ,
  EVT_BLE_DISCONNECT , CMD_ENABLE_ADVERTISEMENT , CMD_SWITCH_OFF = InternalBaseSwitch , CMD_SWITCH_ON ,
  CMD_SWITCH_TOGGLE , CMD_SWITCH , CMD_SET_RELAY , CMD_SET_DIMMER ,
  CMD_MULTI_SWITCH , CMD_LOCK_SWITCH , CMD_DIMMING_ALLOWED , EVT_DIMMER_POWERED ,
  EVT_BROWNOUT_IMPENDING , EVT_CURRENT_USAGE_ABOVE_THRESHOLD = InternalBaseErrors , EVT_CURRENT_USAGE_ABOVE_THRESHOLD_DIMMER , EVT_DIMMER_ON_FAILURE_DETECTED ,
  EVT_DIMMER_OFF_FAILURE_DETECTED , EVT_CHIP_TEMP_ABOVE_THRESHOLD , EVT_CHIP_TEMP_OK , EVT_DIMMER_TEMP_ABOVE_THRESHOLD ,
  EVT_DIMMER_TEMP_OK , EVT_DIMMER_FORCED_OFF , EVT_SWITCH_FORCED_OFF , EVT_RELAY_FORCED_ON ,
  EVT_STORAGE_INITIALIZED = InternalBaseStorage , EVT_STORAGE_WRITE_DONE , EVT_STORAGE_REMOVE_DONE , EVT_STORAGE_REMOVE_ALL_TYPES_WITH_ID_DONE ,
  EVT_STORAGE_GC_DONE , EVT_STORAGE_FACTORY_RESET_DONE , EVT_STORAGE_PAGES_ERASED , CMD_FACTORY_RESET ,
  EVT_STATE_FACTORY_RESET_DONE , EVT_MESH_FACTORY_RESET_DONE , CMD_STORAGE_GARBAGE_COLLECT , CMD_ENABLE_LOG_POWER = InternalBaseLogging ,
  CMD_ENABLE_LOG_CURRENT , CMD_ENABLE_LOG_VOLTAGE , CMD_ENABLE_LOG_FILTERED_CURRENT , CMD_TOGGLE_ADC_VOLTAGE_VDD_REFERENCE_PIN = InternalBaseADC ,
  CMD_ENABLE_ADC_DIFFERENTIAL_CURRENT , CMD_ENABLE_ADC_DIFFERENTIAL_VOLTAGE , CMD_INC_VOLTAGE_RANGE , CMD_DEC_VOLTAGE_RANGE ,
  CMD_INC_CURRENT_RANGE , CMD_DEC_CURRENT_RANGE , EVT_ADC_RESTARTED , CMD_SEND_MESH_MSG = InternalBaseMesh ,
  CMD_SEND_MESH_MSG_SET_TIME , CMD_SEND_MESH_MSG_NOOP , CMD_SEND_MESH_MSG_MULTI_SWITCH , CMD_SEND_MESH_MSG_PROFILE_LOCATION ,
  CMD_SEND_MESH_MSG_SET_BEHAVIOUR_SETTINGS , CMD_SEND_MESH_MSG_TRACKED_DEVICE_REGISTER , CMD_SEND_MESH_MSG_TRACKED_DEVICE_TOKEN , CMD_SEND_MESH_MSG_TRACKED_DEVICE_LIST_SIZE ,
  CMD_SEND_MESH_CONTROL_COMMAND , CMD_ENABLE_MESH , EVT_MESH_TRACKED_DEVICE_REGISTER , EVT_MESH_TRACKED_DEVICE_TOKEN ,
  EVT_MESH_TRACKED_DEVICE_LIST_SIZE , EVT_MESH_SYNC_REQUEST_OUTGOING , EVT_MESH_SYNC_REQUEST_INCOMING , EVT_MESH_SYNC_FAILED ,
  EVT_MESH_EXT_STATE_0 , EVT_MESH_EXT_STATE_1 , EVT_MESH_PAGES_ERASED , CMD_SEND_MESH_MSG_TRACKED_DEVICE_HEARTBEAT ,
  EVT_MESH_TRACKED_DEVICE_HEARTBEAT , EVT_MESH_RSSI_PING , EVT_MESH_RSSI_DATA , EVT_MESH_TIME_SYNC ,
  EVT_RECV_MESH_MSG , CMD_ADD_BEHAVIOUR = InternalBaseBehaviour , CMD_REPLACE_BEHAVIOUR , CMD_REMOVE_BEHAVIOUR ,
  CMD_GET_BEHAVIOUR , CMD_GET_BEHAVIOUR_INDICES , CMD_GET_BEHAVIOUR_DEBUG , CMD_CLEAR_ALL_BEHAVIOUR ,
  EVT_BEHAVIOURSTORE_MUTATION , EVT_BEHAVIOUR_OVERRIDDEN , CMD_REGISTER_TRACKED_DEVICE = InternalBaseLocalisation , CMD_UPDATE_TRACKED_DEVICE ,
  EVT_RECEIVED_PROFILE_LOCATION , EVT_PRESENCE_MUTATION , EVT_STATE_EXTERNAL_STONE , CMD_TRACKED_DEVICE_HEARTBEAT ,
  EVT_PRESENCE_CHANGE , CMD_GET_PRESENCE , CMD_UPLOAD_FILTER , CMD_REMOVE_FILTER ,
  CMD_COMMIT_FILTER_CHANGES , CMD_GET_FILTER_SUMMARIES , EVT_FILTERS_UPDATED , EVT_FILTER_MODIFICATION ,
  EVT_ASSET_ACCEPTED , CMD_RESET_DELAYED = InternalBaseSystem , EVT_GOING_TO_DFU , CMD_SET_TIME ,
  CMD_SET_IBEACON_CONFIG_ID , EVT_TIME_SET , EVT_TICK , CMD_CONTROL_CMD ,
  EVT_SESSION_DATA_SET , CMD_GET_ADC_RESTARTS , CMD_GET_SWITCH_HISTORY , CMD_GET_POWER_SAMPLES ,
  CMD_GET_SCHEDULER_MIN_FREE , CMD_GET_RESET_REASON , CMD_GET_GPREGRET , CMD_GET_ADC_CHANNEL_SWAPS ,
  CMD_GET_RAM_STATS , CMD_MICROAPP_GET_INFO , CMD_MICROAPP_UPLOAD , CMD_MICROAPP_VALIDATE ,
  CMD_MICROAPP_REMOVE , CMD_MICROAPP_ENABLE , CMD_MICROAPP_DISABLE , CMD_MICROAPP_MESSAGE ,
  CMD_MICROAPP_ADVERTISE , EVT_MICROAPP_FACTORY_RESET_DONE , CMD_BLE_CENTRAL_CONNECT , CMD_BLE_CENTRAL_DISCONNECT ,
  CMD_BLE_CENTRAL_DISCOVER , CMD_BLE_CENTRAL_READ , CMD_BLE_CENTRAL_WRITE , EVT_BLE_CENTRAL_CONNECT_CLEARANCE_REQUEST ,
  EVT_BLE_CENTRAL_CONNECT_CLEARANCE_REPLY , EVT_BLE_CENTRAL_CONNECT_RESULT , EVT_BLE_CENTRAL_DISCONNECTED , EVT_BLE_CENTRAL_DISCOVERY ,
  EVT_BLE_CENTRAL_DISCOVERY_RESULT , EVT_BLE_CENTRAL_READ_RESULT , EVT_BLE_CENTRAL_WRITE_RESULT , EVT_BLE_CENTRAL_NOTIFICATION ,
  CMD_CS_CENTRAL_CONNECT , CMD_CS_CENTRAL_DISCONNECT , CMD_CS_CENTRAL_WRITE , CMD_CS_CENTRAL_GET_WRITE_BUF ,
  EVT_CS_CENTRAL_CONNECT_RESULT , EVT_CS_CENTRAL_READ_RESULT , EVT_CS_CENTRAL_WRITE_RESULT , CMD_MESH_TOPO_GET_MAC ,
  EVT_MESH_TOPO_MAC_RESULT , CMD_MESH_TOPO_RESET , CMD_MESH_TOPO_GET_RSSI , EVT_TWI_INIT ,
  EVT_TWI_WRITE , EVT_TWI_READ , EVT_TWI_UPDATE , EVT_GPIO_INIT ,
  EVT_GPIO_WRITE , EVT_GPIO_READ , EVT_GPIO_UPDATE , CMD_RESOLVE_ASYNC_CONTROL_COMMAND ,
  CMD_SEND_ASYNC_RESULT_TO_BLE , CMD_TEST_SET_TIME = InternalBaseTests , EVT_GENERIC_TEST = 0xFFFF
}
 Types: More...
 
enum class  OperationMode {
  OPERATION_MODE_SETUP = 0x00 , OPERATION_MODE_DFU = 0x01 , OPERATION_MODE_FACTORY_RESET = 0x02 , OPERATION_MODE_NORMAL = 0x10 ,
  OPERATION_MODE_UNINITIALIZED = 0xFF
}
 
enum  ResetCode { CS_RESET_CODE_SOFT_RESET = 0 , CS_RESET_CODE_GO_TO_DFU_MODE = 1 }
 

Functions

template<typename T >
constexpr auto to_underlying_type (T e) noexcept -> std::enable_if_t< std::is_enum< T >::value, std::underlying_type_t< T > >
 Cast to underlying type. More...
 
CS_TYPE toCsType (uint16_t type)
 
size16_t TypeSize (CS_TYPE const &type)
 The size of a particular default value. More...
 
bool hasMultipleIds (CS_TYPE const &type)
 Check if type can have multiple IDs. More...
 
bool removeOnFactoryReset (CS_TYPE const &type, cs_state_id_t id)
 Check if type should be removed on factory reset. More...
 
EncryptionAccessLevel getUserAccessLevelSet (CS_TYPE const &type)
 Gives the required access level to set a state type. More...
 
EncryptionAccessLevel getUserAccessLevelGet (CS_TYPE const &type)
 Gives the required access level to get a state type. More...
 

Variables

static const cs_file_id_t FILE_DO_NOT_USE = 0x0000
 
static const cs_file_id_t FILE_KEEP_FOREVER = 0x0001
 
static const cs_file_id_t FILE_CONFIGURATION = 0x0003
 

Macro Definition Documentation

◆ CS_TYPE_CAST

#define CS_TYPE_CAST (   EVT_NAME,
  PTR 
)    reinterpret_cast<TYPIFY(EVT_NAME)*>(PTR)

Takes a pointer to a buffer and reinterprets it as pointer to the given type.

◆ TYPIFY

#define TYPIFY (   NAME)    NAME##_TYPE

Typedef Documentation

◆ cs_file_id_t

typedef uint16_t cs_file_id_t

◆ TYPIFY

Enumeration Type Documentation

◆ CS_TYPE

enum class CS_TYPE : uint16_t
strong

Types:

  • State types:
    • Prefixed with STATE (or old style: CONFIG)
    • These types can be stored in the State class.
    • Should have a fixed number, smaller than General_Base.
  • Event types:
    • Prefixed with EVT.
    • Types that are sent to inform when something happened, or is going to happen.
    • If a fixed number is required, put it right after Internal_Base.
  • Command types:
    • Prefixed with CMD.
    • Types that are sent to request something to be done.
    • If a fixed number is required, put it right after Internal_Base.
Enumerator
CONFIG_DO_NOT_USE 
CONFIG_PWM_PERIOD 
CONFIG_IBEACON_MAJOR 
CONFIG_IBEACON_MINOR 
CONFIG_IBEACON_UUID 
CONFIG_IBEACON_TXPOWER 
CONFIG_TX_POWER 
CONFIG_ADV_INTERVAL 
CONFIG_SCAN_DURATION 
CONFIG_SCAN_BREAK_DURATION 
CONFIG_BOOT_DELAY 
CONFIG_MAX_CHIP_TEMP 
CONFIG_CURRENT_LIMIT 
CONFIG_MESH_ENABLED 
CONFIG_ENCRYPTION_ENABLED 
CONFIG_IBEACON_ENABLED 
CONFIG_SCANNER_ENABLED 
CONFIG_SPHERE_ID 
CONFIG_CROWNSTONE_ID 
CONFIG_KEY_ADMIN 
CONFIG_KEY_MEMBER 
CONFIG_KEY_BASIC 
CONFIG_SCAN_INTERVAL_625US 
CONFIG_SCAN_WINDOW_625US 
CONFIG_RELAY_HIGH_DURATION 
CONFIG_LOW_TX_POWER 
CONFIG_VOLTAGE_MULTIPLIER 
CONFIG_CURRENT_MULTIPLIER 
CONFIG_VOLTAGE_ADC_ZERO 
CONFIG_CURRENT_ADC_ZERO 
CONFIG_POWER_ZERO 
CONFIG_SOFT_FUSE_CURRENT_THRESHOLD 
CONFIG_SOFT_FUSE_CURRENT_THRESHOLD_DIMMER 
CONFIG_PWM_TEMP_VOLTAGE_THRESHOLD_UP 
CONFIG_PWM_TEMP_VOLTAGE_THRESHOLD_DOWN 
CONFIG_DIMMING_ALLOWED 
CONFIG_SWITCH_LOCKED 
CONFIG_SWITCHCRAFT_ENABLED 
CONFIG_SWITCHCRAFT_THRESHOLD 
CONFIG_UART_ENABLED 
CONFIG_NAME 
CONFIG_KEY_SERVICE_DATA 
CONFIG_MESH_DEVICE_KEY 
CONFIG_MESH_APP_KEY 
CONFIG_MESH_NET_KEY 
CONFIG_KEY_LOCALIZATION 
CONFIG_START_DIMMER_ON_ZERO_CROSSING 
CONFIG_TAP_TO_TOGGLE_ENABLED 
CONFIG_TAP_TO_TOGGLE_RSSI_THRESHOLD_OFFSET 
STATE_BEHAVIOUR_RULE 
STATE_TWILIGHT_RULE 
STATE_EXTENDED_BEHAVIOUR_RULE 
STATE_RESET_COUNTER 
STATE_SWITCH_STATE 
STATE_ACCUMULATED_ENERGY 
STATE_POWER_USAGE 
STATE_OPERATION_MODE 
STATE_TEMPERATURE 
STATE_FACTORY_RESET 
STATE_ERRORS 
STATE_SUN_TIME 
STATE_BEHAVIOUR_SETTINGS 
STATE_MESH_IV_INDEX 
STATE_MESH_SEQ_NUMBER 
STATE_BEHAVIOUR_MASTER_HASH 
STATE_IBEACON_CONFIG_ID 
STATE_MICROAPP 
STATE_SOFT_ON_SPEED 
STATE_HUB_MODE 
STATE_UART_KEY 
STATE_ASSET_FILTERS_VERSION 
STATE_ASSET_FILTER_32 
STATE_ASSET_FILTER_64 
STATE_ASSET_FILTER_128 
STATE_ASSET_FILTER_256 
STATE_ASSET_FILTER_512 
STATE_MESH_IV_INDEX_V5 
STATE_MESH_SEQ_NUMBER_V5 
STATE_SWITCHCRAFT_DOUBLE_TAP_ENABLED 
STATE_DEFAULT_DIM_VALUE 
EVT_ADV_BACKGROUND_PARSED 
EVT_DEVICE_SCANNED 
EVT_ADV_BACKGROUND 
EVT_ADV_BACKGROUND_PARSED_V1 
EVT_ADVERTISEMENT_UPDATED 
EVT_SCAN_STARTED 
EVT_SCAN_STOPPED 
EVT_BLE_CONNECT 
EVT_BLE_DISCONNECT 
CMD_ENABLE_ADVERTISEMENT 
CMD_SWITCH_OFF 
CMD_SWITCH_ON 
CMD_SWITCH_TOGGLE 
CMD_SWITCH 
CMD_SET_RELAY 
CMD_SET_DIMMER 
CMD_MULTI_SWITCH 
CMD_LOCK_SWITCH 
CMD_DIMMING_ALLOWED 
EVT_DIMMER_POWERED 
EVT_BROWNOUT_IMPENDING 
EVT_CURRENT_USAGE_ABOVE_THRESHOLD 
EVT_CURRENT_USAGE_ABOVE_THRESHOLD_DIMMER 
EVT_DIMMER_ON_FAILURE_DETECTED 
EVT_DIMMER_OFF_FAILURE_DETECTED 
EVT_CHIP_TEMP_ABOVE_THRESHOLD 
EVT_CHIP_TEMP_OK 
EVT_DIMMER_TEMP_ABOVE_THRESHOLD 
EVT_DIMMER_TEMP_OK 
EVT_DIMMER_FORCED_OFF 
EVT_SWITCH_FORCED_OFF 
EVT_RELAY_FORCED_ON 
EVT_STORAGE_INITIALIZED 
EVT_STORAGE_WRITE_DONE 
EVT_STORAGE_REMOVE_DONE 
EVT_STORAGE_REMOVE_ALL_TYPES_WITH_ID_DONE 
EVT_STORAGE_GC_DONE 
EVT_STORAGE_FACTORY_RESET_DONE 
EVT_STORAGE_PAGES_ERASED 
CMD_FACTORY_RESET 
EVT_STATE_FACTORY_RESET_DONE 
EVT_MESH_FACTORY_RESET_DONE 
CMD_STORAGE_GARBAGE_COLLECT 
CMD_ENABLE_LOG_POWER 
CMD_ENABLE_LOG_CURRENT 
CMD_ENABLE_LOG_VOLTAGE 
CMD_ENABLE_LOG_FILTERED_CURRENT 
CMD_TOGGLE_ADC_VOLTAGE_VDD_REFERENCE_PIN 
CMD_ENABLE_ADC_DIFFERENTIAL_CURRENT 
CMD_ENABLE_ADC_DIFFERENTIAL_VOLTAGE 
CMD_INC_VOLTAGE_RANGE 
CMD_DEC_VOLTAGE_RANGE 
CMD_INC_CURRENT_RANGE 
CMD_DEC_CURRENT_RANGE 
EVT_ADC_RESTARTED 
CMD_SEND_MESH_MSG 
CMD_SEND_MESH_MSG_SET_TIME 
CMD_SEND_MESH_MSG_NOOP 
CMD_SEND_MESH_MSG_MULTI_SWITCH 
CMD_SEND_MESH_MSG_PROFILE_LOCATION 
CMD_SEND_MESH_MSG_SET_BEHAVIOUR_SETTINGS 
CMD_SEND_MESH_MSG_TRACKED_DEVICE_REGISTER 
CMD_SEND_MESH_MSG_TRACKED_DEVICE_TOKEN 
CMD_SEND_MESH_MSG_TRACKED_DEVICE_LIST_SIZE 
CMD_SEND_MESH_CONTROL_COMMAND 
CMD_ENABLE_MESH 
EVT_MESH_TRACKED_DEVICE_REGISTER 
EVT_MESH_TRACKED_DEVICE_TOKEN 
EVT_MESH_TRACKED_DEVICE_LIST_SIZE 
EVT_MESH_SYNC_REQUEST_OUTGOING 
EVT_MESH_SYNC_REQUEST_INCOMING 
EVT_MESH_SYNC_FAILED 
EVT_MESH_EXT_STATE_0 
EVT_MESH_EXT_STATE_1 
EVT_MESH_PAGES_ERASED 
CMD_SEND_MESH_MSG_TRACKED_DEVICE_HEARTBEAT 
EVT_MESH_TRACKED_DEVICE_HEARTBEAT 
EVT_MESH_RSSI_PING 
EVT_MESH_RSSI_DATA 
EVT_MESH_TIME_SYNC 
EVT_RECV_MESH_MSG 
CMD_ADD_BEHAVIOUR 
CMD_REPLACE_BEHAVIOUR 
CMD_REMOVE_BEHAVIOUR 
CMD_GET_BEHAVIOUR 
CMD_GET_BEHAVIOUR_INDICES 
CMD_GET_BEHAVIOUR_DEBUG 
CMD_CLEAR_ALL_BEHAVIOUR 
EVT_BEHAVIOURSTORE_MUTATION 
EVT_BEHAVIOUR_OVERRIDDEN 
CMD_REGISTER_TRACKED_DEVICE 
CMD_UPDATE_TRACKED_DEVICE 
EVT_RECEIVED_PROFILE_LOCATION 
EVT_PRESENCE_MUTATION 
EVT_STATE_EXTERNAL_STONE 
CMD_TRACKED_DEVICE_HEARTBEAT 
EVT_PRESENCE_CHANGE 
CMD_GET_PRESENCE 
CMD_UPLOAD_FILTER 
CMD_REMOVE_FILTER 
CMD_COMMIT_FILTER_CHANGES 
CMD_GET_FILTER_SUMMARIES 
EVT_FILTERS_UPDATED 
EVT_FILTER_MODIFICATION 
EVT_ASSET_ACCEPTED 
CMD_RESET_DELAYED 
EVT_GOING_TO_DFU 
CMD_SET_TIME 
CMD_SET_IBEACON_CONFIG_ID 
EVT_TIME_SET 
EVT_TICK 
CMD_CONTROL_CMD 
EVT_SESSION_DATA_SET 
CMD_GET_ADC_RESTARTS 
CMD_GET_SWITCH_HISTORY 
CMD_GET_POWER_SAMPLES 
CMD_GET_SCHEDULER_MIN_FREE 
CMD_GET_RESET_REASON 
CMD_GET_GPREGRET 
CMD_GET_ADC_CHANNEL_SWAPS 
CMD_GET_RAM_STATS 
CMD_MICROAPP_GET_INFO 
CMD_MICROAPP_UPLOAD 
CMD_MICROAPP_VALIDATE 
CMD_MICROAPP_REMOVE 
CMD_MICROAPP_ENABLE 
CMD_MICROAPP_DISABLE 
CMD_MICROAPP_MESSAGE 
CMD_MICROAPP_ADVERTISE 
EVT_MICROAPP_FACTORY_RESET_DONE 
CMD_BLE_CENTRAL_CONNECT 
CMD_BLE_CENTRAL_DISCONNECT 
CMD_BLE_CENTRAL_DISCOVER 
CMD_BLE_CENTRAL_READ 
CMD_BLE_CENTRAL_WRITE 
EVT_BLE_CENTRAL_CONNECT_CLEARANCE_REQUEST 
EVT_BLE_CENTRAL_CONNECT_CLEARANCE_REPLY 
EVT_BLE_CENTRAL_CONNECT_RESULT 
EVT_BLE_CENTRAL_DISCONNECTED 
EVT_BLE_CENTRAL_DISCOVERY 
EVT_BLE_CENTRAL_DISCOVERY_RESULT 
EVT_BLE_CENTRAL_READ_RESULT 
EVT_BLE_CENTRAL_WRITE_RESULT 
EVT_BLE_CENTRAL_NOTIFICATION 
CMD_CS_CENTRAL_CONNECT 
CMD_CS_CENTRAL_DISCONNECT 
CMD_CS_CENTRAL_WRITE 
CMD_CS_CENTRAL_GET_WRITE_BUF 
EVT_CS_CENTRAL_CONNECT_RESULT 
EVT_CS_CENTRAL_READ_RESULT 
EVT_CS_CENTRAL_WRITE_RESULT 
CMD_MESH_TOPO_GET_MAC 
EVT_MESH_TOPO_MAC_RESULT 
CMD_MESH_TOPO_RESET 
CMD_MESH_TOPO_GET_RSSI 
EVT_TWI_INIT 
EVT_TWI_WRITE 
EVT_TWI_READ 
EVT_TWI_UPDATE 
EVT_GPIO_INIT 
EVT_GPIO_WRITE 
EVT_GPIO_READ 
EVT_GPIO_UPDATE 
CMD_RESOLVE_ASYNC_CONTROL_COMMAND 
CMD_SEND_ASYNC_RESULT_TO_BLE 
CMD_TEST_SET_TIME 
EVT_GENERIC_TEST 

◆ OperationMode

enum class OperationMode
strong
Enumerator
OPERATION_MODE_SETUP 
OPERATION_MODE_DFU 
OPERATION_MODE_FACTORY_RESET 
OPERATION_MODE_NORMAL 
OPERATION_MODE_UNINITIALIZED 

◆ ResetCode

enum ResetCode
Enumerator
CS_RESET_CODE_SOFT_RESET 
CS_RESET_CODE_GO_TO_DFU_MODE 

◆ TypeBases

enum TypeBases

Author: Crownstone Team Copyright: Crownstone (https://crownstone.rocks) Date: Apr 23, 2015 License: LGPLv3+, Apache License 2.0, and/or MIT (triple-licensed)

Enumerator
State_Base 
InternalBase 
InternalBaseBluetooth 
InternalBaseSwitch 
InternalBasePower 
InternalBaseErrors 
InternalBaseStorage 
InternalBaseLogging 
InternalBaseADC 
InternalBaseMesh 
InternalBaseBehaviour 
InternalBaseLocalisation 
InternalBaseSystem 
InternalBaseTests 

Function Documentation

◆ getUserAccessLevelGet()

EncryptionAccessLevel getUserAccessLevelGet ( CS_TYPE const &  type)

Gives the required access level to get a state type.

◆ getUserAccessLevelSet()

EncryptionAccessLevel getUserAccessLevelSet ( CS_TYPE const &  type)

Gives the required access level to set a state type.

◆ hasMultipleIds()

bool hasMultipleIds ( CS_TYPE const &  type)

Check if type can have multiple IDs.

◆ removeOnFactoryReset()

bool removeOnFactoryReset ( CS_TYPE const &  type,
cs_state_id_t  id 
)

Check if type should be removed on factory reset.

◆ to_underlying_type()

template<typename T >
constexpr auto to_underlying_type ( e) -> std::enable_if_t<std::is_enum<T>::value, std::underlying_type_t<T>>
constexprnoexcept

Cast to underlying type.

This can be used in the following way.

CS_TYPE type = CONFIG_TX_POWER; uint8_t raw_value = to_underlying_type(type);

This should be used very rarely. Use the CS_TYPE wherever possible.

◆ toCsType()

CS_TYPE toCsType ( uint16_t  type)

◆ TypeSize()

size16_t TypeSize ( CS_TYPE const &  type)

The size of a particular default value.

In case of strings or arrays this is the maximum size of the corresponding field. There are no fields that are of unrestricted size. For fields that are not implemented it is possible to set size to 0.

Variable Documentation

◆ FILE_CONFIGURATION

const cs_file_id_t FILE_CONFIGURATION = 0x0003
static

◆ FILE_DO_NOT_USE

const cs_file_id_t FILE_DO_NOT_USE = 0x0000
static

◆ FILE_KEEP_FOREVER

const cs_file_id_t FILE_KEEP_FOREVER = 0x0001
static