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