Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Auto Oxidizer Filling

Aperta
#391 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@WiktorM8 ci sta già lavorando.

Dal 24/7/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

User Story

W hybrydzie mamy 1 zbiornik z paliwem w formie gazowej (oraz ciekłej), posiada on 3 zawrory (Main - otwierany podczas startu rakiety, Dump - służy do awaryjnego spuszczenia paliwa (Abort), Vent - służy do zmniejszania ciśnienia (potrzebny równiez podczas tankowania, gdzie różnica ciśnień między butlą a zbiornikiem przepycha ciekłe paliwo do zbiornika rakiety). Największym problemem jest sterowanie zaworami które znajdują się w stacji naziemnej, oraz odbiur ciśnienia paliwa w gs oraz wagi rakiety z GS. Docelowe rozwiązanie będzie udostępniać metodę na someip do sterowania zaworem z gs (0 - close, 1- open 100%, 2- open 50%). waga rakiety oraz ciśnienie w zbiorniku gs będzie udostępniane eventami someip przez radioApp. W R7 potrzebowaliśmy około 9Kg paliwa pod cisnieniem około 55Bar (ciśnienie zależne od temperatury). (jeśli dobrze pamiętam to 55Bar odpowiada temperaturze paliwa około 34 stopni celciusza). Trzeba opracować algorytm który w sposób automatyczny i bezpieczny umożliwi zatankowanie zadanej wagi paliwa (waga podawana jakąś metodą po someip). Dodatkowo na samym początku powinna być procedura sprawdzenia szczelnosci, polegająca na otwarciu zaworu GS na 50%, zatankowaniu rakiety do np 4bar(pobrane z pliku konfiguracyjnego), zamkniecie zaworu, poczekania 30s i sprawdzenia czy ciśnienie spadło o więcej niż X%. w przypadku wykrycia dużego spadku komputer powinien przerwać procedurę. Dodatkowo komputer nie powinien pozwolić na tankowanie jeśli ciśnienie w GS jest większe niż X (wczytane z pliku json) lub mniejsze niż Y (wczytane z pliku json). Zazwyczaj paliwo tankowane jest z odpowiednim zapasem masy (zapas jest potrzebny do ewentualnego schłodzenia paliwa, nadmiarowe paliwo ventujemy przed startem (nie automatycznie).

Wymagania:
  • aplikacja musi mieć możliwośc przerwania procedury w każdym momencie jej działania, przerwanie oznacza zamknięcie wszystkich zaworów
  • aplikacja musi mieć rozpisane testy automatyczne sprawdzające mechanizm jej działania
  • wszystkie zmienne muszą być wczytywane z pliku json (poza docelową masą, ciśnieniem oraz nadmiarem masy które są ustawiane poprzez metodę someip)
  • aplikacja musi przeprowadzic test szczelności przed procedurą tankowania
  • aplikacja musi nie pozwolić zatankować automatyznie jeśli ciśnienie GS jest poza dozwolonym zakresem
  • kod musi być napisany tak, aby w przyszłości dało się go przenieść na liquida (gdzie są tankowane 2 rodzaje paliwa)
  • algorytm nie może zużywać więcej niż 10-20% cpu
  • częstotliwość odświerzania algorytmu powinna odpowiadać częstotliwości otrzymywania aktualizacji masy i ciśnienia (10Hz) oraz uwzględniać opuźnienia na zaworach (otwarcie i zamknięcie trwa zazwyczaj 100-1000ms
  • stan aplikacji musi być dostępny na someip (zakładam że będzie to działać jako maszyna stanów więc coś typu: off, leak test, tanking, finish, etc) powinno być dostępne.
  • (optional) algorytm powinien obliczać czas potrzebny na zatankowanie danej ilości paliwa, oraz czas jego ogrzewania do temperatury docelowej.
TODO
  • wymyślić i rozpisać na wiki potrzebne algorytmy (test szczelnosci, auto-tankowanie)
  • rozpisać procedury testów algorytmów
  • Stworzyć aplikację która będzie zawierać wszystkie potrzebne metody i eventy
  • napisać kod aplikacji
  • napisać testy aplikacji (nie mówie tylko o UT ale też o testach całego mechanizmu, na zasadzie wydaje polecenie tankowania oraz aktualizuje na bierzaco mase rakiety i ciśnienie oraz sprawdzam co robi algorytm dla przypadków)
Lingua principale
C++
Stelle
1
Fork
3
Merge medio
34m
PR unite (30g)
1

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Simba-Avionic/srp

Tutte le issue di Simba-Avionic/srp

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.