mateuszbaran/ECG-analyzer

Brak możliwośći wczytania sygnału!

Closed this issue · 16 comments

Od początku nie jestem wstanie wczytać pliku z sygnałem do programu, po wybraniu pliku z gui niezależnie od typu pliku(atr, hea, dat) otrzymuje komunikat jak w załączonym pliku. VS zatrzymuje się w pliku ecgh.cpp na lini 54.

Nie tylko ja mam z tym problem wiec proszę o rozwiązanie tego.

Wczytywanie nie działa zarówno w gui jak i w testach.

Po debugu w Kontrolerze dokładnie w lini:

if (isigopen(const_cast<char*> (filename.c_str()), s, 2) < 2)

sygnał nie zostaje wczytany mimo ze jest podana scieżka.

error

Wyślij albo wklej log, jest w pliku log.log.

ECGController.cpp [18] : ECGController created, 20:51 17-12-2012
ECGController.cpp [335] : ECGController::readFile
ECGController.cpp [350] : File
ECGController.cpp [351] : filename = D:/signals/100
ECGController.cpp [352] : Not loaded
ECGController.cpp [353] : END: ECGController::readFile

Uruchom aplikację z brancha for_debug_open_file i wyślij zawartość pliku err.log.

Nie widze brancha for_debug_open_file.
Puscilem sobie debuga i funkcja 'isigopen' zwraca -1. Failure: unable to read `header' file (probably incorrect record name)

I masz wszystkie 3 pliki (szczególnie hea i dat) w jednym katalogu (w tym,
w którym jest plik, który zaznaczasz)?

PS: problem na łączach, teraz już jest.

plik err
init: can't open header for record D:/signals/202

plik log
ECGController.cpp [18] : ECGController created, 20:51 17-12-2012
ECGController.cpp [335] : ECGController::readFile
ECGController.cpp [350] : File
ECGController.cpp [351] : filename = D:/signals/202
ECGController.cpp [352] : Not loaded
ECGController.cpp [353] : END: ECGController::readFile

Wszystkie trzy pliki w tej samej lokalizacji pobrane ze strony, próbowałem dla rożnych sygnałów i nic. Zawsze isigopen zwraca -1

Nie jestem w stanie zreprodukować błędu przy użyciu plików pobranych z bazy. Jaki masz system?

Windows 8 Kolega na Windows 7 ma to samo.

W tym momencie nie jestem w stanie nic więcej zrobić.

Generalnie nie widziałem jeszcze tej aplikacji działającej. Chciałem przynajmniej zobaczyć czy mój moduł cokolwiek robi no ale może dowiem się z jutrzejszych slajdów :P

Zbudowałem i uruchomiłem to na Ubuntu, efekt:

init: can't open header for record /windows/d/signals/107
ecg-analyzer: /usr/include/boost/smart_ptr/shared_ptr.hpp:418: T* boost::shared_ptr::operator->() const [with T = WrappedVector]: Warunek zapewnienia `px != 0' nie został spełniony.
Przerwane (core dumped)

czyli to samo.

To może ściągnij jeszcze raz sygnały, bo wygląda na to, że Twoje pliki są
nieodpowiednie.

Rozwiązanie jest PROSTE ale #$#@%(tu miało być brzydkie słowo) (przynajmniej u mnie na dokładnie ten sam exception)! Coś się rąbie z tym jak masz spacje w ścieżce gdzie znajduje się sygnał czy też projekt, uprość sobie ścieżkę najlepiej cały projekt przenieść na C:\ECG-analyzer\ i wrzuć do tego samego folderu plik z sygnałem ew. do podkatalogu C:\ECG-analyzer\MIT_BIH_Signals ja tak mam. Chyba swoją drogą to już zgłaszałem, ale nikt z tym nic nie zrobił

Wyjątek to jest inna sprawa, to błąd jest po stronie GUI. Zaraz do tego będzie zgłoszony problem.
Co do spacji w ścieżce, to u mnie taki problem nie występuje i otwierane są wszystkie pliki sygnału, niezależnie od tego gdzie się znajdują.

Pierwsze co zrobiłem to sprawdziłem ścieżki bo miałem długie i ze spacjami. Obecnie projekt mam w D:/ecg/ECG-analyzer a sygnały w D:/signals. Wiec rozwiązanie jednak nie jest takie proste.