Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 24 kwi 2025, o 23:50


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 56 ]  Przejdź na stronę 1, 2  Następna strona
    Autor Wiadomość
    PostNapisane: 12 sty 2014, o 13:09 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Heh no w sumie nie wiem jak to się stało że ten istotny temat
    został pominięty więc czas to nadrobić...

    Dlatego też postanowiliśmy z kolegą Developer95 napisać i nagrać co nieco dla was
    Mam nadzieję że taka forma wam przypadnie do gustu i wyniknie z tego coś dobrego
    dla wszystkich .... miłego czytania !!


    Często nasz układ z mikrokontrolerem chcemy by sobie rozmawiał z komputerem
    wymieniając jakieś dane. W większości przypadków właśnie tą komunikacje popełnimy przez port
    Serial - umożliwia on nam prostą komunikację naszych urządzeń z komputerem PC , dzięki czemu możemy
    w łatwy i prosty sposób przesyłać np. dane z czujników i dokonywać analizy danych czy też po prostu
    wyświetlać je na ekranie lub PC może wysyłać polecenia do sterowania różnymi urządzeniami.

    Wielu powie aaa nie mam portu serial ... masz ale nawet o tym nie wiesz ... przecież nie musi mieć on
    formy klasycznego gniazda DB9 , może być to przejściówka USB na FT232 czy MCP2200, a nawet Blutetooth.

    Tu mam zamiar wam pokazać proste i skuteczne nawiązywanie połączeń z RS232/UART/COM itd.

    Kiedyś już pisałem jak zrobić woltomierz ... ale teraz napiszemy trochę więcej ... o porcie COM
    i sposobach komunikacji..

    topic97.html tak to było tutaj , ale poza macoszym potraktowaniem zagadnienia
    złośliwie napisałem w VS C++ i jeszcze na arduino za co wszystkich przepraszam.

    Zacznijmy od najprostszej formy nawiązania komunikacji która się sprawdza gdy znamy port COM pod którym
    ukrywa się urządzenie z którym chcemy się połączyć :

    Wiec zakładamy nowy projekt i na Formularzu Windows dodajemy 2 przyciski jeden nazywamy Otwórz Port, a drugi Zamknij

    Obrazek

    dodatkowo dodamy 2 panele i dostosujemy ich rozmiar do przycisków oraz oczywiście dodajemy komponent
    serialPort :

    Obrazek

    jak widać nic specjalnego ... prawda no to klikamy na przyciku otwórz port i w kodzie :

    Pod przyciskiem wpisujemy :

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Analogicznie postępujemy z drugim przyciskiem :


    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ale to nie wszystko wprawdzie nasz klawisz coś tam robi ale jeszcze nie wie z czym

    dlatego przechodzimy na początek kodu i precyzujemy o jaki port COM nam chodzi oraz jakie ma parametry:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Całość ładnie obrazuje filmik ... autorstwa kol. Developer95,



    jak widzicie ... komunikacja będzie nawiązana na porcie COM2 z prędkością 9600bps
    To rozwiązanie sprawdza się w przypadku konkretnych urządzeń które mają znany port COM i stałe parametry
    ale co gdy chcemy zrobić coś bardziej uniwersalnego ??

    O tym w następnym odcinku :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2014, o 16:22 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    w przypadku zaawansowanego używania zaawansowanych funkcji portu COM w języku C# należy
    już tak napisać program by nie był związany z konkretnym numerem portu COM , a umożliwiał jego wybór
    ale też nie tylko wysyłał znaki (char) ale też odbierał i wysyłał stringi.. co tez zrobimy w prostym terminalu

    Oczywiście nie będziemy się bawić w opisywanie jak utworzyć projekt i takie tam , bo jest to opisane na
    forum i nie tylko , a jak ktoś nie wie to niech zacznie od początku albo sobie poszuka :)

    Zaczynamy....

    Nasz formularz zatem w nowym projekcie wyposażamy w :
    kilka labeli , przyciski 2 , combo box , textboxy ...
    oraz dodajem coponenty serialPort i InfoStrip

    całość może wyglądać tak:

    Obrazek

    nie ważne .... to tylko wygląd ....
    zmieniamy sobie wpisy w labelach i na butonach na odpowiednie opisujące spełnianą funkcję co widać wyżej
    i przechodzimy do kodu:

    Jak widzicie tutaj zadziałamy jeszcze inaczej gdyż niema klawisza Otwórz port :)
    ale będziemy wybierać port z naszego comboBoxa, istotne też są okna Odebranych i wysyłanych danych
    oraz pasek statusu który nas poinformuje o ustawieniach wybranego portu COM:

    wiec jedziemy :

    Nie owijając w bawełnę nasz kod powinien wyglądać w całości tak :

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Wielu pewnie nie zauważyło , ale component serialPort umożliwia nam w łatwy sposób uzyskanie nazw wszystkich
    dostępnych portów COM w komputerze poprzez funkcję :

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    dzięki temu gdy już znamy wszystkie porty możemy łatwo wstawić je do naszego comboBoxa:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Dzięki powyższemu wpisowi możemy łatwo wybierać port com z rozwijalnej listy comboBoxa:)
    Jednak zawsze istnieje obawa że wybrany port jest już używany w innym programie dlatego możemy
    próbować przechwycić informacje i wyświetlić komunikat odpowiedni np w taki sposób:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Lub jeśli chcemy coś wysłać bez wybrania portu i jego otwarcia :

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Co jak widać umieszczamy w evencie przycisku Wyślij , gdzie w wypadku nie wybrania portu dostaniemy komunikat :

    Obrazek

    Oczywiście niema kłopotu z transmisją danych do okna Odbiorczego co moglibyśmy
    prosto zapisać np :

    textIn.Text = InputData;

    Ale mimo iż jest to proste będziemy mieć kłopoty z transmisją danych , gdyż bedziemy mnożyć
    różne wątki ... np w powyższym wypadku problem polega na tym że wątek przekazujący dane z RS do pola
    tekstowego , będzie inny niż wątek który zaczynał przekaz (mam nadzieję ze jest to zrozumiałe) i dlatego
    zamiast stosować np:

    SetText(InputData);

    utworzymy sobie delegata calbacka :P

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    i teraz funkcję SetText(); zdefiniujemy bezpiecznie:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Nasza funkcja jak widać porówna ID wątku wywołującego z ID wątku który utworzył połaczenie
    i jeśli będą one różne zwróci wartość TRUE:

    łatwe prawda ?

    Oczywiście reszta wynika z kodu który jest banalnie prosty .... i większego omówienia nie wymaga:)
    Skompilowany program do zabawy macie w załączniku

    A później opiszemy jeszcze bardziej specjalne wywołania portów Serial w naszych aplikacjach które naprawdę
    łatwo napisać i używać do sterowania urzadzeń :)


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2014, o 19:17 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    No coś tam już najprostszymi metodami umiemy osiągnąć prawda
    a teraz posuniemy się trochę dalej napiszemy sobie prosty
    mierniczek temperatury i napięcia :)

    Obrazek

    jak widać znów nic wielkiego , ale parę zmian w kodzie gdyż tym razem mamy też wybór prędkości
    transmisji i 2 klawisze do wykonywania połączenia i kończenia go:)

    w sumie wiele tu nie będzie nowości i postaram się je tylko pokrótce opisać te ważniejsze

    zaczynamy ?

    no to jazda .... przycisk Połącz :

    Kod który umieszczamy w evencie Click prezentuje się następująco:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jak widać banalnie proste .. oczywiście ustawienia pozostałe tez możemy sobie umieścić i je zmieniać
    z poziomu aplikacji , ale teraz nie jest nam to potrzebne

    Przycisk Rozłącz:

    Kod jaki umieszczamy w ewencie Click przycisku Rozłącz również jest prosty :

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Prawda ze banalne ?? i jakie efektowne :)
    Klawisze mamy z głowy ale mamy dwa comboBoxy do wyboru portu i prędkości ....


    Oczywiście, najlepsza metoda do wyszukania portów COM jak już wiecie to udostępniana przez kontrolkę SerialPort metoda GetPortNames(); i jej używamy w funkcji public ładującej nasz
    formularz windows:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    troszeczkę jednak inaczej przypiszemy je do comboboxa może prościej ??

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    no i już możemy wybierać dostępne porty com z comboBoxa :)
    Drugi cmb przechowuje szybkość transmisji baudrate można też zrobić go na 1000 sposobów
    ale my zrobimy tu możliwie najprościej czyli :

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    tylko te trzy na razie ale możecie dopisać więcej :) w naszej funkcji public jeszcze tylko zdefiniujemy parę rzeczy i lecimy dalej :

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Cała funkcja wygląda następująco:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    No i pozostaje nam tylko napisać funkcję odbioru danych z mikrokontrolera co tez nie jest jakieś tam specjalnie trudne choć tak wygląda
    zatem do dzieła :

    Dwuklikiem na kontrolce SerialPort generujemy uchwyt i wpisujemy w nim kod całość wygląda następująco:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    celowo kodu nie opiszę szerzej , ale jak widać jest jasny prawda ??

    i tymczasem mamy program gotowy : a cały prezentuje się tak:


    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    No to program na PC gotowy ... kilka rzeczy zostawiłem nie jasnych , nie udostępnię też gotowego rozwiązania , a jedynie
    skompilowany kod .... który macie w załączniku ... z powodów które znacie ....

    Czas zając sie kodem dla mikrokontrolera , który współpracuje w w/w programem , a powstał w języku C i środowisku CCS5 dla
    popularnego Launchpada o którym tez możecie sobie poczytać u mnie na stronie, kod nie jest skomplikowany i nie wymaga wyjaśnień
    a zdecydowałem się na LP dlatego że płytka była pod ręką , a MCU MSP430G2x53 zawiera wbudowany czujnik temperatury , wiec nie musiałem szukać DS18B20 czy LM35.

    Kod prezentuje się następująco:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    I na tą chwilę życzę miłej zabawy wszystkim ....


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2014, o 22:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    No to piszmy dalej.
    Przygotowałem prostą apke w c# do sterowania dwoma diodami na zestawie ATB. Kod potrzebny do skonfigurowania portu przedstawił Sun powyżej więc tak nie bardzo jest co do tłumaczenia co tam się znajduje.
    Apka sie prezentuje jak poniżej.

    Obrazek


    Tak więc widzimy dwa comboBoxy w jednym wybieramy port COM a w drugim prędkość BaudRate. Poniżej mamy dwa buttony do otwarcia portu jak i zamknięcia.
    Wstawiłem również dwa buttony do zapalania diod na naszym zestawie ATB.

    button1
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    button2
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Jeśli chodzi o kod w procku to robimy najprostszą formę komunikacji. Jak odebrać czy wysłać pojedyncze znaki kod znajdziemy w DS procka.
    Aha diody są podłączone pod PC7 i PC6.
    Pętla główna while();
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Ot taka najprostsza forma komunikacji.

    Poniżej filmik jak działa aplikacja (sorki za jakość), oraz plik exe oraz hex dla atmegi32.


    Autor postu otrzymał pochwałę

    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 00:39 
    Offline
    Użytkownik

    Dołączył(a): 10 paź 2012
    Posty: 123
    Pomógł: 10

    SunRiver napisał(a):
    Heh no w sumie nie wiem jak to się stało że ten istotny temat
    został pominięty więc czas to nadrobić...

    Witam.
    No tak do końca nie został pominięty :)
    w tym wątku:
    http://forum.atnel.pl/topic1226.html
    kolega MichalXY również bardzo ładnie zaprezentował m.in. komunikacje po RS-ie z poziomu C#.
    Tak na marginesie to tworzy się tu na forum bardzo fajne kompendium dotyczące łączenia aplikacji windowsowych w C#
    z mikrokontrolerami. Dziękuję wszystkim którym chce się to opisywać.
    Pozdrawiam
    Jarek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 00:42 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27375
    Lokalizacja: Szczecin
    Pomógł: 1043

    jark napisał(a):
    Dziękuję wszystkim którym chce się to opisywać.


    Ja również dołączam się do podziękowań a warto - bo koledzy poświęcają KAWAŁ własnego czasu - skąd ja to znam. A jestem niezmiernie wdzięczny bo sam będę się dzięki temu uczył C# .....

    przy okazji dziękuję za promocję mojej książki ...

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 08:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 24 gru 2012
    Posty: 146
    Lokalizacja: Racibórz
    Zbananowany użytkownik

    Pomógł: 0

    Aby nie było niedomówień – nie analizowałem kodu tych programów ani nie znam Visuala C++. Wprawdzie sporo lat temu coś tam kombinowałem, ale nic z tego nie pamiętam. Ale kiedyś się za niego zabiorę – teraz „męczę: się z C dla AVR.
    Ale do rzeczy – interesuje mnie możliwość zapisu danych np. z dataloga na dysk, ale od razu do pliku i pola tekstowego. Widziałbym to tak – Amelek wysyła jakiś rekord do komputera, tam zostaje wyświetlony w oknie np. memo (nazwa z DELPHI ), a równocześnie następuje zapis do pliku na dysku. Następny rekord operacja się powtarza. Kiedyś cos takiego podobnego pisałem w DELPHI, – ale oparte na bazach danych. Tam każdy rekord był automatycznie zapamiętywany na dysku. Do pliku zapisywało się w pętli – pobranie z bazy, zapis w oknie edycji, zapis do pliku. To było dowolne tzn. jak ktoś chciał mieć plik. Ale z bazami to problem – zresztą ostatni program który pisałem na Delphi był bardzo dawno temu. Obecnie nie za bardzo mam na to czas ( czytaj chęci). Inna sprawa to ta, że pisałem w DELPHI 2 bo mam na nią licencję i mogę sprzedawać oprogramowanie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 09:07 

    Pomógł: 0

    Pytanie z zupełnie innej beczki, jest szansa na "kurs" przy wykorzystaniu TCP/IP czyli z drugiej strony nie RS232 tylko LAN?



    Góra
      
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 10:07 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    stachn napisał(a):
    nna sprawa to ta, że pisałem w DELPHI 2 bo mam na nią licencję i mogę sprzedawać oprogramowanie.


    używając darmowego Visual Studio Express też mozesz sprzedawać oprogramowanie więc nie widzę tu problemu.

    rezasurmar napisał(a):
    Pytanie z zupełnie innej beczki, jest szansa na "kurs" przy wykorzystaniu TCP/IP czyli z drugiej strony nie RS232 tylko LAN?


    Szansa jest ale się jeszcze nad tym zastanowię ....
    mirekk36 napisał(a):
    przy okazji dziękuję za promocję mojej książki ...


    oj tam nic wielkiego ... dlatego będziemy usilnie promować i forum i co się da ....

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 10:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 maja 2013
    Posty: 568
    Zbananowany użytkownik

    Pomógł: 31

    Jak ktoś chce się podciągnąć w C++ to polecam: http://www.youtube.com/user/MinDControlDx/videos
    Jest tam sporo na temat czystego C++ jak i też WinApi, SDL.

    Odnośnie TCP/IP to polecam rewelacyjny przewodnik: http://www.beej.us/guide/bgnet/output/h ... bgnet.html
    Wersja PL, dość stara, nie zawiera np. IPv6: http://www.asawicki.info/Mirror/Beej_s% ... /bgnet.pdf

    _________________
    Und schreien

    Spring
    Erlöse mich
    Spring
    ...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 13:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 lut 2013
    Posty: 600
    Pomógł: 47

    Witam zmagam się z drugim przykładem przedstawionym przez Kolegę SunRiver i napotkałem taki problem że nie rozpoznaje mi zmiennej "port" poza "public RS232Terminal".
    Z C# to moja pierwsza przygoda wiec proszę o wyrozumiałość :?
    Ewentualna prośba do kolegi SunRiver czy może udostępnić ten projekt do zaimportowania w Visual C# to może łopatologicznie to rozpracuje gdzie leży błąd ;)

    _________________
    https://www.instagram.com/myfirstquadcopter/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 13:36 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    kurnachatka napisał(a):
    Witam zmagam się z drugim przykładem przedstawionym przez Kolegę SunRiver i napotkałem taki problem że nie rozpoznaje mi zmiennej "port" poza "public RS232Terminal".



    Już wiesz jak :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 13:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 lut 2013
    Posty: 600
    Pomógł: 47

    Cytuj:
    Już wiesz jak :)

    Dzięki pomogło.
    Zmylił mnie ten fragment kodu
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    I użyłem nazwy SerialPort.
    Dodaje elementy sukcesywnie a więc nie wątpie że jeszcze będę potrzebował pomocy.

    _________________
    https://www.instagram.com/myfirstquadcopter/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 13:54 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    ot widzisz takie wredne bydle ze mnie i złośliwie porobiłem pułapki na osobników typu copy&paste only :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 14:04 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27375
    Lokalizacja: Szczecin
    Pomógł: 1043

    SunRiver napisał(a):
    złośliwie porobiłem pułapki na osobników typu copy&paste only


    :lol: :lol:

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 14:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 lut 2013
    Posty: 600
    Pomógł: 47

    Cytuj:
    ot widzisz takie wredne bydle ze mnie i złośliwie porobiłem pułapki na osobników typu copy&paste only :)

    I dobrze trzeba samemu przetrawić kod by sobie go lepiej przyswoić.

    _________________
    https://www.instagram.com/myfirstquadcopter/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 20:48 
    Offline
    Użytkownik

    Dołączył(a): 22 sie 2013
    Posty: 64
    Pomógł: 1

    Jak sprawdzić czy dane zostały wysłane na port COM. Chodzi mi głównie o to ze wysyłam znak na port COM4 na którym jest bluetooth i nie wiem jak sprawdzić czy ten znak doszedł.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sty 2014, o 22:34 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 24 gru 2012
    Posty: 146
    Lokalizacja: Racibórz
    Zbananowany użytkownik

    Pomógł: 0

    Nie chodziło mi o pisanie programów zarobkowo - tym to się już nie bawię od kilku lat. Interesowało mnie tyko zagadnienie zapisu danych zamiast o okna terminala to do pliku. Czy jest taka możliwość w Visual Studio Express.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 sty 2014, o 08:26 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    stachn napisał(a):
    Interesowało mnie tyko zagadnienie zapisu danych zamiast o okna terminala to do pliku. Czy jest taka możliwość w Visual Studio Express.


    nawet myśląc racjonalnie oczywiście że jest i nie jest to bynajmniej zagadnienie zależne od środowiska czy języka programowania w żaden sposób , a jedynie od programisty ... może w delphi jest gotowy komponent np. WriteToFile , a np w Visualu trzeba sobie napisać , ale nie jest to ani specjalnie skomplikowane , ani trudne :) Jak będzie taka potrzeba to opiszę taką okoliczność ...

    Vitor Borba napisał(a):
    Jak sprawdzić czy dane zostały wysłane na port COM. Chodzi mi głównie o to ze wysyłam znak na port COM4 na którym jest bluetooth i nie wiem jak sprawdzić czy ten znak doszedł.


    sposobów jest kilka ...
    1. można sobie odebrać echo
    2. można sobie przesłać zwrotnie potwierdzenie
    itd...

    jak zwykle rozwiązań tyle ilu programistów .

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 sty 2014, o 10:48 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 24 gru 2012
    Posty: 146
    Lokalizacja: Racibórz
    Zbananowany użytkownik

    Pomógł: 0

    No i bardzo dobrze - wujek "google" znalazł sporo materiału na temat " WriteToFile ". Częściowo zrozumiałe dla mnie a częściowo nie. Jak na razie dałem sobie z tym spokój bo za dużo do nauki jak na mnie. teraz zapisuje dane na karcie SD bo na microSD nie chce mi działać zapis - 3 karty i klapa a na SD 2 karty i obie obsługuje - ale to nie ten temat. Dlatego zainteresowałem się zapisem na dysk komputera.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 lut 2014, o 13:34 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 24 lut 2014
    Posty: 16
    Pomógł: 1

    Bardzo ładnie opisana komunikacja koledzy , prosto i zrozumiale
    bez zbędnego ślinotoku i lania wody to mi się podoba miło się czyta.

    Ale nie od słodzenia tu jestem pytanko mam a jak z odbiorem konkretnej
    sekwencji znaków i wywołaniem np dźwięku ?? Bowiem chciałabym
    osiągnąć taki efekt że np na port przychodzi 123 i komputer sygnalizuje mi to dźwiękiem ?

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 lut 2014, o 16:03 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 maja 2012
    Posty: 174
    Lokalizacja: Gliwice
    Pomógł: 19

    Taki najprostszy sposób :

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 lut 2014, o 18:45 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    można dużo prościej w funkcji odbioru wystarczy dać np:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    wszystko zależy co chcesz zrobić.

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 lut 2014, o 20:26 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 24 lut 2014
    Posty: 16
    Pomógł: 1

    Dziękuję koledzy za szybkie odpowiedzi w sumie banalne , a się z tym motałam
    jak ukończę jeden drobiazg to pokarzę na forum

    SunRiver napisał(a):
    można dużo prościej w funkcji odbioru wystarczy dać np:Składnia: [ Pobierz ] [ Ukryj ]Składnia: [ Pobierz ] [ Pokaż ]język csharpstring naszeDane = DaneBufforOdbioru;
    if (naszeDane == "123") MessageBox.Show("123");
    if (naszeDane == "456") MessageBox.Show("456");
    if (naszeDane == "789") System.Media.SystemSounds.Hand.Play();
    if (naszeDane == "beep") Console.Beep();
    GeSHi


    To mi bardziej pasuje :) prostsze i można w istocie więcej akcji przypisać , a nawet nie wiedziałam
    że można w C# wyświetlać tak prosto okienka z wiadomościami. Wiele jeszcze nauki tego VS C#

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 lut 2014, o 22:50 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 maja 2012
    Posty: 471
    Lokalizacja: ZGY/ZS
    Pomógł: 30

    Trzeba mieć na uwadze to, że w tych prostych rozwiązaniach jeżeli nie przyjdzie szybko (bądź wcale) znak końca linii (ramki) to aplikacja zostanie zamrożona. Dobrze by było przerzucić odbiór do obsługi timera, lub innego wątku.

    _________________
    eDiyCraft.blogspot.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 lut 2014, o 00:01 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 24 lut 2014
    Posty: 16
    Pomógł: 1

    Oczywiście że na wątkach piszę z użyciem backgroundWorkera i metoda spisuje się bardzo dobrze
    nic się nie przycina przynajmniej na razie dane nie lecą szybko bo okresowo co 3 sek

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2014, o 02:05 
    Offline
    Nowy

    Dołączył(a): 12 mar 2014
    Posty: 6
    Pomógł: 0

    Witajcie,

    Dawno temu uczyłem się C, teraz męczę AVR z książką Pana Mirka, ale ostatnio dostałem zadanie bojowe, które kosztowało mnie już kilka nocy i nic, za głupi jestem:
    - AVR wysyła zapytanie o wartość, np: T (temperatura);
    - PC odsyła odpowiedź, np: 27;
    Wartości tej temperatury powiedzmy że mam na bieżąco uaktualniane z innej aplikacji w postaci wartości float, zrzutowanych na int.
    Doszedłem do etapu, dzięki Waszym poradnikom, że potrafię wysłać terminalem tekst oraz odebrać go i wyświetlić w tej samej aplikacji dzięki zrobionemu ECHO na RS232.
    Kłopot zaczyna się właśnie wtedy, gdy mam pytanie z portu, np: T (sam je sobie wysyłam terminalem z poziomu PC) i nie potrafię odpowiedzieć wartością bieżącą (np: "27"). Dodam również, że zapytania będą różne, tzn. T,V,D,S i odsyłane będą różne wartości w przedziale 0-1 lub 0-8000. W jaki sposób mógłbym to ugryźć, żeby po uzyskaniu 1 pytania wysłać odpowiedź, odebrać 2 pytanie i wysłać odpowiedź itd. i utrzymać to w ryzach.

    Ratujcie bo we wtorek poleci moja głowa :/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2014, o 08:17 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 maja 2012
    Posty: 174
    Lokalizacja: Gliwice
    Pomógł: 19

    Cześć,


    jeżeli używasz Mirkowych bibliotek to najprościej będzie tak:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2014, o 10:07 
    Offline
    Nowy

    Dołączył(a): 12 mar 2014
    Posty: 6
    Pomógł: 0

    Dziękuję za szybką podpowiedź, ale chyba źle się wyraziłem.
    AVR już wysyła zapytania (inny projekt), ja muszę je odebrać w PC i odpowiedzieć. Pytań będzie około 10-15 powtarzanych w cyklu w celu odświeżania danych. Na ich podstawie AVR coś tam dale wykona.

    Sprawa dotyczy więc aplikacji VS C#.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2014, o 11:14 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 maja 2012
    Posty: 174
    Lokalizacja: Gliwice
    Pomógł: 19

    W sumie to w C# działa to tak samo. Na jakim etapie jesteś? Odbierasz już dane w PC czy dopiero szukasz kodu do odbierania danych?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 56 ]  Przejdź na stronę 1, 2  Następna strona

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO