CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - TComPort 4 Obsługa błędów

TComPort 4 Obsługa błędów

problemy z funkcjonowaniem bibliotek, komponentów itp.

TComPort 4 Obsługa błędów

Nowy postprzez kozaczok » czwartek, 5 sierpnia 2010, 22:41

Witam!

Mam problem z biblioteka TComPort w wersji 4. Pisze w Borland C++ Builder 6.

Mianowicie w zakladce Events komponentu ComPort jest zdarzenie On Error

Kod: Zaznacz cały
void __fastcall TForm1::ComPortError(TObject *Sender, TComErrors Errors)
{

}


Mianowicie, nie potrafie sie dobrac do argumentu Errors. Z plikow zrodlowych wynika iz jest to typ wyliczeniowy enum.

Chcialbym uzyskac cos takiego:

Kod: Zaznacz cały
if (Errors==cfParity) Memo1->Lines->Add("Blad parity");


Probowalem juz switch , instrukcji warunkowych if i nic mi to nie daje. Bardzo dziekuje za wszelka okazaną pomoc.
Avatar użytkownika
kozaczok
Bladawiec
Bladawiec
 
Posty: 3
Dołączył(a): czwartek, 5 sierpnia 2010, 22:31
Podziękował : 1
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder 6
Gadu Gadu: 0
    Windows VistaOpera

Re: TComPort 4 Obsługa błędów

Nowy postprzez Cyfrowy Baron » piątek, 6 sierpnia 2010, 08:49

Komponent TComPort nie występuje standardowo w zasobach środowiska C++Builder, więc trudno cokolwiek powiedzieć o czymś czego się nie zna.

  • Co to za komponent?
  • Skąd można go pobrać?
  • Czy jest to biblioteka darmowa?
  • Dla jakich wersji występuje?

Jedyny komponent TComPort 4 na jaki się natknąłem jest maksymalnie dla C++Builder 2007 - trochę stary. W pliku pomocy masz jednak przykład obsługi zdarzenia OnError:

KOD delphi:     UKRYJ  
procedure TForm1.ComPortError(Sender: TObject; Errors: TComErrors);
begin
  if ceRxParity in Errors then ShowMessage('Paity error occured');
end;

To kod w Delphi, ale w C++ powinno to wyglądać mniej więcej tak:

KOD cpp:     UKRYJ  
void __fastcall TForm1::ComPortError(TObject *Sender, TComErrors Errors)
{
  if(Errors ==  ceRxParity) ShowMessage('Paity error occured');
}

Nie bardzo rozumiem skąs wziąłeś ten typ wyliczeniowy u siebie, skoro w pliku pomocy masz czarno na białym:


ceFrame -> The hardware detected a framing error.
ceRxParity -> The hardware detected a parity error.
ceOverrun -> A charachter buffer overrun has occured.


The next charachter is lost.

ceBreak -> The hardware detected a break condition.
ceIO -> An I/O error occured during communication with the device.

ceMode -> The requested mode is not supported.
ceRxOver -> An input buffer overflow has occured.
ceTxFull -> The output buffer is full
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: TComPort 4 Obsługa błędów

Nowy postprzez kozaczok » piątek, 6 sierpnia 2010, 13:21

Biblioteka TComPort4 wystepuje dla chyba wszystkich wersji Delphi i Borland C++ Builder od 2007 w dół.
Ja uzywam Borland C++ Builder 6

Biblioteka jest darmowa, do sciagniecia z : http://sourceforge.net/projects/comport/


To kod w Delphi, ale w C++ powinno to wyglądać mniej więcej tak:

Kod: Zaznacz cały
void __fastcall TForm1::ComPortError(TObject *Sender, TComErrors Errors)
{
  if(Errors ==  ceRxParity) ShowMessage('Paity error occured');
}


i tak też robilem. Kompilator wyrzuca mi błąd:
Kod: Zaznacz cały
[C++ Error] Unit1.cpp(73): E2094 'operator==' not implemented in type 'TComErrors' for arguments of type 'TComError'


W zwiazku z tym pytanie brzmi czy jest jakis odpowiednik w C++ tych instrukcji
Kod: Zaznacz cały
  if ceRxParity in Errors then
Avatar użytkownika
kozaczok
Bladawiec
Bladawiec
 
Posty: 3
Dołączył(a): czwartek, 5 sierpnia 2010, 22:31
Podziękował : 1
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder 6
Gadu Gadu: 0
    Windows VistaOpera

Re: TComPort 4 Obsługa błędów

Nowy postprzez polymorphism » piątek, 6 sierpnia 2010, 16:24

Spróbuj tak:
KOD cpp:     UKRYJ  
if(Errors.Contains(ceRxParity))
     ShowMessage('Paity error occured');
 
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
kozaczok
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: TComPort 4 Obsługa błędów

Nowy postprzez kozaczok » piątek, 6 sierpnia 2010, 17:27

Dzięki. Oto wlasnie chodzilo. Temat do zamkniecia.
Avatar użytkownika
kozaczok
Bladawiec
Bladawiec
 
Posty: 3
Dołączył(a): czwartek, 5 sierpnia 2010, 22:31
Podziękował : 1
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder 6
Gadu Gadu: 0
    Windows VistaOpera


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Biblioteki i komponenty

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości

cron