Giter Club home page Giter Club logo

Comments (30)

githubdoe avatar githubdoe commented on September 1, 2024 1

Ah yes thanks.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024 1

Thanks for the help guys. I have been very busy as I said before. I think I'm ok now. I don't ever debug into the libraries either. Sometimes that would be helpful but mostly not. Now the only issue would be when/if I add files to the build both .pro files need to be updated. But I can deal with that. It present I abandoned the feature to fix wrap errors using diameter profiles. It was fun to try and play with however. So I don't have any new files to add now.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024 1

Ok thanks. Forgot the m after the -a when including text. The git bash tool I use has tiny text for my poor old eyes and I did not notice the fail to begin with.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

I have lost my D drive and am recovering. It is a 2.5 inch Sata Samsung 1 TB SSD. Getting a new one today at Best Buy. Once recovered I can then recreate the work I did for the regions and fix this as well. Hoping then to create a new release.

I will start by using my jan 1 2021 last saved/backed up github. Hoping that this will have all my saved magic keys to enable github updates. If not then it may take me longer to recreate the workable version.

Hoping against hope that if I connect the old D drive as external USB I can recover some data. Need the Sata to USB adapter cable also picking up from Best Buy today.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

Oh last backup was 5 2022. So that is much better.

from dftfringe.

gr5 avatar gr5 commented on September 1, 2024

When it's time to make the installer, after you push your changes, the installer now gets built automatically. Although the version should be updated in one of the files that creates the installer.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

Ok my drive could not be recovered. My last backup was release 5.1 so my local github is very out of date. Yet when I did a git status it said my git archive was up to date with origin\master.

Does that mean I have the wrong branch and need to switch to branch xxx? Is that part of the old master got renamed. What do I do next?

from dftfringe.

atsju avatar atsju commented on September 1, 2024

When it's time to make the installer, after you push your changes, the installer now gets built automatically. Although the version should be updated in one of the files that creates the installer.

I'm trying hard to finish automated release. Please wait before doing a release. If I manage to do it, only thing you need to do is push a tag (e.g. v1.2.3) and you will get a draft release in GH interface with the installer uploaded and a release note with the changes. You can then update the text in the release note as you wish, test the installer one last time and just click publish.

Ok my drive could not be recovered. My last backup was release 5.1 so my local github is very out of date. Yet when I did a git status it said my git archive was up to date with origin\master.

Does that mean I have the wrong branch and need to switch to branch xxx? Is that part of the old master got renamed. What do I do next?

Git status has not the up to date remote informations. You first need to do a git fetch this will update your remote informations locally. Then you can git status that will compare the up to date remote information with the local.
I'm available for next 12h. If you want I can setup a teams call with screen sharing any time to help you.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

Now I don't have the right stuff for OpenCV and probably other libraries. What was the strategy you guys decided on to setup those in order to build on windows for the includes and the libs of .dlls.

from dftfringe.

atsju avatar atsju commented on September 1, 2024

Personally I don't build locally anymore. I let github do it for me, it takes 8-12 minutes each time (1h first time because it needs to cache the openCV build).

If you need to build locally because of debug, you can follow steps in build-windows.yml or I can do it with you on teams or I shared my latest (most up to date, but maybe not current) notes on how to windows build on groups.io

from dftfringe.

atsju avatar atsju commented on September 1, 2024

OR if you are on windows 10, consider using WSL https://learn.microsoft.com/en-us/windows/wsl/install
This way you can "build on linux" in windows. And this is MUCH easier. But I never tried the debug part. Only build.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

Sorry I went to bed. It is a must that I build locally with using Qt Creator as the IDE and it's links to the compiler and the debugger. It would never work to take minutes to build between debug sessions. I will do incremental builds and debugging hundreds of times while working on a feature.

from dftfringe.

atsju avatar atsju commented on September 1, 2024

best is probably to follow groups.io
It's what is nearest to your previous workflow.

from dftfringe.

gr5 avatar gr5 commented on September 1, 2024

I messaged dale directly but not sure if he got my email. Anyway...

I am actually coincidentally building dftfringe right now on a fresh computer. A laptop. I'm doing the install. You can definitely step through the code line by line. I've done it. But you can't step through other libraries like opencv if you do it my way.

So I don't build opencv nor armadillo nor qwt. I just install those things to get the .h files only. Only .h files! I put the .h files where the .pro says to put them (the dale version of the .pro file).

Then I make sure to put all the dlls from a recent DFTFringe install in some folder somewhere. I forget where I put them but I have notes. So here are my notes...

from dftfringe.

gr5 avatar gr5 commented on September 1, 2024

These notes are a mess but start at the top and skip down for more details if the notes near the top don't make sense. Hopefully you only need the first 35 lines or so:

How to build DFTFringe (by [email protected])

================
Starting from scratch on laptop windows 11
I'm going to download the latest qt creator as qt libraries are not mentioned in the DFTFringe.pro file so I
can use any one I want. Dale uses an older creator with QT 5.X (can tell by the name of the dll files) but I just grabbed qt creator version x.x.x with QT 6.4.1

On the qt.io website make sure you get the open source download. There are at least 3 overall options: paid, "try it", open source. Get the open source one.

After launching installer, I chose default locations.

I created a d: drive linked to a folder on c drive - network share the folder to "everyone" and
it will potentially prompt you to enable network file sharing and then do "share network drive"

followed instructions below to install qwt 6.1.5

Okay then I realized I have several modules missing:
charts multimedia multimediawidgets datavisualization

go to c:\qt\ find and open the MaintenanceTool.exe
select components:
qt -> qt 6.1.5 (or whatever is already installed) -> additional libraries -> qt charts, qt datavisualization, qt multimedia

I grabbed armadillo 11.4.4 - Dale used version 9.200.6 - it doesn't matter
https://arma.sourceforge.net/download.html
in wsl:
tar -xf armadillo-11.4.4.tar.xz
Create a folder d:\armadillo
put extracted files in there, rename such that this exists:
d:\armadillo\armadillo-9.200.6\include\

================
some git notes
if you have unchecked changes and realize you want to put them on a new branch...
git checkout -b gr_arbitrary_wavefront

git checkout without the "-f" will never delete or overwrite your uncommited changes. The above command creates a new branch based on the branch you were just in and now you can stage (add) and then commit your changes into the new branch.

================
notes "against" the pdf document
cmake 3.25.0
put into c:\cmake\

codeblocks 20.03 - got defaults which was not a mingw version but did include a compliler
put in default "program files" folder with the space in the path
'

I already have qt5.3.2 installed

Unfortunately I forget what I did. I concluded 5.3.2 was not new enough. So I think I went to uninstall it but then it made
me log in using my qt username/password but then it gave me lots of choices including installing specific versions.
anyway somehow I ran the web installer (or something like that) and ended up with qt creator 9.0.0 "based on qt 6.4.1"

Somehow I got qt 5.15.2 64bit with mingw. I think the png helps explain it?

I had trouble with qt5.3.2 not recognizing a new module that is part of qt called "datavisualization" so I installed

SEE w:\gr5web\qt_install.png

================

grab Dale's source code from github: https://github.com/githubdoe/DFTFringe

Dale builds on windows so I did the same. I did this on windows 10.

Take an existing installation of DFTFringe and find all the dll files and copy certain ones to an otherwise empty folder. These files.
If you copy too many you will get link errors when you compile the project:

For DFTFringe version 4.0 (32 bit) you want these files (I put them in a subfolder called dll)
-rwxr-xr-x 1 gr 197121 1051729 Jan 30 2016 lib1_calib3d2410.dll*
-rwxr-xr-x 1 gr 197121 2654367 Jan 30 2016 libopencv_core2410.dll*
-rwxr-xr-x 1 gr 197121 873636 Jan 30 2016 libopencv_features2d2410.dll*
-rwxr-xr-x 1 gr 197121 666703 Jan 30 2016 libopencv_flann2410.dll*
-rwxr-xr-x 1 gr 197121 3148632 Jan 30 2016 libopencv_highgui2410.dll*
-rwxr-xr-x 1 gr 197121 2432977 Jan 30 2016 libopencv_imgproc2410.dll*
-rwxr-xr-x 1 gr 197121 1113600 Apr 21 2016 qwt.dll*

For latest DFTFringe, version 5 or newer (64 bit) you want these files which are 64 bit dlls
-rwxr-xr-x 1 gr 197121 2585334 Dec 19 03:58 libopencv_calib3d3412.dll*
-rwxr-xr-x 1 gr 197121 7588824 Dec 19 03:54 libopencv_core3412.dll*
-rwxr-xr-x 1 gr 197121 1806133 Dec 19 03:57 libopencv_features2d3412.dll*
-rwxr-xr-x 1 gr 197121 1041628 Dec 19 03:55 libopencv_flann3412.dll*
-rwxr-xr-x 1 gr 197121 851850 Dec 19 03:57 libopencv_highgui3412.dll*
-rwxr-xr-x 1 gr 197121 6090621 Dec 19 03:57 libopencv_imgcodecs3412.dll*
-rwxr-xr-x 1 gr 197121 12003943 Dec 19 03:56 libopencv_imgproc3412.dll*
-rwxr-xr-x 1 gr 197121 1093632 Dec 20 14:00 qwt.dll*

In Dale's code - among the cpp files there is a "DFTFringe.pro" (project) file. Edit that
with a text editor - got to the libraries section (search for "win32")
These lines need to point directly to where you put the dll files:
LIBS += C:/Users/gr770/DFTFringe/dlls/qwt.dll (actually I ended up commenting this out as it's in the dlls folder also)
and a few lines of code below where he has the opencv dlls:
LIBS += C:/users/gr770/DFTFringe/dlls/*.dll

64bit: qwt-6.1.2 is now qwt-6.1.5
64bit: opencv 2.4.10 now opencv-3.4.12
64bit: I downloaded the qwtl-6.1.5 source files and put them in c:\qwt-6.1.5\ I chose this version as that is what dale uses
64bit: and his qwt.dll is already created and comes with the dftfringe installer.
64bit:
64bit: https://opencv.org/releases/page/2/
64bit: download OpenCV-3.4.12 windows installer. After installing
64bit: I copied just the "opencv/build/include folder to
64bit: c:/opencv-3.4.12/include/
64bit: and then put that in the DFTFringe.pro file includepath
64bit: INCLUDEPATH += C:\opencv-3.4.12\include
64bit:
64bit:
64bit: So I finally run qt creator and open the ".pro" file and it makes me choose qt 5.15.2 mingw 32bit or 64bit
64bit: so I choose 64bit.
64bit:
64bit: if you have trouble finding qt creator try c:\qt\tools\qtcreator\bin\qtcreator.exe
64bit:
64bit: Click "projects" and make sure it's set for qt 5.15.2 mingw 64
64bit:
64bit: get armadillo...
64bit: I grabbed 11.4.2 from source forge (we only need a few .h files - no dlls or libraries or anything)
64bit: I used my linux machine to unpack. It's only like 6MB
64bit:
64bit: I only copied the include folder and put it into c:\armadillo\include
64bit: There is a file without the ".h" called just "armadillo". Leave it as is as the include just says include "armadillo"
64bit:
64bit: I had to rename the file surface_LeY_icon.ico to icon.ico and move it up a directory level
64bit:
opencv64bit:
64bit: It's unhappy with dll64s/*.dll in .pro file maybe have to list each dll?
64bit: yeah I had to list each one
64bit: added: liblapack.dll
64bit:

Download qwt. Dale seems to be using version 6.1.2 so I googled "qwt 6.1.2 download". I grabbed a version from sourceForge.net.
It was a zip file. I unzipped it to the c drive to match what dale did so that I didn't have to edit this line in the project file:
INCLUDEPATH += C:\qwt-6.1.2\src

After unzipping you should be able to go to c:\qwt-6.1.2\src and see lots of ".h" files that are included
in Dale's code. e.g. "qwt_plot_grid.h". If you choose to put qwt in a different folder then you need to edit the project
file to match where the ".h" files can be found.

Next download opencv: https://opencv.org/releases/
Find version 2.4.10 (I figured out this is the right one as the dll's are *2410.dll) (also his includes are "opencv2/...")
download the windows installer. You only need the .h and .hpp files but it's a pain to extract them all from the src
as they are distributed across dozens of folders. When it asks where to extract to choose c:\ and then you won't have to
edit the project file.
Edit project file to point to them:
INCLUDEPATH += c:\opencv\build\include

64bit: SEE w:\gr5web\qt_install.png

qt 5.3.2 (and qt creator 3.2.1)
https://download.qt.io/new_archive/qt/5.3/5.3.2/e
Download the one that has the word "windows" and "mingw" in it.
Install into c:\qt
This seems to install both qt 5.3.2 and also qtcreator 3.2.1
You might have to create a qt account at some point. I downloaded so many different qt creators that I forget now which ones
needed the username and password to run. The qt account is free.

When I launch qtcreator (found in c:\qt\qt5.3.2\tools\qtcreator\bin) I then
load the ".pro" file. It then asks what version of qt and by default selects qt5.3.2.
Click the button - I think it says "configure". Now you can click the hammer (bottom left corner of qtcreator) to build. Wait!
Before clicking the hammer, 3 icons above it there should have an icon that includes the words "DFTFringe" "debug".
Change that to "DFTFringe" "Release" unless you have access to the qwtd.dll file and configure it properly
for the debug build.

Ignore the 100 or so warnings.

I had to remove the .rc line from the project file to get it to build:
RC_FILE = DFTFringe.rc
If this file (DFTFringe.rc) is not in git then you need to remove this line from the project. I think the only thing it does
is set the icon for the app. Which is handy but not mandatory. There is a way to pull the rc file out of an exe file. Certainly
MSVC can do it. Resource Hacker can do it.

The resulting file will be I believe in a subdirectory of your "home" folder. For me that was here:
C:\Users\gr770\build-DFTFringe-Desktop_Qt_5_3_MinGW_32bit-Release\release

IGNORE NOTES FROM HERE DOWN

no: So you need qtcreator and also qt so I got both at once. I went to qt.io/download and on lower right there is an
no: open source download thing - do that "go open source". then I think I did the online installer? Or maybe qt-unified something?
no: Somehow I installed qt 5.9.0 and it took over an hour to download (huge!) and it auto downloaded qtcreator version 4.14.0.
no: Even though I had just downloaded an older version. Anyway I also had to create a qt account with password at this point.

no: start qtcreator. Open the project file. Select a build kit. So do "tools" "options" and there are some tabs - the
no: key ones are "qt versions" and "kits". For Kit I chose QT 5.9.0 Mingw 32 bit. Somewhere I told it to create the Release
no: version of DFTFringe and not the Debug version (the debug version needs qwtd.dll). Here's how to set to release:
no: click on the projects button left side with green wrench. At the top - "edit build configuration" change to "Release".
no: While in there make sure the only thing that will build and run (list on left side) is the "desktop qt 5.9.0 mingw 32 bit".
no: Hit esc key to get out (I can't find close button).

no: Get qtcreator 4.2.1. Google "downloading qtcreator 4.2.1". Only trust things on *.qt.io domains.

cd /d C:\CMake\bin\opencv-build\modules\core &&
C:\Qt\Tools\mingw810_64\bin\gcc.exe -DCVAPI_EXPORTS -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE="long long" -D_USE_MATH_DEFINES -D_WIN32_WINNT=0x0601 -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DCV_CPU_COMPILE_SSE4_1=1 -DCV_CPU_COMPILE_SSSE3=1 -DCV_CPU_DISPATCH_MODE=SSE4_1 @CMakeFiles/opencv_core.dir/includes_CXX.rsp -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -mssse3 -msse4.1 -MD -MT modules/core/CMakeFiles/opencv_core.dir/arithm.sse4_1.cpp.obj -MF CMakeFiles\opencv_core.dir\arithm.sse4_1.cpp.obj.d -o CMakeFiles\opencv_core.dir\arithm.sse4_1.cpp.obj -c C:\CMake\bin\opencv-build\modules\core\arithm.sse4_1.cpp

C:\Qt\Tools\mingw810_64\bin\gcc.exe -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -Wl,--gc-sections -shared -o ....\bin\libopencv_core3412.dll -Wl,--out-implib,....\lib\libopencv_core3412.dll.a -Wl,--major-image-version,3,--minor-image-version,4 -Wl,--whole-archive CMakeFiles\opencv_core.dir/objects.a -Wl,--no-whole-archive @CMakeFiles\opencv_core.dir\linkLibs.rsp

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

I have got builds working once again. I had backups of all the external library stuff so that was easy. I had forgotten about DFTFring_Dale.pro. Once remembered and used then I can build.

Sorry I have not yet read the comments just above this. Been too busy with company and life matters.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

The problem with the edge mask not being used was because the constructor of the mirror dialog read the enabled state of the edge mask check box too late in the process. Which was after it read the reduction value. So I moved it up earlier where it now works.

from dftfringe.

gr5 avatar gr5 commented on September 1, 2024

Excellent. Do you want to go ahead and push your fix? Or even better, create a pull request with the fix? You can create a commit with only the fix in master and push it or do the full pull request process. Please don't accidentally commit your DFTFringe.pro.

from dftfringe.

atsju avatar atsju commented on September 1, 2024

Excellent. Do you want to go ahead and push your fix? Or even better, create a pull request with the fix? You can create a commit with only the fix in master and push it or do the full pull request process. Please don't accidentally commit your DFTFringe.pro.

If it's not too difficult, I would advise to use the PR process. This will ensure nothing is missing or brocken in the repository thanks to continuous integration.

git checkout -b DOE/myBranchName
git add theFilesYouWantToShareModifications
git commit -m "your message"
git push -u origin DOE/myBranchName

Then open the PR

For additional modifications

git add theFilesYouWantToShareModifications
git commit -m "your message"
git push

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

I will work on saving the edge mask value in the outline file.
In addition I notice the internal edge mask width is not recalculated when the mirror outline changes size and it should be. Since then the pixels per mm would be different.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

Let lump this all together so wait to merge.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

Here is a design decision to think about. The edge mask should reside in the outline file if specified. Then when it is read back in if that igram is reprocess some time later it should be used. Right now it is not stored in the .oln file.

But what to do with the value in the mirror config. Should it be changed to match the value in the outline file? That might surprise the user to discover their edge mask value in the config has been changed. However maybe it should be. Maybe if different than the outline file then a warning should be issued and ask if it can be changed. If the answer is no then what?

  1. Still use the .oln value?
  2. Ignore the .oln value and use the default in the config.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

If the user answers no then we must use the config value because we can not change the config value. It is only the config value that is used to calculate the edge mask later on in other code. Too complicated to make a temp value to be used in it's place.

from dftfringe.

gr5 avatar gr5 commented on September 1, 2024

Most people probably will never use this feature or they will use same value for a given mirror so I'm not to worried what you choose however...

I like storing it in the OLN file. If same value there is nothing to do. If OLN has zero silently use config. Remaining cases ask user but make it clear that clicking "okay" or "yes" copies OLN value to config. Explain clearly that "mirror config edge value will change from Xmm to Ymm" or something similar. Many of your other warnings are clear that the values don't match but unclear what happens when I hit the "yes" button.

from dftfringe.

githubdoe avatar githubdoe commented on September 1, 2024

I have updated the code to save and restore edge mask info in the outline and use it when prompted by the user if it is different from that in the mirror config.

I did a commit and then a push. I hope that is what I should do. Now ready I guess for another review by any who care.

from dftfringe.

atsju avatar atsju commented on September 1, 2024

Hi @githubdoe You changes do not appear on remote. But the process you describe is correct.
Was there any warning on commit or push ? Are you on correct branch ? Or more probably, did you add the changes before commit ? (or commit -a)
Maybe you can do gitk --all this will show you a nice graph to understand what is on commited or not, pushed or not.

from dftfringe.

atsju avatar atsju commented on September 1, 2024

Now it's there https://github.com/githubdoe/DFTFringe/pull/39/files/6af2a829248de88c0804934f4f0b6ee88853c77f..b0268c2acead681f9a0fb9cb127549a5b6407653
👍

from dftfringe.

gr5 avatar gr5 commented on September 1, 2024

Excellent.

I have some very high priority outdoor tasks for today so give me about 24 hours. If it rains today then I'll look at it then. Most likely I'll look at it after dark tonight.

from dftfringe.

atsju avatar atsju commented on September 1, 2024

I think this issue has been fixed as part of #39

from dftfringe.

gr5 avatar gr5 commented on September 1, 2024

Yes. Fixed in #39 and will be in release 6.3.0

from dftfringe.

Related Issues (20)

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.