MakerGram Logo

    MakerGram

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Users
    • Groups

    Problems with using struct and enum in another tab

    Arduino
    2
    3
    139
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      FlorianB last edited by

      Hi I am using multiple tabs to make a big project more readable. Now i wanted one tab just to define structs and enums and get them out of the way.

      The problem is that e.g. in tab#2 i can't use these data structures because they were "not declared in this scope". So I included the tabs using something like
      #include "./tabWithEnums"

      This works fine until I want to use the same structs in a third tab. If I don't include the defining tab, then I get the upper error. If I include the defining tab in tab#3 then I get the error "redeclaration of ...".

      Running out of ideas, I put the structs and enums in the main tab - same result.

      May last idea was to define for example an enum with ON/OFF as values in every tab where I need them. Then I get the error "redeclaration" too.
      So i can't declare it twice because the IDE complains about double declaration but at the same time I can't use the correct declaration in the other tab. I am getting mad here.

      I reduced the example code to this:

      TAB1:

      #include "./tab2.h"
      
       enum {
        off,
        on
       };
       
       void setup() {
        Serial.begin(9600);
        Serial.println();
      }
      
      void loop() {
        something();
        delay(10000);
      }
      

      TAB2:

      void something () {
        Serial.println (on);
      }
      

      result:
      exit status 1
      'on' was not declared in this scope

      please help. I lost several hours on this and I don't want to go back and put all code in one TAB. Btw. I know how to use variables over various tabs (using "extern") and methods (by declaring them from the calling tab) but both doesn't help me. Just so you know that I really tried.

      thank you

      1 Reply Last reply Reply Quote 1
      • F
        FlorianB last edited by

        I found the solution: if I #include all tabs in the main tab in the right order and the one with the structs is alphabetically before the others then it will work

        1 Reply Last reply Reply Quote 1
        • salmanfaris
          salmanfaris last edited by

          happy to hear that 🙂 👍

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Recent Posts

          • @abijith Thanks for sharing 🙌.

            • read more
          • It is the simple basic project created using Arduino. LED (Light Emitting Diode) is an electronic device, which emits light when the current passes through its terminals. LED's are used in various applications. It is also used as an ON/OFF indicator in different electronic devices.

            In this project, we will connect the LED to the digital pin on the Arduino board. The LED will work as a simple light that can be turned ON and OFF for a specified duration.

            Video Link :

            What is Arduino and how to use Arduino | Write your first program Now! | Malayalam

            • read more
          • After reinstalling the portenta board file and restarting the computer, solved the problem.

            01fe285c-50ff-4f9a-9a9a-46e2f3b0c555-image.png

            • read more
          • Trying to run blink on portenta but getting the error?

            db930ad2-3abc-4e6b-8784-25c9f1399016-image.png

            error message:

            Arduino: 1.8.13 (Windows 10), Board: "Arduino Portenta H7 (M7 core)" C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Faris\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Faris\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Faris\Documents\Arduino\libraries -fqbn=arduino:mbed:envie_m7 -vid-pid=2341_025B -ide-version=10813 -build-path C:\Users\Faris\AppData\Local\Temp\arduino_build_650727 -warnings=none -build-cache C:\Users\Faris\AppData\Local\Temp\arduino_cache_409352 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.bossac.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.bossac-1.9.1-arduino2.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.openocd.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino13 -prefs=runtime.tools.openocd-0.10.0-arduino13.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino13 -prefs=runtime.tools.dfu-util.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2 -prefs=runtime.tools.dfu-util-0.9.0-arduino2.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2 -verbose C:\Users\Faris\AppData\Local\Temp\arduino_modified_sketch_49117\Blink.ino C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Faris\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Faris\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Faris\Documents\Arduino\libraries -fqbn=arduino:mbed:envie_m7 -vid-pid=2341_025B -ide-version=10813 -build-path C:\Users\Faris\AppData\Local\Temp\arduino_build_650727 -warnings=none -build-cache C:\Users\Faris\AppData\Local\Temp\arduino_cache_409352 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.bossac.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.bossac-1.9.1-arduino2.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.openocd.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino13 -prefs=runtime.tools.openocd-0.10.0-arduino13.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino13 -prefs=runtime.tools.dfu-util.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2 -prefs=runtime.tools.dfu-util-0.9.0-arduino2.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2 -verbose C:\Users\Faris\AppData\Local\Temp\arduino_modified_sketch_49117\Blink.ino Using board 'envie_m7' from platform in folder: C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.3.1 Using core 'arduino' from platform in folder: C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.3.1 Detecting libraries used... "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/defines.txt" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/cxxflags.txt" -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -w -x c++ -E -CC -DARDUINO=10813 -DARDUINO_PORTENTA_H7_M7 -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/includes.txt" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE Generating function prototypes... "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/defines.txt" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/cxxflags.txt" -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -w -x c++ -E -CC -DARDUINO=10813 -DARDUINO_PORTENTA_H7_M7 -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/includes.txt" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp" -o "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\preproc\\ctags_target_for_gcc_minus_e.cpp" -DARDUINO_LIB_DISCOVERY_PHASE "C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\preproc\\ctags_target_for_gcc_minus_e.cpp" Compiling sketch... "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/defines.txt" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/cxxflags.txt" -MMD -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -DARDUINO=10813 -DARDUINO_PORTENTA_H7_M7 -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/includes.txt" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp" -o "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp.o" Compiling libraries... Compiling core... Using previously compiled file: C:\Users\Faris\AppData\Local\Temp\arduino_build_650727\core\variant.cpp.o Using precompiled core: C:\Users\Faris\AppData\Local\Temp\arduino_cache_409352\core\core_arduino_mbed_envie_m7_e26c816eecbb9bfaaa432fd6b53eb31d.a Linking everything together... "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" "-LC:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727" -Wl,--gc-sections -w -Wl,--as-needed "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/ldflags.txt" "-TC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/linker_script.ld" "-Wl,-Map,C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.map" --specs=nosys.specs -o "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.elf" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp.o" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\core\\variant.cpp.o" -Wl,--whole-archive "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/..\\arduino_cache_409352\\core\\core_arduino_mbed_envie_m7_e26c816eecbb9bfaaa432fd6b53eb31d.a" "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/libs/libmbed.a" -Wl,--no-whole-archive -Wl,--start-group -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys -Wl,--end-group "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O binary "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.elf" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.bin" "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O ihex -R .eeprom "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.elf" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.hex" "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-size" -A "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.elf" Sketch uses 130248 bytes (16%) of program storage space. Maximum is 786432 bytes. Global variables use 57280 bytes (10%) of dynamic memory, leaving 466344 bytes for local variables. Maximum is 523624 bytes. Forcing reset using 1200bps open/close on port COM12 PORTS {COM12, } / {} => {} PORTS {} / {} => {} PORTS {} / {COM13, } => {COM13, } Found upload port: COM13 C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2/dfu-util --device 0x2341:0x035b -D C:\Users\Faris\AppData\Local\Temp\arduino_build_650727/Blink.ino.bin -a0 --dfuse-address=0x08040000:leave dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2020 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Invalid DFU suffix signature A valid DFU suffix will be required in a future dfu-util release!!! Cannot open DFU device 2341:035b Cannot open DFU device 2341:035b No DFU capable USB device available An error occurred while uploading the sketch

            • read more
          • Did anyone use Arduino Portenta H7 with Arduino IOT Cloud? It is listed on IOT Cloud Page but it's not supporting!

            When I was trying to connect the board with the, it says The device found is not compatible

            337f42fb-4020-487c-b34e-a7529c6f884b-image.png

            But it's listed in the supporting board page.

            adb3a569-1870-4258-91a7-75653da826c9-image.png

            also mentioned in the portenta page .

            10c67a19-312b-41df-8497-94e8591d4b1d-image.png

            https://www.arduino.cc/en/IoT/HomePage https://store.arduino.cc/usa/portenta-h7

            • read more
          By MakerGram | A XiStart Initiative | Built with ♥ NodeBB
          Copyright © 2021 MakerGram, All rights reserved.
          Privacy Policy | Terms & Conditions | Disclaimer | Code of Conduct