Giter VIP home page Giter VIP logo

ambovent's People

Contributors

ambovent avatar arielhasidim avatar avishorp avatar azoulaynoam avatar electricrcaircraftguy avatar giorakor avatar leon-anavi avatar maorfr avatar nimrod46 avatar salmanfarisvp avatar zeevshn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ambovent's Issues

Resolve all warnings

I just built the latest (from my PR #20), and there are dozens of warnings to fix.

/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/arduino-builder -dump-prefs -logger=machine -hardware /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware -hardware /home/alexa/.arduino15/packages -tools /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/tools-builder -tools /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -tools /home/alexa/.arduino15/packages -built-in-libraries /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries -libraries /home/alexa/Arduino/libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10808 -build-path /tmp/arduino_build_472179 -warnings=all -build-cache /tmp/arduino_cache_729925 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avrdude.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -verbose /home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/arduino-builder -compile -logger=machine -hardware /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware -hardware /home/alexa/.arduino15/packages -tools /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/tools-builder -tools /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -tools /home/alexa/.arduino15/packages -built-in-libraries /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries -libraries /home/alexa/Arduino/libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10808 -build-path /tmp/arduino_build_472179 -warnings=all -build-cache /tmp/arduino_cache_729925 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avrdude.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr -verbose /home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino
Using board 'nano' from platform in folder: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr
Using core 'arduino' from platform in folder: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr
Detecting libraries used...
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp -o /dev/null
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/EEPROM/src /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp -o /dev/null
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/EEPROM/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp -o /dev/null
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/EEPROM/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/Wire/src /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp -o /dev/null
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/EEPROM/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/Wire/src -I/home/alexa/Arduino/libraries/SparkFun_MS5803-14BA_Breakout_Arduino_Library-master/src /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp -o /dev/null
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/EEPROM/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/Wire/src -I/home/alexa/Arduino/libraries/SparkFun_MS5803-14BA_Breakout_Arduino_Library-master/src -I/home/alexa/Arduino/libraries/Arduino-LiquidCrystal-I2C-library-master /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp -o /dev/null
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/EEPROM/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/Wire/src -I/home/alexa/Arduino/libraries/SparkFun_MS5803-14BA_Breakout_Arduino_Library-master/src -I/home/alexa/Arduino/libraries/Arduino-LiquidCrystal-I2C-library-master -I/home/alexa/Arduino/libraries/ArduinoUniqueID /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp -o /dev/null
Using cached library dependencies for file: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src/avr/Servo.cpp
Using cached library dependencies for file: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src/megaavr/Servo.cpp
Using cached library dependencies for file: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src/nrf52/Servo.cpp
Using cached library dependencies for file: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src/sam/Servo.cpp
Using cached library dependencies for file: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src/samd/Servo.cpp
Using cached library dependencies for file: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src/stm32f4/Servo.cpp
Using cached library dependencies for file: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/Wire/src/Wire.cpp
Using cached library dependencies for file: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/Wire/src/utility/twi.c
Using cached library dependencies for file: /home/alexa/Arduino/libraries/SparkFun_MS5803-14BA_Breakout_Arduino_Library-master/src/SparkFun_MS5803_I2C.cpp
Using cached library dependencies for file: /home/alexa/Arduino/libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.cpp
Using cached library dependencies for file: /home/alexa/Arduino/libraries/ArduinoUniqueID/ArduinoUniqueID.cpp
Generating function prototypes...
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/EEPROM/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/Wire/src -I/home/alexa/Arduino/libraries/SparkFun_MS5803-14BA_Breakout_Arduino_Library-master/src -I/home/alexa/Arduino/libraries/Arduino-LiquidCrystal-I2C-library-master -I/home/alexa/Arduino/libraries/ArduinoUniqueID /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp -o /tmp/arduino_build_472179/preproc/ctags_target_for_gcc_minus_e.cpp
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/tools-builder/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /tmp/arduino_build_472179/preproc/ctags_target_for_gcc_minus_e.cpp
Compiling sketch...
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/EEPROM/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo/src -I/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/Wire/src -I/home/alexa/Arduino/libraries/SparkFun_MS5803-14BA_Breakout_Arduino_Library-master/src -I/home/alexa/Arduino/libraries/Arduino-LiquidCrystal-I2C-library-master -I/home/alexa/Arduino/libraries/ArduinoUniqueID /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp -o /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp.o
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino: In function 'void setup()':
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:200:18: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
   if (min_arm_pos>=0 && min_arm_pos<1024 && max_arm_pos>=0 && max_arm_pos<1024) calibrated = 1;
                  ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:200:56: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
   if (min_arm_pos>=0 && min_arm_pos<1024 && max_arm_pos>=0 && max_arm_pos<1024) calibrated = 1;
                                                        ^
In file included from /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp:1:0:
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino: In function 'void display_menu()':
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Arduino.h:95:39: warning: comparison is always false due to limited range of data type [-Wtype-limits]
 #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
                                       ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:253:14: note: in expansion of macro 'constrain'
   menu_state=constrain(menu_state,0,8);
              ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:258:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
       display_text_2_lines("Calibrate Pots","TEST to start");
                                                            ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:258:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:267:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
       display_text_2_lines("Calib pressure","TEST to start");
                                                            ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:267:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:278:64: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
         display_text_2_lines("Press TEST to","run one breath  ");
                                                                ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:278:64: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:293:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
       display_text_2_lines("Calibrate Arm","TEST to start");
                                                           ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:293:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:302:62: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
       display_text_2_lines("Set Motion Time","TEST to start ");
                                                              ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:302:62: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:328:85: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
       if (patient_triggered_breath==1) display_text_2_lines("Sync to patient","ON  ");
                                                                                     ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:328:85: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:329:86: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
       if (patient_triggered_breath==0) display_text_2_lines("Sync to patient","OFF  ");
                                                                                      ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:329:86: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:334:87: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
         if (patient_triggered_breath==1) display_text_2_lines("Sync to patient","ON  ");
                                                                                       ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:334:87: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:335:88: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
         if (patient_triggered_breath==0) display_text_2_lines("Sync to patient","OFF  ");
                                                                                        ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:335:88: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:342:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
       display_text_2_lines("Exit Menu","Press TEST ");
                                                     ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:342:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino: In function 'void run_profile_func()':
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:400:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if (millis()-start_wait < breath_cycle_time)
                               ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino: In function 'void calibrate_arm_range()':
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:623:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   display_text_calib ("Set Upper");
                                  ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:628:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   display_text_calib ("Set Lower");
                                  ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:633:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   display_text_calib ("Move to Safe");
                                     ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino: In function 'void calibrate_pot_range()':
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:656:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   display_text_calib ("Pot to left pos");
                                        ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:663:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   display_text_calib ("Pot to right pos");
                                         ^
Compiling libraries...
Compiling library "EEPROM"
Compiling library "Servo"
Using previously compiled file: /tmp/arduino_build_472179/libraries/Servo/avr/Servo.cpp.o
Using previously compiled file: /tmp/arduino_build_472179/libraries/Servo/megaavr/Servo.cpp.o
Using previously compiled file: /tmp/arduino_build_472179/libraries/Servo/nrf52/Servo.cpp.o
Using previously compiled file: /tmp/arduino_build_472179/libraries/Servo/sam/Servo.cpp.o
Using previously compiled file: /tmp/arduino_build_472179/libraries/Servo/samd/Servo.cpp.o
Using previously compiled file: /tmp/arduino_build_472179/libraries/Servo/stm32f4/Servo.cpp.o
Compiling library "Wire"
Using previously compiled file: /tmp/arduino_build_472179/libraries/Wire/Wire.cpp.o
Using previously compiled file: /tmp/arduino_build_472179/libraries/Wire/utility/twi.c.o
Compiling library "SparkFun_MS5803-14BA_Breakout_Arduino_Library-master"
Using previously compiled file: /tmp/arduino_build_472179/libraries/SparkFun_MS5803-14BA_Breakout_Arduino_Library-master/SparkFun_MS5803_I2C.cpp.o
Compiling library "Arduino-LiquidCrystal-I2C-library-master"
Using previously compiled file: /tmp/arduino_build_472179/libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.cpp.o
Compiling library "ArduinoUniqueID"
Using previously compiled file: /tmp/arduino_build_472179/libraries/ArduinoUniqueID/ArduinoUniqueID.cpp.o
Compiling core...
Using precompiled core: /tmp/arduino_cache_729925/core/core_arduino_avr_nano_cpu_atmega328_9d1e8b75e2862a0ea003e5fe909dcaaa.a
Linking everything together...
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-gcc -Wall -Wextra -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o /tmp/arduino_build_472179/ventilation_machine.ino.elf /tmp/arduino_build_472179/sketch/ventilation_machine.ino.cpp.o /tmp/arduino_build_472179/libraries/Servo/avr/Servo.cpp.o /tmp/arduino_build_472179/libraries/Servo/megaavr/Servo.cpp.o /tmp/arduino_build_472179/libraries/Servo/nrf52/Servo.cpp.o /tmp/arduino_build_472179/libraries/Servo/sam/Servo.cpp.o /tmp/arduino_build_472179/libraries/Servo/samd/Servo.cpp.o /tmp/arduino_build_472179/libraries/Servo/stm32f4/Servo.cpp.o /tmp/arduino_build_472179/libraries/Wire/Wire.cpp.o /tmp/arduino_build_472179/libraries/Wire/utility/twi.c.o /tmp/arduino_build_472179/libraries/SparkFun_MS5803-14BA_Breakout_Arduino_Library-master/SparkFun_MS5803_I2C.cpp.o /tmp/arduino_build_472179/libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.cpp.o /tmp/arduino_build_472179/libraries/ArduinoUniqueID/ArduinoUniqueID.cpp.o /tmp/arduino_build_472179/../arduino_cache_729925/core/core_arduino_avr_nano_cpu_atmega328_9d1e8b75e2862a0ea003e5fe909dcaaa.a -L/tmp/arduino_build_472179 -lm
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino: In function 'set_motor_PWM':
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 /tmp/arduino_build_472179/ventilation_machine.ino.elf /tmp/arduino_build_472179/ventilation_machine.ino.eep/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:720:58: warning: 'wanted_cal_PWM' may be used uninitialized in this function [-Wmaybe-uninitialized]

   if (calibON==1 ) wanted_vel_PWM=read_motion_for_calib();  // allows manual motion during calibration
                                                          ^
/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/ventilation_machine/ventilation_machine.ino:737:7: note: 'wanted_cal_PWM' was declared here
 { int wanted_cal_PWM;
       ^
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-objcopy -O ihex -R .eeprom /tmp/arduino_build_472179/ventilation_machine.ino.elf /tmp/arduino_build_472179/ventilation_machine.ino.hex
Using library EEPROM at version 2.0 in folder: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/EEPROM 
Using library Servo at version 1.1.3 in folder: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/libraries/Servo 
Using library Wire at version 1.0 in folder: /home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/arduino/avr/libraries/Wire 
Using library SparkFun_MS5803-14BA_Breakout_Arduino_Library-master at version 1.1.2 in folder: /home/alexa/Arduino/libraries/SparkFun_MS5803-14BA_Breakout_Arduino_Library-master 
Using library Arduino-LiquidCrystal-I2C-library-master in folder: /home/alexa/Arduino/libraries/Arduino-LiquidCrystal-I2C-library-master (legacy)
Using library ArduinoUniqueID in folder: /home/alexa/Arduino/libraries/ArduinoUniqueID (legacy)
/home/alexa/Downloads/Install_files/Arduino/arduino-1.8.8/hardware/tools/avr/bin/avr-size -A /tmp/arduino_build_472179/ventilation_machine.ino.elf
Sketch uses 18412 bytes (59%) of program storage space. Maximum is 30720 bytes.
Global variables use 1046 bytes (51%) of dynamic memory, leaving 1002 bytes for local variables. Maximum is 2048 bytes.

It seems like you're closing issues too soon

Hi @nimrod46, I notice you seem to be giving me the go-ahead/approval to work on issue #21, yet you've closed it. In normal workflows issues are only closed if they are either 1) fully implemented and complete, or 2) rejected and never going to be fixed. Since I haven't implemented #21, that means you are rejecting it, but I don't think that's your intention. If that's not your intention, please open it until it's fully implemented. What you can do, however, is add a label which says "in-work" or whatever the best label is, and assign it to me if you make me a collaborator.

The same goes for #22. You've closed it, yet it is not implemented, and you seem to not be intending to reject it based on your words there.

Same with #19. You've closed it yet the Low memory problem isn't fully fixed, and I think it still could be fully fixed (although @giorakor did make it much better and partially fix it I'd still leave it open).

Also #11 still has a lot of work left to be done so I recommend leaving it open for me to work on.

I suspect this is the case with most other closed issues as well, so keep in mind if you close them it communicates to others they are either fixed, or rejected because they're never going to be fixed.

Thanks!

This issue, for instance: if you close it without further comment, it either communicates: 1) "I, @nimrod46, don't agree with you and I'm not going to make the changes you're requesting", or 2) "I just did everything you recommended and it is now totally fixed": ie: "I've re-opened all of those issues."

Code Formatting Epic: Use accepted best practices in code formatting to produce safe software

I was just skimming your Arduino source code here, for instance: https://github.com/AmboVent/AmboVent/blob/master/.Software/Arduino%20Code/ventilation_machine/ventilation_machine.ino#L208

and I notice your formatting doesn't follow best practices to maximize for readability, maintainability, and safety. I recommend you change the code now and follow best practices as you write new code to minimize changes in the future. Here's a few examples:

  1. Use curly braces after every single if statement or any type of loop.
  2. Use proper indentation.
  3. Put each statement which ends with a semicolon on its own line.
  4. Declare variables each on their own line.
  5. Don't use integers for states; use enums

Instead of:

if (millis()-last_TST_not_pressed>3000) { LED_USR(1); while (TST==1 || TST_pressed) { read_IO(); }   // wait for button release
                                          state=2;}

Do:

if (millis() - last_TST_not_pressed > 3000) 
{ 
    LED_USR(1); 
    // wait for button release
    while (TST == 1 || TST_pressed) 
    { 
        read_IO(); 
    }   
    state = 2;
}

But instead of that, even better, replace numbers and do this. Notice there's not a single "magic number" anymore. Everything is now named.

#define DELAY_TIME_MS 3000

// This is just an example to make the point
enum states
{
    /// Everything is OK
    STATE_OK = 0,

    /// Error exists and the system must turn itself off
    STATE_ERROR,

    /// Time to draw new air into the bladder
    STATE_AIR_IN,

    /// Number of elements in this enum (NOT ACTUALLY A STATE)
    STATE_COUNT,
};

if (millis() - last_TST_not_pressed > DELAY_TIME_MS) 
{ 
    LED_USR(HIGH); 
    // wait for button release
    while (TST == true || TST_pressed) 
    { 
        read_IO(); 
    }   
    state = STATE_AIR_IN;
}

Instead of this:

case 4:     // toggle sync to patient
  if (patient_triggered_breath==1) display_text_2_lines("Sync to patient","ON  ");
  if (patient_triggered_breath==0) display_text_2_lines("Sync to patient","OFF  ");
  if (TST_pressed)  {
    patient_triggered_breath=1-patient_triggered_breath; delay(110);
    if (patient_triggered_breath==1) display_text_2_lines("Sync to patient","ON  ");
    if (patient_triggered_breath==0) display_text_2_lines("Sync to patient","OFF  ");
    delay (1500);
    exit_menu();
    }
  break;

Do this:

case TOGGLE_SYNC_TO_PATIENT:
    if (patient_triggered_breath) 
    {
        display_text_2_lines("Sync to patient","ON  ");
    }
    else
    {
        display_text_2_lines("Sync to patient","OFF  ");
    }

    if (TST_pressed)  
    {
        patient_triggered_breath = 1 - patient_triggered_breath; 
        delay(110);

        if (patient_triggered_breath) 
        {
            display_text_2_lines("Sync to patient","ON  ");
        }
        else 
        {
            display_text_2_lines("Sync to patient","OFF  ");
        }
        delay(1500);
        exit_menu();
    }
    
    break;

Those are just a few of dozens and dozens of examples. This is really important to avoid safety pitfalls in the software, accidental mistakes and bugs. Additionally, it makes the code easier for outsiders to contribute and learn.

Note also that as you code and learn, many many many MANY things will be preferences, and there are multiple good ways to do things. However, many things have established "best practices" which avoid bad patterns and unsafe code. Frequently, multiple best practices exist. The things I point out above are best practices and produce safer code. Some of the formatting regarding putting the opening curly brace on a new line or on the same line, and how many spaces to use when indenting, are personal preferences but should be standardized in a code base. Whatever you do, please follow best practices.

Ambo - Resuscitation bag type

When searching for resuscitation bags, 2 types turn up, PVC and Silicon.
Which type is the most suitable for this project?

Low memory available, stability problems may occur

When I build the project for the Arduino Nano I see the following output in the Arduino IDE:

Sketch uses 18280 bytes (59%) of program storage space. Maximum is 30720 bytes.
Global variables use 1882 bytes (91%) of dynamic memory, leaving 166 bytes for local variables. Maximum is 2048 bytes.
Low memory available, stability problems may occur.

This is a problem, as it means the stack is nearly completely used up by global variables, so local variables in any scope or code section could potentially overflow the stack really easily. I think I can do some code cleanup to fix this, perhaps by moving strings to progmem with the F() macro, or using other coding techniques. I'll have a look at the code.

Read more on the F() macro here:

  1. https://www.arduino.cc/reference/tr/language/variables/utilities/progmem/
  2. https://www.baldengineer.com/arduino-f-macro.html

UPDATE 20 APR 2020:

The bulk of this issue is resolved now that the two big lookup tables in the code are in progmem, but let's still not close this issue until at least all strings have been surrounded by the F() macro and all large const arrays or structs (if any) have been moved to progmem.

  • all string literals are inside an F() macro
  • all large arrays or large data types (> ~16 bytes or so) are in PROGMEM)

Lower Cost

Here is a 5*5 PCB using Sparkfun PCB it can be changed and rebranded as
long as we follow the

Released under the Creative Commons Attribution Share-Alike 4.0 License

it brings down the costfrom 50-60$ to about 13-15
PRESSURE_SENSOR_5x5_smd
$ .

AS well as remove pullups to 3.3v . as arduino nano is 5v logic

This is only cost saving I am not going to make and sell It saves 35$ off the BOM .
I can produce Gerbers and Pick & Place if Needed.

Note I am using JLCPCB with a low setup cost I am not using a Local Israeli company. If
we have a 500$ NPI the idea is useless. JLCPCB is Limited at 50 PCBS 1250 pcbs.

One can purchase the boards from Aliexpress for about 17-20$ but unknown quality and may
be fake.

https://jlcpcb.com/smt-assembly

Arie

Code Formatting: don't use long same-line comments; use the line above

This is a sub-issue of #11. Don't close #11 until all sub-issues are resolved.

I will help with this; just want to teach the principle too is all.

Instead of:

#define insp_pressure_default 40  // defualt value - hold this pressure while breathing - the value is changed if INSP_Pressure
                                  // potentiometer is inatalled

Do:

/// Default value - hold this pressure while breathing - the value is changed if 
/// INSP_Pressure potentiometer is installed
#define INSP_PRESSURE_DEFAULT 40

Notice I also add doxygen comments ///, and change the constant to all caps. Limit your max column width, or "ruler" as it is frequently called, to 100 chars.

Solidworks files are not portable

For those of us working at home with open source CAD software, the SLDPRT and SLDASM files are unusable.
Can you please export into some compatible format e.g. STEP.

Code Formatting: declare only 1 variable per line

This is a sub-issue of #11. Don't close #11 until all sub-issues are resolved.

I will help with this; just want to teach the principle too is all.

Also, I recommend the industry-standard uint8_t over the Arduino byte type. Byte is an alias to it anyway: "/home/alexa/dev/AmboVent/AmboVent/3-Software/Arduino/arduino_core/arduino/hardware/arduino/avr/cores/arduino/Arduino.h": line 126:

typedef uint8_t byte;

In Eclipse, I just Ctrl + Click on any byte in the arduino source code and it jumps to its definition.

Instead of:

byte monitor_index = 0, BPM = 14, prev_BPM, in_wait, failure, send_beep, wanted_cycle_time,
     disconnected = 0, high_pressure_detected = 0, motion_failure = 0, sent_LCD, hold_breath,
     safety_pressure_detected;  

Do:

uint8_t monitor_index = 0;
uint8_t BPM = 14;
uint8_t prev_BPM;
uint8_t in_wait;
uint8_t failure;
uint8_t send_beep;
uint8_t wanted_cycle_time;
uint8_t disconnected = 0;
uint8_t high_pressure_detected = 0;
uint8_t motion_failure = 0;
uint8_t sent_LCD;
uint8_t hold_breath;
uint8_t safety_pressure_detected;

Code Formatting: append all variables which contain units with their units

This is a sub-issue of #11. Don't close #11 until all sub-issues are resolved.

I will help with this. Just want to teach the principle too is all since you'll write code faster than I can reformat it :).

Instead of:

int some_var;

Do:

 int some_var_mm; // millimeters
 int some_var_m; // meters
 int some_var_mps; // meters per second
 int some_var_n; // newtons
 int some_var_psi; // PSI
 int some_var_kpa; // KPa
 int some_var_ms; // milliseconds
 // etc etc

Possible calibration user error

It appears to me that there is a plausible scenario in which there will be a divide by zero in calc_failure(), leading to unexpected results or a crash. During calibrate_arm_range(), if a user is is distracted and pushes the test button twice without moving the arm, max_arm_pos can be set to the same value as min_arm_pos. I suggest more checks before the calibrated variable is set to true.

Detailed Build Instruction?

Hi, This is not an issue.

Do we have any step by step by build guide for the AmboVent? I found the AmboVent System Detailed Description - English 2.4.2020.pdf , but it doesn't include basic things like instructions for the assembly..etc.

Thanks.

Code Formatting: use stdint.h types

This is a sub-issue of #11. Don't close #11 until all sub-issues are resolved.

I will help with this. Just want to teach the principle too is all since you'll write code faster than I can reformat it :).

To make the code cross-platform and clear, each type should have an explicit size. unsigned int on an ATMega328 is 2 bytes, but on an STM32 it is 4 bytes. uint16_t, however, is always 2 bytes on any platform, period. People may want to move your code to a new platform in the future. This will make the process much better.

Here are the standard types: http://www.cplusplus.com/reference/cstdint/

unsigned int --> uint16_t
unsigned long --> uint32_t
int --> int16_t
long --> int32_t

etc.

nit-picks:
also
byte --> uint8_t
boolean --> bool

Code Formatting: general variable name conventions

We need to define first what every significant value name should be.

  1. "Breathing cycle", I don't like this name as someone reading the code could be confused with the other meaning of the word breath. So I suggest respiration_cycle.
  2. "loop cycle" using cycle again does not seem right as someone who is less familiar with this software or in general with how code works will most likely think it's about the respiration cycle (it can be confusing for everyone actually as point 1 and 2 have quite a lot of variables, confused me too).
    I suggest using update, update_time, update_lost, time_since_last_update, etc' just not mentioning the word cycle.
  3. "index", used to describe the current step in the "motion profile" profile, so I suggest using respiration_step, maybe respiration_step_index because it's used as an index after all.

@ElectricRCAircraftGuy tell me what you think on those points, there are more general variables to add here as well I guess.

Code formatting Variable name index=0 line 138

The line gave a compile time error while porting code to esp32.
int motorPWM,index=0, prev_index,i, wait_cycles,cycle_number, cycles_lost,index_last_motion;

Variable name index =0

Error
char *to int conversation fail

all index had to be renamed.

to something like index_somename

Desktop.ini

In the ".Software/Breath Profiles Generator" there are desktop.ini-files commited.

New Option PCB

Here is a new option for a PCB

https://github.com/Arie001/ambovent_pcb_Rev_Arie/tree/master/respirator-control_rev2

Please review Kicad I have checked it in Fusion 360 .
I did not Find good cheap switches that fit the small holes.
Only one three extra Parts for 12v .

DRC was run at 0.5mm . Fails RGB Led the footprint and Sw1 is near the corner screw
Note The Arduino and the Module I2C was not put on the PCB as I want to keep it simple no smd soldering.

I think it is a Major step up.
I can have a board ready in a few hours I am in Modiin .

The Board is supported 3 corners the bottom right is not supported No hole Below the the Hole
for the sensor.

I have exported the Step Not the Height of the Lcd may not be correct .

pcb_rev2

I use dry Film Etch
054-6597555

Solid works version issue

I have a colleague who has solidworks 2019 installed but can't open the files due to a 'future version' error. This seems to be a common issue requiring one to use a later solid works. Is it possible to use an earlier version to save the file or use a vendor neutral file format?

Email from the said person in verbatim


Thanks for the links to the CAD files for the trial project. I hope we can collaborate so we can try out any other designs for equipment that will alleviate the current medical equipment availability.

I was able to access the zip file containing the Solidworks files. However, they are tagged as 'future version' meaning I can't open the attachments with my current Solidworks 2019.


Thanks

Code Formatting: Use enums where able; C-style namespace them properly

This is a sub-issue of #11. Don't close #11 until all sub-issues are resolved.

Use enums wherever they make sense instead of constants or #defines. Also, namespace them by putting their categorical name before their specific name, separated by an underscore.

Instead of:

enum main_states : byte
{
  STBY_STATE,
  BREATH_STATE,
  MENU_STATE
};

Do:

Use 3 slashes /// to signify "doxygen" style comments above members (good practice even if you don't generate doxygen). See more examples in my file here: https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/git%20%26%20Linux%20cmds%2C%20help%2C%20tips%20%26%20tricks%20-%20Gabriel.txt

enum main_state : byte
{
  // Use explicit name, and explicitly set 1st element to 0
  /// some useful description
  MAIN_STATE_STANDBY = 0, 
  /// some useful description
  MAIN_STATE_BREATH,
  /// some useful description
  MAIN_STATE_MENU, 
  /// Not a state! Use this if you need the total number of enums in this type
  MAIN_STATE_COUNT, // trailing comma on last elment is just fine
};

Encourage community involvement

Hello folks,

First and foremost - THANK YOU!!

As this repository is open source, it will be amazing to encourage the open source community to get involved in the work being done.

A good way to get help is to create issues stating what help is needed. To each such issue, you can add the help-wanted label.

There are many who would like to help! Help us help you!

Thank you again. This project is TRULLY a life saver.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.