cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 2119|回复: 5

哪为兄弟会DELPHI,帮忙给该写个串口程序!!写成DLL

[复制链接]
发表于 2006-1-2 21:05:53 | 显示全部楼层 |阅读模式
//---------------------------------------------------------------------------------------//
//函数功能:继电器控制
//参数说明:
//            comport         ——串口号 ;
//            cardID           ——板卡号;
//            chanelNum     ——欲控制的继电器的个数;
//            ctrldata    ——继电器状态设定。直接写入继电器号1-16,表示继电器选择常开触点;
//                                        继电器号加16即17-32,表示继电器选择常闭触点;
//使用指导:
//            eg.要打开第1个继电器,关闭第2个继电器;串口为1;板卡号1;
//                   ......
//                   comport=1;
//                   cardID=1;
//                   chanelNum=2;
//                   strcpy(ctrldata,"\1\x12");
//                   Relay(comport,cardID,chanelNum,ctrldata);
//版本:V1.0
//日期:2005年12月27日
//-------------------------------------------------------------------
void Relay(int comport,int cardID,int chanelNum,char ctrldata[17])
{  
    static int num;
       short int i=0;
       unsigned char senddata[4],senddata1[20],senddata2[20],senddata3[5];

       //标示字
    senddata[0]=0xaa;
    senddata[1]=0x55;
       //板卡号
    senddata[2]=cardID+32;
    OpenComConfig (comport, "",9600,3, 8, 2, 1000, 1000);  
     FlushOutQ(comport);  
    ComWrt(comport,senddata,3);
    while(1)
      {
       num=GetOutQLen(comport);
       if(num==0)
       break;
       }
      CloseCom(comport);
    //通道个数
    senddata1[0]=chanelNum;

       //控制继电器状态
    strcpy(senddata1+1,ctrldata);
      
    senddata1[chanelNum+1]=cardID+chanelNum+32;
    OpenComConfig (comport, "",9600,4, 8, 2, 1000, 1000);
       FlushOutQ(comport);  
       ComWrt(comport,senddata1,chanelNum+2);
       while(1)
      {
       num=GetOutQLen(comport);
       if(num==0)
       break;
       }
      CloseCom(comport);
}
发表于 2006-1-11 19:51:22 | 显示全部楼层
<>写串口程序很简单,写在DLL比较麻烦!</P>

发表于 2006-1-2 22:19:44 | 显示全部楼层
不懂DEPHI,兄弟为什么不直接用LV或CVI直接做一个呢?这样也可以的!
 楼主| 发表于 2006-1-3 02:45:14 | 显示全部楼层
<>我也想呀,可是大系统是用DELPHI做的,没办法呀。用cvi那容易多了。~~~~~~~</P>
[em06]
发表于 2006-1-3 05:53:38 | 显示全部楼层
<DIV>既然是做成DLL,DELPHI能不能调用C语言作的Win32Dll</DIV>
<DIV>用CVI可以做标准win32DLL的</DIV>
<DIV>大系统应该用VC做啊</DIV>
<DIV>你说的大系统是几百万以上的?</DIV>
 楼主| 发表于 2006-1-14 02:14:39 | 显示全部楼层
<><STRONG><FONT face=Verdana color=#da2549>game216</FONT></STRONG></P>
<><STRONG><FONT face=Verdana color=#da2549>用VC做的DLL好像可以,能给个范例吗?我的程序在论坛里有帖,你看看。</FONT></STRONG></P>
<><STRONG><FONT face=Verdana color=#da2549>你说的CVI的WIN32DLL是不是CVI自己的动态连接库吗?</FONT></STRONG></P>
<P><STRONG><FONT face=Verdana color=#da2549>如果是WIN API的话DELPHI支持的。</FONT></STRONG></P>
<P><STRONG><FONT face=Verdana color=#da2549>个位版主帮帮忙,小弟在此谢过了!</FONT></STRONG></P>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-5 14:54 , Processed in 0.476305 second(s), 8 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表