<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=66&amp;t=19539&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-11-06T08:01:18+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=66&amp;t=19539&amp;mode</id>
<entry>
<author><name><![CDATA[Artur_26]]></name></author>
<updated>2017-11-06T06:59:24+01:00</updated>
<published>2017-11-06T06:59:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198404#p198404</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198404#p198404"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198404#p198404"><![CDATA[
Ok dzięki:)<br /><br />Dzięki Wam za odpowiedzi, intuicyjnie doszedłem do takich samych wniosków, ale wolałem zapytać szerszego grona:)<br /><br />No więc tak jak piszesz trzeba będzie troszkę poczytać i chętnie się za tą książkę zabiorę.<br />A co do samego terminala to podejdę troszkę z innej strony. Bo trochę się nad nim napracowałem i chciałbym go jednak troszkę udoskonalić.<br /><br />Co do zipa to wtopa:) <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> ok biorę sie programowanie a windy nie znam:) hehe<br /><br />Jeszcze raz serdecznie dziękuję za dyskusję.<br />A jak coś uda mi się wymyślić coś konstruktywnego z tym terminalem to się za wami podzielę wynikami:)<br /><br />Pozdrawiam wszystkich <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4513">Artur_26</a> — 6 lis 2017, o 06:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-05T23:24:17+01:00</updated>
<published>2017-11-05T23:24:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198402#p198402</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198402#p198402"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198402#p198402"><![CDATA[
<div class="quotetitle">Artur_26 napisał(a):</div><div class="quotecontent"><br />Jak ty byś rozwiązał takie odbieranie danych tworząc terminal?? w ogóle czy bawiłbyś się w takie wyświetlanie danych?? jak ja zrobiłem?<br /></div><br /><br />sam pomysł uważam za fajny, nawet chociażby w celach ćwiczebnych - to fajne wyzwanie ...<br /><br />no ale jak rozwiązać transmisję binarną ... na pewno nie w ten sposób - bo sam widzisz, że nie idzie to jak chcesz. Z tego co teraz opisałeś to wynikałoby że potrzebujesz prawdziwej komunikacji binarnej z timeoutami na poziomie np długości ramki jednego bajtu a jak wiadomo czas będzie się zmieniał w zależności od prędkości transmisji <br /><br />to co napisał wyżej kolega o dokładnym odmierzaniu czasów w windowsie jest prawdą i możesz sobie darować takie podejście ... w ogóle z takimi komponentami, które w ogóle np nie przewidują obsługi transmisji binarnej ...<br /><br />więc albo poszukać komponentu do transmisji binarnej albo zacząć pisać samemu taką obsługę od podstaw - jest taka książka<br /><br /><!-- m --><a class="postlink" href="https://helion.pl/ksiazki/rs-232c-praktyczne-programowanie-od-pascala-i-c-do-delphi-i-buildera-wydanie-iii-andrzej-daniluk,rs2323.htm#format/e" >https://helion.pl/ksiazki/rs-232c-prakt ... m#format/e</a><!-- m --><br /><br />poczytaj i zobacz z czym to się wiąże i jak się do tego podchodzi od podstaw<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 lis 2017, o 23:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2017-11-05T23:17:30+01:00</updated>
<published>2017-11-05T23:17:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198401#p198401</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198401#p198401"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198401#p198401"><![CDATA[
<div class="quotetitle">Artur_26 napisał(a):</div><div class="quotecontent"><br />[quote=&quot;micky]Pliki wstawiamy w zipie.[/quote]<br />A to przepraszam, ale ma tylko winrara:)[/quote][/quote]<br /></div>Winrar też robi archiwa w zipie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 5 lis 2017, o 23:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-05T23:16:14+01:00</updated>
<published>2017-11-05T23:16:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198400#p198400</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198400#p198400"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198400#p198400"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />A to przepraszam, ale ma tylko winrara:)<br /></div><br />toż KAŻDY windows za FREE ma wbudowaną obsługę ZIP'a więc jak można mówić, że mam tylko RAR'a <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> no ... chyba że masz linuxa ale wtedy też wątpię żeby nie było dostępnego pakera do zipa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 lis 2017, o 23:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Artur_26]]></name></author>
<updated>2017-11-05T22:04:54+01:00</updated>
<published>2017-11-05T22:04:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198395#p198395</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198395#p198395"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198395#p198395"><![CDATA[
<div class="quotetitle">micky napisał(a):</div><div class="quotecontent"><br />Po drugie w systemach Windows zapomnij o odliczaniu równych czasów rzędu milisekund.<br /></div><br /><br />To to ja wiem, dlatego pytam jak takie coś zrobić<br /><br />-- 1 minucie --<br /><br /><div class="quotetitle">micky napisał(a):</div><div class="quotecontent"><br />Pliki wstawiamy w zipie.<br /></div><br /><br />A to przepraszam, ale ma tylko winrara:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4513">Artur_26</a> — 5 lis 2017, o 22:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-11-05T22:01:19+01:00</updated>
<published>2017-11-05T22:01:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198394#p198394</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198394#p198394"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198394#p198394"><![CDATA[
Pliki wstawiamy w zipie.<br /><br />Po drugie w systemach Windows zapomnij o odliczaniu równych czasów rzędu milisekund.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 5 lis 2017, o 22:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Artur_26]]></name></author>
<updated>2017-11-06T08:01:18+01:00</updated>
<published>2017-11-05T21:52:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198392#p198392</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198392#p198392"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198392#p198392"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />dla ciebie 5 ms w takim wypadku to timeout ? .... sorki ale to hmmm kiepski pomysł<br /></div><br /><br />Mirku te 5 ms to przykład chodziło mi o to że Timer nie odlicza równych odcinków czasu.<br /><br />Może źle zadałem pytanie, może powinienem zapytać &quot;Jak za pomocą Delphi odmierzyć dokładnie równe odcinki czasu&quot; ale liczone w milisekundach. Za pomocą Timera tego nie zrobię. <br /><br />Czas jaki odmierzam to czas po miedzy nadchodzącymi &quot;porcjami&quot; danych założony prze zemnie, po którym stwierdzam, że to koniec nadsyłanej porcji danych<br />tylko problem z tym, że te odmierzane odcinki czasu przez Timer nie są dokładnie takie same i ja rozumiem, że tak nie będzie.<br /><br />Na rysunku jest to czas 2*T1<br /><br /><a href="https://obrazkiforum.atnel.pl/4513/04ef7b2b6585b4e14f96719dc4698060.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4513/04ef7b2b6585b4e14f96719dc4698060.png" alt="Obrazek" /></a><br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Tak jak myślałem - nie do końca albo nie za bardzo rozumiesz idei Timeoutu ...<br /></div><br /><br />Może wyjaśnię jak ja rozumiem idę, jeśli błędnie proszę o sprostowanie : przykład nie elektroniczny<br />1. Proszę córkę aby poszła do sklepu, ma informacje, że zaraz po zakupach ma przyjść do domu. Zakupy nie powinny jej zająć dłużej niż godzinę.<br />2. Po wyjściu z domu córki zaczynam odmierzać czas czyli tą godzinę.<br />3. Jeśli córka wróci przed upływem tej godziny kończę odliczanie czasu i daję jej cukierka za dobre sprawowanie:) hihihi <br />4. Jeśli córka nie wróciła po upływie godziny no to wtedy jakoś tam reaguję:)) np idę w kierunku sklepu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />)) albo coś tam:) ale wtedy cukierka nie dostanie:)<br /><br />Wybacz taką przenośnię ale tak mi się akurat skojarzyło:)<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />czemu nie dasz dużo dłuższego czasu np na początek dla testu 1000 ms ?<br /></div><br /><br />jeśli dam tak długi czas to jeśli z jednego terminala wyślę dane przez kliknięcie &quot;Wyślij dane&quot; i w ciągu nie całej sekundy kliknę drugi raz to wtedy dane które zostały wysłane dwa razy z dużym odstępem czasu zostaną potraktowane jako jedna porcja danych, np: wysyłam 123456 i po pół sekundy wyślę to samo to wtedy odebrane dane wyświetlone będą jako:<br />123456123456 <br />a nie osobno:<br />123456<br />123456<br /><br />Właśnie dlatego  resetuję Timer w każdym zdarzeniu onRxChar  po wejściu do zdarzenia Timera również go wyłączam. Do puki nie nadlecą nowe dane Timer jest cały czas wyłączony<br />Następne załączenie dopiero w kolejnym zdarzeniu onRxChar<br /><br />Pisząc ten terminal ja nie wiem jaki będzie dokładnie odstęp pomiędzy tymi porcjami danych ale zakładam bo coś założyć muszę, że to będzie nie mniejszy niż dwukrotny czas trwania wysłania jednego bajtu (uwzględniając bit startu, stopu 2 albo jeden , bit parzystości jest czy nie ma) na tej podstawie wyliczam czas jaki jest potrzebny na wysłanie odbiór jednego bajtu. I mnożę go np. razy 2. I jeśli lecą jakieś dane i Timer liczy i odmierzył ten czas tzn, że dane już nie lecą.<br /><br />Taka jest moja idea, którą zastosowałem w pisanym przeze mnie Terminalu. <br />Oglądałeś go może? w poście wyżej wstawiłem plik z nim.<br /><br />Mirku dziękuję za cierpliwość i chęć pomocy.<br /><br />Jak ty byś rozwiązał takie odbieranie danych tworząc terminal?? w ogóle czy bawiłbyś się w takie wyświetlanie danych?? jak ja zrobiłem?<br /><br />Pozdrawiam wszystkich czytających:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4513">Artur_26</a> — 5 lis 2017, o 21:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-05T20:54:19+01:00</updated>
<published>2017-11-05T20:54:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198385#p198385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198385#p198385"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198385#p198385"><![CDATA[
dla ciebie 5 ms w takim wypadku to timeout ? .... sorki ale to hmmm kiepski pomysł<br /><br />czemu nie dasz dużo dłuższego czasu np na początek dla testu 1000 ms ? <br /><br />Tak jak myślałem - nie do końca albo nie za bardzo rozumiesz idei Timeoutu ... On powinien być aktywowany tylko gdy nadleci taka twoja np niepełna paczka a nie za każdym zdarzeniem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 lis 2017, o 20:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Artur_26]]></name></author>
<updated>2017-11-05T19:01:21+01:00</updated>
<published>2017-11-05T19:01:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198372#p198372</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198372#p198372"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198372#p198372"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Artur_26 napisał(a):</div><div class="quotecontent">Mirku piszesz o timeout, no właśnie zrobiłem to na Timerze ale jak wspominałem i ty też mówiłeś to nie jest najlepsze rozwiązanie dlatego czasem działa jak trzeba a czasem nie bo mi łączy porcje danych razem i<br /></div><br />no bo nie zrobiłeś wcale timeouta - może nie wiesz co to oznacza ? ... Timer ma zareagować tylko gdy zostanie przekroczony jakiś tam czas, a gdy w międzyczasie przychodzą jakieś dane to go wciąż resetujesz</div><br /><br />dokładnie tak zrobiłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />w obsłudze zdarzenia onRxChar najpierw wyłączam Timer i włączam go ponownie czyli po odebraniu danych zaczynam od nowa odliczać czas i jeśli nie nadejdą nowe dane to jeśli timer odliczy zadany czas to wtedy w obsłudze zdarzenia Timera wyświetlam dane patrz kod 1 post.<br /><br />Jeśli dane (porcje) lecą stosunkowo szybko to się te porcje sklejają i wtedy dwie odrębne porcje traktowane są jako jedna. Bawiłem się czasami no i nie znalazłem &quot;złotej wartości&quot; najgorzej jest jak komp coś tam zaczyna robić wtedy Timer (tu mogę się mylić) odlicza dłuższy czas np nie 5 ms tylko troszkę więcej<br /><br />[syntax=delphi]procedure TForm1.cPort1RxChar(Sender: TObject; Count: Integer);<br />var<br />  dane : string;<br />begin<br />  if cPort1.Connected then<br />   begin<br />     Timer1.Enabled := False;    // wyłączenie timera<br />     Timer1.Enabled := True;     // włączenie timera - jeśli po odliczeniu czasu nie nadejdzie już zadna dana to<br />                                 // w obsludze onTimer dopiero następuje wyświetlenie wcześniej odebranych danych<br />     cPort1.ReadStr(dane, Count);<br />     str := str + dane;<br />     //cPort1.ReadStr(str, Count);<br />     //Memo1.Lines.Add(str + '   ' + 'Count= ' + IntToStr(Count));<br />   end;<br />end;<br /><br />procedure TForm1.Timer1Timer(Sender: TObject);<br />begin<br />  Timer1.Enabled := False; // zatrzymanie Timera<br />  Memo1.Lines.Add(str);    // wyświetlenie danych<br />  str := '';<br />end;[/syntax]<br /><br /><a href="https://obrazkiforum.atnel.pl/4513/87e4da6b20b1ce4ab965db86a0a33661.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4513/87e4da6b20b1ce4ab965db86a0a33661.jpg" alt="Obrazek" /></a><br /><br /><br />Dlatego pytam czy jest możliwość zrobienia czegoś takiego inaczej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4513">Artur_26</a> — 5 lis 2017, o 19:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-05T18:38:12+01:00</updated>
<published>2017-11-05T18:38:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198367#p198367</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198367#p198367"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198367#p198367"><![CDATA[
<div class="quotetitle">Artur_26 napisał(a):</div><div class="quotecontent"><br />Mirku piszesz o timeout, no właśnie zrobiłem to na Timerze ale jak wspominałem i ty też mówiłeś to nie jest najlepsze rozwiązanie dlatego czasem działa jak trzeba a czasem nie bo mi łączy porcje danych razem i<br /></div><br />no bo nie zrobiłeś wcale timeouta - może nie wiesz co to oznacza ? ... Timer ma zareagować tylko gdy zostanie przekroczony jakiś tam czas, a gdy w międzyczasie przychodzą jakieś dane to go wciąż resetujesz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 lis 2017, o 18:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Artur_26]]></name></author>
<updated>2017-11-05T18:54:44+01:00</updated>
<published>2017-11-05T17:02:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198360#p198360</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198360#p198360"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198360#p198360"><![CDATA[
Witam ponownie  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br />Dziękuję za cierpliwość:) <br /><br /><div class="quotetitle">micky napisał(a):</div><div class="quotecontent"><br />Kolega chyba chce 'tylko' zwizualizować dane które przylatują po RSie.<br /></div><br /><br />Staram się napisać właśnie terminal, tzn napisałem takowy program i dokładnie chodzi o wizualizację<br />nie jest to konkretna aplikacja do analizy konkretnych ramek tylko właśnie do tego co lata po RS232 jak kolega micky  napisał (oj widzę, że coś ciężko w postaci tekstu wyjaśnić mi o co chodzi).<br />Dlatego chcę się dowiedzieć w jaki sposób odbierać dane tak aby te (porcje) były traktowane pojedynczo czyli jeśli porcja ma np 40 bajtów to chcę wyświetlić jako jeden ciąg. I teraz jeśli nadejdzie druga porcja danych np 32 bajty w odstępie czasu trwania 2 bajtów, ten czas to przerwa cisza na linii czyli terminal nie odbiera danych w tym czasie, to te 32 bajty są wyświetlane w drugiej linii.<br />W zasadzie to osiągnąłem przy pomocy timera ale są wady takiego rozwiązania. Co sam zauważyłem w czasie testów a Mirek powiedział, że to błędne rozwiązanie i z tym nie dyskutuję bo się z tym w 100% zgadzam:)<br /><br />poglądowy rysunek <br /><br /><a href="https://obrazkiforum.atnel.pl/4513/a48d8b963ecf89518d022e7a9d1355ec.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4513/a48d8b963ecf89518d022e7a9d1355ec.jpg" alt="Obrazek" /></a><br /><br /><br />To może jeszcze raz:<br />staram się napisać własny terminal (przedstawiłem we wcześniejszej odpowiedzi jak wygląda i w jaki sposób wizualizuję dane)<br />Od razu mówię, że piszę ten terminal aby nauczyć się co nieco i żeby mieć właśnie taki sposób prezentacji danych jaki bym chciał.<br />Korzystam czasem z terminala autorstwa Broy:<br /><br /><a href="https://obrazkiforum.atnel.pl/4513/d9fc62f249969270af97c4fda28a5717.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4513/d9fc62f249969270af97c4fda28a5717.jpg" alt="Obrazek" /></a><br /><br /><br />Ja bym chciał mieć taki sposób wizualizacji dla mnie osobiście wygodny, ponieważ widzę co wysłałem i jaką odpowiedź otrzymałem.<br /><br />dane wysyłane np:<br />Tx-&gt; Witam wszystkich na forum ATNEL<br /><br />a dane odebrane np:<br />Rx-&gt; Właśnie odebrałem długi tekst lub jakieś tam dane z jakiejś tam jednej porcji danych <br />Rx-&gt; a tu odebrałem dane z kolejnej porcji danych, które zostały przesłane za raz po pierwszej porcji danych ale jako odrębna porcja danych jako drugi ciąg<br /><br />czyli tak jak tu zrobiłem:<br /><br /><a href="https://obrazkiforum.atnel.pl/4513/8674853fc822e807ed0799220bbbac59.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4513/8674853fc822e807ed0799220bbbac59.png" alt="Obrazek" /></a><br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Wydaje mi się, że mieszasz co nieco pojęcia i stąd twoje problemy..<br /></div><br /><br />no nie wykluczone:))  może dziś mam kiepski dzień do formułowania myśli<br /><br /><br /><div class="quotetitle">micky napisał(a):</div><div class="quotecontent"><br />Możesz np formatowac je w taki sposób, że po np. 16 odebranych bajtach przechodzisz do następnej linii.<br /></div><br /><br />no ale właśnie ilość przychodzących danych w jednej &quot;paczce&quot; porcji danych jest zmienna w zależności od tego co się aktualnie &quot;podsłuchuje&quot;:)<br /><br />Mirku piszesz o timeout, no właśnie zrobiłem to na Timerze ale jak wspominałem i ty też mówiłeś to nie jest najlepsze rozwiązanie dlatego czasem działa jak trzeba a czasem nie bo mi łączy porcje danych razem i to wychodzi wtedy kiedy np w czasie przesyłu danych otwieram jakiś inny program np przeglądarkę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> a czasem się tak dzieje ze ta porcja danych jest dzielona na dwie części.<br /><br />A jeśli chcecie zobaczyć moje wypociny jak to działa to poniżej załączam program. Jeszcze dużo pracy przede mną <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> i sporo do poprawy no i pewne rzeczy kuleją i wiele rzeczy można zrobić inaczej:) więc .... proszę o wyrozumiałość uczącego się:)<br /><br /><br />Mam nadzieję, że teraz wyjaśniłem co chcę stworzyć:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4513">Artur_26</a> — 5 lis 2017, o 17:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-05T15:23:37+01:00</updated>
<published>2017-11-05T15:23:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198349#p198349</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198349#p198349"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198349#p198349"><![CDATA[
<div class="quotetitle">micky napisał(a):</div><div class="quotecontent"><br />Kolega chyba chce 'tylko' zwizualizować dane które przylatują po RSie.<br /></div><br />a no chyba że tak - może źle zrozumiałem ...<br /><br />no ale w takim przypadku tak jak piszesz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> zliczać do 16 i wyświetlać każdą paczkę - w czym problem ? jak nie przyleci 16 tylko mniej do czekać na kolejny pakiet chyba że minie jakiś timeout który trzeba sobie niestety samemu zorganizować w przypadku comporta<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 lis 2017, o 15:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-11-05T15:06:25+01:00</updated>
<published>2017-11-05T15:06:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198347#p198347</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198347#p198347"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198347#p198347"><![CDATA[
Kolega chyba chce 'tylko' zwizualizować dane które przylatują po RSie.<br />Możesz np formatowac je w taki sposób, że po np. 16 odebranych bajtach przechodzisz do następnej linii.<br />Możesz podpatrzeć sposoby wyświetlania jak to jest robione w Realterm'ie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 5 lis 2017, o 15:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-05T14:57:46+01:00</updated>
<published>2017-11-05T14:57:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198346#p198346</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198346#p198346"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198346#p198346"><![CDATA[
Wydaje mi się, że mieszasz co nieco pojęcia i stąd twoje problemy - bo jak chcesz binarkę to nie mów, że chcesz terminal bo ma się to wtedy niestety czy tego chcesz czy nie - jak przysłowiowa pięść do nosa ...<br /><br />Najgorzej jest gdy się chce mieć wszystko w jednym <br /><br />Moim zdaniem to najpierw opanuj dobrze komunikację ASCII ... jak ten etap zakończysz, wtedy weź się za czystą komunikację binarną ... <br /><br />zapewniam cię, że wtedy dopiero wiele ci się wyjaśni i nie będziesz się dziwił dlaczego tak a nie inaczej działa Comport i dlaczego wysyłając binarnie dostajesz dane pakietami.<br /><br />Poza tym tak jak wyżej radził kolega rskup - jak już chcesz binarkę to nie będziesz miał ANI początku ANI końca danych, więc czy tego chcesz czy nie musisz się zdecydować albo na ramki stałej długości albo na ramki dowolnej długości ale do tego jakiś system ich formatowania i analizy wg tego co przylatuje na początku ramki ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 lis 2017, o 14:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Artur_26]]></name></author>
<updated>2017-11-05T14:41:20+01:00</updated>
<published>2017-11-05T14:41:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198344#p198344</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198344#p198344"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198344#p198344"><![CDATA[
Witam,<br />dziękuję za odpowiedzi <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Mirku za poradnik już się zabieram, dzięki<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Pani autor - nie słyszałeś o zakańczaniu stringów ENTEREM ?<br /></div><br /><br />Tak słyszałem, osobiście używam ten sposób przy komunikacji uC z PC, lub chociażby komunikując się z modułem GSM.<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />... a wraz z Comportem masz komponent Datapacket który się z nim łączy ...<br /></div><br /><br />no właśnie w pierwszym poście pisałem, że jeśli to możliwe to nie chciałbym korzystać z Datapacket .<br /><br />I również uważam, że użycie Timerów do tego celu jest nieporozumieniem, stąd mój post.<br /><br />Chodzi mi mi o to aby poprawić sobie działanie terminala, który kiedyś napisałem. <br />Dlatego wspominałem, że chodzi o odbieranie danych, które nie mają ani początku ramki ani końca ramki lub samego końca, po prostu lecą jakieś dane i te dane chcę wyświetlać w oknie, ale te dane mogą mieć raz długość 40 bajtów raz 2 bajty raz 150 bajtów, no jak to dane odbierane przez terminal, i chciałbym aby te &quot;dane&quot; (paczki) nie mające wyraźnego początku i końca wyświetlały się tak jak przedstawiłem na 3 fotce.  <br />Czyli chciałbym w jakiś sposób badać, że została odebrana nowa porcja danych<br /><br />No i  w sumie w pierwszym poście nie precyzyjnie wyjaśniłem o jakiego rodzaju dane chodzi, napisałem o stringach jako dane przykładowe <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />mój błąd w tłumaczeniu problemu. SORKI. Również chodzi o dane przesyłanie binarnie, które również wyświetlam w terminalu w postaci HEX<br /><br />Poniżej przedstawiam przykłady co na razie udało mi się uzyskać wykorzystując TIMER ale jak wspominałem nie zawsze to działa jak chce:((<br /> <br /><a href="https://obrazkiforum.atnel.pl/4513/5f5865933969167e9a4913b62ad3ac44.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4513/5f5865933969167e9a4913b62ad3ac44.jpg" alt="Obrazek" /></a><br /><br />w pierwszej linii znaki w postaci HEX<br /><br />w pozostałych przedstawione jako ASCII tuż pod ASCII to samo tylko w HEX<br />no i jak widać jakoś to działa ale nie zawsze <br />dlatego szukam jakiegoś rozwiązania aby rozróżniać porcje danych dowolnych danych o dowolnych rozmiarach i o nie określonym wyglądzie ramki<br /><br />Jej mam nadzieję, że teraz trochę jaśniej.<br /><br />Generalnie efektem końcowym ma być terminal  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />Wybaczcie proszę jeśli znów nie przekazałem zrozumiale o co mi chodzi:)<br /><br />Pozdrawiam serdecznie i jeszcze raz proszę o analizę tematu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4513">Artur_26</a> — 5 lis 2017, o 14:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-11-05T12:52:26+01:00</updated>
<published>2017-11-05T12:52:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198341#p198341</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198341#p198341"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198341#p198341"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />nie zerem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> nie zerem ... tego się nie robi a znaków NULL w ogóle się nie przesyła zazwyczaj poza binarką, no ale oczywiście racja że stringi zwykle się kończy<br /><br />Pani autor - nie słyszałeś o zakańczaniu stringów ENTEREM ?<br /></div><br />No tak <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Ja chyba zawsze używam binarnych protokołów, więc zero jest dla mnie normalnym znakiem do przesyłania.<br />Ale przy takim zwykłym rozwiązaniu znak ENTERa jest najbardziej oczywisty.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 5 lis 2017, o 12:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-05T12:37:53+01:00</updated>
<published>2017-11-05T12:37:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198339#p198339</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198339#p198339"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198339#p198339"><![CDATA[
<div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />A nie możesz tego stringa wysyłać jako string w sensie języka C, czyli z &quot;zakończeniem&quot; go zerem?<br /></div><br /><br />nie zerem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> nie zerem ... tego się nie robi a znaków NULL w ogóle się nie przesyła zazwyczaj poza binarką, no ale oczywiście racja że stringi zwykle się kończy<br /><br />Pani autor - nie słyszałeś o zakańczaniu stringów ENTEREM ?<br /><br />Zobacz jak mówiłem mój poradnik do Delphi gdzie pokazuję przecież pełną komunikację opartą o stringi ... a wraz z Comportem masz komponent Datapacket który się z nim łączy ... i tam ustawia początek i albo ew tylko koniec ramki, no ale ciężko tu opisywać wszystko co zostało pokazane w poradniku i to bardzo jasno prosto i przejrzyście<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 lis 2017, o 12:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-11-05T12:31:19+01:00</updated>
<published>2017-11-05T12:31:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198337#p198337</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198337#p198337"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198337#p198337"><![CDATA[
A nie możesz tego stringa wysyłać jako string w sensie języka C, czyli z &quot;zakończeniem&quot; go zerem?<br />Wtedy czekasz na to zakończenie i go całego wyświetlasz <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 5 lis 2017, o 12:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-05T12:19:22+01:00</updated>
<published>2017-11-05T12:19:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198334#p198334</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198334#p198334"/>
<title type="html"><![CDATA[Re: ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198334#p198334"><![CDATA[
Proponuję obejrzeć mój poradnik o tym komponencie i zobaczyć jak się go obsługuje - bo w tym zdarzeniu tak zawsze będzie - a próba używania do tego timerów to niestety nieporozumienie totalne<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 lis 2017, o 12:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Artur_26]]></name></author>
<updated>2017-11-05T10:52:27+01:00</updated>
<published>2017-11-05T10:52:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198331#p198331</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198331#p198331"/>
<title type="html"><![CDATA[ComPort - odbieranie długich stringów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19539&amp;p=198331#p198331"><![CDATA[
Witam,<br />Panowie mam pytanie co do sposobu odbioru danych przez użycie zdarzenia onRxChar w komponencie <strong>ComPort</strong>.<br /><br />Mianowicie w tym zdarzeniu odbieram dane i dla przykładu chcę je wyświetlić w MEMO.  Dla przykładu wysyłam taki ciąg znaków : <strong>0123456789ABCDEFGHIJKLMNOPRSTUWXYZ</strong><br /><br />No więc moim zamiarem jest aby w MEMO wyświetlić dokładnie taki ciąg znaków jak wysłałem. Ale w MEMO nie ma wyświetlonych danych w jednym ciągu tylko jest podzielony na kilka linii, <br />co świadczy o tym, że zdarzenie onRxChar wykonało się kilka razy. Więc dopisałem sobie do wyświetlanych danych ilość odebranych znaków i otrzymałem taki efekt:<br /><a href="https://obrazkiforum.atnel.pl/4513/17b8e96ac46ace175ca7e070bfb8995c.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4513/17b8e96ac46ace175ca7e070bfb8995c.jpg" alt="Obrazek" /></a><br /><br />No dobra skoro tak działa to zdarzenie to zrobiłem taki o to test: dołożyłem sobie Timer, którym odliczam czas (teoretycznie) nieco dłuższy od czasu który jest potrzebny do wysłania jednego bajtu przez RS232 (uwzględniam tutaj całą długość ramki czyli bit startu stopu itd).<br />Czyli to działa tak<br />1. Przychodzą dane, wywołuję się onRxChar <br />2. Wyłączam i włączam Timer.<br />3. Odczytuję dane i dodaję je zmiennej string<br />4. Jeśli w czasie odmierzania czasu przez Timer znów wywoła się onRxChar to powtarzają sie punkty 1 do 3<br />5. Jeśli w czasie odmierzania czasu przez Timer nie wywoła się  onRxChar, to Timer odmierza czas do końca i wywołuję się obsługa zdarzenia onTimer<br />6. W zdarzeniu onTimer zatrzymywany jest Timer i wyświetlany cały odebrany string co widać poniżej:<br /><a href="https://obrazkiforum.atnel.pl/4513/9681874a3b1f47969258e0e7b761e065.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4513/9681874a3b1f47969258e0e7b761e065.jpg" alt="Obrazek" /></a><br /><br />No ale to nie jest jakieś eleganckie rozwiązanie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Wiadomo że czas odmierzany przez Timer nie jest dokładnie taki jaki zadaliśmy. Wystarczy, że komp zacznie robić coś innego i te czasy się wydłużają no i wtedy całe działanie programu z takim rozwiązaniem w łeb bierze:( bo jak dane będą nadchodzić stosunkowo często ale z odstępami na tyle długimi czyli dłuższymi niż czas trwania wysyłania &quot;jednego bajtu&quot; to się te dane połączą.<br /><br />tu przedstawiam kod testowy:<br />[syntax=delphi]unit Unit1;<br /><br />interface<br /><br />uses<br />  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,<br />  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, CPort, Vcl.ExtCtrls;<br /><br />type<br />  TForm1 = class(TForm)<br />    cPort1: TComPort;<br />    Memo1: TMemo;<br />    Button1: TButton;<br />    Edit1: TEdit;<br />    Button2: TButton;<br />    Timer1: TTimer;<br />    procedure FormCreate(Sender: TObject);<br />    procedure Button1Click(Sender: TObject);<br />    procedure cPort1RxChar(Sender: TObject; Count: Integer);<br />    procedure Button2Click(Sender: TObject);<br />    procedure Timer1Timer(Sender: TObject);<br />  private<br />    { Private declarations }<br />  public<br />    { Public declarations }<br />  end;<br /><br />var<br />  Form1: TForm1;<br /><br />implementation<br /><br />{$R *.dfm}<br /><br />var<br />  str : string;<br /><br />procedure TForm1.Button1Click(Sender: TObject);<br />begin<br />  if cPort1.Connected then<br />    cPort1.WriteStr(Edit1.Text);<br />end;<br /><br />procedure TForm1.Button2Click(Sender: TObject);<br />begin<br />  Memo1.Clear;<br />end;<br /><br />procedure TForm1.cPort1RxChar(Sender: TObject; Count: Integer);<br />var<br />  dane : string;<br />begin<br />  if cPort1.Connected then<br />   begin<br />     Timer1.Enabled := False;    // wyłączenie timera<br />     Timer1.Enabled := True;     // włączenie timera - jeśli po odliczeniu czasu nie nadejdzie już zadna dana to<br />                                 // w obsludze onTimer dopiero następuje wyświetlenie wcześniej odebranych danych<br />     cPort1.ReadStr(dane, Count);<br />     str := str + dane;<br />     //cPort1.ReadStr(str, Count);<br />     //Memo1.Lines.Add(str + '   ' + 'Count= ' + IntToStr(Count));<br />   end;<br />end;<br /><br />procedure TForm1.FormCreate(Sender: TObject);<br />begin<br />  cPort1.Open;<br />  Memo1.Clear;<br />end;<br /><br />procedure TForm1.Timer1Timer(Sender: TObject);<br />begin<br />  Timer1.Enabled := False; // zatrzymanie Timera<br />  Memo1.Lines.Add(str);    // wyświetlenie danych<br />  str := '';<br />end;<br /><br />end.[/syntax]<br /><br />Mam nadzieję, że w miarę jasno przedstawiłem o co mi chodzi.<br /><br />Pytanie takie: czy znacie sposób aby za pomocą tego komponentu ComPort zrobić tak aby po odebraniu np 40 bajtów w jakimś zdarzeniu można było odebrać na raz 40 bajtów, <br />czyli uzyskać taki efekt jak z tym Timerem.<br />Nie chodzi mi o to aby wykorzystywać DataPacket ponieważ nadchodzące dane nie będą w postaci ściśle określonych ramek, w których jest konkretny początek i koniec lub tylko sam koniec.<br /><br />Chcę to wykorzystać do własnego terminala, tak aby nie zależnie od tego ile by nie przyszło danych, była rozróżniana &quot;jedna porcja&quot; tak aby można było ją wyświetlić tak tu:<br /><a href="https://obrazkiforum.atnel.pl/4513/c28f6ff2c97440b50f492abba32dd7e0.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4513/c28f6ff2c97440b50f492abba32dd7e0.jpg" alt="Obrazek" /></a><br /><br />Obecnie mam wykorzystany sposób z Timerem ale jak dane lecą stosunkowo szybko to nie zdaje do końca egzaminu:( choć częściowo cel został osiągnięty.<br />Z góry dzięki za wszystkie sugestie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4513">Artur_26</a> — 5 lis 2017, o 10:52</p><hr />
]]></content>
</entry>
</feed>