9#include <nrf_sdh_ble.h>
21#define CROWNSTONE_COMPANY_ID 0x038E
23#define CS_CONNECTION_PROTOCOL_VERSION 5
29#define DEFAULT_CHAR_VALUE_STRING_LENGTH 50
33#define MAX_STRING_STORAGE_SIZE 31
45#define APP_TIMER_PRESCALER 0
51#define APP_TIMER_OP_QUEUE_SIZE 16
57#define SCHED_MAX_EVENT_DATA_SIZE (MAX(20, MAX(APP_TIMER_SCHED_EVENT_DATA_SIZE, NRF_SDH_BLE_EVT_BUF_SIZE)))
64#define SCHED_QUEUE_SIZE 32
66#define SCHEDULER_QUEUE_ALMOST_FULL (SCHED_QUEUE_SIZE - 10)
69#define APP_BLE_CONN_CFG_TAG 1
72#define SEC_PARAM_TIMEOUT 30
73#define SEC_PARAM_BOND 1
74#define SEC_PARAM_MITM 1
75#define SEC_PARAM_IO_CAPABILITIES BLE_GAP_IO_CAPS_DISPLAY_ONLY
76#define SEC_PARAM_OOB 0
77#define SEC_PARAM_MIN_KEY_SIZE 7
78#define SEC_PARAM_MAX_KEY_SIZE 16
80#define SECURITY_REQUEST_DELAY 1500
82#define SWITCH_CLAIM_TIME_MS 2000
85#define MAX_SCHEDULE_ENTRIES 10
88#define SCHEDULE_BIG_TIME_JUMP (75*60)
91#define CS_PWM_MAX_CHANNELS 2
96#define CS_PWM_TIMER NRF_TIMER4
97#define CS_PWM_TIMER_IRQ TIMER4_IRQHandler
98#define CS_PWM_IRQn TIMER4_IRQn
99#define CS_PWM_INSTANCE_INDEX TIMER4_INSTANCE_INDEX
100#define CS_PWM_TIMER_ID 4
101#define CS_PWM_TIMER_IRQ_PRIORITY APP_IRQ_PRIORITY_HIGH
103#define CS_PWM_TIMER_FREQ NRF_TIMER_FREQ_4MHz
105#define CS_ADC_TIMER NRF_TIMER1
106#define CS_ADC_TIMER_IRQ TIMER1_IRQHandler
107#define CS_ADC_TIMER_IRQn TIMER1_IRQn
108#define CS_ADC_INSTANCE_INDEX TIMER1_INSTANCE_INDEX
109#define CS_ADC_TIMER_ID 1
110#define CS_ADC_TIMER_FREQ NRF_TIMER_FREQ_16MHz
117#define CS_PWM_PPI_CHANNEL_START 0
118#define CS_PWM_PPI_CHANNEL_COUNT (1 + 2 * CS_PWM_MAX_CHANNELS)
120#define CS_ADC_PPI_CHANNEL_START 12
121#define CS_ADC_PPI_CHANNEL_COUNT 2
125#define CS_PWM_PPI_GROUP_START 0
126#define CS_PWM_PPI_GROUP_COUNT 0
127#define CS_ADC_PPI_GROUP_START (CS_PWM_PPI_GROUP_START + CS_PWM_PPI_GROUP_COUNT)
128#define CS_ADC_PPI_GROUP_COUNT 0
131#define CS_ADC_GPIOTE_CHANNEL_START 0
132#define CS_ADC_GPIOTE_CHANNEL_COUNT 1
133#define CS_PWM_GPIOTE_CHANNEL_START (CS_ADC_GPIOTE_CHANNEL_START + CS_ADC_GPIOTE_CHANNEL_COUNT)
134#define CS_PWM_GPIOTE_CHANNEL_COUNT (CS_PWM_MAX_CHANNELS)
137#define CS_ADC_RESOLUTION NRF_SAADC_RESOLUTION_12BIT
138#define CS_ADC_IRQ_PRIORITY APP_IRQ_PRIORITY_HIGH
139#define CS_ADC_IRQ SAADC_IRQHandler
142#define CS_WATCHDOG_PRIORITY APP_IRQ_PRIORITY_HIGH
143#define CS_WATCHDOG_TIMEOUT_MS 60000
146#define CS_ADC_SAMPLE_INTERVAL_US 200
147#define CS_ADC_NUM_CHANNELS 2
148#define CS_ADC_NUM_SAMPLES_PER_CHANNEL (20000 / CS_ADC_SAMPLE_INTERVAL_US)
151#define CS_ADC_NUM_BUFFERS 9
152#define CS_ADC_TIMEOUT_SAMPLES 2
156#define STORAGE_REQUEST_BUFFER_SIZE 5
158#define FACTORY_RESET_CODE 0xdeadbeef
159#define FACTORY_RESET_TIMEOUT 60000
160#define FACTORY_PROCESS_TIMEOUT 200
162#define ENCRYPTION_KEY_LENGTH 16
164#define BROWNOUT_TRIGGER_THRESHOLD NRF_POWER_THRESHOLD_V27
168#define VOLTAGE_ZERO_EXP_AVG_DISCOUNT 20
170#define CURRENT_ZERO_EXP_AVG_DISCOUNT 100
172#define POWER_EXP_AVG_DISCOUNT 200
174#define POWER_SAMPLING_RMS_WINDOW_SIZE 9
176#define POWER_SAMPLING_CURVE_HALF_WINDOW_SIZE 5
180#define POWER_DIFF_THRESHOLD_PART 0.10f
181#define POWER_DIFF_THRESHOLD_MIN_WATT 10.0f
182#define NEGATIVE_POWER_THRESHOLD_WATT -10.0f
183#define POWER_DIFF_THRESHOLD_PART_CS_ZERO 0.10f
184#define POWER_DIFF_THRESHOLD_MIN_WATT_CS_ZERO 15.0f
185#define NEGATIVE_POWER_THRESHOLD_WATT_CS_ZERO -20.0f
187#define CURRENT_USAGE_THRESHOLD (16000)
188#define CURRENT_USAGE_THRESHOLD_DIMMER (1000)
189#define CURRENT_THRESHOLD_CONSECUTIVE 100
190#define CURRENT_THRESHOLD_DIMMER_CONSECUTIVE 20
193#define SWITCHCRAFT_THRESHOLD (500000)
201#define PWM_PERIOD 10000L
203#define SWITCH_DELAYED_STORE_MS (10 * 1000)
204#define STATE_RETRY_STORE_DELAY_MS 200
205#define MESH_SEND_TIME_INTERVAL_MS (50 * 1000)
206#define MESH_SEND_TIME_INTERVAL_MS_VARIATION (20 * 1000)
207#define MESH_SEND_STATE_INTERVAL_MS (50 * 1000)
208#define MESH_SEND_STATE_INTERVAL_MS_VARIATION (20 * 1000)
209#define MESH_SYNC_RETRY_INTERVAL_MS (2500)
210#define MESH_SYNC_GIVE_UP_MS (60 * 1000)
211#define CS_MESH_DEFAULT_TTL 10
213#define PWM_BOOT_DELAY_MS 60000
214#define DIMMER_BOOT_CHECK_DELAY_MS 5000
215#define DIMMER_BOOT_CHECK_POWER_MW 3000
216#define DIMMER_BOOT_CHECK_POWER_MW_UNCALIBRATED 10000
217#define DIMMER_SOFT_ON_SPEED 8
232#define MIN_CONNECTION_INTERVAL 6
236#define MAX_CONNECTION_INTERVAL 6
244#define CONNECTION_SUPERVISION_TIMEOUT 100
260#define SLAVE_LATENCY 0
262#define ADVERTISING_REFRESH_PERIOD 500
263#define ADVERTISING_REFRESH_PERIOD_SETUP 500
265#define EXTERNAL_STATE_LIST_COUNT 10
266#define EXTERNAL_STATE_TIMEOUT_MS 60000
268#define SWITCH_ON_AT_SETUP_BOOT_DELAY 3600
270#define SUN_TIME_THROTTLE_PERIOD_SECONDS (60*60*24)
272#define CS_CLEAR_GPREGRET_COUNTER_TIMEOUT_S 60
277#define TICK_INTERVAL_MS 100
279#define CONFIG_POWER_ZERO_INVALID 0x7FFFFFFF
281#ifndef STATE_SWITCH_STATE_DEFAULT
282#define STATE_SWITCH_STATE_DEFAULT 0
285#ifndef STATE_ACCUMULATED_ENERGY_DEFAULT
286#define STATE_ACCUMULATED_ENERGY_DEFAULT 0
289#ifndef STATE_POWER_USAGE_DEFAULT
290#define STATE_POWER_USAGE_DEFAULT 0
293#ifndef STATE_RESET_COUNTER_DEFAULT
294#define STATE_RESET_COUNTER_DEFAULT 0
297#ifndef STATE_OPERATION_MODE_DEFAULT
298#define STATE_OPERATION_MODE_DEFAULT 0
301#ifndef STATE_TEMPERATURE_DEFAULT
302#define STATE_TEMPERATURE_DEFAULT 0
305#ifndef STATE_FACTORY_RESET_DEFAULT
306#define STATE_FACTORY_RESET_DEFAULT 0
309#ifndef STATE_ERRORS_DEFAULT
310#define STATE_ERRORS_DEFAULT 0
313#ifndef STATE_BEHAVIOUR_SETTINGS_DEFAULT
314#define STATE_BEHAVIOUR_SETTINGS_DEFAULT 1
317#ifndef STATE_BEHAVIOUR_MASTER_HASH_DEFAULT
318#define STATE_BEHAVIOUR_MASTER_HASH_DEFAULT 0
321#ifndef STATE_HUB_MODE_DEFAULT
322#define STATE_HUB_MODE_DEFAULT 0
static const uint8_t DEFAULT_DIM_VALUE
The default default dim value.
Definition: cs_Config.h:199
static const uint32_t SWITCHCRAFT_DOUBLE_TAP_TIMEOUT_MS
If 2 switchcraft events happen within this time, it will be regarded as a double tap.
Definition: cs_Config.h:196