MVMFirmwareCpp v0.1
generic_definitions.h
Go to the documentation of this file.
1 #pragma once
2 
3 // # # ###
4 // ## # #
5 // # # # #
6 // # # # #
7 // # # # #
8 // # ## #
9 // # # ###
10 //
11 // Nuclear Instruments 2020 - All rights reserved
12 // Any commercial use of this code is forbidden
13 // Contact info@nuclearinstruments.eu
14 
15 
16 #include <stdint.h>
17 
24 //#define HARDWARE_TARGET_PLATFORM_V3 1
25 #define HARDWARE_TARGET_PLATFORM_V4 1
26 
27 #define USE_SPIROMETER_SFM3019 1
28 //#define USE_SPIROMETER_SFM3000 1
29 
30 
31 
32 typedef enum { PWM_PV1 } hw_pwm;
36 typedef enum { IIC_INVALID,
50 typedef struct
51 {
53  uint8_t address;
54  int8_t muxport; //USE -1 to indicate ANY
55 } t_i2cdev;
56 
57 
58 #define __ERROR_INPUT_PRESSURE_LOW 0
59 #define __ERROR_INPUT_PRESSURE_HIGH 1
60 #define __ERROR_INSIDE_PRESSURE_LOW 2
61 #define __ERROR_INSIDE_PRESSURE_HIGH 3
62 #define __ERROR_BATTERY_LOW 4
63 #define __ERROR_LEAKAGE 5
64 #define __ERROR_FULL_OCCLUSION 6
65 #define __ERROR_PARTIAL_OCCLUSION 7
66 #define __ERROR_APNEA 22
67 #define __ERROR_VENTURI_INVERTED 23
68 #define __ERROR_VENTURI_NOT_CONNECTED 24
69 #define __ERROR_ALARM_TEST 28
70 #define __ERROR_ALARM_PI 29
71 #define __ERROR_WDOG_PI 30
72 #define __ERROR_SYSTEM_FALIURE 31
73 
74 
75 //SAFETY LIMITS (mbar)
76 #define PV1_SAFETY_LIMIT 70
77 #define PV2_SAFETY_LIMIT 50
78 
79 //ACCEPTED INPUT PRESSURE (mbar)
80 #define MIN_PIN 3000
81 #define MAX_PIN 5000
82 
83 typedef enum {
105 
107 
108 // # # ###
109 // ## # #
110 // # # # #
111 // # # # #
112 // # # # #
113 // # ## #
114 // # # ###
115 //
116 // Nuclear Instruments 2020 - All rights reserved
117 // Any commercial use of this code is forbidden
118 // Contact info@nuclearinstruments.eu
t_i2cdev::address
uint8_t address
Definition: generic_definitions.h:53
t_i2cdev::muxport
int8_t muxport
Definition: generic_definitions.h:54
t_pressure_selector
t_pressure_selector
Definition: generic_definitions.h:34
IIC_PS_5
@ IIC_PS_5
Definition: generic_definitions.h:42
IIC_PS_2
@ IIC_PS_2
Definition: generic_definitions.h:39
PWM_PV1
@ PWM_PV1
Definition: generic_definitions.h:32
UNPREDICTABLE_CODE_EXECUTION
@ UNPREDICTABLE_CODE_EXECUTION
Definition: generic_definitions.h:104
GPIO_RELEALLARM
@ GPIO_RELEALLARM
Definition: generic_definitions.h:33
UNABLE_TO_READ_SENSOR_VENTURI
@ UNABLE_TO_READ_SENSOR_VENTURI
Definition: generic_definitions.h:87
IIC_FLOW1
@ IIC_FLOW1
Definition: generic_definitions.h:43
PS_PATIENT
@ PS_PATIENT
Definition: generic_definitions.h:35
ALARM_OVERTEMPERATURE
@ ALARM_OVERTEMPERATURE
Definition: generic_definitions.h:100
t_i2cdev::t_device
t_i2cdevices t_device
Definition: generic_definitions.h:52
IIC_PS_0
@ IIC_PS_0
Definition: generic_definitions.h:37
UNABLE_TO_READ_SENSOR_FLUX
@ UNABLE_TO_READ_SENSOR_FLUX
Definition: generic_definitions.h:86
ALARM_COMPLETE_OCCLUSION
@ ALARM_COMPLETE_OCCLUSION
Definition: generic_definitions.h:88
BATTERY_LOW
@ BATTERY_LOW
Definition: generic_definitions.h:93
hw_gpio
hw_gpio
Definition: generic_definitions.h:33
ALARM_NO_VENTURI_CONNECTED
@ ALARM_NO_VENTURI_CONNECTED
Definition: generic_definitions.h:102
IIC_ADC_0
@ IIC_ADC_0
Definition: generic_definitions.h:45
IIC_MUX
@ IIC_MUX
Definition: generic_definitions.h:48
ALARM_PRESSURE_INPUT_TOO_LOW
@ ALARM_PRESSURE_INPUT_TOO_LOW
Definition: generic_definitions.h:94
GPIO_PV2
@ GPIO_PV2
Definition: generic_definitions.h:33
ALARM_LEAKAGE
@ ALARM_LEAKAGE
Definition: generic_definitions.h:92
t_pressure_sensor
t_pressure_sensor
Definition: generic_definitions.h:35
IIC_PS_4
@ IIC_PS_4
Definition: generic_definitions.h:41
ALARM_PARTIAL_OCCLUSION
@ ALARM_PARTIAL_OCCLUSION
Definition: generic_definitions.h:89
ALARM_PRESSURE_INPUT_TOO_HIGH
@ ALARM_PRESSURE_INPUT_TOO_HIGH
Definition: generic_definitions.h:95
GPIO_LED
@ GPIO_LED
Definition: generic_definitions.h:33
t_i2cdev
Definition: generic_definitions.h:51
PS_VENTURI
@ PS_VENTURI
Definition: generic_definitions.h:35
ALARM_GUI_ALARM
@ ALARM_GUI_ALARM
Definition: generic_definitions.h:96
ALARM_OVER_UNDER_VOLTAGE
@ ALARM_OVER_UNDER_VOLTAGE
Definition: generic_definitions.h:98
PRESSURE_VALVE
@ PRESSURE_VALVE
Definition: generic_definitions.h:34
ALARM_GUI_WDOG
@ ALARM_GUI_WDOG
Definition: generic_definitions.h:97
t_ALARM
t_ALARM
Definition: generic_definitions.h:83
ALARM_APNEA
@ ALARM_APNEA
Definition: generic_definitions.h:101
IIC_PS_3
@ IIC_PS_3
Definition: generic_definitions.h:40
ALARM_SUPERVISOR
@ ALARM_SUPERVISOR
Definition: generic_definitions.h:99
GPIO_BUZZER
@ GPIO_BUZZER
Definition: generic_definitions.h:33
ALARM_PRESSURE_INSIDE_TOO_LOW
@ ALARM_PRESSURE_INSIDE_TOO_LOW
Definition: generic_definitions.h:91
IIC_FLOW2
@ IIC_FLOW2
Definition: generic_definitions.h:44
t_i2cdevices
t_i2cdevices
Definition: generic_definitions.h:36
IIC_EEPROM
@ IIC_EEPROM
Definition: generic_definitions.h:47
ALARM_PRESSURE_INSIDE_TOO_HIGH
@ ALARM_PRESSURE_INSIDE_TOO_HIGH
Definition: generic_definitions.h:90
IIC_INVALID
@ IIC_INVALID
Definition: generic_definitions.h:36
IIC_SUPERVISOR
@ IIC_SUPERVISOR
Definition: generic_definitions.h:46
UNABLE_TO_READ_SENSOR_PRESSURE
@ UNABLE_TO_READ_SENSOR_PRESSURE
Definition: generic_definitions.h:85
ALARM_VENTURI_INVERTED
@ ALARM_VENTURI_INVERTED
Definition: generic_definitions.h:103
PRESSURE_DROP_INHALE
@ PRESSURE_DROP_INHALE
Definition: generic_definitions.h:84
IIC_GENERAL_CALL_SENSIRION
@ IIC_GENERAL_CALL_SENSIRION
Definition: generic_definitions.h:49
PRESSURE_PATIENT
@ PRESSURE_PATIENT
Definition: generic_definitions.h:34
PS_LOOP
@ PS_LOOP
Definition: generic_definitions.h:35
hw_pwm
hw_pwm
Definition: generic_definitions.h:32
IIC_PS_1
@ IIC_PS_1
Definition: generic_definitions.h:38