Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++ - Serial port po raz kolejny.

lz1 01 Gru 2013 20:47 1497 7
  • #1 01 Gru 2013 20:47
    lz1
    Poziom 2  

    Dobry wieczór.

    Przepraszam, że po raz kolejny podnoszę podobny temat, ale proszę, zrozumcie że jestem w rozpaczliwej sytuacji. Nie potrafię programować. Nie rozumiem programowania. Nie chcę programować, natomiast mój szef najwyraźniej uparł się aby zrobić ze mnie programistę. Do tego stopnia, że kiedy nie udało mi się ukończyć programu którego napisania ode mnie zażądał, wysłał mnie na bezpłatny urlop i zakazał wracać bez działającego programu. Próbowałem go napisać. Czytałem fora, próbowałem sam. Bezskutecznie. Coś napisałem, korzystając z tego co znalazłem w internecie, ale wciąż jestem daleki od ukończenia.

    Co ma robić program? W dużym skrócie ma pobrać datę systemową z komputera w formacie YYMMDDHHMMSS (string), później tego stringa odwrócić, dodać na jego początek i koniec dwa znaki specjalne, i wysłać go na COM1.
    Drugi COM (w moim przypadku będą to dwa COM-y na tym samym komputerze połączone kablem) ma tego stringa odebrać i wypisać na ekranie. I tyle.

    To mi się udało napisać:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    I utknąłem. Proszę o pomoc. Nie wiem co dalej. Jak mam tego stringa odwrócić (umiem go wypisać), i co ważniejsze - nie wiem w jaki sposób wysłać go na COM1.
    Wiem że dla doświadczonego programisty taki problem jest banalny, dla mnie niestety jest on nie do przejścia. A zależy od niego moja praca...

    0 7
  • #2 02 Gru 2013 06:27
    cepelia
    Poziom 20  

    podaj kilka szczegółów dotyczących tego pokręconego zadania...
    1. czy aplikacja ma być konsolowa czy okienkowa
    2. czy dane mają być wyświetlane i nadawane w jakiejś aplikacji terminalowej
    3. jak dokładnie ma wyglądać ta "ramka" danych
    4. czy to jest tylko do testu czy będzie współpracowało docelowo z jakimś sterownikiem

    odnośnie pytania o datę poszukaj polecenia DatePart().

    na string zamienisz to dodając .ToString na końcu, możesz sprawdzić jeszcze ToShortDateString

    a jeszcze jedno, powiedz szefowi żeby jebn...ął się w czoło...

    0
  • #3 02 Gru 2013 08:36
    lz1
    Poziom 2  

    Witaj.

    Aplikacja ma być konsolowa. Program ma po prostu wysyłać dane w określonym formacie (konkretnie to będzie data i godzina w formacie Wharton Clock) na port COM1 tak, żeby pokazały się na COM2 (połączonym z COM1 kabelkiem). Program nie ma służyć do niczego. Mam po prostu go napisać i zaprezentować.

    0
  • #4 02 Gru 2013 08:56
    cepelia
    Poziom 20  

    musisz na podstawie tego przykładu wysyłać i odbierać dane, z tą różnicą że musisz utworzyć i skonfigurować dwa porty np serial1 i serail2 zasadniczo to będzie prawie ten sam kod z tą różnicą że właściwość serialPort.PortName będzie inna
    potem tylko wysyłasz z jednego a odbierasz w drugim ale do tego musisz utworzyć osobną funkcję...

    przykład

    0
  • #5 02 Gru 2013 09:19
    lz1
    Poziom 2  

    Czyli to co mam nie wyśle informacji na port? Bo generalnie tylko o to mi chodzi. Na drugim porcie w sumie mogę nawet otworzyć Hyper Terminal. Bylebym widział że dane przychodzą i są we właściwym formacie.

    0
  • #6 02 Gru 2013 13:13
    cepelia
    Poziom 20  

    a wysyła ?

    z tego co widać to zapisuje w pliku tekstowym...

    w tym przykładzie masz też kod dla c++

    0
  • #7 02 Gru 2013 20:29
    lz1
    Poziom 2  

    OK. Udało mi się doprowadzić do stanu, w którym program wysyła tekst do portu COM. Program wygląda tak:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Ostatnią rzeczą którą muszę zrobić będzie wzięcie zmiennej "czas" która przechowuje mi stringa z czasem (SSMMHHDDMMYY), dodanie na początku i na końcu tego stringa dwóch znaków  oraz . Potem muszę to w jakiś sposób zmaienić na tablicę charów, tak żeby funkcja strcpy mi to przyjęła. Nie wiem niestety jak to zrobić...
    Proszę o pomoc.

    0