如何制作脚踏开关 (四个按钮)
来源:互联网 发布:放生知乎 编辑:程序博客网 时间:2024/04/28 17:11
利用RS232的DTR(4脚,输出)、DSR(6脚,输入)和CTS(8脚,输入)
注:这里还可以用RTS(7脚)来代替DTR,而作为输入的还可以用DCD(1脚,输入)和Ring(9脚,输入)
下面的例子运行后,用一导线短接4脚和1脚、4脚和6脚、4脚和8脚、4脚和9脚。
VB脚本:
Option Explicit
Private Sub Form_Load()
MSComm1.PortOpen = True
MSComm1.DTREnable = True
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvCD ' Change in the CD line.
Debug.Print "CD"
Case comEvCTS ' Change in the CTS line.
Debug.Print "CTS"
Case comEvDSR ' Change in the DSR line.
Debug.Print "DSR"
Case comEvRing ' Change in the Ring Indicator.
Debug.Print "Ring"
End Select
End Sub
Private Sub Form_Load()
MSComm1.PortOpen = True
MSComm1.DTREnable = True
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvCD ' Change in the CD line.
Debug.Print "CD"
Case comEvCTS ' Change in the CTS line.
Debug.Print "CTS"
Case comEvDSR ' Change in the DSR line.
Debug.Print "DSR"
Case comEvRing ' Change in the Ring Indicator.
Debug.Print "Ring"
End Select
End Sub
C++脚本:(用的victor 控件)
AnsiString __fastcall Victor_CommDevice::CommDeviceCommNotify(int SBtn, bool Test)
{
//动态结构体赋值
stcom->CTS = CurCommDevice->CTS;
stcom->DCD = CurCommDevice->DCD;
stcom->DSR = CurCommDevice->DSR;
stcom->Ring = CurCommDevice->Ring;
if ((stcom->CTS || stcom->DCD || stcom->DSR || stcom->Ring) && !down)
{ //每次按下只处理一次事件
down = true;
try
{
if (SBtn == 1)
{
ComFlag = "CTS+DCD+DSR+RLSD";
Process();
}
else if (SBtn > 1)
{
if (stcom->CTS)
{
ComFlag = "CTS";
CTS_Process();
}
if (stcom->DCD)
{
ComFlag = "DCD";
DCD_Process();
}
if (stcom->DSR)
{
ComFlag = "DSR";
DSR_Process();
}
if (stcom->Ring)
{
ComFlag = "Ring";
RLSD_Process();
}
if(Test)
{
return ComFlag;
}
}
}
catch (Exception& e)
{
PMSGDLG->ShowErrorMsg("无法指定的重载函数! 错误原因: " + e.Message);
if(Test)
{
return "";
}
Abort();
}
}
else if (!stcom->CTS && !stcom->DCD && !stcom->DSR && !stcom->Ring)
{ //弹开或者其它自动还原数据
down = false;
if(Test)
{
return "";
}
}
}
{
//动态结构体赋值
stcom->CTS = CurCommDevice->CTS;
stcom->DCD = CurCommDevice->DCD;
stcom->DSR = CurCommDevice->DSR;
stcom->Ring = CurCommDevice->Ring;
if ((stcom->CTS || stcom->DCD || stcom->DSR || stcom->Ring) && !down)
{ //每次按下只处理一次事件
down = true;
try
{
if (SBtn == 1)
{
ComFlag = "CTS+DCD+DSR+RLSD";
Process();
}
else if (SBtn > 1)
{
if (stcom->CTS)
{
ComFlag = "CTS";
CTS_Process();
}
if (stcom->DCD)
{
ComFlag = "DCD";
DCD_Process();
}
if (stcom->DSR)
{
ComFlag = "DSR";
DSR_Process();
}
if (stcom->Ring)
{
ComFlag = "Ring";
RLSD_Process();
}
if(Test)
{
return ComFlag;
}
}
}
catch (Exception& e)
{
PMSGDLG->ShowErrorMsg("无法指定的重载函数! 错误原因: " + e.Message);
if(Test)
{
return "";
}
Abort();
}
}
else if (!stcom->CTS && !stcom->DCD && !stcom->DSR && !stcom->Ring)
{ //弹开或者其它自动还原数据
down = false;
if(Test)
{
return "";
}
}
}
- 如何制作脚踏开关 (四个按钮)
- Unity3d如何制作声音开关按钮
- 在cocos2d里面如何制作按钮:简单按钮、单选按钮和开关按钮
- 5. 在cocos2d里面如何制作按钮:简单按钮、单选按钮和开关按钮
- 在cocos2d里面如何制作按钮:简单按钮、单选按钮和开关按钮
- (译)在cocos2d里面如何制作按钮:简单按钮、单选按钮和开关按钮
- (译)在cocos2d里面如何制作按钮:简单按钮、单选按钮和开关按钮
- 开关按钮
- 开关按钮
- 开关按钮
- 如何制作显示桌面按钮
- 如何制作渐变的按钮
- MFC中如何去掉CPropertySheet界面下方的四个按钮?
- 关于分别使用CSS3和JQ制作IOS7开关按钮的方法
- 如何制作带弹出式菜单的按钮
- 如何制作flash的关闭按钮
- 如何制作一个圆形的按钮
- 如何制作好看的网页按钮
- 维护SqlServer中表的索引
- AJAX中XMLHttpRequest的有效性
- 利用Oracle CRS搭建应用的高可用集群(三)
- Arcgis图层分组
- SqlServer全文搜索中文出错的问题
- 如何制作脚踏开关 (四个按钮)
- C++編譯工具的選擇
- Arcgis Envelope改变
- SqlServer的备份和恢复措施
- tcltk实例详解——列表操作(一)
- 精通系列之入门-基础篇(1)
- Arcgis 画线
- 程序员应具有的素质
- 精通系列之入门-基础篇(2)