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...
Niestety jako początkujący użytkownik Deplhi mam pewne problemy z odebraniem danych z portu COM. Mój program działa na zasadzie wysyłania do mikrokontrolera znaku z PC z ilością odczytywanych komórek pamięci danych. Przykładowo jeśli wysyłam 'A' odczytywana jest jedna komórka, 'L' dwanaście komórek itd. Ta funkcja programu działa prawidłowo. Problem...
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 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 ! 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 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ą;...
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....
Tak sobie obejrzałem instrukcję obsługi do ComPort i widzę, że kolega chyba go źle używa. Po wykonaniu ComPort.Open; on sam będzie wywoływał (jak mniemam obejrzawszy dołączone do komponentu przykłady) ComPortRxChar za każdym razem, gdy pojawią się nowe dane. Parametr Count tej procedury to liczba bajtów, które są gotowe do odczytania. Tak więc ComPort.Open...
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...
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...
:) 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;...
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...
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... Nie zadziała, bo po pierwszym...
Witam, Dzieki za pomoc, problem rozwiazany... odczyt asynchroniczny i analiza naglowka zalatwily temat. pzdr
Nie działa :( [syntax=delphi] unit Oscyloskop_comport; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, CPort, StdCtrls, ExtCtrls; type TForm1 = class(TForm) BtnOtworz: TButton; Settings: TButton; Wyslij: TButton; EdtMsg: TEdit; ComMemo: TMemo; CBNewLine: TCheckBox; ComPort: TComPort; Image1: TImage;...
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)
To jest w porzadku Ale ja się pytałem jacek88 jakie wyniki daje zmieniona procedura. z tym ze jak napisalem wyzej trzeba jeszcze zrobic to w petli warunkowej sprawdzajacej czy potrzebna ilosc danych znajduje sie w buforze, jezeli tak to wtedy robic odczyt (lub odczyty jezeli w buforze znajduja sie dane z kilku 'paczek'). przy braku warunku w buforze...
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.
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...
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 ;)
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:=...
ok Dane odbieram po rs232 Jak czytam je przez terminal by br(at)y ustawionym na hex to otrzymuje 01 03 00 00 00 02 C4 0B jak ustawie na ASCI to mam krzaki. Podobnie w delphi jak czytam var ComPort.Readstr(str, Count); memo1.lines.add(str); end; to mam krzaki. a chce przechwycić dane i wrzucić je do Buffer_I : ARRAY [0..20] of byte; Buffer_I[0]= 01 Buffer_I[1]=...
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...
Witam, do odczytu z ComPort-a proponuje wykorzystać event OnRxChar lub OnRxBuf ( nie testowałem ), cos w ten deseń: procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var bufor : array [0..1023] of char; begin ComPort1.Read(bufor,Count); Label1.Caption:=bufor; end; Pozdrawiam
Witam Program odczytuje wiadomości wysłane przez RS232. Korzystam z komponentu ComPort. Chce przy jednym evencie OnRxChar odczytywać jedną wiadomość Dodano po 2 niestety kozystając z count zgarne cały bufor... a ja chce tylko te 20 bajtów danych w tym momencie.
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;...
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...
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, 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...
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...
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...
Witam Próbuje odczytać od kilku dni paczkę [Hex]80 05 bf 18 00 07 25 [9600 bitów na sekundę 8 bitów danych, 1 bit stopu] Szukam sposobu na program aby mieć możliwość przechwycenia paczki i odczytania w kolejności 1-bajta if [1-byte] = 80 then... , 2-bajta if [2-byte] = 05 then... , 3-bajta if [3-byte] = bf then... , Nie posiadam wielkiej wiedzy na ten...
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...
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. 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)...
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
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...
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...
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...
Zrób tak : begin ComPort.ReadStr(RevS, Count); //odczytujemy String z Portu ComTerminalMemo.lines.add(Revs); //Wyswietlamy go w Memo end;
Przyklad: ramka ma 50 bajtow, w buforze masz 60 bajtow, poprzez ComPort1.ReadStr(odebrane,Count); odbierasz 60 bajtow ,czyli 50 ramka +10 nastepnej ramki, dlatego pytalem co robisz z odebrane , bo jezeli przetwarzasz pod wzgledem tylko jednej ramki (50 bajtow) , to te 10 idze do smietnika. przy nastepnym odczycie bufora masz wlasnie ramke z ucietymi...
comport delphi delphi comport delphi odczyt
radio kenwood wyświetlacz dziura zbiornik wyrównawczy ipconfig ipconfig proxy firefox
przetwornica osram zawór actros proporcjonalny
Błąd E12 i -2E w pralko-suszarce Bosch seria 6: przyczyny i rozwiązania Peugeot 307 1.6 HDI 2006: Błąd ładowania i brak ogrzewania