program dla paletyzera

0

Dzień dobry.
Na wstępie chciałbym zaznaczyć,ze jestem totalnym nowicjuszem c++, na chwile obecna przerabiam wideo kursy z c++. W pracy dostałem za zadanie napisanie aplikacji z interfejsem graficznym służącym do ustawiania/obracania wcześniej zdefiniowanych bloków będących graficznym odpowiednikiem kartonów na palecie np, euro. Wynikiem końcowym ma być plik w formacie csv, w którym będą zawarte współrzędne tychże kartonów dla sterownika. Tak w dużym uproszczeniu.
Czy mógłby ktoś mi doradzić mniej więcej, w która stronę mam kierować kroki, by stworzyć taka aplikacje? Wybrałem c++, bo mniej więcej znam składnie(w czasach liceum bawiłem się w programowanie, zaniechałem na rzecz innych zajęć).
Z góry dziękuje za wszystkie rady.

0

Pomyśl o wykorzystaniu języka QML language jako szybkiego, prostego i alternatywnego sposobu na tworzenie różnych interfejsów graficznych.

7

to się nazywa "problem plecakowy" i ludzie robią przy nim doktoraty.
Jeśli to ma być optymalne zładowanie palety/ciężarówki itp.

Nawet jeśli problem ma rozwiązywać użytkownik (a ty masz dostarczyć UI i wykrywanie kolizji), to zadanie jest dużo za bardzo skomplikowane dla kogoś kto jest totalnym nowicjuszem c++.

0

Od dłuższego czasu trąci mną myśl nad przebranżowieniem się i zmianą zawodu na programistę, to zadanie pojawiło się z faktu,że firma, w której pracuje powoli zmienia profil i jej pierwszym projektem będzie budowa tejże maszyny paletyzującej. Na chwile obecną polecono mi wgłębić się w programowanie by w przyszłości(ok roku) napisać taką aplikacje Jutro mam rozmowę, na której dowiem się dokładniej jak ta aplikacja ma działać. Dlatego na chwile obecną uczę się i zbieram informacje. Ale poddawać się nie zamierzam :)

3

Hmm - żeby dać ci pewne wyobrażenie na co się porywasz - ja programuję od 6 lat, od ponad dwóch pracuję jako programista c++, nie ponieważ nie mam żadnego większego doświadczenia z GUI poza projektami studenckimi to szczerze mówiąc nie sądzę bym dał radę sam w rozsądnym czasie napisać aplikację tego typu która w dodatku jest 'mission critical', bo jak rozumiem źle wygenerowany xml może doprowadzić do uszkodzenia maszyny albo towaru o znacznej wartości, albo co najgorsze maszyna zrobić krzywdę pracownikowi.Taka aplikacja musi być kompleksowo przetestowana, muszą być odpalane stale testy regresyjne po każdej zmianie w kodzie żeby sprawdzić czy nie zepsuliście legacy kodu, trzeba jasno mieć zdefiniowane wymagania, to musi być jakoś skalowalne(np. na inne rodzaje maszyn), kod musi mieć jakiś mechanizm observability żeby dało się złapać co zawiniło gdy coś się spartoli na produkcji itd. To co chcesz zrobić panie to nie jest stronka dla kwiaciarni, taki system trzeba zaprojektować - to nie jest praca dla nowicjusza.

0

Siedzę w pokrewnej branży i taki soft to są grube tysiące euro ;​) Fajne do poćwiczenia, ale jak nie jesteś doświadczony to raczej wyjdzie kicha, nawet jeśli da się ją jakoś stosować.

Co do problemu plecakowego: zakładam, że np. 95 percentyl optimum wystarczy, a więc heurystyka i trochę brute-force. Przy czym nie bardzo wiem po co ten interefejs graficzny - przecież to program ma znaleźć dobre rozwiązanie, nie?

2

Autor nigdzie nie napisał, że ten program ma sam szukać optymalnego ustawienia (i stąd pewnie potrzeba GUI). Przynajmniej ja nie widzę tego. Ktoś coś?

0

Jak nie ma, to po co wypluwać csv?

0

Przetrawiłem temat:
0. Możesz użyć c++ + qt + dodatkowe libki

  1. Zaczynasz od samego algorytmu jak chłopaki mówią problem plecakowy i inne cuda jakie wymyślono przez lata. Albo lecisz po linii najmniejszego oporu i robisz parę prostych scenariuszy i ładujesz na paletę.
  2. W twoim systemie będzie musiał być tzw. model który będzie zawierał informację o obecnie dostępnych pudełkach. Ogólnie w kontekście modeli poczytaj sobie o wzorcu MVC(model-video-controler)
  3. Qt udostępnia gotowe modele i itemy ale tobie może być potrzebny własny model i item. To się okaże przy implementacji.
  4. Poczytaj o testach jednostkowych gtest/gmock
  5. Kwestia komunikacji. csv to bez sens. Ta aplikacja powinna komunikować się z sterownikiem PLC poprzez modbus tcp/ip. Wystawiasz do sterownika koordynaty, liczbę elementów itd. A z niego czytasz czy zakończył pracę.
  6. Zobacz jakie darmoe i płątne libki do c++ i modbusa są
  7. Interfejs też zrobisz w qt, jak koledzy napisali qml albo czysty c++ z qt.
1
Emil Komowski napisał(a):

Od dłuższego czasu trąci mną myśl nad przebranżowieniem się i zmianą zawodu na programistę, to zadanie pojawiło się z faktu,że firma, w której pracuje powoli zmienia profil i jej pierwszym projektem będzie budowa tejże maszyny paletyzującej. Na chwile obecną polecono mi wgłębić się w programowanie by w przyszłości(ok roku) napisać taką aplikacje Jutro mam rozmowę, na której dowiem się dokładniej jak ta aplikacja ma działać. Dlatego na chwile obecną uczę się i zbieram informacje. Ale poddawać się nie zamierzam :)

Widzę, że szef ma ochotę uzyskać software za (pół) darmo. Trochę pomachać (małą) marchewką, o bacie dżentelmeni nie rozmawiają.

Za rok to będziesz trochę mniej początkujący. Zwłaszcza że jesteś "samotny wilk" - junior w korpo przynajmniej ma skąd czerpać, statystycznie po 3 lata pełnoetatowego programowania staje się midem.

1

Wszyscy piszecie o Problemie Plecakowym i mi się też w tym kontekście skojarzył, ale on wcale nie wynika z opisu przedstawionego przez autora. Z opisu wynika, że człowiek chce taki "domek dla lalek", żeby sobie w nim **ręcznie **poukładać palety, więc jedyne co musiałby sprawdzać sam program, to czy układane elementy mieszczą się w zadanej przestrzeni i nie zachodzą na siebie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1