dokeeffe / indi-aldiroof

Arduino powered motor controller and an INDI driver for an astronomical observatory roof powered by an Aldi special 550w electric hoist
12 stars 4 forks source link

Failed to build indilib 2.0.7 #11

Open minhlead opened 3 months ago

minhlead commented 3 months ago

Could you please check, with the latest indilib the driver failed to build and crashes.

dokeeffe commented 3 months ago

Hi, I just updated it but I can't test it sorry. It builds now and I could open it in Kstars. I don't have hardware right now to test it.

I actually stopped using this driver recently. I'm moved to the built-in indi scripting gateway to control my roof. The main disadvantage of this driver was recompiling every time I updated INDI. It became a bit of a pain. If you can get the built in scripting gateway working I think its better. I have my scripts here https://github.com/dokeeffe/indi-aldiroof/tree/master/scripting-gateway-driver The scripts can be modified to do whatever your roof hardware needs. For me its a firmata serial interface to the arduino running this code https://github.com/dokeeffe/indi-aldiroof/tree/master/arduino-firmware/SimpleDigitalFirmataRoofController

minhlead commented 3 months ago

-- The CXX compiler identification is GNU 11.4.0 -- The C compiler identification is GNU 11.4.0 -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Found INDI: /usr/lib/x86_64-linux-gnu/libindidriver.so;/usr/lib/x86_64-linux-gnu/libindiAlignmentDriver.so (found version "2.0.8") -- Found NOVA: /usr/lib/x86_64-linux-gnu/libnova.so -- Configuring done -- Generating done -- Build files have been written to: /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/build [sudo] password for minh: [ 20%] Building CXX object CMakeFiles/firmata.dir/libfirmata/src/firmata.o /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/libfirmata/src/firmata.cpp: In member function ‘int Firmata::OnIdle()’: /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/libfirmata/src/firmata.cpp:414:1: warning: control reaches end of non-void function [-Wreturn-type] 414 | } | ^ [ 40%] Building CXX object CMakeFiles/firmata.dir/libfirmata/src/arduino.o [ 60%] Linking CXX static library libfirmata.a [ 60%] Built target firmata [ 80%] Building CXX object CMakeFiles/indi_aldiroof.dir/aldiroof.o /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp: In member function ‘virtual void AldiRoof::TimerHit()’: /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:221:21: error: ‘class INDI::PropertySwitch’ has no member named ‘s’ 221 | if (DomeMotionSP.s == IPS_BUSY) | ^ /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:238:12: error: ‘DomeMotionS’ was not declared in this scope; did you mean ‘DomeMotionSP’? 238 | if (DomeMotionS[DOME_CW].s == ISS_ON) | ^~~ | DomeMotionSP /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:248:31: error: ‘INDI::PropertyView INDI::PropertyBasic::operator&() [with T = _ISwitch]’ is protected within this context 248 | IUResetSwitch(&ParkSP); | ^~ In file included from /usr/include/libindi/indipropertytext.h:21, from /usr/include/libindi/basedevice.h:29, from /usr/include/libindi/parentdevice.h:3, from /usr/include/libindi/defaultdevice.h:21, from /usr/include/libindi/indidome.h:25, from /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.h:4, from /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:16: /usr/include/libindi/indipropertybasic.h:115:27: note: declared protected here 115 | PropertyView operator &(); | ^~~~ /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:249:16: error: ‘ParkS’ was not declared in this scope; did you mean ‘Park’? 249 | ParkS[1].s = ISS_ON; | ^~~~~ | Park /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:250:23: error: ‘class INDI::PropertySwitch’ has no member named ‘s’ 250 | ParkSP.s = IPS_OK; | ^ /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp: In member function ‘virtual bool AldiRoof::Abort()’: /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:389:24: error: ‘INDI::PropertyView INDI::PropertyBasic::operator&() [with T = _ISwitch]’ is protected within this context 389 | IUResetSwitch(&ParkSP); | ^~ In file included from /usr/include/libindi/indipropertytext.h:21, from /usr/include/libindi/basedevice.h:29, from /usr/include/libindi/parentdevice.h:3, from /usr/include/libindi/defaultdevice.h:21, from /usr/include/libindi/indidome.h:25, from /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.h:4, from /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:16: /usr/include/libindi/indipropertybasic.h:115:27: note: declared protected here 115 | PropertyView operator &(); | ^~~~ /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:390:16: error: ‘class INDI::PropertySwitch’ has no member named ‘s’ 390 | ParkSP.s = IPS_ALERT; | ^ /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:391:22: error: ‘INDI::PropertyView INDI::PropertyBasic::operator&() [with T = _ISwitch]’ is protected within this context 391 | IDSetSwitch(&ParkSP, NULL); | ^~ In file included from /usr/include/libindi/indipropertytext.h:21, from /usr/include/libindi/basedevice.h:29, from /usr/include/libindi/parentdevice.h:3, from /usr/include/libindi/defaultdevice.h:21, from /usr/include/libindi/indidome.h:25, from /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.h:4, from /home/minh/Downloads/indi-aldiroof-master (2)/indi-driver/indi-aldiroof/aldiroof.cpp:16: /usr/include/libindi/indipropertybasic.h:115:27: note: declared protected here 115 | PropertyView operator &(); | ^~~~ make[2]: [CMakeFiles/indi_aldiroof.dir/build.make:76: CMakeFiles/indi_aldiroof.dir/aldiroof.o] Error 1 make[1]: [CMakeFiles/Makefile2:111: CMakeFiles/indi_aldiroof.dir/all] Error 2 make: *** [Makefile:136: all] Error 2 Thanks, I still got the error building the driver. I have problem with the dome scripting. The dome status (open, closed) just won't update, the ROR status stays opening or closing. Also the abort didn't work for me. And the serial port didn't go with the indi setting but was hard coded in the script file (ttyACM0), sometimes this port change and I wanted to connect the indi to the new port and it'll force me to edit the scripts file.

dokeeffe commented 2 months ago

Sorry the late reply. That's so strange. It built on my PC with no problem. I've no changes to commit or push. I'm building by calling the build.sh script. Not sure if that matters.

Here's my output

mkdir: cannot create directory ‘build’: File exists
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- The CXX compiler identification is GNU 13.2.0
-- The C compiler identification is GNU 13.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found INDI: /usr/lib/x86_64-linux-gnu/libindidriver.so;/usr/lib/x86_64-linux-gnu/libindiAlignmentDriver.so (found version "2.0.5") 
-- Found NOVA: /usr/lib/x86_64-linux-gnu/libnova.so
-- Configuring done (0.5s)
-- Generating done (0.0s)
-- Build files have been written to: /home/dokeeffe/code/indi-aldiroof/indi-driver/build
[ 20%] Building CXX object CMakeFiles/firmata.dir/libfirmata/src/firmata.o
/home/dokeeffe/code/indi-aldiroof/indi-driver/indi-aldiroof/libfirmata/src/firmata.cpp: In member function ‘int Firmata::OnIdle()’:
/home/dokeeffe/code/indi-aldiroof/indi-driver/indi-aldiroof/libfirmata/src/firmata.cpp:414:1: warning: control reaches end of non-void function [-Wreturn-type]
  414 | }
      | ^
[ 40%] Building CXX object CMakeFiles/firmata.dir/libfirmata/src/arduino.o
[ 60%] Linking CXX static library libfirmata.a
[ 60%] Built target firmata
[ 80%] Building CXX object CMakeFiles/indi_aldiroof.dir/aldiroof.o
[100%] Linking CXX executable indi_aldiroof
[100%] Built target indi_aldiroof
Install the project...
-- Install configuration: ""
-- Installing: /usr/bin/indi_aldiroof
-- Up-to-date: /usr/share/indi/indi_aldiroof.xml
dokeeffe commented 2 months ago

Also I have version 2.0.5 of libindi-dev

dokeeffe@dokeeffe-ThinkPad-X1-Carbon-4th:~/code/indi-aldiroof/indi-driver$ dpkg -l | grep libindi-dev
ii  libindi-dev                                   2.0.5+202312021714~ubuntu23.04.1          amd64        Instrument-Neutral Device Interface library -- development files
minhlead commented 2 months ago

Oh. I got it to compile now, but it still crash when I start it in INDILib.

On Wed, Jun 12, 2024, 4:42 AM Derek OKeeffe @.***> wrote:

Also I have version 2.0.5 of libindi-dev

@.***:~/code/indi-aldiroof/indi-driver$ dpkg -l | grep libindi-dev ii libindi-dev 2.0.5+202312021714~ubuntu23.04.1 amd64 Instrument-Neutral Device Interface library -- development files

— Reply to this email directly, view it on GitHub https://github.com/dokeeffe/indi-aldiroof/issues/11#issuecomment-2161646911, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIMPGR3BTVFEEYGDMBCGL6TZG5VMBAVCNFSM6AAAAABIQ4EX42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRRGY2DMOJRGE . You are receiving this because you authored the thread.Message ID: @.***>