Skip to content
Snippets Groups Projects
Select Git revision
  • fd96a857577d504ae363b5daa88fbd7cf081b8d0
  • master default protected
  • vibrate-chill
  • schneider/mp-bonding
  • schneider/covid-tracing
  • schneider/ble-5.0-1m
  • schneider/mp-ubluetooth-stubs
  • schneider/ble-fixes-2020-2
  • schneider/ble-fixes-2020-3
  • schneider/g-watch
  • schneider/ble-hid
  • schneider/bsec
  • schneider/ble-fixes-2020-1
  • schneider/spo2
  • schneider/default-main-master
  • schneider/spo2-playground
  • schneider/mpy-portstate
  • schneider/fix-ble-mac-write
  • schneider/sdk-0.2.1-11
  • schneider/fat-locking
  • schneider/default-main
  • v1.15
  • v1.14
  • v1.13
  • v1.12
  • v1.11
  • v1.10
  • v1.9
  • v1.8
  • v1.7
  • v1.6
  • v1.5
  • v1.4
  • v1.3
  • v1.2
  • v1.1
  • v1.0
  • release-1
  • bootloader-v1
  • v0.0
40 results

modules.h

Blame
  • Forked from card10 / firmware
    Source project has a limited visibility.
    modules.h 1.85 KiB
    #ifndef MODULES_H
    #define MODULES_H
    
    #include "FreeRTOS.h"
    #include "semphr.h"
    
    #include <stdint.h>
    #include <stdbool.h>
    
    /* ---------- Dispatcher --------------------------------------------------- */
    void vApiDispatcher(void *pvParameters);
    extern SemaphoreHandle_t api_mutex;
    extern TaskHandle_t dispatcher_task_id;
    
    /* ---------- Hardware Init & Reset ---------------------------------------- */
    int hardware_early_init(void);
    int hardware_init(void);
    int hardware_reset(void);
    
    /* ---------- Lifecycle ---------------------------------------------------- */
    void vLifecycleTask(void *pvParameters);
    void return_to_menu(void);
    
    /* ---------- Serial ------------------------------------------------------- */
    #define SERIAL_READ_BUFFER_SIZE 128
    void vSerialTask(void *pvParameters);
    void serial_enqueue_char(char chr);
    
    /* ---------- LED Animation / Personal States ------------------------------ */
    #define PERSONAL_STATE_LED 14
    void vLedTask(void *pvParameters);
    int personal_state_enabled();
    
    /* ---------- PMIC --------------------------------------------------------- */
    /* In 1/10s */
    #define PMIC_PRESS_SLEEP           20
    #define PMIC_PRESS_POWEROFF        40
    void vPmicTask(void *pvParameters);
    
    /* ---------- BLE ---------------------------------------------------------- */
    void vBleTask(void *pvParameters);
    bool ble_shall_start(void);
    void ble_uart_write(uint8_t *pValue, uint8_t len);
    
    /* ---------- Hardware (Peripheral) Locks ---------------------------------- */
    void hwlock_init(void);
    
    enum hwlock_periph {
    	HWLOCK_I2C = 0,
    	HWLOCK_ADC,
        HWLOCK_LED,
    	_HWLOCK_MAX,
    };
    
    int hwlock_acquire(enum hwlock_periph p, TickType_t wait);
    int hwlock_release(enum hwlock_periph p);
    
    /* ---------- Display ------------------------------------------------------ */
    /* Forces an unlock of the display. Only to be used in Epicardium */
    void disp_forcelock();
    
    #endif /* MODULES_H */