Victor 串口 VCL 控件,版本 1.5.0.1 for C++ Builder XE2/XE/2010
C++爱好者: http://www.cppfans.com/
【软件简介】
简单实用, 功能强大的 C++ Builder 串口控件!
本控件是免费的, 不需要注册, 有关授权及许可协议详见 license.txt 文件。
1.支持二进制数据和文本数据的收发
2.支持任意格式的数据的收发
3.支持两种数据包协议(识别每帧数据首尾的方法):
①超时判断数据首尾, 适用于与单片机和仪表的通讯
②帧首尾和控制符, 适用于大量复杂的数据传输, 例如文件收发等
【控件特点】
1.完全由 C++ 代码写的, 支持简体中文, 繁体中文, 英文.
2.免费控件, 在主页上可提供示例程序和使用方法
3.免费升级, 如果控件版本升级, 在直接主页上下载新版本控件
使用简单:
用 控件->Active=true; 打开串口
控件->Read()读, 控件->Write()写.
可以处理控件的事件, 但不是必须的.
【控件安装方法】
1.C++ Builder 2010: 打开 Source\C2010\VictorComm.groupproj 工程组;
C++ Builder XE: 打开 Source\CXE\VictorComm.groupproj 工程组。
C++ Builder XE2: 打开 Source\CXE2\VictorComm.groupproj 工程组。
2.编译所有工程,即选择菜单 Project -- Build All Projects
默认情况下,C++ Builder 编译生成的控件放在了以下文件夹里面:
Windows XP:
*.bpl
C:\Documents and Settings\All Users\Documents\RAD Studio\版本\BPL
*.lib, *.bpi
C:\Documents and Settings\All Users\Documents\RAD Studio\版本\DCP
Windows Vista / Windows 7:
*.bpl
C:\Users\Public\Documents\RAD Studio\版本\BPL
*.lib, *.bpi
C:\Users\Public\Documents\RAD Studio\版本\DCP
在某些软件里面,Documents文件夹名称会显示为不同的本地语言
3.安装编译生成的 VictorCommDesign.bpl 设计期控件包
选择菜单 Component -- Install Packages
在打开的对话框里面,点击中间的“Add”按钮,
找到刚才编译的 VictorCommDesign.bpl 确定。
4.如果编译生成的控件不在默认文件夹里面,需要在操作系统的环境变量PATH里面
添加 *.bpl 文件所在的文件夹。
【控件使用注意事项】
在使用上,需要添加 .h 和 .lib 的路径:
选择 C++ Builder 菜单: Project->Options->Directories/Conditionals
首先 Build Configuration 选择 Base
然后 Include Path 和 Library Path 都要添上安装路径(包含*.h和*.lib的文件夹)
①Include Path 右面的“…”按钮,添加包含控件*.h文件的文件夹
②Library Path 右面的“…”按钮,添加包含控件*.lib,*.dfm文件的文件夹
【简单应用】
打开串口:
try
{
YbCommDevice1->Active = true;
}
catch(Exception &e)
{
Application->MessageBox(e.Message.w_str(),"错误信息",MB_OK|MB_ICONSTOP);
}
写数据
YbCommDevice1->Write(任意数据的地址,字节数);
例如
int i=5;
YbCommDevice1->Write(&i,sizeof(int));
AnsiString s = "abc";
YbCommDevice1->Write(s.c_str(), s.Length());
读数据
实际读出字节数 = YbCommDevice1->Read(任意缓存地址,缓存容量);
【新功能:识别完整的数据帧】
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
YbCommDevice1->Active = true; //打开串口
YbCommDevice1->PackageType = cptFrameTimeout; //使用超时的方法识别每帧数据
YbCommDevice1->UsePackage = true; //启动 Package
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char Buf[3];
Buf[0] = 0x99;
Buf[1] = 0x1b;
Buf[2] = 0x0d;
YbCommDevice1->WritePackage(Buf,3); //发送3个字节: 99 1B 0D
}
//---------------------------------------------------------------------------
void __fastcall TForm1::YbCommDevice1Package(TObject *Sender, int NotifyType)
{
unsigned char Buf[1000]; //接收缓存
int n = YbCommDevice1->ReadPackage(Buf,1000);
if(n>0) //收到数据的字节数
{
UnicodeString s;
for(int i=0; i<n; i++)
s += IntToHex(Buf[i],2) + " ";
Memo1->Lines->Add(s); //在 Memo1 里显示出收到的数据, 将会是完整的一帧数据
}
}
//---------------------------------------------------------------------------
谢谢您对Victor串口控件的支持!
欢迎到我的网站上讨论串口控件的问题!
---- Victor Chen
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论













收起资源包目录





































































































共 185 条
- 1
- 2
资源评论

- 爱游泳的猫2018-01-22感谢分享。。。。。。
- skolar2014-05-22可以使用,谢谢

perter11t
- 粉丝: 2
- 资源: 10
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
