Autor Wątek: Aplikacja DomowyKokpit  (Przeczytany 62254 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #135 dnia: Marca 28, 2010, 21:56:19 »
Dzięki za wyjaśnienie.EGHI sprawdziłem ENGINE FAULT odpowiada liczba hex 100000 co daje 20 a nie 21.Czyli miałeś błąd.Jeśli nadal będzie źle to sprawdzę jutro w moim programie czyli FAST z AF oraz z OF.Ja jeszcze nie mam tego panelu zrobionego,ale mogę testować alarmy.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #136 dnia: Marca 28, 2010, 22:15:10 »
Racja, też to sprawdziłem. Źle policzyłem cyfry w kalkulatorze :), takie to małe ;)( Okulista się kłania)
 Tak się zastanawiam.. zrobię może małą, obrazkową, łatwą w zrozumieniu instrukcje jak odpalić Skalarki i DK w Falconie.
Może komuś się przydać, sam pewnie skorzystam bo pamięć zawodzi.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #137 dnia: Maja 17, 2010, 23:36:39 »
Dotyczy modułu simOUT (z wątku
Cytuj
widzę, że w DK [testowanie modułu] dodałeś funkcję [identyfikuj]. To znaczy, że w zakładce [Moduły wyjścia] w oknie [Zmienne modułu] nie będzie widoczna lista zmiennych?

Nie, lista zmiennych pozostaje po "staremu". Funkcja identyfikuj pozwala na sprawdzenie identyfikatora urządzenia (ID jest zapisane we wsadzie do uC), nie ma nic wspólnego ze zmiennymi. Opcja może być pomocna gdy wgramy wsad i zapomnimy z jakim ID ten wsad był.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #138 dnia: Maja 18, 2010, 00:01:34 »
Pytam dla pewności.
 Z [Zmienne modułu] kopiowałem identyfikator do notatnika podczas pisania skryptów. Myślałem, że w przypadku SimOut będzie to w zakładce [Testuj]. Ale ok, teraz wszystko jasne.  :001:
Wspomniałeś coś, kiedyś o funkcji łączenia skryptów? Przy programowaniu kilku urządzeń to będzie bardzo pomocne, unikniemy pisania tasiemców w których łatwo się pogubić. Jakaś szansa na takie udogodnienie?

Odp: Aplikacja DomowyKokpit
« Odpowiedź #139 dnia: Maja 18, 2010, 06:22:06 »
Panowie moje gratulacje.Przejrzałem instrukcję napisaną przez Zajaca,wydaje się zrozumiała i logiczna.Myślę,że przy testach będą pytania.Czy mogę prosić o schemat ideowy.
To co pisze EGHI ma sens tzn.możliwość łączenia skryptów.Tak się zastanawiam jak to by miało działać i mam problem,codeking wie o co chodzi.Wyjaśnię jakie mam wątpliwości na przykładzie SIOC z OC.Mogę napisać skrypt realizujący jakieś zadanie np.sterowanie serw.Następnie kolejny skrypt realizujący sterowanie LED itd.Skrypty kompiluję i testuję indywidualnie.Po sprawdzeniu mogę je połączyć w edytorze teksu zrobić ponownie kompilację i test.Wymaga to pewnej dyscypliny związanej z deklaracją zmiennych,nazewnictwem itp.Ja zrobiłem "tasiemiec" mam na myśli skrypt,ale będę musiał przejść na pisamie "modułów-skryptów".Ma to jeszcze jedną zaletę,że można takie moduły-skrypty udostępnić innym.
Pisanie programu w językach wyższego rzędu nie ma problemu.Piszemy procedury z parametrami wejścia oraz funkcjami wyjściowymi i udostępniamy innym.Myślę,że codeking może coś doradzić w temacie łączenia autonomicznie działających skryptów.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #140 dnia: Maja 18, 2010, 08:45:21 »
Funkcja łączenia skryptów będzie w nowej wersji. Skrypty będzie można pisać w oddzielnych plikach a później wystarczy stworzyć kolejny skrypt w którym będą tylko rozkazy "dołączenia" wskazanych skryptów. DK automatycznie wczyta wszystkie potrzebne skrypty i uruchomi je jako jeden. Oczywiście trzeba uważać na nazwy zmiennych i funkcji - nie mogą się powtarzać.

Schemat ideowy simOUT trzeba będzie poprawić bo robiłem go nie mając jeszcze pojęcia o działaniu Eagle.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #141 dnia: Lipca 28, 2010, 19:29:18 »
Witam,wracam po długiej przerwie do DK a ściślej do HSC.SimOUT uruchomiłem i teraz chcę pisać skrypt pod Falcona najpierw dla LED.W związku z tym prośba do codeking.
Czy mogę prosić o przykład jaki zrobiłeś dla modułu Skalarki dla jakiś przykładowych zmiennych z sharedmemheaders np.MasterCaution lub lightbits.
Mam uruchomiony program HSC gdzie jest SimOUT czy jeszcze coś muszę dodać?
Po dłuższej przerwie zapomniałem dużo z DK,dlatego proszę o wyrozumiałość.
Jeszcze jedna sprawa dotycząca innych elementów wykonawczych LCD oraz 7segLED.Gdy będę pisał skrypt pod te elementy to będzie to ten sam plik (skrypt) co dla LED?

Odp: Aplikacja DomowyKokpit
« Odpowiedź #142 dnia: Lipca 28, 2010, 19:46:46 »
vito,
na poczcie masz skrypt w którym codeking wszystko dokładnie opisał. Zamień module Skalarki na SimOut i powinno działać.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #143 dnia: Lipca 29, 2010, 15:14:49 »
Cytuj
Witam,kolejna faza aplikacji SimOUT w symulatorze Falcon.
Mój cytat z innego wątku.Jestem już po testach,wypadły bardzo dobrze.Opis codeking jest bardzo dobry,nie miałem problemów z pisaniem skryptu.Teraz kolej na 7segLED.
Zauważylem przy okazji,że jeżeli zapomnę zamknąć HSC i zamykam pc to mam komunikat,że wykonywane jest zadanie.Gdy wejdę do HSC to nie mam już możliwości zakończenia aplikacji.Nie jest to problemem,ponieważ Windows sam zakończy zadanie.
« Ostatnia zmiana: Lipca 29, 2010, 15:21:48 wysłana przez vito_zm »

Odp: Aplikacja DomowyKokpit
« Odpowiedź #144 dnia: Lipca 29, 2010, 17:51:10 »
Codeking,prośba o pomoc.Chciałbym zrobić skrypt pod 7segLED.Czy mogę prosić o przykład podobnie jak zrobiłeś dla LED.
W ShareMemHeaders zauważyłem funkcje,które kojarzę:
public float rpm,
public float ChaffCount oraz public float FlareCount.
Mam do dyspozycji 5 pozycji 7seg a potrzebuję np.3 pozycje.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #145 dnia: Lipca 29, 2010, 18:05:59 »
Utwórz grupę wyświetlaczy 7-SEG. Na zakładce "Wyświetlacze LED 7-segmentowe", kliknij prawym klawiszem myszy na tabeli "Grupy wyświetlaczy 7-LED" a później "Dodaj grupę...". W nowym oknie przeciągnij wyświetlacze z lewej listy na prawą w odpowiedniej kolejności. Pozostałe opcje są takie same jak dla obszarów znakowych wyświetlaczy LCD.

A później już tylko normalne użycie zmiennej w skrypcie.

Dzięki za info o błędzie przy zamykaniu Windows - sprawdzę to.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #146 dnia: Lipca 29, 2010, 18:41:44 »
Będę próbował z 7segLED i dam znać.Co do zamykania Windows to sprawa się wyjaśniła.Ikona HSC jest ukryta na pasku zadań i trzeba ją otworzyć i zamknąć aplikację.Jeśli tego nie zrobimy to jest komunikat:kończenie programu,program nie odpowiada.Mylące jest to,że nie widać w menedżer zadań,że aplikacja jest uruchomiona i to mnie zmyliło(jest informacja w procesach).Teraz wiem,że ikona jest na dolnym pasku i trzeba ją otworzyć i zakończyć aplikację.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #147 dnia: Lipca 30, 2010, 15:16:48 »
Codeking proszę o pomoc.Zrobiłem tak jak napisałeś,utworzyłem grupę z 3 pierwszych wyświetlaczy.Mogę tę grupę testować.Zrobiłem skrypt pod RPM z Falcona,gdzie zmienna jest int.Muszę to zamienić na string.Zrobiłem coś takiego
script "Falcon - SimOUT - RPM"
{
   variable $rpm { module = "FalconData"; id = "rpm"; type = double; direct = in; }
   variable $RPM_ { module = "simOUT"; id = "RPM "; type = string; direct = out; }
   variable_changed $rpm
   {
   $RPM = ToString(GetValue ($rpm));
   }
}
Gdy próbuję wczytać skrypt dostaję komunikat:
nie znaleziono zmiennej o nazwie RPM.
Gdzie jest błąd?


Odp: Aplikacja DomowyKokpit
« Odpowiedź #148 dnia: Lipca 30, 2010, 18:08:44 »
Prosty błąd, zapomniałeś o znaku podkreślenia w nazwie zmiennej $RPM (w deklaracji jest a w użyciu nie ma).

script "Falcon - SimOUT - RPM"
{
   variable $rpm { module = "FalconData"; id = "rpm"; type = double; direct = in; }
   variable $RPM_ { module = "simOUT"; id = "RPM "; type = string; direct = out; }
   variable_changed $rpm
   {
   $RPM_ = ToString($rpm);
   }
}

GetValue też jest błędne bo $rpm to nie tablica. Dodatkowo musisz pomyśleć o formatowaniu tekstu z obrotami. Na wyświetlacz zostanie wysłana wartość tylko wtedy gdy jest inna niż aktualna na wyświetlaczu. Więc gdy ustawi się np. 100, a później 99 to na wyświetlaczu będzie 199. Albo wyświetlaj zawsze 3 cyfry FormatNumber( $rpm, "000" ), wtedy będą wyświetlane 0 na początku, albo musisz dokładać zawsze spacje sprawdzając jaka jest długość tekstu GetLength( ToString( $rpm ) ). Dodatkowo, zmienna $rpm jest typu double więc zmiennoprzecinkowa, więc przydałoby się ją zaokrąglać np. wprost ToInt( $rpm ). Jeszcze kwestia tego czy $rpm to procenty czy konkretna wartość obrotów.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #149 dnia: Lipca 30, 2010, 21:45:42 »
Po poprawieniu zmiennej (brak podkreślenia) skrypt działa.Wyświetla wartości mocy silnika w procentach.I tutaj trzeba coś zrobić.Moc silnika jest w zakresie 0 do 105%.Dla mojego ustawienia grupy 3 segmenty jest to wyświetlane w następujący sposób np.
sym   wyświetlacz
67      670
102    102
itp.
Wspomniałeś o zaokrągleniu oraz format:
ToInt($rpm) oraz FormatNumber($rpm,"000").
Jak to przypisać,do zmiennej lokalnej?
Czy możesz podać przykład takiej operacji.Ja będę miał u siebie przypadki wyświetlenia liczby np.wysokość lub procenty np. moc silnika RPM.
Próbując pisać ten skrypt doszedłem do wniosku,że z Twoich obszernych opisów trzeba będzie zrobić ściągi (skróty) tzn.opis jakiejś funkcji i przykład,podobnie z zmiennymi.Coś podobnego jest w manuale "SIOC language part 2".