Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 27 gru 2024, o 10:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 31 paź 2017, o 16:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 gru 2013
Posty: 366
Lokalizacja: Wałbrzych
Pomógł: 7

Witam mam mały problem napisałem sobie terminal rs232 w delphi i zgodnie z poradnikiem 004j chciałem sobie zrobić by nie pokazywał mi się błąd przy odłączeniu przejściówki rs232.
Błąd mam dalej.


W zdarzeniu oncomdetect mam

Składnia: [ Pobierz ] [ Ukryj ]
język delphi
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wyglada jak by za wolno zamykał się port com .

cały program wygląda tak :
Składnia: [ Pobierz ] [ Ukryj ]
język delphi
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Z góry dzięki za pomoc.


a oto błędy
Obrazek


Obrazek

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2017, o 16:39 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

a czy w trakcie rozłączania masz wysyłanie jakichś danych przez COM ? bo jeśli tak to może być właśnie taki problem albo gdy są odbierane

poza tym mówiłem w poradniku, że to nie jest i tak eleganckie rozwiązanie i być może - zdarzy się, że kiedyś nie zadziała

Ja mogę tylko podpowiedzieć, że jestem w trakcie pisania komponentu do komunikacji przez port COM - który będzie działać w 100% normalnie i nie będzie potrzeba takich kocich tricków robić ... jak się przetnie siekierą kabel albo rozłączy FIFI albo Bluetooth to najnormalniej w świecie port się sam rozłączy właściwie a nawet będzie wbudowany mechanizm ;) żeby mógł się automatycznie sam włączyć gdy awaria minie ;) ... no ale to jeszcze trzeba troszkę poczekać

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2017, o 16:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 gru 2013
Posty: 366
Lokalizacja: Wałbrzych
Pomógł: 7

Witam.
Dane nie są wysyłane .

a czy odbierane hmm tego nie wiem . Mam położony komponent ComTerminal może on coś nasłuchuje .

-- 4 minutach --

Fajnie!! Na pewno komponent zakupie . Delfi narazie ma wiele plusów . Co do b4j się trochę sparzyłem. Przez to ze napisać jakiś program by działał na win xp graniczy z cudem .
A tu proszę wrzucam i działa. Fajne są te komponenty takie gotowe jak to okno terminala czy to ze można dodawać nowe komponenty . Super wręcz.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2017, o 19:00 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 166
Pomógł: 0

Ja też zauważyłem podobny problem jak kolega driver0207 (Comport+ComDataPacket+MkUsbbDetector) że port nie zawsze się zamyka port po odłączeniu kabla (właśnie w moim przypadku dane w tym czasie są odbierane przez COM) :/ Także liczymy na pana Panie Mirku i czekamy z niecierpliwością na ten nowy fajniuśki komponent ;)

Edit:
Dzisiaj wyszła kolejna "ciekawa przypadłość". Na początek dodam że MkUsbbDetector w najnowszej wersji tj. 1.6. Sytuacja wygląda tak: Mam jedno urządzenia z FT232 wykrywane pod COM35, z problemami (jak wyżej), ale go wykrywa apka w Delphi. Dzisiaj złożyłem drugi takie samo urządzenie i podłączam do kompa tylko to nowe i wykrywa je jako COM43 (tak jest w Menadrzeże urządzeń i przez Putty na tym porcie jest komunikacja jak należy). Włączam apkę i boom MkUsbbDetector wykrywa i łączy się z portem COM35 czyli ten od "starego urządzenia" chociaż fizycznie go NIEMA! jest tylko ten nowym COM43. Dodam że nie zapamiętuje niczego w plikach INI.

Kawałek kodu:
Składnia: [ Pobierz ] [ Ukryj ]
język delphi
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



PS. teraz dopatrzyłem że miałem wpisany COM35 do cPortu, ale to tak teraz wychodzi że on sobie otwiera ten port zamiast otwierać ten który tego if sprawdzającego pid itd. :/

Obrazek

Nawet jak zostawię to pole Port puste to łączy się z pierwszym portem czyli COM1 :/. Jak się może z nim łączyć skoro nie spełniony jest warunek z if'a więc nie wywołuje procedury StartComPort; ???



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2017, o 19:14 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

Chciałbym pomóc ale sorki - kompletnie nie rozumiem twojego problemu :(

faber33 napisał(a):
Włączam apkę i boom MkUsbbDetector wykrywa i łączy się z portem COM35

kto się łączy ? MkUsbDetector ? a co on ma wspólnego z łączeniem ?

Dla mnie to troszkę namieszałeś z podejściem do wyboru portów COM ... po co ta cała zabawa w CheckCurrentComID; ? Co to ma na celu ?

Ja proponuję może opisz jaki jest twój cel ? co chcesz osiągnąć ? zakładam, że musisz mieć możliwość dostępu do jednej z przejściówek do którejś konkretnej - ok - tylko jak można najpierw startować jakieś połączenie a dopiero później próbować przypisać nowy port

StartComPort;
cominfo.ComPort := prt;
cominfo.ComID := id;

albo czegoś mocno nie rozumiem ....

jak mówię uprość pytanie, sprowadź do prostego problemu a nie tak - bo ciężko pomóc

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2017, o 19:23 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 166
Pomógł: 0

Ok to prościej :D

Założenie jest takie:

Podłączam swoje urządzenie(FT232, który ma swoje PID, VID, Manufacturer i Serial) i teraz potrzebuje żeby apka jeśli "zobaczy" podłączony układ, który ma takie ustawienia:

ComPID_def := 'PID_6001';
ComVID_def := 'VID_0403';
ComManufacturer_def := 'FTDI';
ComSerial_Start := 'A9';

Połączyła się z tym urządzeniem.

Ogólnie rzecz biorąc to chciałbym uzyskać coś takiego jak w mkAVRCalculator czyli żeby apka wiedziała że to jest "moje urządzenie" i tylko z nim się łączyła :)

PS. Rzeczywiście z tym Startowaniem popłynąłem :D ale nic to nie zmieniło bo po podłaczeniu urządzenia i tak łączy się z COM1(jeśli pole "Port" w cPort1 jest puste) :/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2017, o 19:29 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

faber33 napisał(a):
ale nic to nie zmieniło bo po podłaczeniu urządzenia i tak łączy się z COM1 :/

ale nie pisz tak - że nic to nie zmieniło - bo robisz gdzieś okrutnego babola ;)

jednak na początek - daj sobie spokój z tym:
faber33 napisał(a):
i teraz potrzebuje żeby apka jeśli "zobaczy" podłączony układ, który ma takie ustawienia:

ComPID_def := 'PID_6001';
ComVID_def := 'VID_0403';
ComManufacturer_def := 'FTDI';
ComSerial_Start := 'A9';

Połączyła się z tym urządzeniem.


i zostaw sam ComSerial ;) po co ci badanie tych wszystkich dziwactw vid, pid itp itd - jeden serial wystarczy to po pierwsze
a po drugie

przed połączeniem NAJPIERW ROZŁĄCZ się poprawnie bo inaczej NIGDY się poprawnie nie podłączysz

pamiętaj też że proces rozłączania może być procesem asynchronicznym o ile wiesz co to w tym wypadku znaczy

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2017, o 20:08 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 166
Pomógł: 0

Wywaliłem to co zbędne ale dalej się łączy z COM1 :/

Składnia: [ Pobierz ] [ Ukryj ]
język delphi
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2017, o 22:03 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

przecież ja pokazywałem zdaje się w poradniku wideło jak to robić czy nie - bo teraz myślami jestem daleko od tego ... a się zastanawiam co ty w ogóle robisz że ci wciąż na COM1 się łączy ? ;)

poza tym wyjdź z odpalaniem kodu wprost ze zdarzeń MkUsbDetectora - zrób to na początek ręcznie i sprawdź bo ja już nie rozumiem - po co walczyć z MkUsbDetectorem skoro ci ciągle na com1 się łączy

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2017, o 22:52 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 166
Pomógł: 0

Co mogę robić jeszcze innego niby źle ... jak wszystko co tyczy się COM masz wyżej ? Pisałem przecież wyżej że jak wybiorę COM35 tutaj to łączy z nim dobrze

Obrazek

Jak to pole jest puste to po podłączeniu COM35 on się podłącza pod COM1. Mimo że w cominfo.ComPort jest dobrze COM35

Pomogło dopisanie cPort1.Port := cominfo.ComPort; ;) teraz to ma sens

PS. Jakieś postępy z tym nowym komponentem ? Bo pomijając te rzeczy wyżej to dalej jest problem z "traceniem danych" tzn. po jakimś czasie różnie to jest czasem wykłada się na pierwszych stringach a czasem działa dobrze kilka minut ... Tzn traci się odbiór jakby przestawało/zawieszało się parsowanie. I to jest ciekawe że z aplikacji komunikacja dalej działa i dane do urządzenia są wysyłane poprawnie ale w drugą stronę kaplica.

No i ten efekt tzw. uciętego kabla czyli po prostu odłączonego nie zawsze rozłącza COM. I tutaj ciekawa rzecz:

Składnia: [ Pobierz ] [ Ukryj ]
język delphi
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I efekt na Statusbarze1 mam taki:

Obrazek

Według programu FT_Prog Serial jest taki A91IFT5T a zapisało go w cominfo.ComID jako A91LFT5T

Dziwna podmiana i teraz niema co się dziwić że nie rozłącza :/ O co w tym biega ? Bo raz wpisuje do cominfo.ComID przy wykryciu A91IFT5T a raz A91LFT5T a ciągle podłączam przecież to samo urządzenie!

Zmieniłem ten Serial na taki A915FT5T i teraz jest okej ... no ale to nie powinno tak być że on sobie raz wykrywa jako ten z "L" a raz jako ten poprawny z "I". Jakiś babol musi być w MkUsbDetector moim zdaniem ...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2017, o 01:55 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

sprawdź kod ASCII tego znaku .. powinny być cyfry liczby zdaje się a nie jakieś pałki w serialu

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2017, o 17:49 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2590
Pomógł: 128

Btw czasami male L (jak lejek) i duze I (jak Irena) wygladaja tak samo :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO