User: alciro    User
 Original    Translate to:  Deutsch  English  Français  中文  
 

Programación en C++ Builder

 数组 (数组)
 指针
3. 例如在C + +类
8. AnsiString类型类的方法
 C + +项目
 包,分发的应用程序,无需安装
 交换或冒泡排序
 String.h 字符串函数

9.1. RS232通信的例子

RS232通信单元

 //------------------------------------------------ ---------------------------
#包括 
的#pragma hdrstop

#包括“RS232Unit.h”
//------------------------------------------------ ---------------------------
的#pragma包(smart_init)
的#pragma链接“通信”
资源的#pragma“*. DFM的”
TForm1 * Form1的;
//------------------------------------------------ ---------------------------
__fastcall TForm1::TForm1(TComponent *拥有者)
    :TForm(业主)
{

}
//------------------------------------------------ ---------------------------

无效__fastcall TForm1::FormCreate(TObject *发件人)
{
/ /设置默认的通信
    ComboBox1 -> ItemIndex = br9600; / /比特每秒
/ * 0:br110
        1:BR300
        2:br600
        3:br1200
        4:br2400
        5:br4800
        6:br9600
        7:br14400
        8:br19200
        9:br38400
        10:br56000
        11:br57600
        12:br115200 * /
    ComboBox2 -> ItemIndex = DA8 / /数据位
/ * 0:da4
        1:Qa5
        2:DA6
        3:DA7
        4:DA8 * /
    ComboBox3 -> ItemIndex = Panone / /校验
/ * 0:Panone
        1:paOdd(麻痹)
        2:paEven(单数)
        3:paMark(品牌)
        4:PASPAC(空间)* /
    ComboBox4 -> ItemIndex = SB10; / /停止位
/ * 0:SB10
        1:保安局15
        2:SB20 * /
    ComboBox5 -> ItemIndex = fcNone / /流量控制
/ * 0:fcNone
        1:fcCTS
        2:fcDTR
        3:fcSottware
        4:fcDefault * /
    ComboBox6 -> ItemIndex = 0,/ /端口
}
//------------------------------------------------ ---------------------------

 / /绿色复关开clLime clGreen
 / /蓝色复关开0x00FF8000 0x00804000

无效__fastcall TForm1::Comm1RxChar(TObject *发件人,DWORD的计数)
{
诠释的状态;
诠释NumRec;
逸弦;
BufRec的char [101];

Shape3 ->刷>“颜色= clLime;

NumRec = comm1 -> InQueCount(),/ /接收的字符数
状态= comm1 ->阅读(BufRec,计数)/ /读取缓冲区
如果(国家==- 1)
    {
    ShowMessage(“错误在接受”);
    }
其他
    {
    为(int n = 0时,氮<NumRec,氮+ +)
        {
	如果(!CheckBox1 ->选中)    
	    {
            逸=逸+ IntToStr(BufRec [ŋ ])+',';
            }
        其他
            {
            逸逸+ BufRec = [n]的;
            }
        }
    Edit2 ->“文本= Edit2 ->”文本+逸;
    }
Shape2 ->刷>“颜色= 0x00FF8000;
定时器1 ->启用=真;
}
//------------------------------------------------ ---------------------------

 无效TForm1::EstadoLineas()
{
如果(comm1 ->中旅)
    {
    Shape8 ->刷>“颜色= 0x00FF8000;
    }
其他
    {
    Shape8 ->刷>“颜色= 0x00804000;
    }
如果(comm1 -> DSR)的
    {
    Shape6 ->刷>“颜色= 0x00FF8000;
    }
其他
    {
    Shape6 ->刷>“颜色= 0x00804000;
    }
如果(comm1 ->环)
    {
    Shape9 ->刷>“颜色= 0x00FF8000;
    }
其他
    {
    Shape9 ->刷>“颜色= 0x00804000;
    }
如果(comm1 ->资料摘要)
    {
    Shape1 ->刷>“颜色= 0x00FF8000;
    }
其他
    {
    Shape1 ->刷>“颜色= 0x00804000;
    }
}
//------------------------------------------------ ---------------------------

无效__fastcall TForm1::Comm1Cts(TObject *发件人)
{
/ /检查的CTS和DSR线的状态
EstadoLineas();
}
//------------------------------------------------ ---------------------------

无效__fastcall TForm1::Comm1Dsr(TObject *发件人)
{
/ /检查的CTS和DSR线的状态
EstadoLineas();
}
//------------------------------------------------ ---------------------------

无效__fastcall TForm1::BitBtn1Click(TObject *发件人)
{
如果(!comm1 ->启用())
    {
    / /设置参数
    Comm1 ->的DeviceName = ComboBox6 ->项目->“字符串[ComboBox6 -> ItemIndex] / /端口
    Comm1 ->波特率= ComboBox1 -> ItemIndex,/ /位每秒
    Comm1 ->数据位= ComboBox2 -> ItemIndex / /数据位
    Comm1 ->平价= ComboBox3 -> ItemIndex / /校验
    Comm1 -> StopBits = ComboBox4 -> ItemIndex / /停止位
    Comm1 -> FlowControl = ComboBox5 -> ItemIndex / /流量控制
    / /打开通讯端口
    Comm1 ->“打开();
    Comm1 -> SetRTSState(真实)/ /启用RTS
    Shape7 ->刷>“颜色= clLime;
    Comm1 -> SetDTRState(真实)/ /允许DTR线
    Shape4 ->刷>“颜色= clLime;
    / /切换打开端口的状态指示灯
    Label7 ->标题=“打开端口”;
    Shape10 ->刷>“颜色= clLime;
    / /检查的CTS和DSR线的状态
    EstadoLineas();
    }
}
//------------------------------------------------ ---------------------------

无效__fastcall TForm1::BitBtn2Click(TObject *发件人)
{
如果(comm1 ->启用())
    {
    / /关闭通讯端口
    Comm1 ->“关闭();
    / /切换打开端口的状态指示灯
    Label7 ->标题=“口关闭”;
    Shape10 ->刷>“颜色= clRed;
    Shape7 ->刷>“颜色= clGreen;
    Shape4 ->刷>“颜色= clGreen;
    / /检查的CTS和DSR线的状态
    EstadoLineas();
    }    
}
//------------------------------------------------ ---------------------------


无效__fastcall TForm1::BitBtn4Click(TObject *发件人)
{
    Edit2 ->“文本=”“;    
}
//------------------------------------------------ ---------------------------

无效__fastcall TForm1::BitBtn3Click(TObject *发件人)
{
    Edit1 ->“文本=”“;    
}
//------------------------------------------------ ---------------------------

无效__fastcall TForm1::Comm1Ring(TObject *发件人)
{
/ /检查的CTS和DSR线的状态
EstadoLineas();
}
//------------------------------------------------ ---------------------------

无效__fastcall TForm1::Comm1Rlsd(TObject *发件人)
{
/ /检查的CTS和DSR线的状态
EstadoLineas();
}
//------------------------------------------------ ---------------------------


无效__fastcall TForm1::Edit1KeyPress(TObject *发件人,焦炭及密钥)
{
字符的DAT [2];

逸[0] =键;
Comm1 ->写体(DAT,1);

Shape3 ->刷>“颜色= clLime;
定时器2 ->启用=真;

}
//------------------------------------------------ ---------------------------



无效__fastcall TForm1::Timer1Timer(TObject *发件人)
{
定时器1 ->启用= 0;
Shape2 ->刷>“颜色= 0x00804000;
}
//------------------------------------------------ ---------------------------

无效__fastcall TForm1::Timer2Timer(TObject *发件人)
{
定时器2 ->启用= 0;
Shape3 ->刷>“颜色= clGreen;
}
//------------------------------------------------ --------------------------- 

例如测试程序的RS - 232通信
Loading
copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |