Skocz do zawartości

Matthew11

Użytkownicy
  • Zawartość

    87
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    2

Matthew11 wygrał w ostatnim dniu 9 stycznia

Matthew11 ma najbardziej lubianą zawartość!

Reputacja

89 Bardzo dobra

O Matthew11

  • Ranga
    4/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Kraków
  • Języki programowania
    C, C++

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Cześć @kulfi27 Na drugiej stronie komentarzy w tym wątku, kilka osób sygnalizowało podobne/same problemy jak Ty opisujesz. Sprawdź proszę tamte sugestie - niektórzy wskazywali na błędy w biblioteki QSerialPort na niektórych wersjach. Jest też przykład Terminal Example - https://doc.qt.io/qt-5/qtserialport-terminal-example.html uruchom go u siebie i sprawdź czy to działa poprawnie - od razu mówię, że nigdy z niego nie korzystałem ale jest to dobre źródło do weryfikacji co nie działa. Sprawdź też swoją wersję Qt i poszukaj czy anglojęzyczni koledzy nie mają podobnego problemu co Ty - polecam w tym celu przeszukać forum Qt https://forum.qt.io/. Daj znać po testach czy coś się udało.
  2. Cześć @KrisU12 u Ciebie problem nie polega na trudności wgrania aplikacji na telefon, tylko znacznie wcześniej - na próbie jej zbudowania na system Android. Błędy, które pokazałeś to błędy (jeśli dobrze to interpretuje) które wyrzuca kompilator. Co jasno wskazuje na to, że brakuje plików nagłówkowych, które powinny znaleźć się w NDK (inna osoba na forum Qt ma taki sam problem - link) - brakuje type_traits i memory. Wygląda na to że masz uszkodzone lub niekompletne pliki NDK. W linku - tamta osoba skopiowała folder z NDK zanim ten został do końca wypakowany z archiwum. W tym linku z takim samym problemem, polecają sprawdzić czy masz najnowsze NDK i SDK i w opcjach projektu ustawić wyższy poziom API niż 16. Znajdziesz to odpowiednio długo grzebiąc w zakładce "Projects" na lewym pasku, gdzieś w opcjach dotyczących Build (raczej w tej zakładce) i Run - nie mam jak tego sprawdzić teraz. Kilka rzeczy do sprawdzenia wcześniej: czy na Twój komputer aplikacja buduje się bez problemów? jeśli tak to: zmień urządzenie na telefon i nie wgrywaj od razu aplikacji na telefon (przycisk run), tylko zwykłe budowanie (młotek) - powinieneś mieć ten sam błąd co pokazujesz. Gdy nie znajdziesz odpowiedzi szukając w google "qt `type_traits' file not found" lub nie pomogą zmiany wersji NDK lub SDK, to dobrym pomysłem, może być przejście na nieco starszą wersję np. 5.12.x (obecnie chyba 5.12.7 jest najnowsza). Bez dostępu do Twojego komputera lub takiego samego problemu u mnie, więcej nie jestem w stanie pomóc.
  3. @Filip4444 Strzelałbym, że problem leży prawdopodobnie w tym, że port pod którym masz Arduino jest już otwarty, albo system otworzył i nie zamknął go poprawie, gdy używałeś go np. do wgrania programu. Natomiast... analizując Twój zrzut ekranu widać tam, że system znalazł dwa urządzenia, a Ty nie wybrałeś portu COM3 gdzie faktycznie jest Arduino, tylko wybrałeś COM1.
  4. Arduino to nadal "czyste" C i C++ (nawet C++11). Prędzej można to nazwać frameworkiem niż nowym językiem. Wracając do pytania - co prawda odpowiedź nie odnosi się do ESP8266, ale do ESP32 - ale to własnie pod ESP32, Espressif do VSC przygotował dedykowaną wtyczkę. Instalujesz, wyklikujesz i pobiera za Ciebie cały toolchain i narzędzia i po paru chwilach możesz pisać w C (i nawet w C++) korzystając z ESP-IDF. Link. Nie wykorzystałem "produkcyjnie", ale po własnych szybkich testach stwierdzam, że jest to bardzo dobrze przygotowane i z integrowane z VSC bez konieczności żmudnej konfiguracji.
  5. Najbezpieczniej kupić taką wtyczkę, która pasuje do baterii - tak żeby nie grzebać przy baterii. Męską lutujesz do ESC, żeńską powinieneś mieć już standardowo przylutowaną do baterii. Musisz dowiedzieć się jaki model wtyczki ma Twoja bateria i taką kupić (najczęściej sprzedają to parami, jak nie to musisz kupić odpowiednią końcówkę - żeńską lub męską)
  6. Plan zakłada artykuły z takiej tematyki, jednak na razie nie ma żadnych terminów. Między innymi wykorzystanie ESP8266/ESP32 i połączenie go z serwerem napisanym w Qt na kilka sposobów. Idea jest taka, żeby po serii można było zbudować podwaliny np. pod własny system inteligentnego domu. Kolejna cześć będzie małym wstępem do łączności za pomocą TCP/IP w lokalnej sieci, co powinno wystarczyć do ustanowienia połączenia między ESP a aplikacją. @Quasiprogmista jak jesteś bardzo zainteresowany tematem to napisz do mnie a ja wskażę Ci miejsca gdzie szukać informacji.
  7. Na razie przycisk Run nie jest dostępny. Jest to znane ograniczenie w STMCubeIDE, tutaj przeczytamy: "The [Run] button is not yet implemented and has therefore been hidden from the toolbar menu and Run menu."
  8. Szukając przez chwilę u wujka Google, _delay_ms() odnosi mnie do funkcji z bibliotek AVR. Natomiast delay() to funkcja z API (myślę że można nazwać to API) które stworzyło Arduino (lub Wiring jeśli tam było pierwsze). We wszystkim spod parasola Arduino będzie używane właśnie delay(), dlatego że nieważne jaką płytkę weźmiesz, delay() i kod napisany za pomocą API Arduino, będzie działać funkcjonalnie (przynajmniej powinien) tak samo. A postarać się muszą o to twórcy konkretnej implementacji. I teraz jeśli _delay_ms() jest funkcją z biblioteki AVR, to niekoniecznie użyjemy ją dla płytek na procesorach ARM itp. Jak piszesz kod do konkretnego zadania i będzie tam tylko wspomniana 328P (lub inna z rodziny, dla której działa _delay_ms()), to używaj zoptymalizowanych funkcji. Natomiast jeśli piszesz "multiplatformowy" kod to używaj funkcji i metod z API Arduino.
  9. Cześć, Zacznę od efektu tego co chciałbym osiągnąć a potem przejdę do pytań: Chciałbym posiadać odpowiednio skrojoną (z pośród tych dostępnych) lub stworzoną własną dystrybucję Linuxa przeznaczoną na mini komputer klasy PC (konkretnie chodzi o serię Intel NUC z procesorem Intel i3/i5/i7 czyli popularną architekturę x86-64). Do komputera będzie podłączony ekran dotykowy (HDMI + USB na dotyk) i klawiatura z myszką po USB i co jakiś czas pendrive. Chciałbym, żeby przy starcie system bez konieczności logowania użytkownika wyświetlał aplikację na pełny ekran - bez okienek i przycisków w stylu zamknij lub zminimalizuj (aplikacja ma być wyświetlona na pełny ekran i nie powinno jej dać się zminimalizować lub zamknąć) - chodzi między innymi o to, żeby nie było np. loga Ubuntu, gdy system będzie się ładował. Aplikacja będzie napisana w Qt - więc rzeczy w stylu pełny ekran i brak przycisków okna załatwię w samej aplikacji. Sama implementacja aplikacji w Qt nie jest dla mnie żadnym problemem jednak problemem jest to, że za pomocą aplikacji powinienem być w stanie zamontować/odmontować pendrive i odczytać lub skopiować znajdujące się na nim pliki - generalnie aplikacja powinna mieć możliwość wykonywania procesów które wymagają sudo. Ponadto aplikacja będzie korzystać z portu szeregowego, do którego musi mieć dostęp. Również system / aplikacja muszą obsługiwać ekran dotykowy - aplikacja może być sterowana przez dotykowy ekran, nie tylko myszkę lub klawiaturę (które ostatecznie mogą być opcjonalne). Teraz chciałbym przejść do pytań, zakładając że chciałbym spełnić powyższe wymagania, która droga będzie lepsza lub szybsza: Skrojenie gotowej dystrybucji np. dostosowanie Ubuntu? Zastosowanie narzędzia w stylu Ubuntu-Builder do zbudowania własnej dystrybucji? Zastosowanie Yocto lub Buildroot'a (jak to opisał @Elvis odpowiednio tutaj i tutaj) do zbudowania dopasowanej/optymalnej do potrzeb dystrybucji? Jeśli pominąłem jakąś ważną rzecz, o której na tym etapie nie wiem, to będę bardzo wdzięczy za jej wypunktowanie. Dodam tylko, że nie miałem nigdy okazji budowania własnej dystrybucji Linuxa, natomiast wydaje mi się (może mylnie) że skoro architektura x86-64 jest popularna to budowa własnej dystrybucji i dopasowanie jej do wymagań dla lalika w temacie może być osiągalne i do wykonania. Ale nie ukrywam, że chciałbym wybrać najszybszą drogę, którą osiągnę zamierzony efekt nie mniej chętnie nauczę się czegoś nowego. Dzięki z góry za wszelkie podpowiedzi, sugestie lub uwagi.
  10. Z poziomu Qt Creatora - w drzewie projektów - klikasz na projekt PPM i klikasz Clean.
  11. Tak tych plików będzie sporo, a jeszcze więcej gdy budujemy projektu typu QtQuick - natomiast warto pamiętać, o tym aby po deploy przeprowadzić czyszczenie projektu, wtedy wszystkie niepotrzebne pliki (te z kompilacji) zostaną usunięte.
  12. @zwora Szybki test, jak tworzysz nowy projekt to ile masz różnych narzędzi? U mnie np: U Ciebie jeśli jest odpowiednio skonfigurowany MVSC to powinien być u Ciebie właśnie tam dostępny do wyboru. Jeśli nie jest dostępny to znaczy, że konfiguracja nie jest prawidłowa - wtedy pozostaje Ci szukanie informacji w sieci np. tutaj. Znajdziesz na ten temat mnóstwo informacji. Jeśli masz dostępny MVSC to po prostu otwórz projekt i kliknij ikonkę "Projects", następnie jeśli w projekcie nie masz aktywnego kompilatora MVSC to kliknij go z listy - u mnie jest np dostępny kompilator dla RPi3, ale nie jest aktywny: jak go kliknę to stanie się aktywny: Tak samo zrób u siebie z kompilatorem MVSC. Następnie wybierz wersje kompilatora / narzędzia na które chcesz zbudować program, u mnie np. zmieniłem na kompilator, który zbuduje mi program na RPi3 - Ty powinieneś tutaj wybrać MVSC, analogiczna sytuacja u mnie: Wtedy jak zbudujesz program to zostanie on zbudowany za pomocą wybranego kompilatora i na wybrane narzędzie. I wtedy możesz spróbować zrobić deploy na wersji zbudowanej przez MVSC.
  13. @zwora Na forum Qt użytkownik mumushuiding pisze: Tłumacząc to w translatorze i nieco poprawiając językowo mamy: Czyli teraz tak: jeśli podczas instalacji Qt wybrałeś kompilatory MinGW i MSVC jak w tym linku, to wystarczy że zmienisz projekt tak, aby budować za pomocą MSVC - albo zrobiłeś to na etapie kreatora projektu - wtedy musiałeś zaznaczyć oba kompilatory, albo możesz to zrobić w otwartym projekcie, u mnie to wygląda tak - mam aktywny kompilator GCC dla architektury x86 (mój PC), i aktywny kompilator GCC dla RPi3, żeby włączyć możliwość budowania na Androida muszę kliknąć któryś z nich powyżej tych opisanych przed chwilą (nie widać tego dobrze, ale są tam 3 różne kompilatory na tym zdjęciu): Następnie aby zmienić kompilator klikasz ikonkę komputera powyżej zielonego przycisku run i wybierasz MSVC, następnie deploy robisz jak poprzednio tylko tym razem musisz pamiętać aby użyć windeployqt dla MSVC: Jeśli podczas instalacji Qt NIE wybrałeś kompilatorów MinGW albo MSVC to musisz odpalić narzędzie Qt Maintenance Tool i odpowiedni kompilator doinstalować do Twojej wersji Qt, a następnie jak wyżej.
  14. @zwora Jedyna rozbieżność jaką widzę a potencjalnie może mieć znaczenie to Twoje punkty 3-5 -> po zbudowaniu projektu nie musisz nic nigdzie (na tym etapie) kopiować ręcznie. Szukasz folderu gdzie został zbudowany projekt (skąd wiem, że to jest ten katalog? a no stąd że jak spróbuje uruchomić program.exe który się tam znajduje to dostanę masę komunikatów o brakujących plikach dll - i to własnie ten katalog podaję dla windeployqt). I teraz nie kopiujesz niczego z niego ani do niego, tylko po prostu wywołujesz na tym katalogu windeployqt jak w instrukcji. Istnieje szansa ze windeployqt oprócz analizowania twojej binarki (.exe) analizuje też pozostałe pliki w tym katalogu - a Ty z katalogu gdzie zbudowałeś program skopiowałeś tylko binarkę - dlatego może występować Twój problem. Podsumowując po punkcie 2. wywołaj windeployqt. Jeśli to również nie zadziała to pozostaje Ci szukanie problemu w sieci np. tutaj. Różnica jest taka, że wersja Debug będzie wolniejsza i końcowy program (całościowo) dużo większy - przez dołączenie całego bagażu jaki niesie wersja debug. Dlatego jak dystrybuujemy programy to budujemy je w trybie Release. Jak sprawdzisz różnice w wielkości plików .dll które zostały dołączone dla obu trybów to różnica w rozmiarze może być na poziomu setek MB. Jeśli masz wersję starszą niż 5.15 to nie powinno to mieć żadnego znaczenia. Ja cały czas korzystam z wersji open source. Natomiast od wersji Qt 5.15 nastąpiły pewne zmiany, ale raczej nie powinno to mieć wpływu.
×
×
  • Utwórz nowe...