www.pudn.com > wsc4c30.zip > BCB_PGM.CPP


//--------------------------------------------------------------------------- 
#include  
#pragma hdrstop 
 
#define WIN32 
#include "BCB_PGM.h" 
#include "WSC.H" 
 
//--------------------------------------------------------------------------- 
#pragma resource "*.dfm" 
 
static int ThePort = COM1; 
static int TheBaud = WSC_Baud38400; 
 
//--------------------------------------------------------------------------- 
 TBCB_PGM *BCB_PGM; 
//--------------------------------------------------------------------------- 
__fastcall TBCB_PGM::TBCB_PGM(TComponent* Owner) 
   : TForm(Owner) 
{//TheDC = GetDeviceContext(&WindowHandle); 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::ExitClick(TObject *Sender) 
{ 
 SioDone(ThePort); 
 Close(); 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::TimerTimer(TObject *Sender) 
{int  i, Code; 
 char Ch = '\0'; 
 static int LineCount = 0; 
 AnsiString Text; 
 // gather incoming chars 
 for(i=0;i<128;i++) 
   {Code = SioGetc(ThePort); 
    if(Code<0) break; 
    // got incoming 
    if(i==0) 
      {// fetch current line 
       Text = Memo->Lines->Strings[LineCount]; 
      } 
    // get character, ignoring CR 
    Ch = (char)Code; 
    if(Ch=='\n') break; 
    if(Ch=='\r') continue; 
    // append to current line 
    Text = Text + Ch; 
   } 
 // return now if no incoming 
 if(Ch=='\0') return; 
 // update current line 
 Memo->Lines->Strings[LineCount] = Text; 
 // add a new line if last incoming char was LF 
 if(Ch=='\n') 
   {Memo->Lines->Add(""); 
    LineCount++; 
   } 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::OnLineClick(TObject *Sender) 
{int Code; 
 Code = SioReset(ThePort,2048,1024); 
 if(Code<0) 
   {char Temp[80]; 
    SioWinError((LPSTR)Temp,80); 
    BCB_PGM->Caption = Temp; 
   } 
 else 
   {SioBaud(ThePort,TheBaud); 
    SioDTR(ThePort,'S'); 
    SioRTS(ThePort,'S'); 
    OnLine->Checked = true; 
    OffLine->Checked = false; 
    OnLine->Enabled = false; 
    OffLine->Enabled = true; 
    Port->Enabled = false; 
    Baud->Enabled = false; 
    BCB_PGM->Caption = "BCB_PGM OnLine"; 
   } 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::OffLineClick(TObject *Sender) 
{ 
 SioDone(ThePort); 
 OnLine->Checked = false; 
 OffLine->Checked = true; 
 OnLine->Enabled = true; 
 OffLine->Enabled = false; 
 Port->Enabled = true; 
 Baud->Enabled = true; 
 BCB_PGM->Caption = "BCB_PGM"; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::mCOM1Click(TObject *Sender) 
{ 
 mCOM1->Checked = true; 
 mCOM2->Checked = false; 
 mCOM3->Checked = false; 
 mCOM4->Checked = false; 
 ThePort = COM1; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::mCOM2Click(TObject *Sender) 
{ 
 mCOM1->Checked = false; 
 mCOM2->Checked = true; 
 mCOM3->Checked = false; 
 mCOM4->Checked = false; 
 ThePort = COM2; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::mCOM3Click(TObject *Sender) 
{ 
 mCOM1->Checked = false; 
 mCOM2->Checked = false; 
 mCOM3->Checked = true; 
 mCOM4->Checked = false; 
 ThePort = COM3; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::mCOM4Click(TObject *Sender) 
{ 
 mCOM1->Checked = false; 
 mCOM2->Checked = false; 
 mCOM3->Checked = false; 
 mCOM4->Checked = true; 
 ThePort = COM4; 
} 
//---------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::N9600Click(TObject *Sender) 
{N9600->Checked = true; 
 N19200->Checked = false; 
 N38400->Checked = false; 
 N57600->Checked = false; 
 TheBaud = WSC_Baud9600; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::N19200Click(TObject *Sender) 
{N9600->Checked = false; 
 N19200->Checked = true; 
 N38400->Checked = false; 
 N57600->Checked = false; 
 TheBaud = WSC_Baud19200; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::N38400Click(TObject *Sender) 
{N9600->Checked = false; 
 N19200->Checked = false; 
 N38400->Checked = true; 
 N57600->Checked = false; 
 TheBaud = WSC_Baud38400; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::N57600Click(TObject *Sender) 
{N9600->Checked = false; 
 N19200->Checked = false; 
 N38400->Checked = false; 
 N57600->Checked = true; 
 TheBaud = WSC_Baud57600; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TBCB_PGM::OnKeyPress(TObject *Sender, char &Key) 
{ 
 SioPutc(ThePort, (char)Key ); 
} 
//---------------------------------------------------------------------------