<?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=19757&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-05-30T14:49:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=66&amp;t=19757&amp;mode</id>
<entry>
<author><name><![CDATA[ELEKTRON105]]></name></author>
<updated>2018-05-30T14:49:51+01:00</updated>
<published>2018-05-30T14:49:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19757&amp;p=208460#p208460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19757&amp;p=208460#p208460"/>
<title type="html"><![CDATA[Re: Problem z zawieszaniem się odbioru danych przez COM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19757&amp;p=208460#p208460"><![CDATA[
Nie wiem czy ci to coś pomoże ale już raz ktoś miał taki podobny problem i podpowiedziałem żeby zgodnie z tym co Mirek w jednym z filmików mówi ustawić w komporcie w ustawieniach jeden parametr na zero bo inaczej komport przestaje po pewnym czasie działać.Sorki że nie mogę teraz sprecyzować o jakie ustawienie chodzi ale nie mam komputera przed sobą . Mogę wieczorem ci podpowiedzieć. O jakie ustawienie chodzi.<br /><br /><br />Ok już piszę  o co mi chodziło mianowicie o to żeby w ustawieniach komport TIME OUT ustawić na zero.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2242">ELEKTRON105</a> — 30 maja 2018, o 14:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomekTomek55]]></name></author>
<updated>2018-05-30T10:33:41+01:00</updated>
<published>2018-05-30T10:33:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19757&amp;p=208445#p208445</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19757&amp;p=208445#p208445"/>
<title type="html"><![CDATA[Re: Problem z zawieszaniem się odbioru danych przez COM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19757&amp;p=208445#p208445"><![CDATA[
Daj mi na PW cały kod z Unita w notatniku wklejony to popatrzę jak to wygląda<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4629">TomekTomek55</a> — 30 maja 2018, o 10:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[faber33]]></name></author>
<updated>2017-12-06T20:02:22+01:00</updated>
<published>2017-12-06T20:02:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19757&amp;p=200113#p200113</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19757&amp;p=200113#p200113"/>
<title type="html"><![CDATA[Problem z zawieszaniem się odbioru danych przez COM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19757&amp;p=200113#p200113"><![CDATA[
Witam. Taka sytuacja dziwna wynikła (wcześniej tego jakoś nie zauważyłem). <br /><br />W Delphi używam jak w poradnikach Mirka: <strong>comport, ComDataPacket i MkUsbDetector.</strong><br /><br />Mianowicie wysyłałam sobie do PC przez FT232 z atmegi dane w postaci stringów coś takiego --&gt; wartość1,wartość2\r\n czyli np. <br /><br />znak,15<br />liczba,25132<br />kod,1<br />wartosc,128<br /><br />Okres wysyłania tych stringów jest różny tzn. kolejność wysyłania nie jest stała  (najlepiej zobaczyć -&gt; zrzut z konsoli):<br /><br />znak,15<br />liczba,25132<br />kod,1<br />wartosc,128<br />znak,15<br />liczba,25132<br />kod,1<br />wartosc,128<br />liczba,25132<br />znak,15<br />wartosc,128<br />kod,1<br />liczba,25132<br />znak,15<br />wartosc,128<br />kod,1<br /><br />To przecież nie powinno mieć żadnego znaczenia bo i tak ComDataPacket analizuje linia po linii, a sytuacja jest taka że niby dane są odbierane prawidłowo, ale z czasem jakby się program w delphi gubił i przestaje odbierać te dane. Podłączony moduł nie przestaje nadawać bo w putty dane cały czas śmigają bez zwiechy nie zauważyłem też żadnych przekłamań <br /><br />W ComDataPacket mam tak napisane w zdarzeniu odbiorczym &quot;OnPacket&quot;, czyli mam podgląd w Memo1 na odbierane dane i tak jak pisałem wyżej co jakiś czas (różnie to jest, tutaj jakiejś zależności czasowej niema) przestaje dodawać nowe linie do Memo i aktualizować te odbierane wartości. Tak jakby się to zdarzenie wieszało  <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" /> <br /><br />Jak wyłączę i włączę ponowni aplikacje to znowu działa jakiś czas dobrze.<br /><br />PS. Próbowałem zmieniać prędkość transmisji od 9600 do 115200 zero poprawy. Kwarc mam przyjazny czyli 14 745 600 Hz<br /><br />Ma ktoś jakiś pomysł gdzie leży błąd  <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br /><br />[syntax=delphi]procedure TForm1.ComDataPacket1Packet(Sender: TObject; const Str: string);<br />var<br />  buf : String;<br />  tab: TArray&lt;String&gt;;<br /><br />begin<br /><br />  buf := Trim( Str );<br />  Memo1.Lines.Add( buf );<br />  tab := buf.Split( &#91; ',' &#93; );<br /><br />  //jeśli przyszły dane z modułu<br />  if CompareStr(tab&#91;0&#93;,'znak') = 0 then<br />  begin<br />   Panel1.Caption := tab&#91;1&#93;;<br />  end else<br />  if CompareStr(tab&#91;0&#93;,'liczba') = 0 then<br />  begin<br />   Panel2.Caption := tab&#91;1&#93;;<br />  end else<br />  if CompareStr(tab&#91;0&#93;,'kod') = 0 then<br />  begin<br />   Panel3.Caption := tab&#91;1&#93;;<br />  end else<br />  if CompareStr(tab&#91;0&#93;,'wartosc') = 0 then<br />  begin<br />   Panel4.Caption := tab&#91;1&#93;;<br />  end;<br />end;[/syntax]<br /><br />PS.<br />Edit:<br /><br />Zmieniłem żeby co powiedzmy 500ms dane z atmegi wysyłały się dokładnie w takiej kolejności jak wyżej czyli np.<br /><br />znak,15<br />liczba,25132<br />kod,1<br />wartosc,128<br /><br />Ale efekt jest taki sam ... kilka razy takie &quot;pakiet&quot; przejdzie i następuje zwiecha  <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /><br /><br />-- wczoraj, o 20:02 --<br /><br />Dopisałem jeszcze tej procedury taki &quot;else&quot;<br /><br />[syntax=delphi]else<br />  begin<br />      StatusBar1.Panels&#91;3&#93;.Text := 'STOP!';<br />  end;[/syntax]<br /><br />Czyli powinno to wyłapać jeśli przyjdzie string nie spełniając żadnego z warunków ... ale przy zawieszeniu dalej się ten else nie wykonuje ... czy wynika że nie w tym problem że przychodzą złe dane  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ... Ma ktoś pomysł jak temu zawieszaniu zaradzić ?<br /><br />Próbowałem też ze zdarzeniem cPortu OnError i OnBreak żeby wyświetliło na statusbarze ale też bez efektu, czyli tu też błędu nie wywala :/ Wygląda na to że port jest ciągle otwarty i się błędy nie pojawiają tylko w ComDataPacket coś się chrzani :/<br /><br />PS. Zauważyłem że po tym błędzie dioda sygnalizująca nadawanie przy FT232 przestaje migać, czyli przestaje wysyłać bo ComDataPacket go olewa ?<br /><br />Za to nadawanie działa cały czas nawet gdy przestaje odbierać i dane do modułu z atmegą przychodzą na 100% poprawnie ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=976">faber33</a> — 6 gru 2017, o 20:02</p><hr />
]]></content>
</entry>
</feed>