Delphi - zawieszająca się aplikacja , przeciwdziałanie

0

Witam,

Posiadam aplikację wielowątkową w Delphi, odwołującą się do portów COM komputera. Niestety ale od czasu do czasu przy próbie wykonania jakiejś operacji( np. wysłania zmiennej na port) aplikacja totalnie się zawiesza. Nie można wykonać żadnej operacji, użycie procesora w normie, kursorem można ruszać.

Myślę że bardzo ciężko będzie wyszukać w czym tkwi problem ,bo nie ma reguły na ten "zawis". Czy można wykorzystać jakieś mechanizmy delphi , w których można zabezpieczyć operację przed takim zawieszeniem na sztywno? Ostatecznie może być auto restart aplikacji, gdy przestanie odpowiadać.

Dziękuję za podpowiedzi.

0

A może spróbuj za pomocą TComPort?
Nie pamiętam, czy ma możliwość zapisu, ale chyba tak.

0

oj nie...nie mogę, wykorzystuję gotowe biblioteki do obsługi protokołu MODBUS RTU...

0
borewicz_311 napisał(a)

oj nie...nie mogę, wykorzystuję gotowe biblioteki do obsługi protokołu MODBUS RTU...

To może problem leży po ich stronie?

0

trudno powiedzieć, ale można zrobić jakieś uniwersalne zabezpieczenie na całą aplikację że gdy:
przestanie odpowiadać na akcje użytkownika = auto restart

0

Krótko mówiąc musiałbyś napisać jakąś usługę, która będzie się komunikować z aplikacją po TCP/IP. Co jakiś czas wyśle do niej komunikat, aplikacja ma odpowiedzieć. Jeśli nie odpowie w jakimś czasie, to wtedy usługa zabija proces aplikacji i uruchamia ją ponownie. Tak to może z grubsza wyglądać.

0

przyjmujesz ze program zle dziala i tak ma byc i piszesz drugi ktory go restartuje....? czy to aby nie jest troche prymitywne...?
jestes zmuszony do uzycia tych bibliotek? sprobuj uzyc czegos innego. sprobuj wysledzic blad...

0

Jakich komponentów używasz do komunikacji z portem COM ?
Czy może komponenty do Modbus'a mają wbudowaną komunikację po porcie szeregowym ?

Wklej kawałek kodu, bo tak to jest jak wróżenie z fusów [???]

1 użytkowników online, w tym zalogowanych: 0, gości: 1