http://obrazki.elektroda.pl/8613976000_1... Chciałbym dziś zaprezentować moją pracę dyplomową, którą obroniłem w poniedziałek na Uniwersytecie Technologiczno Przyrodniczym w Bydgoszczy. Jest to analizator widma wykorzystujący przemianę częstotliwości. Postanowiłem zaprezentować tą konstrukcję, ponieważ dziś większość ludzi myśli, że...
Zamykam temat. Problem rozwiązany (patrz wcześniejsza odpowiedź).
z tego co pamiętam to ComPort jest napisany tylko pod Delphi i C++ Builder, więc w VB chyba się nim nie pocieszysz - ale za to może zaczniesz dzięki temu robić w Delphi - to naprawdę fajny jęzorek hyhyhy .... ComPort działał mi bez problemów przy prędkościach np 115200 - więc nie wiem czy ty o takich mówisz czy o jeszcze większych? pozdrówka
Witam ! Proszę o pomoc w rozwiązaniu takiego problemu. Mam układ obliczający długość przewodu za pomocą Enkodera Kubler (1000 imp.) wykonany na mikrokontrolerze ATmega8535. Procesorek ładnie zlicza impulsy z wyjścia INT0, rozpoznaje kierunki oraz wyświetla wszystko na LCD. Problem polega na tym że muszę mieć odczyt długości na aplikacji PC. Wszystko...
Witam szanownych kolegów Na wstępie powiem, że jestem początkującym programistą Delphi (tyle co w szkole nauczyli podstaw), a z Rsem w ogóle nie miałem do czynienia. Chce napisać program który będzie zbierał sygnał od miernika (sygnał napięciowy 0-2V). Na początek poszukałem jakiś przykładowych programów do obsługi RSa, żeby w ogóle zapoznać się z tematem,...
Witam rozumię, że na twojej formie położyłeś poprostu buttona , ListBoxa oraz OpenDialog'a ??? (czyli nic dynamicznie po drodze nie tworzysz?) i to wszystko? tak? - efekt jest powtarzalny z tym accesviolation za każdym razem gdy od nowa kładziesz na formę te trzy komponenty i piszesz ten kawałek kodu tak? Dokładnie tak. A jeszcze dokładniej chodzi o...
Szanowni Koledzy :) Zastanawiam się nad realizacją pewnego problemu dotyczącego transmisji danych przez port COM z poziomu Delphi (korzystam z najnowszego 10.1 Berlin oraz pakietu AsyncPro). O co chodzi? Chciałbym napisać program, który realizowałby taki algorytm: - Wysyłam komendę na port COM; - Czekam na informację zwrotną; - Obrabiam informację zwrotną;...
Więc przerób na przyszłość na: [syntax=delphi]procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer); var Date1,Date2,Row,Str:string; begin ComPort.ReadStr(Str,Count); Memo.Lines.Add(Str); while Length(Str)>0 do begin Row:=Parse(Str,#13); Label1.Caption:='wynik odczytu Date1= '+Copy(Row,1,1);//początek danych Label2.Caption:='wynik odczytu...
Witam, Mam program, który pobiera mi z procka jakieś dane. Za pomocą funkcji ComPort1.ReadStr(RevS,5); pobieram 5 bitów jakiejś informacji. Jednak mam wrażenie, że kolejne bity są doklejane do pozostałych już odczytanych. A ja chcę, żeby przed każdym wywołaniem funkcji bufor był czyszczony. Nie wiem czy moje rozumowanie działania RS232 jest prawidłowe....
:) Delphi to chyba tylko Borland:) co innego jak bym napisał Turbo Pascal oto mój kod: unit UART; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, CPort, StdCtrls; type TForm1 = class(TForm) BtnOtworz: TButton; BtnSettings: TButton; BtnWyslij: TButton; EdtMsg: TEdit; ComMemo: TMemo; CBNewLine: TCheckBox;...
comport.readstr nie odczytuje calego bufora ,tylko tyle danych ile podasz mu w drugim parametrze, chyba ze podasz mu count z procedury czyli caly bufor. comport tworzy bufor (sam masz wplyw na jego wielkosc) i opiera sie na winapi, wiec wie ile danych zabuforowal. jezeli chodzi o onrxchar ,to nie wie czy cala ramka zostala przeslana poprostu informuje...
witam Po napisaniu programu w oparciu o artykół : http://4programmers.net/Delphi/Artykuły/... napotkałem na błąd, który wyskakuje za każda próbą naciśnięcia przycisków otwórz, i wyslij,a także przy próbie zatwierdzenia settingu cportu. ten błąd to http://obrazki.elektroda.net/23_12358278... różni...
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer); Masz coś takiego jak Count. Spróbuj w pętli robić ComPort.ReadStr(Str, Count); Memo1.Text := Memo1.Text + Str; Powtarzaj pętlę Count razy. Używałem kiedyś ComPort ale jakoś inaczej to robiłem. Jak to nie zadziała to wieczorem sprawdzę w domu jak to było...
Witam wszystkich Na początku chce zaznaczyć, że dopiero zaczynam zabawę z RSem i programowaniem. Chce napisać program który odczytywałby sygnał napięciowy (powiedzmy 0-2 VAC) i pokazywał go w formie wykresu. Póki co do wykresu nie doszedłem wiec to zostawmy. Troszkę zmodyfikowałem gotowy program znaleziony na necie, dzięki pomocy z innego tematu odpaliłem...
Witam, Dzieki za pomoc, problem rozwiazany... odczyt asynchroniczny i analiza naglowka zalatwily temat. pzdr
Witam i proszę o radę. Odczytuję temperaturę z COM-a, mam to umieszczone w zdarzeniu OnTimer. Co 1000ms jest odczytywana wartość temperatury. To jest OK. Mam problem z przedstawieniem tego na wykresie temperatury w czasie. W przedostatniej linijce kodu powinienem wstawić do wykresu wartości X(czyli czas) i Y(czyli temperaturę). Temperatura się zmienia,...
Tez kiedys korzystalem z winapi i mialem problemy z poustawianiem timerow. dobra rada, skorzystaj z komponentu comport - odwala cala robaote za ciebie i jest funkcja w ktorej mozesz porac dane jezeli tylko pojawia sie w buforze (onrxchar)
Nie działa :( Ale co tutaj ma działać, jak poza odczytem "czegoś" z portu i zwiększaniem zmiennej "pozycja" ten program nic nie robi? Wszystko masz 'zakomentowane".
readstr czyta bajty tylko przekazuje je do zmiennej typu str i napis nie musi sie konczyc sie powrotem karetki. Rzeczywiście readstr i read w zasadzie niczym się nie różnią - aż przejrzałem źródło. Witam, Mam problem z zapisem danych z ComPortu. Mianowicie mam eventa na OnRxChar, odbieram dane z urządzenia ale zamiast normalnych danych jak np w hyperterminalu:...
Przygotowywujesz plik do odczytu,sprawdzasz jego wielkosc,robisz petle od poczatku pliku do konca (wielkosc pliku),w petli pobierasz bajt z pliku i wysylasz do przez comport.
Wnioskuję właśnie po tym, że odczytujesz a procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var i: integer; begin comport1.ReadStr(a, count); for i := 1 to count do begin c := ord(a[i]); inc(licznik); daneBYTE[licznik] := c; if licznik >= 100 then begin label10.caption:=...
Witam, jeśli programujesz w Delphi to możesz ściągnąć sobie komponent ComPort do komunikacji komputera przez port COM oraz THGG do obsługi protokołu GG, komponenty te są łatwo dostępne (free) i jest w necie dużo dokumentacji do nich, mając takie narzędzia możesz sobie samemu z powodzeniem napisać klienta GG nie tylko z odczytem temperatury ale co tylko...
Waitkey() jest bez sensu. Funkcja ta zwraca znak w kodzie ASCII, czyli jak wyślę 0, to funkcja zwraca 48. Musiałbym za pomocą ACS() przekształcać kod ASCII na rzeczywisty znak a co za tym idzie pobierać 3 bajty np. 0,0,1 lub 2,2,5. I powstaje w tedy problem, bo UART ma tylko 8 bajtów pamięci, czyli może do niego przyjść tylko 8 bajtów, reszta...
Nie wiem co macie źle w swoich projektach. Wstawię swój kod, który działa na 100 %. Jedno co mi się w nim nie podoba to jak odczytuje dane na przykład ze skanera kodów kreskowych to wstawia mi do Memo 8 znaków, dalsze są w kolejnej linii. Próbowałem to rozwiązać ale na razie bez rezultatu. Udało mi się rozwiązać problem wstawiania tylko 8 znaków w 1...
Witam. Tworząc program zawiesiłem się na odczycie z com. Mikroprocesor odczytuje dane z akcelerometru i wysyła je do PC. I tu zaczyna się problem. Używam komponentu comport. Dana jest odbierana tylko raz, jakby zamroziło odczytywanie. [syntax=delphi]ComPort1.Readstr(Str,coun... memo1.Text:=memo1.Text+str; for x:=0 to memo1.lines.count-1 do chart1.Series[0].Add(StrToFloat(memo1.li...
użyj popularnego komponentu do RS232 czyli ComPort tam będziesz to mógł zrobić spokojnie ;)
Witam ja chciałbym odświerzyc trochę temat bo nie ma sensu zakładac takiego samego, mianowicie również próbuje uzyskac ATR karty ale trochę w inny sposób : procedure TForm1.Button3Click(Sender: TObject); var x : integer; begin if comport.connected = true then begin ComPort.SetRTS(True); // set RTS to high ComPort.SetRTS(False); // lower RTS signal x...
Może tak: [syntax=delphi] procedure TfSterowanie.ComPortRxChar(Sender: TObject; Count: Integer); begin if count>=20 then Repeat ComPort.ReadStr(bufor, 20); fKonsola.Memo.Text:=fkonsola.memo.text+'... '+bufor+' '+inttostr(count)+#13#10; if fkonsola.Memo.lines.Count>19 then fkonsola.Memo.Lines.Delete(0); przetwarzanie; Until count <20;...
Chodzi o to że czasami odczytujesz nie cały wiersz lecz jego fragment. [syntax=delphi]var P:Integer; begin ComPort.ReadStr(Str, Count); Memo.Text:= Memo.Text+Str; P:=Pos(#13,Str); if P>0 then begin Str:=Memo.Lines[Memo.Lines.Count-2+Ord(P... T1:= Copy(Str,1,4); T2:= Copy(Str,6,4); Label3.Caption:= 'Temperatura IGBT [T1] = '+T1; Label2.Caption:=...
Ja do transmisji uzywam w Delphi komponent Comport. We właściwościach jest tam coś takiego >Timeouts<, ale nigdy tego nie uzywałem. Czy w strukturze DCB jest coś takiego?. Może tam trzeba coś wyzerować?
Dzięki serdeczne za uwagi oszczędzenie mi czasu... postaram się może wzorować na magistrali wcześniej wspomnianej ... informacje mogły by być wysyłane ciągle i równo np;temperatura-in-uot, speed.... dla obcji monitor W przypadku błędu w ramce musiał bym się dostosować do schematu powyżej 6 Bajt sumy kontrolnej. XOR'ing. Błędne ramki porostu są ignorowane....
Witaj KeinXor, Poruszałem podobny temat ale tam importowałem dane z pliku txt bo nie było innego wyjścia. Tutaj sam zapisuje dane do txt i dopiero potem robie import z bazy. Jeżeli chodzi o bufowanie to nie jest mi ono potrzebne jeżeli da się rozwiązać cały problem zapisując dane bezpośrednio do bazy. Czy jesteś w stanie wrzucić mi jakiś przykład bo...
sorki zle zrozumiałem. Dane są wysyłane w paczkach jako HEX nie ASCI. Czytam paczki ComPort.Read(dane, Count); tylko jak zadeklarować dane a następnie przepisać ja w Buffer_I : ARRAY [0..20] of byte;
Witam. Mam problem z odbiorem tego co wysyła mi uC za pomocą RS232. W terminalu obieram informacje a w delphi jakos nie odbiera nic. Moze mi powiedzieć ktoś w czym tkwi problem? Kod do delphi: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, CPort; type TForm1 = class(TForm)...
Witam ! Proszę o pomoc w wykonaniu programu w Delphi. Do tej pory zajmowałem się głównie programowaniem mikrokontrolerów w asemblerze. Projekt który obecnie wykonuję wymaga jednak aplikacji PC wyświetlającej wynik wysłany z mikrokontrolera przez RS. Calość wygląda mniej więcej tak: 1. Mikronotroler zlicza impulsy z enkodera 2. Po stosownych obliczeniach...
No własnie problem jest tego typu że po mimo tego iż mam złącze obdII to akurat ten model nie współpracuje z żadnym interfacem nikt nie wie jakiego protokołu używa... Moj komputer jest w stanie odczytać tylko Komputer TestBook 4 serwisowa zabawka Rovera! Dopiero od 2001 roku Rover jest zgodny z OBDII ;/ No to straszny pech. W takim przypadku musisz...
W takim razie procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var znak:byte; begin if count>=3 then begin comport1.Read(znak,1); if znak>127 then begin dana[1]:=znak and 127; {maskuję bit 7 aby dostać "czysty" numer rozkazu} comport1.Read(znak,1);{czyt...
pisze komunikacje z prockiem,progarm w delphi. wymyslilem sobie tak ze procek wysyla dane ,komp odpowiada 1 jesli ok 2 jesli bad ,po sprawdzeniu parzystosci jesli 1 to procek wysyla nastepny znak jesli 2 to ten sam. jak to zrobic korzystajac z comport. moj kod wyglada tak procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer); var dana: String;...
Trochę po testowałem, ale na razie to totalna prowizorka i nie działa tak jak bym chciał. Biorąc pod uwagę, że nie mam pod ręką żadnego avr'ka, którym mógłbym wysyłać próbny sygnał, użyłem mój programator ma on funkcję testową po wysłaniu mu znaku "S" odpowiada on wysyłając przez rs232 "AVR ISP" Kluczowa część programu wygląda tak: procedure TForm1.ComPort1RxChar(Sender:...
Procedura odbioru wygląda tak , ale gdybym było coś nie tak to z resztą ramek byłby problem. Zawsze jest tak z zerami wycina przy odbieraniu gdy zamiast zer dostaje jedynki i inne znaki to jest OK. procedure TMainfrm.ComPortRxChar(Sender: TObject; Count: Integer); var ComTekst: AnsiString; begin ComPort.ReadStr(ComTekst, Count);//odczytujemy String...
Ja znów polecam komponent ComPort. Prosta i bezproblemowa transmisja poprzez COM'a. Co do twojego kodu popróbuj z opóźnieniami rzędu 250-300ms. Miałem kiedyś ten sam problem i sllep'y pomogły ;) powodzonka
co do tematów na forum i comport-u to od tego zaczęłam teraz jestem na etapie próby wysłania do czujnika konkretnej informacji z poleceniem odesłania wyniku pomiaru. Czujnik: PR-10X/0.2bar/81634.7 Według "instrukcji" polecenie powinno być 8 bitowe i zawierać DevAddr | 0, Function code | n byte parameters (optional) |CRC16_H | CRC16_L nie wiem jak te...
Marek dane zapisywane są w bazie Firebird za pomocą zdarzenia OnRxChar komponentu CPort i procedury: procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var Str : String; plik: TextFile; begin ComPort1.ReadStr(Str, Count); Memo1.Text := Memo1.Text + Str; AssignFile(plik,'C:\beltway\rs23...
Cześć ComPort też mnie rozczarował błędnie odczytywał dane nie wiem czemu. Borland powinien sam zrobić taki komponent i dołączyć do pakietu. Przecież to jest porażka, że nie ma tego w standardzie. vista i xp to wszystko porażka ! Szkoda, że nie ma porządnych systemów. Pozdrawiam
Jest kilka metod. 1. Czekanie na nadejście bajtów "rozpoczynających" paczkę, odczytanie pozostałych bajtów i powrót do pętli oczekującej. 2. Odczytanie jakiegoś ciągu znaków (wielokrotności rozmiaru ramki) i późniejsza obróbka. Wszystko zależy czy ramka danych ma jakieś cechy charakterystyczne, czy zawsze ma ten sam rozmiar itd.
To jest znak przeniesienia do nowej linii, i w jaki sposób mogę go skasować. Ten znak nie może występować ponieważ wykres nie może odczytać takiego znaku.
Witam! Jak w ComPort w Delphi odebrać z bufora np. 300 odczytanych znaków? Jak zmusić ComPort aby przeczytał i załadował do bufora określoną liczbę danych? Pozdrawiam.
zmień na: [syntax=delphi]Delete(StrOdb, 1, 4);[/syntax] Czy od odbioru pierwszych danych jest to echo ? czy pojawia się dopiero przy odbiorze drugiej danej ? na końcu procedury odczytu z COMa można wyczyścić bufory - w C++ Builder linijka wygląda tak: [syntax=cpp]ComPort1->ClearBuffer(true, true);[/syntax]
Wg mnie nie ma czegos takiego jak ostatni znak bufora. bufor jet aktualizowany na biezaco i przesuwany , np . w buforze masz 10 bajtow , odczytujesz 5, zostaje niby 5 ale w trakci odczytu przychodzi nastepne 10 i masz w buforze 15 , ktory jest ostatni ??? jak kolega wczesniej napisal w cport jest cos takiego jak WaitForEvent ,jako zdazenie ustawiasz...
Zrób tak : begin ComPort.ReadStr(RevS, Count); //odczytujemy String z Portu ComTerminalMemo.lines.add(Revs); //Wyswietlamy go w Memo end;
chodzi mi o zbudowanie pakietu danych który ma znacznik początku, znacznik oddzielający dane od siebie i znacznik końca. Do tego ponawiamy dane co jakiś czas. Wten sposób w oprogramowaniu na PC wstawiamy pętlę oczekującaą na pojawienie się znacznika początku i jeżeli zostanie on wykryty to wszystkie następne cyferki(i przerywniki) będą ładowane do textboxa(chyba...
delphi comport comport delphi delphi odczyt
goodram cx100 wiatrowa turbina multi monitor
zresetować drukarkę epson inwerter easun
Kod błędu 309 w piecu gazowym - przyczyny i rozwiązania CTS4089 – podłączenie czujnika położenia pedału Renault Clio/Scenic/Megane, pinout, testy