Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding support for string time series - Follow up on #43 #46

Open
wants to merge 37 commits into
base: main
Choose a base branch
from

Conversation

Yida-Lin
Copy link
Member

Follow up on #43.

As discussed:

  • Removing certain outdated data structures like eventMap and use time_series to handle all types of data.
  • As all the data points within a single stream is monotonous, use std::variant<std::vector<...>> instead of std::vector<std::variant<...>> to be more efficient (avoiding redundant std::visit)
  • Other clean ups

@Yida-Lin Yida-Lin requested a review from cbrnr December 29, 2024 08:14
@Yida-Lin
Copy link
Member Author

Hi @cbrnr , I have a pending PR to fix SigViewer as well, but I just realized: SigViewer and libbiosig does not compile on Windows. I only have a Windows laptop. How could we do this?

@cbrnr
Copy link
Collaborator

cbrnr commented Dec 29, 2024

Hi @Yida-Lin! SigViewer does compile on Windows just fine, it's only libbiosig that doesn't work. You could either cross-compile it on Linux, or maybe even easier, use a precompiled libbiosig.a for Windows available here.

@Yida-Lin
Copy link
Member Author

Yida-Lin commented Dec 30, 2024

Hi @cbrnr , thanks for the info. I gave this a try, but ran into compiling problems. With Qt 6.8 I got:

image

With Qt 5.14 I got:

image

In fact, SigViewer documentation says:

image

Building SigViewer on Windows is currently not supported.

This is the commit where it says "Windows is not supported". I remember back then we ran into this same problem and the conclusion was that we simply removed support for compiling on Windows because there was no straight forward solution.

@cbrnr
Copy link
Collaborator

cbrnr commented Jan 7, 2025

SigViewer unfortunately still requires Qt5, so errors with Qt6 are expected. @schloegl can you help us here?

@cbrnr
Copy link
Collaborator

cbrnr commented Jan 14, 2025

@Yida-Lin
Copy link
Member Author

@cbrnr I downloaded the binaries earlier, but it didn't work. Besides binary, we also had to include headers for biosig, right? I remember several years ago there was only 1 header, libbiosig.h. But apparently right now there are multiple of them, and libbiosig.h references a few other headers. I tried including all of them but don't think they work.

@cbrnr
Copy link
Collaborator

cbrnr commented Jan 15, 2025

Yes, I think you need multiple headers as well as multiple static libraries, all of which should be contained in the download. However, I cannot tell you which files you need to copy to external/lib and external/include (but the output should give you hints).

@Yida-Lin
Copy link
Member Author

OK, let me take another look this weekend.

@schloegl
Copy link

SigViewer unfortunately still requires Qt5, so errors with Qt6 are expected. @schloegl can you help us here?

Once you have published libxdf, I can try cross-compiling libxdf and sigviewer for windows.

@cbrnr
Copy link
Collaborator

cbrnr commented Jan 16, 2025

Thanks, that would be great! However, I think it would also be important to be able to directly compile SigViewer on Windows. The only problematic part is libbiosig, which headers and static libraries do we need?

@schloegl
Copy link

Thanks, that would be great! However, I think it would also be important to be able to directly compile SigViewer on Windows. The only problematic part is libbiosig, which headers and static libraries do we need?

I guess that is up to you, you can take any that works for you. 32bit and 64bit static and dynamic libs are provided.

@Yida-Lin
Copy link
Member Author

Yida-Lin commented Jan 20, 2025

Hi @cbrnr and @schloegl, I gave it another try, but still ran into issues.

I used SigViewer main branch + a stable libxdf commit prior to the recent std::variant changes, but have the following biosig related errors:

image

I downloaded the binary using @cbrnr 's link above and copied all header files as well as all statically linked binaries into Sigviewer external/ folder.

Would appreciate thoughts, thank you.

@cbrnr
Copy link
Collaborator

cbrnr commented Jan 20, 2025

I think the reason why it previously worked is because when I was still able to compile libbiosig on Windows (using some previous version), I disabled a couple of features in the Makefile. The pre-built binaries have everything enabled, so you might need to link to additional dependencies. For example, the first error (__imp_GetACP) might be related to a missing iconv library.

@Yida-Lin
Copy link
Member Author

Thanks @cbrnr .

So I tried downloading the release of iconv and putting the header and lib into SigViewer, and added the following to the .pro file:

LIBS += \
    -L$$PWD/external/lib \
    -lbiosig -lxdf -liconv

but think I still see the same issue:

image

@cbrnr
Copy link
Collaborator

cbrnr commented Jan 20, 2025

Well, the GetACP error seems to be gone or no? There are a couple more libs missing, like suitesparse, but I'm not sure biosig will compile on Windows. @schloegl do you have a suggestion on how we can proceed? I'm not liking the fact that because of biosig SigViewer cannot be built on Windows.

@schloegl
Copy link

Well, the GetACP error seems to be gone or no? There are a couple more libs missing, like suitesparse, but I'm not sure biosig will compile on Windows. @schloegl do you have a suggestion on how we can proceed? I'm not liking the fact that because of biosig SigViewer cannot be built on Windows.

I suggest to switch to gnu compiler, e.g mingw. In fact, mxe can be used to build sigviewer for windows. So, there is solution - I do not see the need to for an msvc-based build on windows.

@cbrnr
Copy link
Collaborator

cbrnr commented Jan 21, 2025

This is a good idea. Can you try gcc @Yida-Lin?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants