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...
Korzystam również z komponentu APro. Robię to z wykorzystaniem maszyny stanów w następujący sposób: 1. Wysyłam polecenie 1 i ustawiam np. Stan1, 2. Gdy urządzenie odpowie, to w zdarzeniu OnTriggerAvail sprawdzam jaki jest ustawiony stan i w zależności od tego parsuję odpowiedź, 3. Wysyłam polecenie 2 i ustawiam np. Stan2, 4. Gdy urządzenie odpowie,...
Zamiast wysyłać przez RS232 binarnie - co często przy przesyłaniu większych porcji danych przez początkujących będzie się kończyło samymi problemami - to nie łatwiej ci zamieniać przesyłane liczby na stringi a po odebraniu ze stringów na liczby. Dzięki temu twoja ramka będzie mogła być po ludzku zakończona znakiem ENTER a co za tym idzie wszystko co...
Już widzę, że miałem błąd użyłem Print "Test" zamiast Print "Test" ; Ale dalej nie mam pojęcia jak to rozwiązać przy kilku wartościach, Delphi nie znam praktycznie w ogóle, więc nie wiem jak to najlepiej zrobić. Problem mam tez taki, że czasami wartość będzie 2 cyfrowa a czasami 3, więc nie mogę ramki którą dostane ciąć sztywno np na kawałki po 3, jak...
Pozostaje tylko sprawdzić rozwiązania o których pisałem wcześniej. Wysyłając nawet po 10 zyskasz bardzo wiele na szybkości. Nie napisałeś czy używasz przerwania do odbioru danych. Tak myśle że jak obniżysz trochę prędkość, a zaczniesz przesyłać po kilkadziesiąt bajtów naraz to i tak będzie szybciej niż teraz. Chodzi o to że teraz masz tylko 25% danych...
Cześć Quine15 Sądząc po odpowiedziach niczego się nie dowiesz tu w kwesti programowania komunikacji w Delphi. Proponuje zajrzeć do książki "RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera" Daniluka. O ile dobrze pmiętam to były trzy wydania tych pozycji. Bardzo przystępnie napisane książki. Tłumaczenie kodu z C++ na Delphi...
Witam Co do procedury "val" to Help się kłania. Służy ona do zamiany ciągu znaków na liczbę. Ma ona tą zaletę że zwraca kod błędu konwersji. Nie wiem jak wygląda ten program z książki ale jeżeli ramka danych się nie zmienia to można zrobić np tak: _temperatura_ := StrToInt(Copy(_bufor_, _pozycja_ , _ilosc_znakow_)); gdzie: _temperatura_ : to wynik zamiany...
Można zrobić coś takiego, że tuż przed znakiem '=' jest liczba określająca nr tempx - można ją przerobić na byte i wpisać to tablicy pod tym samym indeksem. Czyli nie trzeba wysyłać całej ramki, tylko to co uległo zmianie (np. temp13=45). Program automatycznie wyłuska nr temp (13) i wpisze do tablicy temp[13] liczbę 45. Takie rozwiązanie uniezależnia...
http://obrazki.elektroda.net/100_1287497... Witam, Dekoder + Nadajnik testowy (odebranego kodu). Bardzo często zdarza się potrzeba sprawdzenia w jakim standardzie nadaje pilot, który wpadł nam w ręce a nie mamy żadnego symbolu lub nawet jeśli mamy to nie występuje jego dokładny opis na www.lirc.org/remotes W takiej sytuacji ciężko go wykorzystać...
Jesteś wielki "Jerzy_w"! Jest więcej danych/rożnych "ramek"... Wysłany z innego interfejs np: Atmega16 <->Max232 <->RS232<->USB<->PC<... [9600 bitów na sekundę 8 bitów danych, 1 bit stopu] Ramki są rożnego rozmiaru 5,6,7,8 bajt Wysyłane warunkowo wciśnięty przycisk i wysyła ramkę lub komunikaty [Temperatura, Czas]co 1,2,3...
Witam. Jakim sposobem w delphi wysłać ciąg 96 danych ? w tej chwili obsługuję RS232 przez winapi konfig wygląda tak: // -- wartości flag sterujących portu szeregowego -- dcb_fBinary = $0001; dcb_fParity = $0002; dcb_fOutxCtsFlow = $0004; dcb_fOutxDsrFlow = $0008; // -- fDtrControl -- DTR_CONTROL_ENABLE = $0010; DTR_CONTROL_HANDSHAKE = $0020; dcb_fDsrSensitivity...
Fajnie że działa :D, program był pisany w Delphi 6 Personal + moduł do obsługi RS232 - VarianAsync wszystko pod WinXPPro i tak był sprawdzany na dwóch kompach z tym systemem. Co masz na myśli mówiąc o długości przesyłanych danych: czy chodzi o ilość miejsca w buforze portu szeregowego czy ilość wysyłanych rozkazów w jednej ramce? Jeśli dekodujesz odpowiedź...
OK Dzięki! Mam taki interfejs ze posiadam X modułów na których są przekaźniki i są podłączone do szyny danych (RS485) i chce sterować je poprzez komputer. W Delphi wysyłam jednym ciągiem takie komendy jak Adres = 0-255 Komenda = 0=255 Port = 0-255 Wartosc = 0-255 Czyli moja ramka danych z komputera przykładowo wygląda tak: RS_Send ('ADCS'); Wysyłam...
Elektryk a jak sadzisz czy nie uzywając kodu którego do końca nie rozumiem jestem się w stanie czegoś nauczyć raczej nie.......dlatego liczyłem na jakąś konkretną pomoc a nie gadki w sensie, że jeżeli czegos nie rozumiem to nie powienienem tego uzywac bo to chyba nie jest fachowe podejście do tematu... A z ty co napisałes to wiem o tym, że timery te...
Panowie, nie wiem czy to tylko mi się zdaje, ale co będzie jak zostanie wysłane na port dokładnie 19 znaków lub mniej? Może się mylę, ale ta procedura chyba nic nie odbierze... Zgadza sie... ale w moim przypadku mam ustaloną ramkę ponieważ przesyłam dane przez sieć CAN. Czyli mam 2bajty ID i 8 bajtów danych (x2 bo mikro wysyła mi w każde 4bity w postaci...
Zwracam się do wszystkich o jakąkolwiek pomoc w rozwiązaniu mojego problemu. Posiadam skaner laserowy (jest to praca dyplomowa), do którego muszę napisać aplikację za pomocą której możliwe będzie wyświetlenie wiązką lasera dowolnego obrazka, załadowanego z pliku bądź z jego pamięci!!! Sercem skanera jest mikrokontroler AT89S8252 firmy Atmel. Sterownik...
Jeśli kolejna transmisja jest błędna i program (nie wiem czemu) wywoła dwa razy OnRxChar, To nie jest błedna transmisja. nadpisuje tablice danych od początku. Dlatego w pierwszym błędnym wywołaniu z count=3 nadpisze pierwsze 3 pozycje, pozostawiając x,x,x,9,19 na końcu tablicy. W kolejnym wywołaniu dobierze sobie te brakujące dwa bajty, ale już z count=2...
chcę własneie w c++ robić ale nie wiem czy delphi nie jest trudny? mogłby mi ktoś podesłać jakiś kurs?. a co do rysowania wykresów to prosze o jakiś linki bo jestem raczej początkującym programistą. Co do komunikacji to czytałem troche o rs232. Najwiekszy problem z tym ze nie wiem jak to wszystko połączyćw kupe, ponieważ słyszłem coś o hiperterminalu...
1. Jakiego typu jest binarna reprezentacja temperatury temp1, temp2 (to pytanie już kiedyś padło). Czy są to zmienne integer. No właśnie tego pytania nie rozumiem ale pokaże jak deklarowałem zmienne Dim Bd(9) As Byte Dim Tmp As Integer Dim Wynik As Single Dim Temp1 As String * 10 Dim Temp2 As String * 10 Wynik to obliczona temperatura z czujnika...
kaken --> taak masz rację - można takie transormatorki z odzysku dawać, podobnie z kwarcami 25MHz, których zwykle pełno znajduje się w starych sieciówkach. Tyle tylko, że takie gotowe gniazdko z trafkami w środku mniej mniejsca zabiera na płytce i nie trzeba dawać tych rezystorków 75R .... nie mniej jednak pewnie, że warto brać takie czy inne elementy...
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;
Dzień dobry, mam taki kłopot z delphi 10.2 + komponent Comport do komunikacji RS232. Czy ktoś spotkał się z takim problemem: Odbieram dane z urządzenia, które przez cały czas co 1 sekundę wystawia ramkę "#01;" lub "#02;" ( każde urządzenie wystawia swój adres). W terminalu ramki są bez problemu odczytywane, ale w delphi otrzymuję po jakimś czasie taki...
ramka danych rs232 ramka danych ramka rs232
kompresor nieszczelny przekaźnik corsa młotek trzonek
bateria parkside styki bateria parkside
Komunikat o błędzie silnika - diagnostyka i naprawa Wymiana tylnych błotników w Volkswagen Passat B5 kombi